diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7a79b28b09aa..4dfa55a79231 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,9 +24,8 @@ /tools/docker/ @Fira /Dockerfile @Fira -# MorrowWolf +# Zonespace -/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @morrowwolf -/code/modules/gear_presets/survivors.dm @morrowwolf +/code/modules/gear_presets/survivors.dm @zonespace27 # MULTIPLE OWNERS diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 49eda07616c2..5eb8f0219e73 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -10,6 +10,12 @@ body: placeholder: "#1, #2, #3, etc" validations: required: true + - type: input + id: round-id + attributes: + label: Round ID + description: If known, what was the Round ID this bug was found on? Can be left blank if unknown or occured across multiple rounds. + placeholder: "12345" - type: textarea id: what-happened attributes: diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 683f3909b447..0488055312f7 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -60,6 +60,34 @@ jobs: with: outputFile: output-annotations.txt + + odlint: + name: Lint with OpenDream + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Get OpenDream Version + run: | + source dependencies.sh + echo "OPENDREAM_VERSION=$OPENDREAM_VERSION" >> $GITHUB_ENV + - name: Restore OpenDream cache + uses: actions/cache@v3 + id: cache-od + with: + path: ~/OpenDream + key: ${{ runner.os }}-opendream-${{ env.OPENDREAM_VERSION }} + - name: Download OpenDream + if: steps.cache-od.outputs.cache-hit != 'true' + run: | + bash tools/ci/download_od.sh + - name: Setup OpenDream + if: steps.cache-od.outputs.cache-hit != 'true' + run: | + bash tools/ci/setup_od.sh + - name: Run OpenDream + run: | + bash tools/ci/run_od.sh + compile_all_maps: if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Compile Maps diff --git a/.gitignore b/.gitignore index 210efc84d75b..4d2b7e810de8 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ test_environment.txt # byond-tracy backend, not shipped with the codebase so it shouldn't be maintained prof.dll libprof.so + +# OpenDream compatibility stuff +colonialmarines.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 201562aaf7c7..c7b218b77591 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ "**/.pnp.*": true }, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "files.eol": "\n", "files.insertFinalNewline": true, diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm index 113b78dbada1..ead4c9665c7c 100644 --- a/code/__DEFINES/__game.dm +++ b/code/__DEFINES/__game.dm @@ -103,7 +103,7 @@ block( \ #define SOUND_MIDI (1<<1) #define SOUND_AMBIENCE (1<<2) #define SOUND_LOBBY (1<<3) -#define SOUND_INTERNET (1<<4) +#define SOUND_INTERNET (1<<4) // Unused currently. Kept for default prefs compat only #define SOUND_REBOOT (1<<5) #define SOUND_ADMIN_MEME (1<<6) #define SOUND_ADMIN_ATMOSPHERIC (1<<7) @@ -124,6 +124,7 @@ block( \ #define CHAT_FFATTACKLOGS (1<<11) #define CHAT_GHOSTHIVEMIND (1<<12) #define CHAT_NICHELOGS (1<<13) +#define CHAT_LISTENINGBUG (1<<14) //toggles_ghost #define GHOST_HEALTH_SCAN (1<<0) @@ -151,6 +152,7 @@ block( \ //toggles_admin /// Splits admin tabs in Statpanel #define SPLIT_ADMIN_TABS (1<<0) +#define ADMIN_STEALTHMODE (1<<1) //================================================= @@ -283,7 +285,6 @@ block( \ /// Only use the CEILING_PROTECTION_TIER_X defines for `protection_level` #define CEILING_IS_PROTECTED(ceiling, protection_level) (ceiling >= protection_level) - // Default font settings #define FONT_SIZE "5pt" #define DEFAULT_FONT_COLOR "#09f" @@ -392,6 +393,7 @@ block( \ #define FIRE_MISSION_WEAPON_REMOVED 8 #define FIRE_MISSION_WEAPON_UNUSABLE 16 #define FIRE_MISSION_WEAPON_OUT_OF_AMMO 32 +#define FIRE_MISSION_BAD_DIRECTION 64 #define FIRE_MISSION_NOT_EXECUTABLE -1 //Defines for firemission state @@ -493,6 +495,18 @@ block( \ #define TURF_PROTECTION_CAS 2 #define TURF_PROTECTION_OB 3 +/// Convert a turf protection level to a ceiling protection level +/proc/get_ceiling_protection_level(turf_protection_level) + switch(turf_protection_level) + if(TURF_PROTECTION_OB) + return CEILING_PROTECTION_TIER_4 + if(TURF_PROTECTION_CAS) + return CEILING_PROTECTION_TIER_3 + if(TURF_PROTECTION_MORTAR) + return CEILING_PROTECTION_TIER_2 + else + return CEILING_NO_PROTECTION + // Anything above the deck boundary is the upper deck, anything below is the lower deck // This is exclusive, so anything ON the boundary is an edge case that's neither on the upper nor the lower deck #define ALMAYER_DECK_BOUNDARY 101 diff --git a/code/__DEFINES/_math.dm b/code/__DEFINES/_math.dm index 7f19c95b2bcf..6fb634e66720 100644 --- a/code/__DEFINES/_math.dm +++ b/code/__DEFINES/_math.dm @@ -9,23 +9,6 @@ #define CARDINAL_DIRS list(1,2,4,8) #define CARDINAL_ALL_DIRS list(1,2,4,5,6,8,9,10) -//some colors -#define COLOR_RED "#FF0000" -#define COLOR_GREEN "#00FF00" -#define COLOR_BLUE "#0000FF" -#define COLOR_CYAN "#00FFFF" -#define COLOR_PINK "#FF00FF" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_ORANGE "#FF9900" -#define COLOR_WHITE "#FFFFFF" -#define COLOR_BLACK "#000000" -#define COLOR_OIL "#030303" - -//Grass Colors -#define COLOR_G_ICE "#C7EDDE" //faded cyan -#define COLOR_G_DES "#FF7C1C" //bright orange -#define COLOR_G_JUNG "#64AA6E" //faded green - #define LEFT 1 #define RIGHT 2 diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 97e4b0dbd1e8..be96a2e32b85 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -152,6 +152,8 @@ most of them are tied into map-placed objects. This should be reworked in the fu /// Ancients only #define ACCESS_YAUTJA_ANCIENT 392 +/// Anything in a tutorial sequence that shouldn't be accessed +#define ACCESS_TUTORIAL_LOCKED 998 ///Temporary, just so I can flag places I need to change #define ACCESS_COME_BACK_TO_ME 999 diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 6844721cd7f0..31103fee93ee 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -22,7 +22,7 @@ #define NOTE_SYNTHETIC 4 #define NOTE_YAUTJA 5 ///Note categories in text form, in order of their numerical #defines. -var/global/list/note_categories = list("Admin", "Merit", "Commanding Officer", "Synthetic", "Yautja") +GLOBAL_LIST_INIT(note_categories, list("Admin", "Merit", "Commanding Officer", "Synthetic", "Yautja")) #define ADMIN_FLW(user) "(FLW)" #define ADMIN_PP(user) "(PP)" diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm new file mode 100644 index 000000000000..b4fc5e04c9c7 --- /dev/null +++ b/code/__DEFINES/alerts.dm @@ -0,0 +1,7 @@ +#define ALERT_BUCKLED "buckled" +#define ALERT_HANDCUFFED "handcuffed" +#define ALERT_LEGCUFFED "legcuffed" +#define ALERT_FLOORED "floored" +#define ALERT_INCAPACITATED "incapacitated" +#define ALERT_KNOCKEDOUT "knockedout" +#define ALERT_IMMOBILIZED "immobilized" diff --git a/code/__DEFINES/assert.dm b/code/__DEFINES/assert.dm new file mode 100644 index 000000000000..cff78107714c --- /dev/null +++ b/code/__DEFINES/assert.dm @@ -0,0 +1,13 @@ +#undef ASSERT + +/// Override BYOND's native ASSERT to optionally specify a message +#define ASSERT(condition, message...) \ + if (!(condition)) { \ + CRASH(assertion_message(__FILE__, __LINE__, #condition, ##message)) \ + } + +/proc/assertion_message(file, line, condition, message) + if (!isnull(message)) + message = " - [message]" + + return "[file]:[line]:Assertion failed: [condition][message]" diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 3abd79708f7a..999a840b7fdd 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -23,6 +23,8 @@ #define T0C 273.15 // 0degC #define T20C 293.15 // 20degC +#define T90C 363.15 // 90degC +#define T120C 393.15 // 120degC #define TCMB 2.7 // -270.3degC #define ICE_COLONY_TEMPERATURE 223 //-50degC #define SOROKYNE_TEMPERATURE 223 // Same as Ice for now @@ -35,9 +37,6 @@ #define GAS_TYPE_PHORON "phoron" #define GAS_TYPE_CO2 "carbon dioxyde" -/// This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage -var/MAX_EXPLOSION_RANGE = 14 - /// Used in /obj/structure/pipes/vents/proc/create_gas #define VENT_GAS_SMOKE "Smoke" #define VENT_GAS_CN20 "CN20 Nerve Gas" diff --git a/code/__DEFINES/bullet_traits.dm b/code/__DEFINES/bullet_traits.dm index 0ca3bce2e602..40e250cd0dd2 100644 --- a/code/__DEFINES/bullet_traits.dm +++ b/code/__DEFINES/bullet_traits.dm @@ -3,7 +3,7 @@ // list of args if there are any args /// An entry to a list for giving projectiles bullet traits /// Must be placed inside of a list -#define BULLET_TRAIT_ENTRY(trait, args...) trait = #args ? list(##args) : null +#define BULLET_TRAIT_ENTRY(trait, args...) trait = list(##args) /// An entry to a list for giving projectiles bullet traits with a unique ID /// Must be placed inside of a list #define BULLET_TRAIT_ENTRY_ID(id, trait, args...) id = list(trait, ##args) diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index 85966e4032e2..f2db3980e887 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -6,6 +6,7 @@ #define MESSAGE_TYPE_SYSTEM "system" #define MESSAGE_TYPE_LOCALCHAT "localchat" #define MESSAGE_TYPE_RADIO "radio" +#define MESSAGE_TYPE_HIVEMIND "hivemind" #define MESSAGE_TYPE_INFO "info" #define MESSAGE_TYPE_WARNING "warning" #define MESSAGE_TYPE_DEADCHAT "deadchat" diff --git a/code/__DEFINES/clans.dm b/code/__DEFINES/clans.dm index 1b95d11c030c..576bbf6b76d5 100644 --- a/code/__DEFINES/clans.dm +++ b/code/__DEFINES/clans.dm @@ -49,26 +49,6 @@ /// Scales with clan size #define CLAN_LIMIT_SIZE 2 -var/global/list/datum/yautja_rank/clan_ranks = list( - CLAN_RANK_UNBLOODED = new /datum/yautja_rank/unblooded(), - CLAN_RANK_YOUNG = new /datum/yautja_rank/young(), - CLAN_RANK_BLOODED = new /datum/yautja_rank/blooded(), - CLAN_RANK_ELITE = new /datum/yautja_rank/elite(), - CLAN_RANK_ELDER = new /datum/yautja_rank/elder(), - CLAN_RANK_LEADER = new /datum/yautja_rank/leader(), - CLAN_RANK_ADMIN = new /datum/yautja_rank/ancient() -) - -var/global/list/clan_ranks_ordered = list( - CLAN_RANK_UNBLOODED = CLAN_RANK_UNBLOODED_INT, - CLAN_RANK_YOUNG = CLAN_RANK_YOUNG_INT, - CLAN_RANK_BLOODED = CLAN_RANK_BLOODED_INT, - CLAN_RANK_ELITE = CLAN_RANK_ELITE_INT, - CLAN_RANK_ELDER = CLAN_RANK_ELDER_INT, - CLAN_RANK_LEADER = CLAN_RANK_LEADER_INT, - CLAN_RANK_ADMIN = CLAN_RANK_ADMIN_INT -) - #define CLAN_HREF "clan_href" #define CLAN_TARGET_HREF "clan_target_href" diff --git a/code/__DEFINES/colours.dm b/code/__DEFINES/colours.dm index 5fa106715f39..e96546cdf7d2 100644 --- a/code/__DEFINES/colours.dm +++ b/code/__DEFINES/colours.dm @@ -1,214 +1,146 @@ // tg port thing -//different types of atom colourations -/// Only used by rare effects like greentext colouring mobs and when admins varedit color -#define ADMIN_COLOUR_PRIORITY 1 +//different types of atom colorations +/// Only used by rare effects like greentext coloring mobs and when admins varedit color +#define ADMIN_COLOR_PRIORITY 1 /// e.g. purple effect of the revenant on a mob, black effect when mob electrocuted -#define TEMPORARY_COLOUR_PRIORITY 2 -/// Colour splashed onto an atom (e.g. paint on turf) -#define WASHABLE_COLOUR_PRIORITY 3 -/// Colour inherent to the atom (e.g. blob color) -#define FIXED_COLOUR_PRIORITY 4 +#define TEMPORARY_COLOR_PRIORITY 2 +/// Color splashed onto an atom (e.g. paint on turf) +#define WASHABLE_COLOR_PRIORITY 3 +/// Color inherent to the atom (e.g. blob color) +#define FIXED_COLOR_PRIORITY 4 ///how many color priority levels there are. -#define COLOUR_PRIORITY_AMOUNT 4 - -#define COLOUR_DARKMODE_BACKGROUND "#202020" -#define COLOUR_DARKMODE_DARKBACKGROUND "#171717" -#define COLOUR_DARKMODE_TEXT "#a4bad6" - -#define COLOUR_WHITE "#FFFFFF" -#define COLOUR_VERY_LIGHT_GRAY "#EEEEEE" -#define COLOUR_SILVER "#C0C0C0" -#define COLOUR_GRAY "#808080" -#define COLOUR_FLOORTILE_GRAY "#8D8B8B" -#define COLOUR_DARK "#454545" -#define COLOUR_ALMOST_BLACK "#333333" -#define COLOUR_BLACK "#000000" -#define COLOUR_HALF_TRANSPARENT_BLACK "#0000007A" - -#define COLOUR_RED "#FF0000" -#define COLOUR_MOSTLY_PURE_RED "#FF3300" -#define COLOUR_DARK_RED "#A50824" -#define COLOUR_RED_LIGHT "#FF3333" -#define COLOUR_MAROON "#800000" -#define COLOUR_VIVID_RED "#FF3232" -#define COLOUR_LIGHT_GRAYISH_RED "#E4C7C5" -#define COLOUR_SOFT_RED "#FA8282" -#define COLOUR_CULT_RED "#960000" -#define COLOUR_BUBBLEGUM_RED "#950A0A" - -#define COLOUR_YELLOW "#FFFF00" -#define COLOUR_VIVID_YELLOW "#FBFF23" -#define COLOUR_VERY_SOFT_YELLOW "#FAE48E" - -#define COLOUR_OLIVE "#808000" -#define COLOUR_VIBRANT_LIME "#00FF00" -#define COLOUR_LIME "#32CD32" -#define COLOUR_DARK_LIME "#00aa00" -#define COLOUR_VERY_PALE_LIME_GREEN "#DDFFD3" -#define COLOUR_VERY_DARK_LIME_GREEN "#003300" -#define COLOUR_GREEN "#008000" -#define COLOUR_DARK_MODERATE_LIME_GREEN "#44964A" - -#define COLOUR_CYAN "#00FFFF" -#define COLOUR_DARK_CYAN "#00A2FF" -#define COLOUR_TEAL "#008080" -#define COLOUR_BLUE "#0000FF" -#define COLOUR_STRONG_BLUE "#1919c8" -#define COLOUR_BRIGHT_BLUE "#2CB2E8" -#define COLOUR_MODERATE_BLUE "#555CC2" -#define COLOUR_AMETHYST "#822BFF" -#define COLOUR_BLUE_LIGHT "#33CCFF" -#define COLOUR_NAVY "#000080" -#define COLOUR_BLUE_GRAY "#75A2BB" - -#define COLOUR_PINK "#FFC0CB" -#define COLOUR_LIGHT_PINK "#ff3cc8" -#define COLOUR_MOSTLY_PURE_PINK "#E4005B" -#define COLOUR_BLUSH_PINK "#DE5D83" -#define COLOUR_MAGENTA "#FF00FF" -#define COLOUR_STRONG_MAGENTA "#B800B8" -#define COLOUR_PURPLE "#800080" -#define COLOUR_VIOLET "#B900F7" -#define COLOUR_STRONG_VIOLET "#6927c5" - -#define COLOUR_ORANGE "#FF9900" -#define COLOUR_MOSTLY_PURE_ORANGE "#ff8000" -#define COLOUR_TAN_ORANGE "#FF7B00" -#define COLOUR_BRIGHT_ORANGE "#E2853D" -#define COLOUR_LIGHT_ORANGE "#ffc44d" -#define COLOUR_PALE_ORANGE "#FFBE9D" -#define COLOUR_BEIGE "#CEB689" -#define COLOUR_DARK_ORANGE "#C3630C" -#define COLOUR_DARK_MODERATE_ORANGE "#8B633B" - -#define COLOUR_BROWN "#BA9F6D" -#define COLOUR_DARK_BROWN "#997C4F" -#define COLOUR_ORANGE_BROWN "#a9734f" - -//Colour defines used by the soapstone (based on readability against grey tiles) -#define COLOUR_SOAPSTONE_PLASTIC "#a19d94" -#define COLOUR_SOAPSTONE_IRON "#b2b2b2" -#define COLOUR_SOAPSTONE_BRONZE "#FE8001" -#define COLOUR_SOAPSTONE_SILVER "#FFFFFF" -#define COLOUR_SOAPSTONE_GOLD "#FFD900" -#define COLOUR_SOAPSTONE_DIAMOND "#00ffee" - -#define COLOUR_GREEN_GRAY "#99BB76" -#define COLOUR_RED_GRAY "#B4696A" -#define COLOUR_PALE_BLUE_GRAY "#98C5DF" -#define COLOUR_PALE_GREEN_GRAY "#B7D993" -#define COLOUR_PALE_RED_GRAY "#D59998" -#define COLOUR_PALE_PURPLE_GRAY "#CBB1CA" -#define COLOUR_PURPLE_GRAY "#AE8CA8" - -//Colour defines used by the assembly detailer. -#define COLOUR_ASSEMBLY_BLACK "#545454" -#define COLOUR_ASSEMBLY_BGRAY "#9497AB" -#define COLOUR_ASSEMBLY_WHITE "#E2E2E2" -#define COLOUR_ASSEMBLY_RED "#CC4242" -#define COLOUR_ASSEMBLY_ORANGE "#E39751" -#define COLOUR_ASSEMBLY_BEIGE "#AF9366" -#define COLOUR_ASSEMBLY_BROWN "#97670E" -#define COLOUR_ASSEMBLY_GOLD "#AA9100" -#define COLOUR_ASSEMBLY_YELLOW "#CECA2B" -#define COLOUR_ASSEMBLY_GURKHA "#999875" -#define COLOUR_ASSEMBLY_LGREEN "#789876" -#define COLOUR_ASSEMBLY_GREEN "#44843C" -#define COLOUR_ASSEMBLY_LBLUE "#5D99BE" -#define COLOUR_ASSEMBLY_BLUE "#38559E" -#define COLOUR_ASSEMBLY_PURPLE "#6F6192" - -///Colours for xenobiology vatgrowing -#define COLOUR_SAMPLE_YELLOW "#c0b823" -#define COLOUR_SAMPLE_PURPLE "#342941" -#define COLOUR_SAMPLE_GREEN "#98b944" -#define COLOUR_SAMPLE_BROWN "#91542d" -#define COLOUR_SAMPLE_GRAY "#5e5856" - -///Main colours for UI themes -#define COLOUR_THEME_MIDNIGHT "#6086A0" -#define COLOUR_THEME_PLASMAFIRE "#FFB200" -#define COLOUR_THEME_RETRO "#24CA00" -#define COLOUR_THEME_SLIMECORE "#4FB259" -#define COLOUR_THEME_OPERATIVE "#B8221F" -#define COLOUR_THEME_GLASS "#75A4C4" -#define COLOUR_THEME_CLOCKWORK "#CFBA47" - -///Colours for eigenstates -#define COLOUR_PERIWINKLEE "#9999FF" +#define COLOR_PRIORITY_AMOUNT 4 + +// BLACK AND WHITE COLOR DEFINE. + +/// Full white. rgb(255, 255, 255) +#define COLOR_WHITE "#FFFFFF" +/// Full black. rgb(0, 0, 0) +#define COLOR_BLACK "#000000" + +// THE THREE PRIMARIES COLORS DEFINES. + +/// Full red. rgb(255, 0, 0) +#define COLOR_RED "#FF0000" +/// Full green. rgb(0, 255, 0) +#define COLOR_GREEN "#00FF00" +/// Full blue. rgb(0, 0, 255) +#define COLOR_BLUE "#0000FF" + +//mix of two full primary colors + +/// full cyan rgb(0, 255, 255) B + G +#define COLOR_CYAN "#00FFFF" +/// full magenta(not pink) rgb(255, 0, 255) R+B +#define COLOR_PINK "#FF00FF" +/// full yellow rgb(255, 255, 0) R+G +#define COLOR_YELLOW "#FFFF00" + +// colors define in use bellow +#define COLOR_SILVER "#C0C0C0" + +#define COLOR_FLOORTILE_GRAY "#8D8B8B" + +#define COLOR_HALF_TRANSPARENT_BLACK "#0000007A" + +#define COLOR_DARK_RED "#A50824" + +#define COLOR_MAROON "#800000" +#define COLOR_VIVID_RED "#FF3232" +#define COLOR_LIGHT_GRAYISH_RED "#E4C7C5" +#define COLOR_SOFT_RED "#FA8282" + +#define COLOR_VERY_SOFT_YELLOW "#FAE48E" + +#define COLOR_OLIVE "#808000" + +///light green rgb( 0, 128, 0) +#define COLOR_LIGHT_GREEN "#008000" +#define COLOR_DARK_MODERATE_LIME_GREEN "#44964A" + +#define COLOR_TEAL "#008080" + +#define COLOR_MODERATE_BLUE "#555CC2" + +#define COLOR_PURPLE "#800080" +#define COLOR_STRONG_VIOLET "#6927c5" + +#define COLOR_BEIGE "#CEB689" +#define COLOR_DARK_MODERATE_ORANGE "#8B633B" + +#define COLOR_BROWN "#BA9F6D" +#define COLOR_DARK_BROWN "#997C4F" + /** - * Some defines to generalise colours used in lighting. + * Some defines to generalise Colors used in lighting. * - * Important note: colours can end up significantly different from the basic html picture, especially when saturated + * Important note: Colors can end up significantly different from the basic html picture, especially when saturated */ -/// Full white. rgb(255, 255, 255) -#define LIGHT_COLOR_WHITE "#FFFFFF" /// Bright but quickly dissipating neon green. rgb(100, 200, 100) -#define LIGHT_COLOUR_GREEN "#64C864" -/// Electric green. rgb(0, 255, 0) -#define LIGHT_COLOUR_ELECTRIC_GREEN "#00FF00" +#define LIGHT_COLOR_GREEN "#64C864" /// Cold, diluted blue. rgb(100, 150, 250) -#define LIGHT_COLOUR_BLUE "#6496FA" +#define LIGHT_COLOR_BLUE "#6496FA" /// Light blueish green. rgb(125, 225, 175) -#define LIGHT_COLOUR_BLUEGREEN "#7DE1AF" +#define LIGHT_COLOR_BLUEGREEN "#7DE1AF" /// Diluted cyan. rgb(125, 225, 225) -#define LIGHT_COLOUR_CYAN "#7DE1E1" -/// Electric cyan rgb(0, 255, 255) -#define LIGHT_COLOUR_ELECTRIC_CYAN "#00FFFF" +#define LIGHT_COLOR_CYAN "#7DE1E1" /// More-saturated cyan. rgb(64, 206, 255) -#define LIGHT_COLOUR_LIGHT_CYAN "#40CEFF" +#define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" /// Saturated blue. rgb(51, 117, 248) -#define LIGHT_COLOUR_DARK_BLUE "#6496FA" +#define LIGHT_COLOR_DARK_BLUE "#3375F8" /// Diluted, mid-warmth pink. rgb(225, 125, 225) -#define LIGHT_COLOUR_PINK "#E17DE1" +#define LIGHT_COLOR_PINK "#E17DE1" /// Dimmed yellow, leaning kaki. rgb(225, 225, 125) -#define LIGHT_COLOUR_YELLOW "#E1E17D" +#define LIGHT_COLOR_YELLOW "#E1E17D" /// Clear brown, mostly dim. rgb(150, 100, 50) -#define LIGHT_COLOUR_BROWN "#966432" +#define LIGHT_COLOR_BROWN "#966432" /// Mostly pure orange. rgb(250, 150, 50) -#define LIGHT_COLOUR_ORANGE "#FA9632" +#define LIGHT_COLOR_ORANGE "#FA9632" /// Light Purple. rgb(149, 44, 244) -#define LIGHT_COLOUR_PURPLE "#952CF4" +#define LIGHT_COLOR_PURPLE "#952CF4" /// Less-saturated light purple. rgb(155, 81, 255) -#define LIGHT_COLOUR_LAVENDER "#9B51FF" +#define LIGHT_COLOR_LAVENDER "#9B51FF" ///slightly desaturated bright yellow. -#define LIGHT_COLOUR_HOLY_MAGIC "#FFF743" +#define LIGHT_COLOR_HOLY_MAGIC "#FFF743" /// deep crimson -#define LIGHT_COLOUR_BLOOD_MAGIC "#D00000" +#define LIGHT_COLOR_BLOOD_MAGIC "#D00000" /* These ones aren't a direct color like the ones above, because nothing would fit */ /// Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25) -#define LIGHT_COLOUR_FIRE "#FAA019" +#define LIGHT_COLOR_FIRE "#FAA019" /// Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24) -#define LIGHT_COLOUR_LAVA "#C48A18" +#define LIGHT_COLOR_LAVA "#C48A18" /// Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75) -#define LIGHT_COLOUR_FLARE "#FA644B" +#define LIGHT_COLOR_FLARE "#FA644B" /// Weird color, between yellow and green, very slimy. rgb(175, 200, 75) -#define LIGHT_COLOUR_SLIME_LAMP "#AFC84B" +#define LIGHT_COLOR_SLIME_LAMP "#AFC84B" /// Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175) -#define LIGHT_COLOUR_TUNGSTEN "#FAE1AF" +#define LIGHT_COLOR_TUNGSTEN "#FAE1AF" /// Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250) -#define LIGHT_COLOUR_HALOGEN "#F0FAFA" - -//The GAGS greyscale_colours for each department's computer/machine circuits -#define CIRCUIT_COLOUR_GENERIC "#1A7A13" -#define CIRCUIT_COLOUR_COMMAND "#1B4594" -#define CIRCUIT_COLOUR_SECURITY "#9A151E" -#define CIRCUIT_COLOUR_SCIENCE "#BC4A9B" -#define CIRCUIT_COLOUR_SERVICE "#92DCBA" -#define CIRCUIT_COLOUR_MEDICAL "#00CCFF" -#define CIRCUIT_COLOUR_ENGINEERING "#F8D700" -#define CIRCUIT_COLOUR_SUPPLY "#C47749" +#define LIGHT_COLOR_HALOGEN "#F0FAFA" /// The default color for admin say, used as a fallback when the preference is not enabled -#define DEFAULT_ASAY_COLOUR COLOUR_MOSTLY_PURE_RED -#define DEFAULT_HEX_COLOUR_LEN 6 +#define COLOR_MOSTLY_PURE_RED "#FF3300" +#define DEFAULT_ASAY_COLOR COLOR_MOSTLY_PURE_RED + +#define DEFAULT_HEX_COLOR_LEN 6 -// Colour filters +// Color filters /// Icon filter that creates ambient occlusion #define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, border=4, color="#04080FAA") /// Icon filter that creates gaussian blur #define GAUSSIAN_BLUR(filter_size) filter(type="blur", size=filter_size) + +//some colors coming from _math.dm + +#define COLOR_ORANGE "#FF9900" +#define COLOR_OIL "#030303" + +//Grass Colors coming from _math.dm + +#define COLOR_G_ICE "#C7EDDE" //faded cyan +#define COLOR_G_DES "#FF7C1C" //bright orange +#define COLOR_G_JUNG "#64AA6E" //faded green diff --git a/code/__DEFINES/conflict.dm b/code/__DEFINES/conflict.dm index 0820c709cdae..d69f0891ffa0 100644 --- a/code/__DEFINES/conflict.dm +++ b/code/__DEFINES/conflict.dm @@ -109,6 +109,7 @@ #define SHOES_SLOWDOWN -1 #define SLOWDOWN_ARMOR_NONE 0 +#define SLOWDOWN_ARMOR_SUPER_LIGHT 0.10 #define SLOWDOWN_ARMOR_VERY_LIGHT 0.20 #define SLOWDOWN_ARMOR_LIGHT 0.35 #define SLOWDOWN_ARMOR_MEDIUM 0.55 diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm index 0a9e00b59e04..2e247cdccc73 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm @@ -36,6 +36,10 @@ #define COMSIG_HUMAN_UPDATE_SIGHT "human_update_sight" #define COMPONENT_OVERRIDE_UPDATE_SIGHT (1<<0) +///from /mob/living/carbon/human/movement_delay() +#define COMSIG_HUMAN_MOVEMENT_CANCEL_INTERACTION "human_movement_cancel_interaction" + #define COMPONENT_HUMAN_MOVEMENT_KEEP_USING (1<<0) + ///from /mob/living/carbon/human/update_sight() #define COMSIG_HUMAN_POST_UPDATE_SIGHT "human_post_update_sight" ///from /mob/living/carbon/human/movement_delay(): (list/movedata) @@ -63,3 +67,6 @@ #define COMSIG_HUMAN_SURGERY_APPLY_MODIFIERS "human_surgery_apply_modifiers" /// From /mob/living/carbon/human/proc/get_flags_cold_protection() #define COMSIG_HUMAN_COLD_PROTECTION_APPLY_MODIFIERS "human_cold_protection_apply_modifiers" + +/// From /obj/item/proc/dig_out_shrapnel() : () +#define COMSIG_HUMAN_SHRAPNEL_REMOVED "human_shrapnel_removed" diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm index 89a65dad230e..cea905dd1011 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm @@ -23,13 +23,25 @@ #define COMSIG_LIVING_SPEAK "living_speak" #define COMPONENT_OVERRIDE_SPEAK (1<<0) -#define COMSIG_LIVING_APPLY_EFFECT "living_apply_effect" -#define COMSIG_LIVING_ADJUST_EFFECT "living_adjust_effect" -#define COMSIG_LIVING_SET_EFFECT "living_set_effect" - #define COMPONENT_CANCEL_EFFECT (1<<0) - /// From /obj/structure/proc/do_climb(var/mob/living/user, mods) #define COMSIG_LIVING_CLIMB_STRUCTURE "climb_over_structure" /// From /mob/living/Collide(): (atom/A) #define COMSIG_LIVING_PRE_COLLIDE "living_pre_collide" #define COMPONENT_LIVING_COLLIDE_HANDLED (1<<0) + +/// From /mob/living/proc/do_ghost() : (mob/dead/observer/ghost) +#define COMSIG_LIVING_GHOSTED "living_ghosted" + +/// From /mob/living/carbon/human/attack_hand() : (mob/living/carbon/human/attacked_mob) +#define COMSIG_LIVING_ATTACKHAND_HUMAN "living_attackhand_human" + +/// From /obj/item/reagent_container/hypospray/attack() : (obj/item/reagent_container/hypospray/injector) +#define COMSIG_LIVING_HYPOSPRAY_INJECTED "living_hypospray_injected" + +///from base of mob/living/set_buckled(): (new_buckled) +#define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" +///from base of mob/living/set_body_position() +#define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" + +/// from base of /mob/living/apply_status_effect(): (datum/status_effect/new_effect) +#define COMSIG_LIVING_APPLY_EFFECT "living_apply_effect" diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm index bab6064cfdbf..58021ba564a2 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -1,3 +1,5 @@ +///from base of mob/set_stat(): (new_stat, old_stat) +#define COMSIG_MOB_STATCHANGE "mob_statchange" /// From /obj/structure/machinery/door/airlock/proc/take_damage #define COMSIG_MOB_DESTROY_AIRLOCK "mob_destroy_airlock" @@ -35,10 +37,6 @@ #define COMSIG_MOB_FIRED_GUN_ATTACHMENT "mob_fired_gun_attachment" /// From /mob/proc/death #define COMSIG_MOB_DEATH "mob_death" -/// From /mob/proc/update_canmove() -#define COMSIG_MOB_GETTING_UP "mob_getting_up" -/// From /mob/proc/update_canmove() -#define COMSIG_MOB_KNOCKED_DOWN "mob_knocked_down" /// For when a mob is dragged #define COMSIG_MOB_DRAGGED "mob_dragged" /// From /obj/item/proc/unequipped() @@ -79,13 +77,14 @@ ///from base of /mob/Logout(): () #define COMSIG_MOB_LOGOUT "mob_logout" +/// From /mob/proc/change_real_name(): (old_name, new_name) +#define COMSIG_MOB_REAL_NAME_CHANGED "mob_real_name_changed" + //from /mob/proc/on_deafness_gain() #define COMSIG_MOB_DEAFENED "mob_deafened" //from /mob/proc/on_deafness_loss() #define COMSIG_MOB_REGAINED_HEARING "mob_regained_hearing" -#define COMSIG_MOB_POST_UPDATE_CANMOVE "mob_can_move" - #define COMSIG_ATTEMPT_MOB_PULL "attempt_mob_pull" #define COMPONENT_CANCEL_MOB_PULL (1<<0) @@ -99,6 +98,9 @@ #define COMSIG_MOB_MOVE_OR_LOOK "mob_move_or_look" #define COMPONENT_OVERRIDE_MOB_MOVE_OR_LOOK (1<<0) +///from rejuv +#define COMSIG_LIVING_POST_FULLY_HEAL "living_post_fully_heal" + ///from /mob/living/emote(): () #define COMSIG_MOB_EMOTE "mob_emote" @@ -128,3 +130,43 @@ /// From /obj/item/proc/pickup() : (obj/item/picked_up) #define COMSIG_MOB_PICKUP_ITEM "mob_pickup_item" + +/// From /obj/item/proc/attack_self() : (obj/item/used) +#define COMSIG_MOB_ITEM_ATTACK_SELF "mob_item_attack_self" + +/// From /obj/item/proc/dropped() : (obj/item/dropped) +#define COMSIG_MOB_ITEM_DROPPED "mob_item_dropped" + + +/// From /obj/item/reagent_container/food/snacks/proc/on_Consume() : (obj/item/reagent_container/food/snacks/eaten_food) +#define COMSIG_MOB_EATEN_SNACK "mob_eaten_snack" + +/// From /atom/proc/attackby() : (atom/attacked, obj/item/attacked_with) +#define COMSIG_MOB_PARENT_ATTACKBY "mob_parent_attackby" + +/// From /obj/item/weapon/gun/proc/reload_into_chamber() : (obj/item/weapon/gun/empty_gun) +#define COMSIG_MOB_GUN_EMPTY "mob_gun_empty" + +/// From /obj/item/weapon/gun/proc/reload() : (obj/item/weapon/gun/reloaded) +#define COMSIG_MOB_RELOADED_GUN "mob_reloaded_gun" + +/// From /mob/proc/get_status_tab_items() : (list/status_list) +#define COMSIG_MOB_GET_STATUS_TAB_ITEMS "mob_get_status_tab_items" + +/// From /datum/tutorial/proc/update_objective() : (new_objective) +#define COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE "mob_tutorial_update_objective" + +/// From /mob/proc/swap_hand() : () +#define COMSIG_MOB_SWAPPED_HAND "mob_swapped_hand" + +/// From /mob/proc/a_intent_change() : (new_intent) +#define COMSIG_MOB_INTENT_CHANGE "mob_intent_change" + +/// From /obj/item/grab/proc/progress_passive() : (mob/living/carbon/human/grabber) +#define COMSIG_MOB_AGGRESSIVELY_GRABBED "mob_aggressively_grabbed" + #define COMSIG_MOB_AGGRESIVE_GRAB_CANCEL (1<<0) + +/// Cancels all running cloaking effects on target +#define COMSIG_MOB_EFFECT_CLOAK_CANCEL "mob_effect_cloak_cancel" + +#define COMSIG_MOB_END_TUTORIAL "mob_end_tutorial" diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.dm b/code/__DEFINES/dcs/signals/atom/signals_atom.dm index 7431c5593b17..d9bd1202c159 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_atom.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_atom.dm @@ -45,3 +45,12 @@ ///When the transform or an atom is varedited through vv topic. #define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" + +/// Called when an atom has something mouse dropped on it, from /client/MouseDrop: (atom/dropped_on) +#define COMSIG_ATOM_DROPPED_ON "atom_dropped_on" + +/// Called when an atom is mouse dropped on another atom, from /client/MouseDrop: (atom/dropped_onto) +#define COMSIG_ATOM_DROP_ON "atom_drop_on" + +/// Called when an atom has emp_act called on it, from /atom/emp_act: (severity) +#define COMSIG_ATOM_EMP_ACT "atom_emp_act" diff --git a/code/__DEFINES/dcs/signals/atom/signals_cell.dm b/code/__DEFINES/dcs/signals/atom/signals_cell.dm new file mode 100644 index 000000000000..75e13d8bfdfc --- /dev/null +++ b/code/__DEFINES/dcs/signals/atom/signals_cell.dm @@ -0,0 +1,26 @@ +/// (charge_amount) +#define COMSIG_CELL_USE_CHARGE "cell_use_charge" + #define COMPONENT_CELL_NO_USE_CHARGE (1<<0) + +/// (charge_amount) +#define COMSIG_CELL_ADD_CHARGE "cell_add_charge" + +#define COMSIG_CELL_START_TICK_DRAIN "cell_start_tick_drain" + +#define COMSIG_CELL_STOP_TICK_DRAIN "cell_stop_tick_drain" + +/// (mob/living/user) +#define COMSIG_CELL_TRY_RECHARGING "cell_try_recharging" + #define COMPONENT_CELL_NO_RECHARGE (1<<0) + +#define COMSIG_CELL_OUT_OF_CHARGE "cell_out_of_charge" + +/// (charge_amount) +#define COMSIG_CELL_CHECK_CHARGE "cell_check_charge" + #define COMPONENT_CELL_CHARGE_INSUFFICIENT (1<<0) + +#define COMSIG_CELL_TRY_INSERT_CELL "cell_try_insert_cell" + #define COMPONENT_CANCEL_CELL_INSERT (1<<0) + +/// (mob/living/user) +#define COMSIG_CELL_REMOVE_CELL "cell_remove_cell" diff --git a/code/__DEFINES/dcs/signals/atom/signals_item.dm b/code/__DEFINES/dcs/signals/atom/signals_item.dm index 6c31b77f76a4..7b3b218e658a 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_item.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_item.dm @@ -65,3 +65,15 @@ /// from /obj/item/weapon/gun/proc/load_into_chamber() : () #define COMSIG_GUN_INTERRUPT_FIRE "gun_interrupt_fire" + +//from /datum/authority/branch/role/proc/equip_role() +#define COMSIG_POST_SPAWN_UPDATE "post_spawn_update" + +#define COMSIG_CAMERA_MAPNAME_ASSIGNED "camera_manager_mapname_assigned" +#define COMSIG_CAMERA_REGISTER_UI "camera_manager_register_ui" +#define COMSIG_CAMERA_UNREGISTER_UI "camera_manager_unregister_ui" +#define COMSIG_CAMERA_SET_NVG "camera_manager_set_nvg" +#define COMSIG_CAMERA_CLEAR_NVG "camera_manager_clear_nvg" +#define COMSIG_CAMERA_SET_TARGET "camera_manager_set_target" +#define COMSIG_CAMERA_SET_AREA "camera_manager_set_area" +#define COMSIG_CAMERA_CLEAR "camera_manager_clear_target" diff --git a/code/__DEFINES/dcs/signals/atom/signals_obj.dm b/code/__DEFINES/dcs/signals/atom/signals_obj.dm index aebd0d09d0d2..c870a55ed746 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_obj.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_obj.dm @@ -29,3 +29,17 @@ /// from /obj/proc/afterbuckle() #define COSMIG_OBJ_AFTER_BUCKLE "signal_obj_after_buckle" + +/// from /obj/structure/machinery/cryopod/go_out() +#define COMSIG_CRYOPOD_GO_OUT "cryopod_go_out" + +/// from /proc/vendor_successful_vend() : (obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user) +#define COMSIG_VENDOR_SUCCESSFUL_VEND "vendor_successful_vend" + +/// from /obj/limb/proc/remove_all_bleeding() : (external, internal) +#define COMSIG_LIMB_STOP_BLEEDING "limb_stop_bleeding" + +#define COMSIG_DROPSHIP_ADD_EQUIPMENT "dropship_add_equipment" +#define COMSIG_DROPSHIP_REMOVE_EQUIPMENT "dropship_remove_equipment" + +#define COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED "structure_crate_squad_launched" diff --git a/code/__DEFINES/dcs/signals/signals_client.dm b/code/__DEFINES/dcs/signals/signals_client.dm index 6733e0703514..3968f654c486 100644 --- a/code/__DEFINES/dcs/signals/signals_client.dm +++ b/code/__DEFINES/dcs/signals/signals_client.dm @@ -27,6 +27,3 @@ /// Called when something is removed from a client's screen : /client/proc/remove_from_screen(screen_remove) #define COMSIG_CLIENT_SCREEN_REMOVE "client_screen_remove" - -/// When a mind is transfered to another mob at /datum/mind/proc/transfer_to() -#define COMSIG_CLIENT_MIND_TRANSFER "mind_transfer" diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index 032a1891a808..5569ded71586 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -60,8 +60,14 @@ #define COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING "!groundside_forsaken_handling" /// From -#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "yautja_armory_opened" +#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "!yautja_armory_opened" /// From /proc/biohazard_lockdown() -#define COMSIG_GLOB_RESEARCH_LOCKDOWN "research_lockdown_closed" -#define COMSIG_GLOB_RESEARCH_LIFT "research_lockdown_opened" +#define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed" +#define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened" + +/// From /obj/structure/machinery/power/fusion_engine/proc/set_overloading() : (set_overloading) +#define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading" + +#define COMSIG_GLOB_HIJACK_IMPACTED "!hijack_impacted" +#define COMSIG_GLOB_HIJACK_LANDED "!hijack_landed" diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm index 82e91c5680b8..375dd0db540d 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -80,10 +80,8 @@ #define CAN_DIG_SHRAPNEL (1<<11) /// whether it has an animated icon state of "[icon_state]_on" to be used during surgeries. #define ANIMATED_SURGICAL_TOOL (1<<12) -/// The item goes on top of tables, instead of into them with the overlay system -#define NOTABLEMERGE (1<<13) /// Has heat source but isn't 'on fire' and thus can be stored -#define IGNITING_ITEM (1<<14) +#define IGNITING_ITEM (1<<13) //========================================================================================== @@ -196,11 +194,11 @@ //=========================================================================================== //Marine armor only, use for flags_marine_armor. -#define ARMOR_SQUAD_OVERLAY 1 -#define ARMOR_LAMP_OVERLAY 2 -#define ARMOR_LAMP_ON 4 -#define ARMOR_IS_REINFORCED 8 -#define SYNTH_ALLOWED 16 +#define ARMOR_SQUAD_OVERLAY (1<<0) +#define ARMOR_LAMP_OVERLAY (1<<1) +#define ARMOR_LAMP_ON (1<<2) +#define ARMOR_IS_REINFORCED (1<<3) +#define SYNTH_ALLOWED (1<<4) //=========================================================================================== //=========================================================================================== @@ -495,7 +493,7 @@ GLOBAL_LIST_INIT(slot_to_contained_sprite_shorthand, list( #define UNIFORM_VEND_DRESS_EXTRA "dress extra" -var/global/list/uniform_categories = list( +GLOBAL_LIST_INIT(uniform_categories, list( "UTILITY" = list(UNIFORM_VEND_UTILITY_UNIFORM, UNIFORM_VEND_UTILITY_JACKET, UNIFORM_VEND_UTILITY_HEAD, UNIFORM_VEND_UTILITY_GLOVES, UNIFORM_VEND_UTILITY_SHOES), "UTILITY EXTRAS" = list(UNIFORM_VEND_UTILITY_EXTRA), "SERVICE" = list(UNIFORM_VEND_SERVICE_UNIFORM, UNIFORM_VEND_SERVICE_JACKET, UNIFORM_VEND_SERVICE_GLOVES, UNIFORM_VEND_SERVICE_SHOES), @@ -504,7 +502,7 @@ var/global/list/uniform_categories = list( "DRESS" = list(UNIFORM_VEND_DRESS_UNIFORM, UNIFORM_VEND_DRESS_JACKET, UNIFORM_VEND_DRESS_GLOVES, UNIFORM_VEND_DRESS_SHOES), "DRESS HEADWEAR" = list(UNIFORM_VEND_DRESS_HEAD), "DRESS EXTRAS" = list(UNIFORM_VEND_DRESS_EXTRA) -) +)) //================================================= @@ -551,3 +549,8 @@ var/global/list/uniform_categories = list( #define PHONE_MARINE "Marine" #define PHONE_UPP_SOLDIER "Soldier" #define PHONE_IO "IO" + +#define PHONE_DND_FORCED 2 +#define PHONE_DND_ON 1 +#define PHONE_DND_OFF 0 +#define PHONE_DND_FORBIDDEN -1 diff --git a/code/__DEFINES/hijack.dm b/code/__DEFINES/hijack.dm new file mode 100644 index 000000000000..85d4c227ae70 --- /dev/null +++ b/code/__DEFINES/hijack.dm @@ -0,0 +1,13 @@ +#define EVACUATION_TYPE_NONE 0 +#define EVACUATION_TYPE_ADDITIVE 1 +#define EVACUATION_TYPE_MULTIPLICATIVE 2 + +#define HIJACK_ANNOUNCE "ARES Emergency Procedures" +#define XENO_HIJACK_ANNOUNCE "You sense something unusual..." + +#define EVACUATION_STATUS_NOT_INITIATED 0 +#define EVACUATION_STATUS_INITIATED 1 + +#define HIJACK_OBJECTIVES_NOT_STARTED 0 +#define HIJACK_OBJECTIVES_STARTED 1 +#define HIJACK_OBJECTIVES_COMPLETE 2 diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 38e5693dcbe5..deee80c7a91d 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -23,3 +23,5 @@ #define NOTIFY_ATTACK "attack" #define NOTIFY_ORBIT "orbit" #define NOTIFY_JOIN_XENO "join_xeno" +#define NOTIFY_XENO_TACMAP "xeno_tacmap" +#define NOTIFY_USCM_TACMAP "uscm_tacmap" diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index 52263a5e1367..ad3b9fe3af32 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -1,6 +1,6 @@ #define get_job_playtime(client, job) (client.player_data? LAZYACCESS(client.player_data.playtimes, job)? client.player_data.playtimes[job].total_minutes MINUTES_TO_DECISECOND : 0 : 0) -#define GET_MAPPED_ROLE(title) (RoleAuthority?.role_mappings[title] ? RoleAuthority.role_mappings[title] : RoleAuthority.roles_by_name[title]) -#define GET_DEFAULT_ROLE(title) (RoleAuthority?.default_roles[title] ? RoleAuthority.default_roles[title] : title) +#define GET_MAPPED_ROLE(title) (GLOB.RoleAuthority?.role_mappings[title] ? GLOB.RoleAuthority.role_mappings[title] : GLOB.RoleAuthority.roles_by_name[title]) +#define GET_DEFAULT_ROLE(title) (GLOB.RoleAuthority?.default_roles[title] ? GLOB.RoleAuthority.default_roles[title] : title) // Squad name defines #define SQUAD_MARINE_1 "Alpha" @@ -11,6 +11,7 @@ #define SQUAD_MARINE_CRYO "Foxtrot" #define SQUAD_MARINE_INTEL "Intel" #define SQUAD_SOF "SOF" +#define SQUAD_CBRN "CBRN" // Job name defines #define JOB_SQUAD_MARINE "Rifleman" @@ -23,7 +24,7 @@ #define JOB_SQUAD_ROLES /datum/timelock/squad #define JOB_SQUAD_ROLES_LIST list(JOB_SQUAD_MARINE, JOB_SQUAD_LEADER, JOB_SQUAD_ENGI, JOB_SQUAD_MEDIC, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_TEAM_LEADER) -var/global/list/job_squad_roles = JOB_SQUAD_ROLES_LIST +GLOBAL_LIST_INIT(job_squad_roles, JOB_SQUAD_ROLES_LIST) #define JOB_COLONIST "Colonist" #define JOB_PASSENGER "Passenger" @@ -71,7 +72,7 @@ var/global/list/job_squad_roles = JOB_SQUAD_ROLES_LIST #define JOB_SO "Staff Officer" #define JOB_COMMAND_ROLES /datum/timelock/command #define JOB_COMMAND_ROLES_LIST list(JOB_CO, JOB_XO, JOB_SO) -var/global/list/job_command_roles = JOB_COMMAND_ROLES_LIST +GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_AUXILIARY_OFFICER "Auxiliary Support Officer" #define JOB_PILOT "Pilot Officer" @@ -267,6 +268,7 @@ var/global/list/job_command_roles = JOB_COMMAND_ROLES_LIST #define JOB_UPP_GENERAL "UPP Army General" #define JOB_UPP_COMBAT_SYNTH "UPP Combat Synthetic" +#define JOB_UPP_SUPPORT_SYNTH "UPP Support Synthetic" #define UPP_JOB_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_LT_OFFICER, JOB_UPP_LT_DOKTOR, JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_KOL_OFFICER, JOB_UPP_COMBAT_SYNTH) #define UPP_JOB_GRUNT_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_CREWMAN) diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index b044e3426bc1..f4503aeea5d5 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -14,6 +14,7 @@ #define COMSIG_KB_ADMIN_INVISIMINTOGGLE_DOWN "keybinding_admin_invisimintoggle_down" #define COMSIG_KB_ADMIN_DEADMIN_DOWN "keybinding_admin_deadmin_down" #define COMSIG_KB_ADMIN_READMIN_DOWN "keybinding_admin_readmin_down" +#define COMSIG_KB_ADMIN_MENTORSAY_DOWN "keybinding_admin_mentorsay_down" //Carbon #define COMSIG_KB_CARBON_HOLDRUNMOVEINTENT_DOWN "keybinding_carbon_holdrunmoveintent_down" @@ -43,12 +44,6 @@ #define COMSIG_KG_CLIENT_RADIO_DOWN "keybinding_client_radio_down" //Human -#define COMSIG_KB_HUMAN_QUICKEQUIP_DOWN "keybinding_human_quickequip_down" -#define COMSIG_KB_HUMAN_SECONDARY_DOWN "keybinding_human_secondary_down" -#define COMSIG_KB_HUMAN_TERTIARY_DOWN "keybinding_human_tertiary_down" -#define COMSIG_KB_HUMAN_QUATERNARY_DOWN "keybinding_human_quaternary_down" -#define COMSIG_KB_HUMAN_QUICK_EQUIP_DOWN "keybinding_human_quick_equip_down" - #define COMSIG_KB_HUMAN_ISSUE_ORDER "keybinding_human_issue_order" #define COMSIG_KB_HUMAN_ISSUE_ORDER_MOVE "keybinding_human_issue_order_move" #define COMSIG_KB_HUMAN_ISSUE_ORDER_HOLD "keybinding_human_issue_order_hold" @@ -57,12 +52,31 @@ #define COMSIG_KB_HUMAN_SPECIALIST_ACTIVATION_ONE "keybinding_human_specialist_activation_one" #define COMSIG_KB_HUMAN_SPECIALIST_ACTIVATION_TWO "keybinding_human_specialist_activation_two" -#define COMSIG_KB_HUMAN_PICK_UP "keybinding_human_pick_up" - #define COMSIG_KB_HUMAN_ROTATE_CHAIR "keybinding_human_rotate_chair" #define COMSIG_KB_HUMAN_SHOW_HELD_ITEM "keybinding_human_show_held_item" +#define COMSIG_KB_HUMAN_CYCLE_HELMET_HUD "keybinding_human_cycle_helmet_hud" + +// Human Inventory Navigation +#define COMSIG_KB_HUMAN_INTERACT_OTHER_HAND "keybinding_human_interact_other_hand" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_BACK "keybinding_human_interact_slot_back" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_BELT "keybinding_human_interact_slot_belt" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_UNIFORM "keybinding_human_interact_slot_uniform" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_SUIT "keybinding_human_interact_slot_suit" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_HELMET "keybinding_human_interact_slot_helmet" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_LEFT_POUCH "keybinding_human_interact_slot_left_pouch" +#define COMSIG_KB_HUMAN_INTERACT_SLOT_RIGHT_POUCH "keybinding_human_interact_slot_right_pouch" +#define COMSIG_KB_HUMAN_INTERACT_SUIT_S_STORE "keybinding_human_interact_slot_suit_storage" + +#define COMSIG_KB_HUMAN_INTERACT_QUICKEQUIP_DOWN "keybinding_human_interact_quickequip_down" +#define COMSIG_KB_HUMAN_INTERACT_SECONDARY_DOWN "keybinding_human_interact_secondary_down" +#define COMSIG_KB_HUMAN_INTERACT_TERTIARY_DOWN "keybinding_human_interact_tertiary_down" +#define COMSIG_KB_HUMAN_INTERACT_QUATERNARY_DOWN "keybinding_human_interact_quaternary_down" +#define COMSIG_KB_HUMAN_INTERACT_QUICK_EQUIP_DOWN "keybinding_human_interact_quick_equip_down" + +#define COMSIG_KB_HUMAN_INTERACT_PICK_UP "keybinding_human_interact_pick_up" + // Human Combat #define COMSIG_KB_HUMAN_WEAPON_FIELDSTRIP "keybinding_human_weapon_fieldstrip" #define COMSIG_KB_HUMAN_WEAPON_BURSTFIRE "keybinding_human_weapon_burstfire" @@ -74,6 +88,7 @@ #define COMSIG_KB_HUMAN_WEAPON_UNLOAD "keybinding_human_weapon_unload" #define COMSIG_KB_HUMAN_WEAPON_ATTACHMENT "keybinding_human_weapon_attachment" #define COMSIG_KB_HUMAN_WEAPON_ATTACHMENT_RAIL "keybinding_human_weapon_attachment_rail" +#define COMSIG_KB_HUMAN_WEAPON_SHOTGUN_TUBE "keybinding_human_weapon_shotgun_tube" #define COMSIG_KB_HUMAN_WEAPON_TOGGLE_IFF "keybinding_human_weapon_toggle_iff" @@ -155,8 +170,7 @@ #define COMSIG_KB_YAUTJA_BUTCHER "keybinding_yautja_butcher" #define COMSIG_KB_YAUTJA_PRED_BUY "keybinding_yautja_pred_buy" #define COMSIG_KB_YAUTJA_MARK_PANEL "keybinding_yautja_mark_panel" -#define COMSIG_KB_YAUTJA_MARK_FOR_HUNT "keybinding_yautja_mark_for_hunt" -#define COMSIG_KB_YAUTJA_REMOVE_FROM_HUNT "keybinding_yautja_remove_from_hunt" +#define COMSIG_KB_YAUTJA_TOGGLE_MARK_FOR_HUNT "keybinding_yautja_toggle_mark_for_hunt" // Yautja Bracer #define COMSIG_KB_YAUTJA_TOGGLE_NOTIFICATION_SOUND "keybinding_yautja_toggle_notification_sound" @@ -177,6 +191,7 @@ #define COMSIG_KB_YAUTJA_BRACERNAME "keybinding_yautja_bracername" #define COMSIG_KB_YAUTJA_IDCHIP "keybinding_yautja_idchip" #define COMSIG_KB_YAUTJA_LINK_BRACER "keybinding_yautja_link_bracer" +#define COMSIG_KB_YAUTJA_CONTROL_FALCON "keybinding_yautja_control_falcon" //mask #define COMSIG_KB_YAUTJA_MASK_TOGGLE_ZOOM "keybinding_yautja_mask_toggle_zoom" @@ -199,6 +214,7 @@ #define CATEGORY_CARBON "CARBON" #define CATEGORY_HUMAN "HUMAN" #define CATEGORY_HUMAN_COMBAT "HUMAN COMBAT" +#define CATEGORY_HUMAN_INVENTORY "HUMAN INVENTORY" #define CATEGORY_ROBOT "ROBOT" #define CATEGORY_YAUTJA "YAUTJA" #define CATEGORY_MISC "MISC" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index c0ccd5164b0b..5628395d7ffb 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -230,6 +230,7 @@ ///--------------- FULLSCREEN RUNECHAT BUBBLES ------------ #define LIGHTING_PLANE 100 #define EXTERIOR_LIGHTING_PLANE 101 +#define NVG_PLANE 110 ///Popup Chat Messages #define RUNECHAT_PLANE 501 diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 3f6a4a44ee07..155a91fa62ed 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -32,6 +32,7 @@ require only minor tweaks. #define ZTRAIT_FOG "Fog" #define ZTRAIT_LOCKDOWN "Lockdown" #define ZTRAIT_BASIC_RT "BasicRT" +#define ZTRAIT_IN_SPACE "InSpace" // Is our ground_level considered in space or on a space station // boolean - weather types that occur on the level #define ZTRAIT_SNOWSTORM "weather_snowstorm" diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm index 71d0ed8e7445..003d723600c4 100644 --- a/code/__DEFINES/minimap.dm +++ b/code/__DEFINES/minimap.dm @@ -5,7 +5,17 @@ #define MINIMAP_FLAG_UPP (1<<3) #define MINIMAP_FLAG_CLF (1<<4) #define MINIMAP_FLAG_YAUTJA (1<<5) -#define MINIMAP_FLAG_ALL (1<<6) - 1 +#define MINIMAP_FLAG_XENO_CORRUPTED (1<<6) +#define MINIMAP_FLAG_XENO_ALPHA (1<<7) +#define MINIMAP_FLAG_XENO_BRAVO (1<<8) +#define MINIMAP_FLAG_XENO_CHARLIE (1<<9) +#define MINIMAP_FLAG_XENO_DELTA (1<<10) +#define MINIMAP_FLAG_XENO_FERAL (1<<11) +#define MINIMAP_FLAG_XENO_TAMED (1<<12) +#define MINIMAP_FLAG_XENO_MUTATED (1<<13) +#define MINIMAP_FLAG_XENO_FORSAKEN (1<<14) +#define MINIMAP_FLAG_XENO_RENEGADE (1<<15) +#define MINIMAP_FLAG_ALL (1<<16) - 1 ///Converts the overworld x and y to minimap x and y values #define MINIMAP_SCALE 2 @@ -77,9 +87,3 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL)) #define TACMAP_BASE_OCCLUDED "Occluded" #define TACMAP_BASE_OPEN "Open" - -#define TACMAP_DEFAULT "Default" -#define TACMAP_XENO "Xeno" -#define TACMAP_YAUTJA "Yautja" -#define TACMAP_FACTION "Faction" - diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index b024f22ebfff..8a8e9678fbdf 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -124,7 +124,6 @@ #define MATERIAL_METAL "metal" #define MATERIAL_PLASTEEL "plasteel" #define MATERIAL_WOOD "wood plank" -#define MATERIAL_CRYSTAL "plasmagas" // SIZES FOR ITEMS, use it for w_class diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm new file mode 100644 index 000000000000..7f9f33ea483c --- /dev/null +++ b/code/__DEFINES/mob.dm @@ -0,0 +1 @@ +#define DEFAULT_MOB_STATUS_FLAGS CANKNOCKDOWN|CANPUSH|STATUS_FLAGS_DEBILITATE diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1bd030313a43..9cd69e61c8b2 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -1,3 +1,6 @@ +/// Multiplier for Stun/KD/KO/etc durations in new backend, due to old system being based on life ticks +#define GLOBAL_STATUS_MULTIPLIER 20 // each in-code unit is worth 20ds of duration + #define HEALTH_THRESHOLD_DEAD -100 #define HEALTH_THRESHOLD_CRIT -50 @@ -44,9 +47,7 @@ //disabilities #define NEARSIGHTED (1<<0) -#define EPILEPSY (1<<1) -#define COUGHING (1<<2) -#define TOURETTES (1<<3) + #define NERVOUS (1<<4) #define OPIATE_RECEPTOR_DEFICIENCY (1<<5) //================================================= @@ -194,22 +195,22 @@ //================================================= //Species flags. -#define NO_BLOOD (1<<0) -#define NO_BREATHE (1<<1) +#define NO_BLOOD (1<<0) +#define NO_BREATHE (1<<1) #define NO_CLONE_LOSS (1<<2) -#define NO_SLIP (1<<3) +#define NO_SLIP (1<<3) #define NO_POISON (1<<4) -#define NO_CHEM_METABOLIZATION (1<<5) //Prevents reagents from acting on_mob_life(). +#define NO_CHEM_METABOLIZATION (1<<5) //Prevents reagents from acting on_mob_life(). #define HAS_SKIN_TONE (1<<6) -#define HAS_SKIN_COLOR (1<<7) -#define HAS_LIPS (1<<8) +#define HAS_SKIN_COLOR (1<<7) +#define HAS_LIPS (1<<8) #define HAS_UNDERWEAR (1<<9) -#define IS_WHITELISTED (1<<10) -#define IS_SYNTHETIC (1<<11) -#define NO_NEURO (1<<12) +#define IS_WHITELISTED (1<<10) +#define IS_SYNTHETIC (1<<11) +#define NO_NEURO (1<<12) #define SPECIAL_BONEBREAK (1<<13) //species do not get their bonebreak chance modified by endurance -#define NO_SHRAPNEL (1<<14) -#define HAS_HARDCRIT (1<<15) +#define NO_SHRAPNEL (1<<14) +#define HAS_HARDCRIT (1<<15) //================================================= @@ -374,7 +375,7 @@ // Hellhound strain flags #define HELLHOUND_NORMAL "Normal" -var/list/default_onmob_icons = list( +GLOBAL_LIST_INIT(default_onmob_icons, list( WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi', WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi', WEAR_WAIST = 'icons/mob/humans/onmob/belt.dmi', @@ -393,9 +394,9 @@ var/list/default_onmob_icons = list( WEAR_HANDS = 'icons/mob/humans/onmob/hands.dmi', WEAR_J_STORE = 'icons/mob/humans/onmob/suit_slot.dmi', WEAR_ACCESSORIES = 'icons/mob/humans/onmob/ties.dmi' - ) + )) -var/list/default_xeno_onmob_icons = list( +GLOBAL_LIST_INIT(default_xeno_onmob_icons, list( /mob/living/carbon/xenomorph/runner = 'icons/mob/xenos/onmob/runner.dmi', /mob/living/carbon/xenomorph/praetorian = 'icons/mob/xenos/onmob/praetorian.dmi', /mob/living/carbon/xenomorph/drone = 'icons/mob/xenos/onmob/drone.dmi', @@ -403,7 +404,7 @@ var/list/default_xeno_onmob_icons = list( /mob/living/carbon/xenomorph/defender = 'icons/mob/xenos/onmob/defender.dmi', /mob/living/carbon/xenomorph/sentinel = 'icons/mob/xenos/onmob/sentinel.dmi', /mob/living/carbon/xenomorph/spitter = 'icons/mob/xenos/onmob/spitter.dmi' - ) + )) // species names #define SPECIES_HUMAN "Human" @@ -417,3 +418,33 @@ var/list/default_xeno_onmob_icons = list( #define HANDLING_LIMBS list("l_arm","l_hand", "r_arm", "r_hand") #define EXTREMITY_LIMBS list("l_leg","l_foot","r_leg","r_foot","l_arm","l_hand","r_arm","r_hand") #define CORE_LIMBS list("chest","head","groin") + +#define SYMPTOM_ACTIVATION_PROB 3 + +// Body position defines. +/// Mob is standing up, usually associated with lying_angle value of 0. +#define STANDING_UP 0 +/// Mob is lying down, usually associated with lying_angle values of 90 or 270. +#define LYING_DOWN 1 + +/// Possible value of [/atom/movable/buckle_lying]. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled. +#define NO_BUCKLE_LYING -1 + +// ==================================== +// /mob/living /tg/ mobility_flags +// These represent in what capacity the mob is capable of moving +// Because porting this is underway, NOT ALL FLAGS ARE CURRENTLY IN. + +/// can move +#define MOBILITY_MOVE (1<<0) +/// can, and is, standing up +#define MOBILITY_STAND (1<<1) +/// can rest +#define MOBILITY_REST (1<<7) +/// can lie down +#define MOBILITY_LIEDOWN (1<<8) + +#define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND) +#define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) +#define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) + diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index b73b2a0d89af..0f04006859e9 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -91,8 +91,8 @@ //================================================= -//Number of marine players against which the Marine's gear scales -#define MARINE_GEAR_SCALING_NORMAL 30 +/// Number of weighted marine players for 1 gear_scale. gear_scale is clamped to 1 minimum +#define MARINE_GEAR_SCALING_NORMAL 50 #define RESOURCE_NODE_SCALE 95 //How many players minimum per extra set of resource nodes #define RESOURCE_NODE_QUANTITY_PER_POP 11 //How many resources total per pop @@ -109,34 +109,34 @@ //================================================= //Role defines, specifically lists of roles for job bans, crew manifests and the like. -var/global/list/ROLES_COMMAND = list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN) +GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) //Marine roles #define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) -var/global/list/ROLES_CIC = list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO) -var/global/list/ROLES_AUXIL_SUPPORT = list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT) -var/global/list/ROLES_MISC = list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH) -var/global/list/ROLES_POLICE = list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) -var/global/list/ROLES_ENGINEERING = list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH) -var/global/list/ROLES_REQUISITION = list(JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION) -var/global/list/ROLES_MEDICAL = list(JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR) -var/global/list/ROLES_MARINES = list(JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE) -var/global/list/ROLES_SQUAD_ALL = list(SQUAD_MARINE_1, SQUAD_MARINE_2, SQUAD_MARINE_3, SQUAD_MARINE_4, SQUAD_MARINE_5, SQUAD_MARINE_CRYO, SQUAD_MARINE_INTEL) +GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO)) +GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) +GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH)) +GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)) +GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH)) +GLOBAL_LIST_INIT(ROLES_REQUISITION, list(JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION)) +GLOBAL_LIST_INIT(ROLES_MEDICAL, list(JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR)) +GLOBAL_LIST_INIT(ROLES_MARINES, list(JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE)) +GLOBAL_LIST_INIT(ROLES_SQUAD_ALL, list(SQUAD_MARINE_1, SQUAD_MARINE_2, SQUAD_MARINE_3, SQUAD_MARINE_4, SQUAD_MARINE_5, SQUAD_MARINE_CRYO, SQUAD_MARINE_INTEL)) +GLOBAL_LIST_INIT(ROLES_WO, list(JOB_WO_CO, JOB_WO_XO, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION, JOB_WO_CMO, JOB_WO_DOCTOR, JOB_WO_RESEARCHER, JOB_WO_SQUAD_MARINE, JOB_WO_SQUAD_MEDIC, JOB_WO_SQUAD_ENGINEER, JOB_WO_SQUAD_SMARTGUNNER, JOB_WO_SQUAD_SPECIALIST, JOB_WO_SQUAD_LEADER)) //Groundside roles -var/global/list/ROLES_XENO = list(JOB_XENOMORPH_QUEEN, JOB_XENOMORPH) -var/global/list/ROLES_WHITELISTED = list(JOB_SYNTH_SURVIVOR, JOB_CO_SURVIVOR, JOB_PREDATOR) -var/global/list/ROLES_SPECIAL = list(JOB_SURVIVOR) +GLOBAL_LIST_INIT(ROLES_XENO, list(JOB_XENOMORPH_QUEEN, JOB_XENOMORPH)) +GLOBAL_LIST_INIT(ROLES_WHITELISTED, list(JOB_SYNTH_SURVIVOR, JOB_CO_SURVIVOR, JOB_PREDATOR)) +GLOBAL_LIST_INIT(ROLES_SPECIAL, list(JOB_SURVIVOR)) -var/global/list/ROLES_USCM = ROLES_CIC + ROLES_POLICE + ROLES_AUXIL_SUPPORT + ROLES_MISC + ROLES_ENGINEERING + ROLES_REQUISITION + ROLES_MEDICAL + ROLES_MARINES - ROLES_WO -var/global/list/ROLES_GROUND = ROLES_XENO + ROLES_SPECIAL + ROLES_WHITELISTED +GLOBAL_LIST_INIT(ROLES_USCM, ROLES_CIC + GLOB.ROLES_POLICE + GLOB.ROLES_AUXIL_SUPPORT + GLOB.ROLES_MISC + GLOB.ROLES_ENGINEERING + GLOB.ROLES_REQUISITION + GLOB.ROLES_MEDICAL + GLOB.ROLES_MARINES - ROLES_WO) +GLOBAL_LIST_INIT(ROLES_GROUND, GLOB.ROLES_XENO + ROLES_SPECIAL + ROLES_WHITELISTED) -var/global/list/ROLES_DISTRESS_SIGNAL = ROLES_USCM + ROLES_GROUND -var/global/list/ROLES_FACTION_CLASH = ROLES_USCM + JOB_PREDATOR +GLOBAL_LIST_INIT(ROLES_DISTRESS_SIGNAL, GLOB.ROLES_USCM + GLOB.ROLES_GROUND) +GLOBAL_LIST_INIT(ROLES_FACTION_CLASH, ROLES_USCM + JOB_PREDATOR) -var/global/list/ROLES_UNASSIGNED = list(JOB_SQUAD_MARINE) -var/global/list/ROLES_WO = list(JOB_WO_CO, JOB_WO_XO, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION, JOB_WO_CMO, JOB_WO_DOCTOR, JOB_WO_RESEARCHER, JOB_WO_SQUAD_MARINE, JOB_WO_SQUAD_MEDIC, JOB_WO_SQUAD_ENGINEER, JOB_WO_SQUAD_SMARTGUNNER, JOB_WO_SQUAD_SPECIALIST, JOB_WO_SQUAD_LEADER) +GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) //Role lists used for switch() checks in show_blurb_uscm(). Cosmetic, determines ex. "Engineering, USS Almayer", "2nd Bat. 'Falling Falcons'" etc. #define BLURB_USCM_COMBAT JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_SEA,\ JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE @@ -153,7 +153,7 @@ var/global/list/ROLES_WO = list(JOB_WO_CO, JOB_WO_XO, JOB_WO_CORPORATE_LIAISON, #define WHITELIST_COUNCIL "Council" #define WHITELIST_LEADER "Leader" -var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL, WHITELIST_LEADER) +GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, WHITELIST_LEADER)) //================================================= #define WHITELIST_YAUTJA (1<<0) @@ -186,7 +186,7 @@ var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #define WHITELIST_EVERYTHING (WHITELISTS_GENERAL|WHITELISTS_COUNCIL|WHITELISTS_LEADER) -#define isCouncil(A) (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_YAUTJA_COUNCIL) || (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_SYNTHETIC_COUNCIL) || (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_COMMANDER_COUNCIL) +#define isCouncil(A) (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_YAUTJA_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_SYNTHETIC_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_COMMANDER_COUNCIL) //================================================= @@ -240,9 +240,17 @@ var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #define FACTION_MONKEY "Monkey" // Nanu #define FACTION_LIST_MARINE list(FACTION_MARINE) -#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE) -#define FACTION_LIST_ERT list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE) +#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE) +#define FACTION_LIST_ERT list(FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO) #define FACTION_LIST_WY list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) +#define FACTION_LIST_UPP list(FACTION_UPP) +#define FACTION_LIST_CLF list(FACTION_CLF) +#define FACTION_LIST_TWE list(FACTION_TWE) +#define FACTION_LIST_FREELANCER list(FACTION_FREELANCER) +#define FACTION_LIST_CONTRACTOR list(FACTION_CONTRACTOR) +#define FACTION_LIST_MERCENARY list(FACTION_MERCENARY) +#define FACTION_LIST_MARSHAL list(FACTION_MARSHAL) +#define FACTION_LIST_DUTCH list(FACTION_DUTCH) #define FACTION_LIST_MARINE_WY list(FACTION_MARINE, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) #define FACTION_LIST_MARINE_UPP list(FACTION_MARINE, FACTION_UPP) #define FACTION_LIST_MARINE_TWE list(FACTION_MARINE, FACTION_TWE) @@ -265,6 +273,6 @@ var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL, // global vars to prevent spam of the "one xyz alive" messages -var/global/last_ares_callout +GLOBAL_VAR(last_ares_callout) -var/global/last_qm_callout +GLOBAL_VAR(last_qm_callout) diff --git a/code/__DEFINES/objects.dm b/code/__DEFINES/objects.dm index a6b95c879ae4..292b315360c5 100644 --- a/code/__DEFINES/objects.dm +++ b/code/__DEFINES/objects.dm @@ -54,6 +54,8 @@ #define SHOCK 8 #define SAFE 16 +#define CLOSED 2 + //metal, glass, rod stacks #define MAX_STACK_AMOUNT_METAL 50 #define MAX_STACK_AMOUNT_GLASS 50 @@ -77,14 +79,14 @@ #define GETPULSE_HAND 0 //less accurate (hand) #define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc) -var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them. +GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them.) "thunder", "ERT", "NUKE", CAMERA_NET_LADDER, CAMERA_NET_COLONY, CAMERA_NET_OVERWATCH, - ) + )) #define STASIS_IN_BAG 1 #define STASIS_IN_CRYO_CELL 2 diff --git a/code/__DEFINES/paygrade_defs/civilian.dm b/code/__DEFINES/paygrade_defs/civilian.dm new file mode 100644 index 000000000000..ed99a363dedd --- /dev/null +++ b/code/__DEFINES/paygrade_defs/civilian.dm @@ -0,0 +1,35 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// Civilians +/// CIV, Civilian +#define PAY_SHORT_CIV "CIV" + +/// CNUR, Nurse +#define PAY_SHORT_CNUR "CNUR" + +/// CDOC, Doctor +#define PAY_SHORT_CDOC "CDOC" + +/// CCMO, Professor +#define PAY_SHORT_CCMO "CCMO" + +/// CREP, Representative +#define PAY_SHORT_CREP "CREP" + +/// SYN, Synthetic +#define PAY_SHORT_SYN "SYN" + +/// OPR, Operative +#define PAY_SHORT_OPR "OPR" + +/// CPO, Officer +#define PAY_SHORT_CPO "CPO" + +/// CSPO, Senior Officer +#define PAY_SHORT_CSPO "CSPO" + +/// REB, Rebel +#define PAY_SHORT_REB "REB" + +/// REBC, Rebel Commander "REBC" +#define PAY_SHORT_REBC "REBC" diff --git a/code/__DEFINES/paygrade_defs/cmb.dm b/code/__DEFINES/paygrade_defs/cmb.dm new file mode 100644 index 000000000000..8ebd7902dbf8 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/cmb.dm @@ -0,0 +1,20 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// Colonial Marshal Bureau +/// IHRO, Interstellar Human Rights Observer +#define PAY_SHORT_IHRO "IHRO" + +/// ICCL, Interstellar Commerce Commission Corporate Liaison +#define PAY_SHORT_ICCL "ICCL" + +/// ICCA, Interstellar Commerce Commission Agent +#define PAY_SHORT_ICCA "ICCA" + +/// CMBM, CMB Marshal +#define PAY_SHORT_CMBM "CMBM" + +/// CMBD, CMB Deputy +#define PAY_SHORT_CMBD "CMBD" + +/// CMBS, CMB Synthetic +#define PAY_SHORT_CMBS "CMBS" diff --git a/code/__DEFINES/paygrade_defs/dutch.dm b/code/__DEFINES/paygrade_defs/dutch.dm new file mode 100644 index 000000000000..299096060f3f --- /dev/null +++ b/code/__DEFINES/paygrade_defs/dutch.dm @@ -0,0 +1,17 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// Dutches Dozen +/// DTC, Dutch's Dozen Standard Mercenary +#define PAY_SHORT_DTC "DTC" + +/// DTCM, Dutch's Dozen Medic +#define PAY_SHORT_DTCM "DTCM" + +/// DTCF, Dutch's Dozen Flamethrower Specialist +#define PAY_SHORT_DTCF "DTCF" + +/// DTCMG, Dutch's Dozen Machinegunner +#define PAY_SHORT_DTCMG "DTCMG" + +/// DTCA, Arnold +#define PAY_SHORT_DTCA "DTCA" diff --git a/code/__DEFINES/paygrade_defs/marines.dm b/code/__DEFINES/paygrade_defs/marines.dm new file mode 100644 index 000000000000..74b659630820 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/marines.dm @@ -0,0 +1,80 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// USCM MARINES +/// ME1, Private +#define PAY_SHORT_ME1 "ME1" + +/// ME2, Private First Class +#define PAY_SHORT_ME2 "ME2" + +/// ME3, Lance Corporal +#define PAY_SHORT_ME3 "ME3" + +/// ME4, Corporal +#define PAY_SHORT_ME4 "ME4" + +/// ME5, Sergeant +#define PAY_SHORT_ME5 "ME5" + +/// ME6, Staff Sergeant +#define PAY_SHORT_ME6 "ME6" + +/// ME7, Gunnery Sergeant +#define PAY_SHORT_ME7 "ME7" + +/// ME8, Master Sergeant +#define PAY_SHORT_ME8 "ME8" + +/// ME8E, First Sergeant +#define PAY_SHORT_ME8E "ME8E" + +/// ME9, Master Gunnery Sergeant +#define PAY_SHORT_ME9 "ME9" + +/// ME9E, Sergeant Major +#define PAY_SHORT_ME9E "ME9E" + +/// ME9C, Sergeant Major of the Colonial Marine Corps +#define PAY_SHORT_ME9C "ME9C" + +/// MO1, Second Lieutenant +#define PAY_SHORT_MO1 "MO1" + +/// MO2, First Lieutenant +#define PAY_SHORT_MO2 "MO2" +/// MO3, Captain + +#define PAY_SHORT_MO3 "MO3" +/// MO4, Major + +#define PAY_SHORT_MO4 "MO4" +/// MO5, Lieutenant Colonel + +#define PAY_SHORT_MO5 "MO5" +/// MO6, Colonel + +#define PAY_SHORT_MO6 "MO6" +/// MO6E, Senior Colonel + +#define PAY_SHORT_MO6E "MO6E" +/// MO6C, Division Colonel + +#define PAY_SHORT_MO6C "MO6C" +/// MO7, Brigadier General + +#define PAY_SHORT_MO7 "MO7" +/// MO8, Major General + +#define PAY_SHORT_MO8 "MO8" +/// MO9, Lieutenant General + +#define PAY_SHORT_MO9 "MO9" +/// MO10, General + +#define PAY_SHORT_MO10 "MO10" + +/// MO10C, Assistant Commandant of the Marine Corps +#define PAY_SHORT_MO10C "MO10C" + +/// MO10S, Commandant of the Marine Corps +#define PAY_SHORT_MO10S "MO10S" diff --git a/code/__DEFINES/paygrade_defs/navy.dm b/code/__DEFINES/paygrade_defs/navy.dm new file mode 100644 index 000000000000..d51cccb8fe97 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/navy.dm @@ -0,0 +1,74 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// USCM NAVY +/// NE1, Seaman Recruit +#define PAY_SHORT_NE1 "NE1" + +/// NE2M, Seaman Apprentice +#define PAY_SHORT_NE2 "NE2" + +/// NE3, Seaman +#define PAY_SHORT_NE3 "NE3" + +/// NE4, Petty Officer 3rd Class +#define PAY_SHORT_NE4 "NE4" + +/// NE5, Petty Officer 2nd Class +#define PAY_SHORT_NE5 "NE5" + +/// NE6, Petty Officer 1st Class +#define PAY_SHORT_NE6 "N36" + +/// NE7, Chief Petty Officer +#define PAY_SHORT_NE7 "NE7" + +/// NE8, Senior Chief Petty Officer +#define PAY_SHORT_NE8 "NE8" + +/// NE8C, Command Senior Chief Petty Officer +#define PAY_SHORT_NE8C "NE8C" + +/// NE9, Master Chief Petty Officer +#define PAY_SHORT_NE9 "NE9" + +/// NE9C, Command Master Chief Petty Officer +#define PAY_SHORT_NE9C "NE9C" + +/// NO1, Ensign +#define PAY_SHORT_NO1 "NO1" + +/// NO2, Lieutenant Junior Grade +#define PAY_SHORT_NO2 "NO2" + +/// NO3, Lieutenant +#define PAY_SHORT_NO3 "NO3" + +/// NO4, Lieutenant Commander +#define PAY_SHORT_NO4 "NO4" + +/// NO5, Commander +#define PAY_SHORT_NO5 "NO5" + +/// NO6, Captain +#define PAY_SHORT_NO6 "NO6" + +/// NO6E, Commodore +#define PAY_SHORT_NO6E "NO6E" + +/// NO6C, Senior Commodore +#define PAY_SHORT_NO6C "NO6C" + +/// NO7, Rear Admiral (Lower Half) +#define PAY_SHORT_NO7 "NO7" + +/// NO8, Rear Admiral (Upper Half) +#define PAY_SHORT_NO8 "NO8" + +/// NO9, Vice Admiral +#define PAY_SHORT_NO9 "NO9" + +/// NO10, Admiral +#define PAY_SHORT_NO10 "NO10" + +/// NO10C, Chief of Naval Operations +#define PAY_SHORT_NO10C "NO10C" diff --git a/code/__DEFINES/paygrade_defs/provost.dm b/code/__DEFINES/paygrade_defs/provost.dm new file mode 100644 index 000000000000..5b2121642d52 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/provost.dm @@ -0,0 +1,14 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// PROVOST OFFICE +/// PvI, Provost Inspector +#define PAY_SHORT_PVI "PvI" + +/// PvM, Provost Marshal +#define PAY_SHORT_PVM "PvM" + +/// PvSM, Provost Sector Marshal +#define PAY_SHORT_PVSM "PvSM" + +/// PvCM, Provost Chief Marshal +#define PAY_SHORT_PVCM "PvCM" diff --git a/code/__DEFINES/paygrade_defs/upp.dm b/code/__DEFINES/paygrade_defs/upp.dm new file mode 100644 index 000000000000..40c0d8441b2e --- /dev/null +++ b/code/__DEFINES/paygrade_defs/upp.dm @@ -0,0 +1,59 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// Union of Progressive Peoples +/// UE, +#define PAY_SHORT_UEC "UEC" + +/// UE1, Private +#define PAY_SHORT_UE1 "UE1" + +/// UE2, Private First Class +#define PAY_SHORT_UE2 "UE2" + +/// UE3, Korporal +#define PAY_SHORT_UE3 "UE3" + +/// UE4, unior Serzhant +#define PAY_SHORT_UE4 "UE4" + +/// UE5, Serzhant +#define PAY_SHORT_UE5 "UE5" + +/// UE6, Master Serzhant +#define PAY_SHORT_UE6 "UE6" + +/// UC1, Junior Kommando +#define PAY_SHORT_UC1 "UC1" + +/// UC2, 2nd Kommando +#define PAY_SHORT_UC2 "UC2" + +/// UC3, 1st Kommando +#define PAY_SHORT_UC3 "UC3" + +/// UO1, Leytenant +#define PAY_SHORT_UO1 "UO1" + +/// UO2, Senior Leytenant +#define PAY_SHORT_UO2 "UO2" + +/// UO3, Kapitan +#define PAY_SHORT_UO3 "UO3" + +/// UO4, Mayjor +#define PAY_SHORT_UO4 "UO4" + +/// UO5, Leytenant Kolonel +#define PAY_SHORT_UO5 "UO5" + +/// UO6, Kolonel +#define PAY_SHORT_UO6 "UO6" + +/// UO7, Mayjor General +#define PAY_SHORT_UO7 "UO7" + +/// UO8, Leytenant General +#define PAY_SHORT_UO8 "UO8" + +/// UO9, Army General +#define PAY_SHORT_UO9 "UO9" diff --git a/code/__DEFINES/paygrade_defs/weyland.dm b/code/__DEFINES/paygrade_defs/weyland.dm new file mode 100644 index 000000000000..1b6c168e9b6e --- /dev/null +++ b/code/__DEFINES/paygrade_defs/weyland.dm @@ -0,0 +1,32 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// Weyland Yutani +/// WYC1, Trainee +#define PAY_SHORT_WYC1 "WYC1" + +/// WYC2, Junior Executive +#define PAY_SHORT_WYC2 "WYC2" + +/// WYC3, Executive +#define PAY_SHORT_WYC3 "WYC3" + +/// WYC4, Senior Executive +#define PAY_SHORT_WYC4 "WYC4" + +/// WYC5, Executive Specialist +#define PAY_SHORT_WYC5 "WYC5" + +/// WYC6, Executive Supervisor +#define PAY_SHORT_WYC6 "WYC6" + +/// WYC7, Assistant Manager +#define PAY_SHORT_WYC7 "WYC7" + +/// WYC8, Division Manager +#define PAY_SHORT_WYC8 "WYC8" + +/// WYC9, Chief Executive +#define PAY_SHORT_WYC9 "WYC9" + +/// WYC10, Director +#define PAY_SHORT_WYC10 "WYC10" diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index e2bd155fcb0d..cc1831501bad 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -61,6 +61,10 @@ #define RADIO_CHANNEL_PMC_CCT "PMC CCT" #define RADIO_CHANNEL_WY_WO "SpecOps" +//Listening Devices +#define RADIO_CHANNEL_BUG_A "Listening Device A" +#define RADIO_CHANNEL_BUG_B "Listening Device B" + //1-Channel ERTs #define RADIO_CHANNEL_DUTCH_DOZEN "DD" #define RADIO_CHANNEL_VAI "VAI" diff --git a/code/__DEFINES/regex.dm b/code/__DEFINES/regex.dm index f56871ec83f2..a0d9c9a7323b 100644 --- a/code/__DEFINES/regex.dm +++ b/code/__DEFINES/regex.dm @@ -6,38 +6,38 @@ // The lazy URL finder. Lazy in that it matches the bare minimum // Replicates BYOND's own URL parser in functionality. -var/global/regex/url_find_lazy +GLOBAL_DATUM(url_find_lazy, /regex) // REGEX datums used for process_chat_markup. -var/global/regex/markup_bold -var/global/regex/markup_italics -var/global/regex/markup_strike -var/global/regex/markup_underline +GLOBAL_DATUM(markup_bold, /regex) +GLOBAL_DATUM(markup_italics, /regex) +GLOBAL_DATUM(markup_strike, /regex) +GLOBAL_DATUM(markup_underline, /regex) // Global list for mark-up REGEX datums. // Initialized in the hook, to avoid passing by null value. -var/global/list/markup_regex = list() +GLOBAL_LIST_EMPTY(markup_regex) // Global list for mark-up REGEX tag collection. -var/global/list/markup_tags = list("/" = list("", ""), +GLOBAL_LIST_INIT(markup_tags, list("/" = list("", ""), "*" = list("", ""), "~" = list("", ""), - "_" = list("", "")) + "_" = list("", ""))) /proc/initialize_global_regex() - url_find_lazy = new(@"((https?|byond):\/\/[^\s]*)", "g") + GLOB.url_find_lazy = new(@"((https?|byond):\/\/[^\s]*)", "g") - markup_bold = new("((\\W|^)\\*)(\[^\\*\]*)(\\*(\\W|$))", "g") - markup_italics = new("((\\W|^)\\/)(\[^\\/\]*)(\\/(\\W|$))", "g") - markup_strike = new("((\\W|^)\\~)(\[^\\~\]*)(\\~(\\W|$))", "g") - markup_underline = new("((\\W|^)\\_)(\[^\\_\]*)(\\_(\\W|$))", "g") + GLOB.markup_bold = new("((\\W|^)\\*)(\[^\\*\]*)(\\*(\\W|$))", "g") + GLOB.markup_italics = new("((\\W|^)\\/)(\[^\\/\]*)(\\/(\\W|$))", "g") + GLOB.markup_strike = new("((\\W|^)\\~)(\[^\\~\]*)(\\~(\\W|$))", "g") + GLOB.markup_underline = new("((\\W|^)\\_)(\[^\\_\]*)(\\_(\\W|$))", "g") // List needs to be initialized here, due to DM mixing and matching pass-by-value and -reference as it chooses. - markup_regex = list( - "/" = markup_italics, - "*" = markup_bold, - "~" = markup_strike, - "_" = markup_underline, + GLOB.markup_regex = list( + "/" = GLOB.markup_italics, + "*" = GLOB.markup_bold, + "~" = GLOB.markup_strike, + "_" = GLOB.markup_underline, ) return 1 diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index d283656ccae6..a3299184e4ef 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -100,10 +100,12 @@ #define MOBILE_SHUTTLE_ID_ERT_BIG "ert_boarding_shuttle" #define MOBILE_TRIJENT_ELEVATOR "trijentshuttle2" -#define STAT_TRIJENT_LZ1 "trigent_lz1" -#define STAT_TRIJENT_LZ2 "trigent_lz2" -#define STAT_TRIJENT_ENGI "trigent_engineering" -#define STAT_TRIJENT_OMEGA "trigent_omega" +#define STAT_TRIJENT_EMPTY "trijent_empty" +#define STAT_TRIJENT_OCCUPIED "trijent_occupied" +#define STAT_TRIJENT_LZ1 "trijent_lz1" +#define STAT_TRIJENT_LZ2 "trijent_lz2" +#define STAT_TRIJENT_ENGI "trijent_engineering" +#define STAT_TRIJENT_OMEGA "trijent_omega" #define MOBILE_SHUTTLE_LIFEBOAT_PORT "lifeboat-port" #define MOBILE_SHUTTLE_LIFEBOAT_STARBOARD "lifeboat-starboard" @@ -115,6 +117,7 @@ #define ALMAYER_DROPSHIP_LZ1 "almayer-hangar-lz1" #define ALMAYER_DROPSHIP_LZ2 "almayer-hangar-lz2" +#define DROPSHIP_FLYBY_ID "special_flight" #define DROPSHIP_LZ1 "dropship-lz1" #define DROPSHIP_LZ2 "dropship-lz2" diff --git a/code/__DEFINES/skills.dm b/code/__DEFINES/skills.dm index 5dabb4545a32..d33e26c1c3f6 100644 --- a/code/__DEFINES/skills.dm +++ b/code/__DEFINES/skills.dm @@ -42,6 +42,8 @@ #define SKILL_SPEC_DEFAULT 0 /// Is trained to use specialist gear, but hasn't picked a kit. #define SKILL_SPEC_TRAINED 1 +/// Is trained to use specialist gear & HAS picked a kit. (Functionally same as SPEC_ROCKET) +#define SKILL_SPEC_KITTED 2 /// Can use RPG #define SKILL_SPEC_ROCKET 2 /// Can use thermal cloaks and custom M4RA rifle diff --git a/code/__DEFINES/sounds.dm b/code/__DEFINES/sounds.dm index a6bb381100e7..541d95d28189 100644 --- a/code/__DEFINES/sounds.dm +++ b/code/__DEFINES/sounds.dm @@ -27,7 +27,7 @@ #define SOUND_CHANNEL_AMBIENCE 1019 #define SOUND_CHANNEL_WALKMAN 1020 #define SOUND_CHANNEL_SOUNDSCAPE 1021 -#define SOUND_CHANNEL_ADMIN_MIDI 1022 +//#define SOUND_CHANNEL_ADMIN_MIDI 1022 #define SOUND_CHANNEL_LOBBY 1023 #define SOUND_CHANNEL_Z 1024 diff --git a/code/__DEFINES/speech_channels.dm b/code/__DEFINES/speech_channels.dm index 3f6e4720bde9..5a9a74af8ad0 100644 --- a/code/__DEFINES/speech_channels.dm +++ b/code/__DEFINES/speech_channels.dm @@ -1,6 +1,7 @@ // Used to direct channels to speak into. #define SAY_CHANNEL "Say" #define COMMS_CHANNEL "Comms" +#define WHISPER_CHANNEL "Whisper" #define ME_CHANNEL "Me" #define OOC_CHANNEL "OOC" #define LOOC_CHANNEL "LOOC" diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm new file mode 100644 index 000000000000..ecccbd40abeb --- /dev/null +++ b/code/__DEFINES/status_effects.dm @@ -0,0 +1,25 @@ +///if it allows multiple instances of the effect +#define STATUS_EFFECT_MULTIPLE 0 +///if it allows only one, preventing new instances +#define STATUS_EFFECT_UNIQUE 1 +///if it allows only one, but new instances replace +#define STATUS_EFFECT_REPLACE 2 +/// if it only allows one, and new instances just instead refresh the timer +#define STATUS_EFFECT_REFRESH 3 + +///Processing flags - used to define the speed at which the status will work +///This is fast - 0.2s between ticks (I believe!) +#define STATUS_EFFECT_FAST_PROCESS 0 +///This is slower and better for more intensive status effects - 1s between ticks +#define STATUS_EFFECT_NORMAL_PROCESS 1 + +//Incapacitated status effect flags +/// If the incapacitated status effect will ignore a mob in restraints (handcuffs) +#define IGNORE_RESTRAINTS (1<<0) +/// If the incapacitated status effect will ignore a mob in stasis (stasis beds) +#define IGNORE_STASIS (1<<1) +/// If the incapacitated status effect will ignore a mob being agressively grabbed +#define IGNORE_GRAB (1<<2) + +/// Time threshold after which we launch ending timer - this should be higher than the slowest processing rate +#define STATUS_EFFECT_TIME_THRESHOLD (2 SECONDS) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 8a65a4b961ff..9cb67e1e0de1 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -109,36 +109,24 @@ // Subsystems shutdown in the reverse of the order they initialize in // The numbers just define the ordering, they are meaningless otherwise. -#define SS_INIT_TICKER_SPAWN 999 +#define SS_INIT_PROFILER 86 #define SS_INIT_INPUT 85 -#define SS_INIT_FAIL_TO_TOPIC 84 #define SS_INIT_TOPIC 83 #define SS_INIT_LOBBYART 82 -#define SS_INIT_RUST 30 #define SS_INIT_INFLUXDRIVER 28 -#define SS_INIT_SUPPLY_SHUTTLE 25 #define SS_INIT_GARBAGE 24 #define SS_INIT_EVENTS 23.5 -#define SS_INIT_JOB 23 +#define SS_INIT_HIJACK 22.6 #define SS_INIT_REDIS 22.5 #define SS_INIT_REAGENTS 22.1 #define SS_INIT_MAPPING 22 #define SS_INIT_NIGHTMARE 21.5 #define SS_INIT_TIMETRACK 21.1 #define SS_INIT_HUMANS 21 -#define SS_INIT_MAP 20 -#define SS_INIT_COMPONENT 19.5 #define SS_INIT_POWER 19 -#define SS_INIT_OBJECT 18 -#define SS_INIT_PIPENET 17.5 -#define SS_INIT_XENOARCH 17 -#define SS_INIT_MORE_INIT 16 -#define SS_INIT_AIR 15 -#define SS_INIT_TELEPORTER 13 #define SS_INIT_INFLUXMCSTATS 12 #define SS_INIT_INFLUXSTATS 11 #define SS_INIT_LIGHTING 10 -#define SS_INIT_DEFCON 9 #define SS_INIT_LAW 6 #define SS_INIT_FZ_TRANSITIONS 5 #define SS_INIT_PROJECTILES 4.1 @@ -152,12 +140,9 @@ #define SS_INIT_RADIO 2 #define SS_INIT_TIMER 100 #define SS_INIT_UNSPECIFIED 0 -#define SS_INIT_EMERGENCY_SHUTTLE -19 #define SS_INIT_ASSETS -20 #define SS_INIT_TICKER -21 #define SS_INIT_VOTE -23 -#define SS_INIT_FINISH -24 -#define SS_INIT_ADMIN -26 #define SS_INIT_DATABASE -27 #define SS_INIT_ENTITYMANAGER -28 #define SS_INIT_PLAYTIME -29 @@ -166,7 +151,6 @@ #define SS_INIT_MINIMAP -34 #define SS_INIT_STATPANELS -98 #define SS_INIT_CHAT -100 //Should be last to ensure chat remains smooth during init. -#define SS_INIT_EARLYRUNTIMES -500 // Post-init notifier // Subsystem fire priority, from lowest to highest priority // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) @@ -177,7 +161,6 @@ #define SS_PRIORITY_SOUND 250 #define SS_PRIORITY_TICKER 200 #define SS_PRIORITY_NIGHTMARE 180 -#define SS_PRIORITY_MAPVIEW 170 #define SS_PRIORITY_QUADTREE 160 #define SS_PRIORITY_CHAT 155 #define SS_PRIORITY_STATPANEL 154 @@ -195,20 +178,19 @@ #define SS_PRIORITY_VOTE 110 #define SS_PRIORITY_FAST_OBJECTS 105 #define SS_PRIORITY_OBJECTS 104 -#define SS_PRIORITY_FACEHUGGERS 100 #define SS_PRIORITY_DECORATOR 99 +#define SS_PRIORITY_EFFECTS 97 +#define SS_PRIORITY_FASTEFFECTS 96 +#define SS_PRIORITY_HIJACK 97 #define SS_PRIORITY_POWER 95 -#define SS_PRIORITY_EFFECTS 92 +#define SS_PRIORITY_OLDEFFECTS 92 #define SS_PRIORITY_MACHINERY 90 #define SS_PRIORITY_FZ_TRANSITIONS 88 -#define SS_PRIORITY_PIPENET 85 #define SS_PRIORITY_ROUND_RECORDING 83 #define SS_PRIORITY_SHUTTLE 80 -#define SS_PRIORITY_TELEPORTER 75 #define SS_PRIORITY_EVENT 65 #define SS_PRIORITY_DISEASE 60 -#define SS_PRIORITY_FAST_MACHINERY 55 -#define SS_PRIORITY_MIDI 40 +#define SS_PRIORITY_DEFENSES 55 #define SS_PRIORITY_ENTITY 37 #define SS_PRIORITY_DEFCON 35 #define SS_PRIORITY_ACID_PILLAR 34 @@ -227,7 +209,6 @@ #define SS_PRIORITY_INFLUXSTATS 8 #define SS_PRIORITY_PLAYTIME 5 #define SS_PRIORITY_PERFLOGGING 4 -#define SS_PRIORITY_CORPSESPAWNER 3 #define SS_PRIORITY_GARBAGE 2 #define SS_PRIORITY_INACTIVITY 1 #define SS_PRIORITY_ADMIN 0 diff --git a/code/__DEFINES/supply.dm b/code/__DEFINES/supply.dm new file mode 100644 index 000000000000..0369b271207c --- /dev/null +++ b/code/__DEFINES/supply.dm @@ -0,0 +1,17 @@ +//We use the cost to determine the spawn chance this equals out the crates that spawn later in the round. +#define ASRS_HIGHEST_WEIGHT 0 //warning this weight wont change. +#define ASRS_VERY_HIGH_WEIGHT 5 +#define ASRS_HIGH_WEIGHT 15 +#define ASRS_MEDIUM_WEIGHT 25 +#define ASRS_LOW_WEIGHT 35 +#define ASRS_VERY_LOW_WEIGHT 50 +#define ASRS_LOWEST_WEIGHT 100 + +// List of pools of supply packs, rolled individually by the ASRS system +/// Main pool of ASRS supplies, dispensing military supplies such as ammo +#define ASRS_POOL_MAIN "Main" +/// Secondary ASRS pool dispening food related items for MessTech +#define ASRS_POOL_FOOD "Food" + +/// Divider to the amount of xeno forces on the planet to ASRS provided crates. It is used as such sqrt(xenos/ASRS_XENO_CRATES_DIVIDER)) +#define ASRS_XENO_CRATES_DIVIDER 4 diff --git a/code/__DEFINES/surgery.dm b/code/__DEFINES/surgery.dm index 1bdf2318d250..d63c6da26ac6 100644 --- a/code/__DEFINES/surgery.dm +++ b/code/__DEFINES/surgery.dm @@ -38,6 +38,15 @@ unless the surgical tool is completely unsuited to what it's being used for.*/ ///A tool that's perfect for the surgery. #define SURGERY_TOOL_MULT_IDEAL 1 +///The (no) chance of failure for surgery because the correct tools/conditions are used or skill compensates +#define SURGERY_FAILURE_IMPOSSIBLE 0 +///The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_BAD_SUBSTITUTE/SURGERY_SURFACE_MULT_UNSUITED and skill can't compensate enough +#define SURGERY_FAILURE_UNLIKELY 5 +///The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_AWFUL/SURGERY_SURFACE_MULT_AWFUL and skill can't compensate enough +#define SURGERY_FAILURE_POSSIBLE 25 +///The chance of failure for surgery because the the tool and ground is some combination worse than awful and skill can't compensate enough +#define SURGERY_FAILURE_LIKELY 50 + //When initiating surgeries, these define their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages. ///Appears first in lists. Ex. larva surgery, opening incision. Immediately life-threatening or initiation surgeries. #define SURGERY_PRIORITY_MAXIMUM 5 @@ -149,7 +158,7 @@ See also /datum/surgery_step/saw_off_limb/failure var/list/cannot_hack, listing #define SURGERY_TOOLS_SEVER_BONE list(\ /obj/item/tool/surgery/circular_saw = SURGERY_TOOL_MULT_IDEAL,\ /obj/item/weapon/twohanded/fireaxe = SURGERY_TOOL_MULT_SUBOPTIMAL,\ - /obj/item/weapon/claymore/mercsword/machete = SURGERY_TOOL_MULT_SUBOPTIMAL,\ + /obj/item/weapon/sword/machete = SURGERY_TOOL_MULT_SUBOPTIMAL,\ /obj/item/tool/hatchet = SURGERY_TOOL_MULT_SUBSTITUTE,\ /obj/item/tool/kitchen/knife/butcher = SURGERY_TOOL_MULT_SUBSTITUTE,\ /obj/item/attachable/bayonet = SURGERY_TOOL_MULT_BAD_SUBSTITUTE\ diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm index e3724e65f620..0ce7e508daac 100644 --- a/code/__DEFINES/text.dm +++ b/code/__DEFINES/text.dm @@ -17,3 +17,10 @@ #define SHOW_MESSAGE_VISIBLE 1 #define SHOW_MESSAGE_AUDIBLE 2 + +//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam +#define MAX_MESSAGE_LEN 1024 +#define MAX_EMOTE_LEN 256 +#define MAX_PAPER_MESSAGE_LEN 3072 +#define MAX_BOOK_MESSAGE_LEN 9216 +#define MAX_NAME_LEN 26 diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index 6187a67825a4..c561a64ebf58 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.5.3" +#define TGS_DMAPI_VERSION "7.0.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -73,12 +73,12 @@ #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 /// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path. #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 -/// Before a BYOND install operation begins. Parameters: [/datum/tgs_version] of the installing BYOND. -#define TGS_EVENT_BYOND_INSTALL_START 5 -/// When a BYOND install operation fails. Parameters: Error message -#define TGS_EVENT_BYOND_INSTALL_FAIL 6 -/// When the active BYOND version changes. Parameters: (Nullable) [/datum/tgs_version] of the current BYOND, [/datum/tgs_version] of the new BYOND. -#define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +/// Before a engine install operation begins. Parameters: Version string of the installing engine. +#define TGS_EVENT_ENGINE_INSTALL_START 5 +/// When a engine install operation fails. Parameters: Error message +#define TGS_EVENT_ENGINE_INSTALL_FAIL 6 +/// When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine. +#define TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE 7 /// When the compiler starts running. Parameters: Game directory path, origin commit SHA. #define TGS_EVENT_COMPILE_START 8 /// When a compile is cancelled. No parameters. @@ -108,7 +108,7 @@ // #define TGS_EVENT_DREAM_DAEMON_LAUNCH 22 /// After a single submodule update is performed. Parameters: Updated submodule name. #define TGS_EVENT_REPO_SUBMODULE_UPDATE 23 -/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, byond version. +/// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine. #define TGS_EVENT_PRE_DREAM_MAKER 24 /// Whenever a deployment folder is deleted from disk. Parameters: Game directory path. #define TGS_EVENT_DEPLOYMENT_CLEANUP 25 @@ -122,6 +122,7 @@ /// The watchdog will restart on reboot. #define TGS_REBOOT_MODE_RESTART 2 +// Note that security levels are currently meaningless in OpenDream /// DreamDaemon Trusted security level. #define TGS_SECURITY_TRUSTED 0 /// DreamDaemon Safe security level. @@ -129,6 +130,18 @@ /// DreamDaemon Ultrasafe security level. #define TGS_SECURITY_ULTRASAFE 2 +/// DreamDaemon public visibility level. +#define TGS_VISIBILITY_PUBLIC 0 +/// DreamDaemon private visibility level. +#define TGS_VISIBILITY_PRIVATE 1 +/// DreamDaemon invisible visibility level. +#define TGS_VISIBILITY_INVISIBLE 2 + +/// The Build Your Own Net Dream engine. +#define TGS_ENGINE_TYPE_BYOND 0 +/// The OpenDream engine. +#define TGS_ENGINE_TYPE_OPENDREAM 1 + //REQUIRED HOOKS /** @@ -442,6 +455,10 @@ /world/proc/TgsVersion() return +/// Returns the running engine type +/world/proc/TgsEngine() + return + /// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsApiVersion() return @@ -458,6 +475,10 @@ /world/proc/TgsSecurityLevel() return +/// Returns the current BYOND visibility level as a TGS_VISIBILITY_ define if TGS is present, null otherwise. Requires TGS to be using interop API version 5 or higher otherwise the string "___unimplemented" wil be returned. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! +/world/proc/TgsVisibility() + return + /// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsTestMerges() return diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b40ae85c3f5f..c2abe21a26ad 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -1,22 +1,20 @@ -//shamelessly ripped from TG #define SIGNAL_ADDTRAIT(trait_ref) "addtrait [trait_ref]" #define SIGNAL_REMOVETRAIT(trait_ref) "removetrait [trait_ref]" // trait accessor defines -//here be dragons #define ADD_TRAIT(target, trait, source) \ do { \ var/list/_L; \ - if (!target.status_traits) { \ - target.status_traits = list(); \ - _L = target.status_traits; \ + if (!target._status_traits) { \ + target._status_traits = list(); \ + _L = target._status_traits; \ _L[trait] = list(source); \ SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait), trait); \ if(trait in GLOB.traits_with_elements){ \ target.AddElement(GLOB.traits_with_elements[trait]); \ } \ } else { \ - _L = target.status_traits; \ + _L = target._status_traits; \ if (_L[trait]) { \ _L[trait] |= list(source); \ } else { \ @@ -30,16 +28,16 @@ } while (0) #define REMOVE_TRAIT(target, trait, sources) \ do { \ - var/list/_L = target.status_traits; \ + var/list/_L = target._status_traits; \ var/list/_S; \ if (sources && !islist(sources)) { \ _S = list(sources); \ } else { \ _S = sources\ }; \ - if (_L && _L[trait]) { \ + if (_L?[trait]) { \ for (var/_T in _L[trait]) { \ - if ((!_S && (_T != TRAIT_SOURCE_QUIRK)) || (_T in _S)) { \ + if ((!_S && (_T != ROUNDSTART_TRAIT)) || (_T in _S)) { \ _L[trait] -= _T \ } \ };\ @@ -51,13 +49,40 @@ } \ }; \ if (!length(_L)) { \ - target.status_traits = null \ + target._status_traits = null \ + }; \ + } \ + } while (0) +#define REMOVE_TRAIT_NOT_FROM(target, trait, sources) \ + do { \ + var/list/_traits_list = target._status_traits; \ + var/list/_sources_list; \ + if (sources && !islist(sources)) { \ + _sources_list = list(sources); \ + } else { \ + _sources_list = sources\ + }; \ + if (_traits_list?[trait]) { \ + for (var/_trait_source in _traits_list[trait]) { \ + if (!(_trait_source in _sources_list)) { \ + _traits_list[trait] -= _trait_source \ + } \ + };\ + if (!length(_traits_list[trait])) { \ + _traits_list -= trait; \ + SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \ + if(trait in GLOB.traits_with_elements) { \ + target.RemoveElement(GLOB.traits_with_elements[trait]); \ + } \ + }; \ + if (!length(_traits_list)) { \ + target._status_traits = null \ }; \ } \ } while (0) #define REMOVE_TRAITS_NOT_IN(target, sources) \ do { \ - var/list/_L = target.status_traits; \ + var/list/_L = target._status_traits; \ var/list/_S = sources; \ if (_L) { \ for (var/_T in _L) { \ @@ -65,20 +90,20 @@ if (!length(_L[_T])) { \ _L -= _T; \ SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T), _T); \ - if(_T in GLOB.traits_with_elements) { \ - target.RemoveElement(GLOB.traits_with_elements[_T]); \ + if(trait in GLOB.traits_with_elements) { \ + target.RemoveElement(GLOB.traits_with_elements[trait]); \ }; \ };\ };\ if (!length(_L)) { \ - target.status_traits = null\ + target._status_traits = null\ };\ }\ } while (0) #define REMOVE_TRAITS_IN(target, sources) \ do { \ - var/list/_L = target.status_traits; \ + var/list/_L = target._status_traits; \ var/list/_S = sources; \ if (sources && !islist(sources)) { \ _S = list(sources); \ @@ -97,40 +122,44 @@ };\ };\ if (!length(_L)) { \ - target.status_traits = null\ + target._status_traits = null\ };\ }\ } while (0) -/// Will 100% nuke a trait regardless of source. Preferably use this as little as possible -#define REMOVE_TRAIT_ALLSOURCES(target, trait) \ - do { \ - var/list/_L = target.status_traits; \ - if (_L?[trait]) { \ - if (length(_L)) { \ - _L -= trait; \ - SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \ - }; \ - else { \ - target.status_traits = null \ - }; \ - } \ - } while (0) - -#define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) -#define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) -#define HAS_TRAIT_FROM_ONLY(target, trait, source) (\ - target.status_traits ?\ - (target.status_traits[trait] ?\ - ((source in target.status_traits[trait]) && (length(target.status_traits) == 1))\ - : FALSE)\ - : FALSE) -#define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE) - +#define HAS_TRAIT(target, trait) (target._status_traits?[trait] ? TRUE : FALSE) +#define HAS_TRAIT_FROM(target, trait, source) (HAS_TRAIT(target, trait) && (source in target._status_traits[trait])) +#define HAS_TRAIT_FROM_ONLY(target, trait, source) (HAS_TRAIT(target, trait) && (source in target._status_traits[trait]) && (length(target._status_traits[trait]) == 1)) +#define HAS_TRAIT_NOT_FROM(target, trait, source) (HAS_TRAIT(target, trait) && (length(target._status_traits[trait] - source) > 0)) +/// Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing +/// You should not be using this +#define GET_TRAIT_SOURCES(target, trait) (target._status_traits?[trait] || list()) +/// Returns the amount of sources for a trait. useful if you don't want to have a "thing counter" stuck around all the time +#define COUNT_TRAIT_SOURCES(target, trait) length(GET_TRAIT_SOURCES(target, trait)) +/// A simple helper for checking traits in a mob's mind +#define HAS_MIND_TRAIT(target, trait) (HAS_TRAIT(target, trait) || (target.mind ? HAS_TRAIT(target.mind, trait) : FALSE)) /// Example trait // #define TRAIT_X "t_x" + //-- mob traits -- +/// Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sorces of undesity will still apply. Always define a unique source when adding a new instance of this! +#define TRAIT_UNDENSE "undense" +/// Forces the user to stay unconscious. +#define TRAIT_KNOCKEDOUT "knockedout" +/// Prevents voluntary movement. +#define TRAIT_IMMOBILIZED "immobilized" +/// Prevents voluntary standing or staying up on its own. +#define TRAIT_FLOORED "floored" +/// Forces user to stay standing +#define TRAIT_FORCED_STANDING "forcedstanding" +/// Stuns preventing movement and using objects but without further impairement +#define TRAIT_INCAPACITATED "incapacitated" +/// Disoriented. Unable to talk properly, and unable to use some skills as Xeno +#define TRAIT_DAZED "dazed" +/// Apply this to identify a mob as merged with weeds +#define TRAIT_MERGED_WITH_WEEDS "merged_with_weeds" + // SPECIES TRAITS /// Knowledge of Yautja technology #define TRAIT_YAUTJA_TECH "t_yautja_tech" @@ -194,6 +223,8 @@ #define TRAIT_HARDCORE "t_hardcore" /// If the mob is able to use the vulture rifle or spotting scope #define TRAIT_VULTURE_USER "t_vulture_user" +/// If the mob is currently loading a tutorial +#define TRAIT_IN_TUTORIAL "t_IN_TUTORIAL" /// If the mob is cloaked in any form #define TRAIT_CLOAKED "t_cloaked" @@ -221,6 +252,9 @@ /// Can lockout blackmarket from ASRS console circuits. #define TRAIT_TOOL_TRADEBAND "t_tool_tradeband" +/// Can hack ASRS consoles to access the black market +#define TRAIT_TOOL_BLACKMARKET_HACKER "t_tool_blackmarket_hacker" + // CLOTHING TRAITS #define TRAIT_CLOTHING_HOOD "t_clothing_hood" @@ -267,6 +301,7 @@ GLOBAL_LIST_INIT(mob_traits, list( TRAIT_REAGENT_SCANNER, TRAIT_ABILITY_BURROWED, TRAIT_VULTURE_USER, + TRAIT_IN_TUTORIAL, )) /* @@ -276,6 +311,12 @@ GLOBAL_LIST_INIT(mob_traits, list( */ GLOBAL_LIST_INIT(traits_by_type, list( /mob = list( + "TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT, + "TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED, + "TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED, + "TRAIT_FLOORED" = TRAIT_FLOORED, + "TRAIT_DAZED" = TRAIT_DAZED, + "TRAIT_UNDENSE" = TRAIT_UNDENSE, "TRAIT_YAUTJA_TECH" = TRAIT_YAUTJA_TECH, "TRAIT_SUPER_STRONG" = TRAIT_SUPER_STRONG, "TRAIT_FOREIGN_BIO" = TRAIT_FOREIGN_BIO, @@ -301,6 +342,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_VULTURE_USER" = TRAIT_VULTURE_USER, "TRAIT_CLOAKED" = TRAIT_CLOAKED, ), +// /mob/living/carbon/human = list( +// ), /mob/living/carbon/xenomorph = list( "TRAIT_ABILITY_NO_PLASMA_TRANSFER" = TRAIT_ABILITY_NO_PLASMA_TRANSFER, "TRAIT_ABILITY_OVIPOSITOR" = TRAIT_ABILITY_OVIPOSITOR, @@ -351,21 +394,25 @@ GLOBAL_LIST(trait_name_map) /// Example trait source // #define TRAIT_SOURCE_Y "t_s_y" #define TRAIT_SOURCE_INHERENT "t_s_inherent" +/// cannot be removed without admin intervention +#define ROUNDSTART_TRAIT "roundstart" //-- mob traits -- +///Status trait coming from lying down through update_canmove() +#define LYING_TRAIT "lying" ///Status trait coming from species. .human/species_gain() #define TRAIT_SOURCE_SPECIES "t_s_species" ///Status trait coming from the hive. #define TRAIT_SOURCE_HIVE "t_s_hive" ///Status trait coming from being buckled. #define TRAIT_SOURCE_BUCKLE "t_s_buckle" -///Status trait coming from roundstart quirks (that don't exist yet). Unremovable by REMOVE_TRAIT -#define TRAIT_SOURCE_QUIRK "t_s_quirk" ///Status trait coming from being assigned as [acting] squad leader. #define TRAIT_SOURCE_SQUAD_LEADER "t_s_squad_leader" ///Status trait coming from their job #define TRAIT_SOURCE_JOB "t_s_job" ///Status trait forced by staff #define TRAIT_SOURCE_ADMIN "t_s_admin" +/// Status trait coming from a tutorial +#define TRAIT_SOURCE_TUTORIAL "t_s_tutorials" ///Status trait coming from equipment #define TRAIT_SOURCE_EQUIPMENT(slot) "t_s_equipment_[slot]" ///Status trait coming from skill @@ -374,8 +421,13 @@ GLOBAL_LIST(trait_name_map) #define TRAIT_SOURCE_ATTACHMENT(slot) "t_s_attachment_[slot]" ///Status trait coming from ability #define TRAIT_SOURCE_ABILITY(ability) "t_s_ability_[ability]" +#define TRAIT_SOURCE_LIMB(limb) "t_s_limb_[limb]" ///Status trait forced by the xeno action charge #define TRAIT_SOURCE_XENO_ACTION_CHARGE "t_s_xeno_action_charge" +///Status trait coming from a xeno nest +#define XENO_NEST_TRAIT "xeno_nest" +///Status trait from a generic throw by xeno abilities +#define XENO_THROW_TRAIT "xeno_throw_trait" //-- structure traits -- ///Status trait coming from being flipped or unflipped. #define TRAIT_SOURCE_FLIP_TABLE "t_s_flip_table" @@ -387,3 +439,40 @@ GLOBAL_LIST(trait_name_map) //Status trait coming from clothing. #define TRAIT_SOURCE_CLOTHING "t_s_clothing" + +/// trait associated to being buckled +#define BUCKLED_TRAIT "buckled" // Yes the name doesn't conform. /tg/ appears to have changed naming style inbetween +/// trait source when an effect is coming from a fakedeath effect (refactor this) +#define FAKEDEATH_TRAIT "fakedeath" +/// trait source where a condition comes from body state +#define BODY_TRAIT "body" +/// Trait associated to lying down (having a [lying_angle] of a different value than zero). +#define LYING_DOWN_TRAIT "lying-down" +/// trait associated to a stat value or range of +#define STAT_TRAIT "stat" +/// trait effect related to the queen ovipositor +#define OVIPOSITOR_TRAIT "ovipositor" +/// trait associated to being held in a chokehold +#define CHOKEHOLD_TRAIT "chokehold" +/// trait effect related to active specialist gear +#define SPECIALIST_GEAR_TRAIT "specialist_gear" +/// traits associated with usage of snowflake dropship double seats +#define DOUBLE_SEATS_TRAIT "double_seats" +/// traits associated with xeno on-ground weeds +#define XENO_WEED_TRAIT "xeno_weed" +/// traits associated with actively interacted machinery +#define INTERACTION_TRAIT "interaction" +/// traits bound by stunned status effects +#define STUNNED_TRAIT "stunned" +/// traits bound by knocked_down status effect +#define KNOCKEDDOWN_TRAIT "knockeddown" +/// traits bound by knocked_out status effect +#define KNOCKEDOUT_TRAIT "knockedout" +/// traits from being pounced +#define POUNCED_TRAIT "pounced" +/// traits from step_triggers on the map +#define STEP_TRIGGER_TRAIT "step_trigger" +/// traits from hacked machine interactions +#define HACKED_TRAIT "hacked" +/// traits from chloroform usage +#define CHLOROFORM_TRAIT "chloroform" diff --git a/code/__DEFINES/tutorial.dm b/code/__DEFINES/tutorial.dm new file mode 100644 index 000000000000..75dc7f6da21f --- /dev/null +++ b/code/__DEFINES/tutorial.dm @@ -0,0 +1,6 @@ +#define TUTORIAL_ATOM_FROM_TRACKING(path, varname) var##path/##varname = tracking_atoms[##path] + +#define TUTORIAL_CATEGORY_BASE "Base" // Shouldn't be used outside of base types +#define TUTORIAL_CATEGORY_SS13 "Space Station 13" +#define TUTORIAL_CATEGORY_MARINE "Marine" +#define TUTORIAL_CATEGORY_XENO "Xenomorph" diff --git a/code/__DEFINES/typecheck/items.dm b/code/__DEFINES/typecheck/items.dm index 09153cde25c2..5c4d099b8112 100644 --- a/code/__DEFINES/typecheck/items.dm +++ b/code/__DEFINES/typecheck/items.dm @@ -1,10 +1,10 @@ #define iswelder(O) (istype(O, /obj/item/tool/weldingtool)) #define iscoil(O) (istype(O, /obj/item/stack/cable_coil)) #define iswire(O) (istype(O, /obj/item/stack/cable_coil)) -#define isweapon(O) (O && is_type_in_list(O, weapons)) +#define isweapon(O) (O && is_type_in_list(O, GLOB.weapons)) #define isgun(O) (istype(O, /obj/item/weapon/gun)) #define isbanana(O) (istype(O, /obj/item/reagent_container/food/snacks/grown/banana)) -#define istool(O) (O && is_type_in_list(O, common_tools)) +#define istool(O) (O && is_type_in_list(O, GLOB.common_tools)) #define ispowerclamp(O) (istype(O, /obj/item/powerloader_clamp)) #define isstorage(O) (istype(O, /obj/item/storage)) #define isclothing(O) (istype(O, /obj/item/clothing)) @@ -12,13 +12,13 @@ #define isdefenses(O) (istype(O, /obj/structure/machinery/defenses)) //Quick type checks for weapons -var/global/list/weapons = list( +GLOBAL_LIST_INIT(weapons, list( /obj/item/weapon, /obj/item/attachable/bayonet -) +)) //Quick type checks for some tools -var/global/list/common_tools = list( +GLOBAL_LIST_INIT(common_tools, list( /obj/item/stack/cable_coil, /obj/item/tool/wrench, /obj/item/tool/weldingtool, @@ -26,7 +26,7 @@ var/global/list/common_tools = list( /obj/item/tool/wirecutters, /obj/item/device/multitool, /obj/item/tool/crowbar -) +)) /obj/item/proc/can_pry() if(pry_capable > IS_PRY_CAPABLE_SIMPLE || HAS_TRAIT(src, TRAIT_TOOL_CROWBAR)) diff --git a/code/__DEFINES/urls.dm b/code/__DEFINES/urls.dm index 137095327a2c..5d3fca1a2032 100644 --- a/code/__DEFINES/urls.dm +++ b/code/__DEFINES/urls.dm @@ -1,3 +1,7 @@ +// placeholder strings to be replaced +#define WIKI_PLACEHOLDER "%WIKIURL%" +#define LAW_PLACEHOLDER "%LAWURL%" + // ------ MISC WIKI LINKS ------ // #define URL_WIKI_LAW "Marine_Law" #define URL_WIKI_XENO_QUICKSTART "Xeno_Quickstart_Guide" diff --git a/code/__DEFINES/vehicle.dm b/code/__DEFINES/vehicle.dm index 9c6685085788..8a1617229926 100644 --- a/code/__DEFINES/vehicle.dm +++ b/code/__DEFINES/vehicle.dm @@ -53,5 +53,6 @@ #define VEHICLE_CLASS_LIGHT (1<<2) //light class armor (APC, tank) #define VEHICLE_CLASS_MEDIUM (1<<3) //medium class armor (tank) #define VEHICLE_CLASS_HEAVY (1<<4) //heavy class armor (tank) - -#define TANK_POPLOCK 90 +// Other vehicle flags +/// Vehicle can bypass vehicle blockers, typically going further into maps than intended +#define VEHICLE_BYPASS_BLOCKERS (1<<5) diff --git a/code/__DEFINES/vendors.dm b/code/__DEFINES/vendors.dm index 04ee5ffef2b6..086b70a92428 100644 --- a/code/__DEFINES/vendors.dm +++ b/code/__DEFINES/vendors.dm @@ -67,3 +67,13 @@ //Whether or not to load ammo boxes depending on ammo loaded into the vendor //Only relevant in big vendors, like Requisitions or Squad Prep #define VEND_LOAD_AMMO_BOXES (1<<9) +/// Vendors with this flag will fill retroactively based on latejoining players, +/// and expect a scale multiplier instead of amount of items +#define VEND_STOCK_DYNAMIC (1<<10) + +// Redemption Tokens +#define VEND_TOKEN_ENGINEER "Engineer" +#define VEND_TOKEN_SPEC "Specialist" +#define VEND_TOKEN_SYNTH "Synthetic" +/// Token invalid/unrecognised. +#define VEND_TOKEN_VOID "Void" diff --git a/code/__DEFINES/weapon_stats.dm b/code/__DEFINES/weapon_stats.dm index beac54d98892..3a69002a3b93 100644 --- a/code/__DEFINES/weapon_stats.dm +++ b/code/__DEFINES/weapon_stats.dm @@ -18,17 +18,17 @@ Accuracy determines if your bullets will hit whatever you're shooting at. Think It DOES NOT control where your bullets go, that's scatter and projectile variance. .../update_projectiles/guns/code.dm -var/accuracy_mult //Base firearm accuracy when firing from a 2-hand, "secure", wielded, etc, whatever grip. -var/accuracy_mult_unwielded //Base firearm accuracy when firing from hip. Both of these default to 1, with additions or subtractions from the mult vars. + var/accuracy_mult //Base firearm accuracy when firing from a 2-hand, "secure", wielded, etc, whatever grip. + var/accuracy_mult_unwielded //Base firearm accuracy when firing from hip. Both of these default to 1, with additions or subtractions from the mult vars. .../updated_projectiles/ammo_datums.dm -var/accuracy //This is added to the firearm's base accuracy when the specific ammo is shot. -var/accuracy_var_low //These two vars are used for the upper and lower bounds of accuracy variance when a bullet is fired. Bullet 'wobble' if you will. -var/accuracy_var_high + var/accuracy //This is added to the firearm's base accuracy when the specific ammo is shot. + var/accuracy_var_low //These two vars are used for the upper and lower bounds of accuracy variance when a bullet is fired. Bullet 'wobble' if you will. + var/accuracy_var_high .../updated_projectiles/gun_attachables.dm -var/accuracy_mult //Attachments ADD an additional multiplier to the base config value. Only ever use accuracy_mult config references. -var/accuracy_mult_unwielded + var/accuracy_mult //Attachments ADD an additional multiplier to the base config value. Only ever use accuracy_mult config references. + var/accuracy_mult_unwielded */ #define HIT_ACCURACY_TIER_1 5 diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index b178f0692dd6..d12e4c1c6c5a 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -174,6 +174,21 @@ /// The time it takes for a pylon to give one larva while activated #define XENO_PYLON_ACTIVATION_COOLDOWN (5 MINUTES) +/// The time until you can re-corrupt a comms relay after the last pylon was destroyed +#define XENO_PYLON_DESTRUCTION_DELAY (5 MINUTES) + +/// Evolution boost during hijack +#define XENO_HIJACK_EVILUTION_BUFF 10 + +/// For how long the buff lasts +#define XENO_HIJACK_EVILUTION_TIME (3 MINUTES) + +/// Xenos need to have their number to marines ratio lower than this to get larvae from pylons +#define ENDGAME_LARVA_CAP_MULTIPLIER 0.5 + +/// What percent of their numbers xeno get from pylons +#define LARVA_ADDITION_MULTIPLIER 0.10 + /// The time against away_timer when an AFK xeno larva can be replaced #define XENO_LEAVE_TIMER_LARVA 80 //80 seconds /// The time against away_timer when an AFK xeno (not larva) can be replaced @@ -246,11 +261,6 @@ #define XENO_PLASMA_TIER_8 800 * XENO_UNIVERSAL_PLASMAMULT #define XENO_PLASMA_TIER_10 1000 * XENO_UNIVERSAL_PLASMAMULT -// Resource stockpile bands -#define XENO_CRYSTAL_LOW 50 -#define XENO_CRYSTAL_MEDIUM 100 -#define XENO_CRYSTAL_HIGH 150 - // Plasma gain bands #define XENO_PLASMA_GAIN_TIER_1 1 #define XENO_PLASMA_GAIN_TIER_2 1.5 @@ -576,9 +586,7 @@ #define XENO_STRUCTURE_CORE "hive core" #define XENO_STRUCTURE_CLUSTER "hive cluster" #define XENO_STRUCTURE_PYLON "hive pylon" -#define XENO_STRUCTURE_POOL "spawn pool" #define XENO_STRUCTURE_EGGMORPH "egg morpher" -#define XENO_STRUCTURE_EVOPOD "evolution pod" #define XENO_STRUCTURE_RECOVERY "recovery node" #define XENO_STRUCTURE_NEST "thick resin nest" diff --git a/code/__HELPERS/#maths.dm b/code/__HELPERS/#maths.dm index 5419b9cd9624..6ea534a79923 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -1,22 +1,13 @@ // Credits to Nickr5 for the useful procs I've taken from his library resource. -var/const/E = 2.71828183 -var/const/Sqrt2 = 1.41421356 - // List of square roots for the numbers 1-100. -var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, +GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10) + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10)) // MATH DEFINES -#define Atan2(x, y) (!x && !y ? 0 : \ - (y >= 0 ? \ - arccos(x / sqrt(x*x + y*y)) : \ - -(arccos(x / sqrt(x*x + y*y))) \ - ) \ - ) #define Ceiling(x) (-round(-x)) #define Clamp(val, min_val, max_val) (max(min_val, min(val, max_val))) #define CLAMP01(x) (clamp(x, 0, 1)) @@ -81,7 +72,7 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, // Convert to polar coordinates var/radius = sqrt(relative_coords[1]**2 + relative_coords[2]**2) - var/phi = Atan2(relative_coords[1], relative_coords[2]) + var/phi = arctan(relative_coords[1], relative_coords[2]) // Rotate the point around the axis phi += degrees @@ -109,42 +100,6 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, return "[round((powerused * 0.000001),0.001)] MW" return "[round((powerused * 0.000000001),0.0001)] GW" -///Calculate the angle between two movables and the west|east coordinate -/proc/get_angle(atom/movable/start, atom/movable/end)//For beams. - if(!start || !end) - return 0 - var/dy =(32 * end.y + end.pixel_y) - (32 * start.y + start.pixel_y) - var/dx =(32 * end.x + end.pixel_x) - (32 * start.x + start.pixel_x) - if(!dy) - return (dx >= 0) ? 90 : 270 - . = arctan(dx/dy) - if(dy < 0) - . += 180 - else if(dx < 0) - . += 360 - -/// Angle between two arbitrary points and horizontal line same as [/proc/get_angle] -/proc/get_angle_raw(start_x, start_y, start_pixel_x, start_pixel_y, end_x, end_y, end_pixel_x, end_pixel_y) - var/dy = (32 * end_y + end_pixel_y) - (32 * start_y + start_pixel_y) - var/dx = (32 * end_x + end_pixel_x) - (32 * start_x + start_pixel_x) - if(!dy) - return (dx >= 0) ? 90 : 270 - . = arctan(dx/dy) - if(dy < 0) - . += 180 - else if(dx < 0) - . += 360 - -///for getting the angle when animating something's pixel_x and pixel_y -/proc/get_pixel_angle(y, x) - if(!y) - return (x >= 0) ? 90 : 270 - . = arctan(x/y) - if(y < 0) - . += 180 - else if(x < 0) - . += 360 - /** * Get a list of turfs in a line from `starting_atom` to `ending_atom`. * diff --git a/code/__HELPERS/_time.dm b/code/__HELPERS/_time.dm index b929ae8636b3..8386feff41c2 100644 --- a/code/__HELPERS/_time.dm +++ b/code/__HELPERS/_time.dm @@ -15,19 +15,19 @@ #define DECISECONDS_TO_HOURS /36000 -var/midnight_rollovers = 0 -var/rollovercheck_last_timeofday = 0 +GLOBAL_VAR_INIT(midnight_rollovers, 0) +GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) // Real time that is still reliable even when the round crosses over midnight time reset. #define REALTIMEOFDAY (world.timeofday + (864000 * MIDNIGHT_ROLLOVER_CHECK)) -#define MIDNIGHT_ROLLOVER_CHECK ( rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : midnight_rollovers ) +#define MIDNIGHT_ROLLOVER_CHECK ( GLOB.rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : GLOB.midnight_rollovers ) /proc/update_midnight_rollover() - if(world.timeofday < rollovercheck_last_timeofday) - midnight_rollovers++ + if(world.timeofday < GLOB.rollovercheck_last_timeofday) + GLOB.midnight_rollovers++ - rollovercheck_last_timeofday = world.timeofday - return midnight_rollovers + GLOB.rollovercheck_last_timeofday = world.timeofday + return GLOB.midnight_rollovers ///Returns the world time in english. Do not use to get date information - starts at 0 + a random time offset from 10 minutes to 24 hours. /proc/worldtime2text(format = "hh:mm", time = world.time) diff --git a/code/__HELPERS/animations.dm b/code/__HELPERS/animations.dm new file mode 100644 index 000000000000..f85fb763a4a6 --- /dev/null +++ b/code/__HELPERS/animations.dm @@ -0,0 +1,2 @@ +/// The duration of the animate call in mob/living/update_transform +#define UPDATE_TRANSFORM_ANIMATION_TIME (0.2 SECONDS) diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index f7382e151854..20d1a45b31cc 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -1,11 +1,12 @@ /** - * Sends a message to TGS chat channels. + * Asynchronously sends a message to TGS chat channels. * - * message - The message to send. + * message - The [/datum/tgs_message_content] to send. * channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). * admin_only - Determines if this communication can only be sent to admin only channels. */ -/proc/send2chat(message, channel_tag, admin_only = FALSE) +/proc/send2chat(datum/tgs_message_content/message, channel_tag, admin_only = FALSE) + set waitfor = FALSE if(channel_tag == null || !world.TgsAvailable()) return diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index ff8e31ad3e8a..31308ac5812f 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -16,12 +16,12 @@ /proc/cmp_name_dsc(atom/a, atom/b) return sorttext(a.name, b.name) -var/cmp_field = "name" +GLOBAL_LIST_INIT(cmp_field, "name") /proc/cmp_records_asc(datum/data/record/a, datum/data/record/b) - return sorttext((b ? b.fields[cmp_field] : ""), (a ? a.fields[cmp_field] : a)) + return sorttext((b ? b.fields[GLOB.cmp_field] : ""), (a ? a.fields[GLOB.cmp_field] : a)) /proc/cmp_records_dsc(datum/data/record/a, datum/data/record/b) - return sorttext(a.fields[cmp_field], b.fields[cmp_field]) + return sorttext(a.fields[GLOB.cmp_field], b.fields[GLOB.cmp_field]) /proc/cmp_ckey_asc(client/a, client/b) return sorttext(b.ckey, a.ckey) @@ -53,7 +53,6 @@ var/cmp_field = "name" if (!.) . = B.qdels - A.qdels -var/atom/cmp_dist_origin=null /proc/cmp_typepaths_asc(A, B) return sorttext("[B]","[A]") diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index f88fe7168f8d..54bb438cd167 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -46,11 +46,11 @@ PLEASE USE RESPONSIBLY, Some log files canr each sizes of 4MB! */ /client/proc/file_spam_check() - var/time_to_wait = fileaccess_timer - world.time + var/time_to_wait = GLOB.fileaccess_timer - world.time if(time_to_wait > 0) to_chat(src, "Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds.") return 1 - fileaccess_timer = world.time + FTPDELAY + GLOB.fileaccess_timer = world.time + FTPDELAY return 0 #undef FTPDELAY diff --git a/code/__HELPERS/filters.dm b/code/__HELPERS/filters.dm index aa8d77c81d3a..29e3ec9efb1e 100644 --- a/code/__HELPERS/filters.dm +++ b/code/__HELPERS/filters.dm @@ -46,7 +46,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( "y" = -1, "size" = 1, "offset" = 0, - "color" = COLOUR_HALF_TRANSPARENT_BLACK + "color" = COLOR_HALF_TRANSPARENT_BLACK ) ), "blur" = list( diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 8d6fb4266776..5ef9ff7e35c3 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -52,9 +52,6 @@ turfs += T return turfs - -//var/debug_mob = 0 - // Will recursively loop through an atom's contents and check for mobs, then it will loop through every atom in that atom's contents. // It will keep doing this until it checks every content possible. This will fix any problems with mobs, that are inside objects, // being unable to hear people due to being in a box within a bag. @@ -311,11 +308,11 @@ var/mob/dead/observer/cur_obs = candidates[i] // Generate the messages - var/cached_message = SPAN_XENONOTICE("You are currently [i-dequeued]\th in the larva queue.") + var/cached_message = "You are currently [i-dequeued]\th in the larva queue." cur_obs.larva_queue_cached_message = cached_message if(!cache_only) var/chat_message = dequeued ? replacetext(cached_message, "currently", "now") : cached_message - to_chat(candidates[i], chat_message) + to_chat(candidates[i], SPAN_XENONOTICE(chat_message)) /proc/convert_k2c(temp) return ((temp - T0C)) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 99f621919771..97243002740d 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -14,8 +14,7 @@ CHANGING ICONS Several new procs have been added to the /icon datum to simplify working with icons. To use them, remember you first need to setup an /icon var like so: - -var/icon/my_icon = new('iconfile.dmi') + var/icon/my_icon = new('iconfile.dmi') icon/ChangeOpacity(amount = 1) A very common operation in DM is to try to make an icon more or less transparent. Making an icon more @@ -329,7 +328,8 @@ world /// appearance system (overlays/underlays, etc.) is not available. /// /// Only the first argument is required. -/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE) +/// appearance_flags indicates whether appearance_flags should be respected (at the cost of about 10-20% perf) +/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE, appearance_flags = FALSE) // Loop through the underlays, then overlays, sorting them into the layers list #define PROCESS_OVERLAYS_OR_UNDERLAYS(flat, process, base_layer) \ for (var/i in 1 to process.len) { \ @@ -435,11 +435,21 @@ world if(layer_image.alpha == 0) continue + // variables only relevant when accounting for appearance_flags: + var/apply_color = TRUE + var/apply_alpha = TRUE + if(layer_image == copy) // 'layer_image' is an /image based on the object being flattened. curblend = BLEND_OVERLAY add = icon(layer_image.icon, layer_image.icon_state, base_icon_dir) else // 'I' is an appearance object. - add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim) + var/image/layer_as_image = image(layer_image) + if(appearance_flags) + if(layer_as_image.appearance_flags & RESET_COLOR) + apply_color = FALSE + if(layer_as_image.appearance_flags & RESET_ALPHA) + apply_alpha = FALSE + add = getFlatIcon(layer_as_image, curdir, curicon, curstate, curblend, FALSE, no_anim, appearance_flags) if(!add) continue @@ -451,9 +461,9 @@ world if ( addX1 != flatX1 \ - && addX2 != flatX2 \ - && addY1 != flatY1 \ - && addY2 != flatY2 \ + || addX2 != flatX2 \ + || addY1 != flatY1 \ + || addY2 != flatY2 \ ) // Resize the flattened icon so the new icon fits flat.Crop( @@ -464,21 +474,34 @@ world ) flatX1 = addX1 - flatX2 = addY1 - flatY1 = addX2 + flatX2 = addX2 + flatY1 = addY1 flatY2 = addY2 + if(appearance_flags) + // apply parent's color/alpha to the added layers if the layer didn't opt + if(apply_color && appearance.color) + if(islist(appearance.color)) + add.MapColors(arglist(appearance.color)) + else + add.Blend(appearance.color, ICON_MULTIPLY) + + if(apply_alpha && appearance.alpha < 255) + add.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) + // Blend the overlay into the flattened icon flat.Blend(add, blendMode2iconMode(curblend), layer_image.pixel_x + 2 - flatX1, layer_image.pixel_y + 2 - flatY1) - if(appearance.color) - if(islist(appearance.color)) - flat.MapColors(arglist(appearance.color)) - else - flat.Blend(appearance.color, ICON_MULTIPLY) + if(!appearance_flags) + // If we didn't apply parent colors individually per layer respecting appearance_flags, then do it just the one time now + if(appearance.color) + if(islist(appearance.color)) + flat.MapColors(arglist(appearance.color)) + else + flat.Blend(appearance.color, ICON_MULTIPLY) - if(appearance.alpha < 255) - flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) + if(appearance.alpha < 255) + flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) if(no_anim) //Clean up repeated frames @@ -658,8 +681,9 @@ world * * moving - whether or not to use a moving state for the given icon * * sourceonly - if TRUE, only generate the asset and send back the asset url, instead of tags that display the icon to players * * extra_clases - string of extra css classes to use when returning the icon string + * * keyonly - if TRUE, only returns the asset key to use get_asset_url manually. Overrides sourceonly. */ -/proc/icon2html(atom/thing, client/target, icon_state, dir = SOUTH, frame = 1, moving = FALSE, sourceonly = FALSE, extra_classes = null) +/proc/icon2html(atom/thing, client/target, icon_state, dir = SOUTH, frame = 1, moving = FALSE, sourceonly = FALSE, extra_classes = null, keyonly = FALSE) if (!thing) return @@ -690,6 +714,8 @@ world SSassets.transport.register_asset(name, thing) for (var/thing2 in targets) SSassets.transport.send_assets(thing2, name) + if(keyonly) + return name if(sourceonly) return SSassets.transport.get_asset_url(name) return "" @@ -708,11 +734,12 @@ world if (isnull(dir)) dir = thing.dir - if (ishuman(thing)) // Shitty workaround for a BYOND issue. + // Commented out because this is seemingly our source of bad icon operations + /* if (ishuman(thing)) // Shitty workaround for a BYOND issue. var/icon/temp = icon2collapse icon2collapse = icon() icon2collapse.Insert(temp, dir = SOUTH) - dir = SOUTH + dir = SOUTH*/ else if (isnull(dir)) dir = SOUTH @@ -731,6 +758,8 @@ world SSassets.transport.register_asset(key, rsc_ref, file_hash, icon_path) for (var/client_target in targets) SSassets.transport.send_assets(client_target, key) + if(keyonly) + return key if(sourceonly) return SSassets.transport.get_asset_url(key) return "" @@ -852,22 +881,93 @@ world return image_to_center //For creating consistent icons for human looking simple animals -/proc/get_flat_human_icon(icon_id, datum/equipment_preset/preset, datum/preferences/prefs, dummy_key, showDirs = GLOB.cardinals, outfit_override) +/proc/get_flat_human_icon(icon_id, equipment_preset_dresscode, datum/preferences/prefs, dummy_key, showDirs = GLOB.cardinals, outfit_override) var/static/list/humanoid_icon_cache = list() if(!icon_id || !humanoid_icon_cache[icon_id]) var/mob/living/carbon/human/dummy/body = generate_or_wait_for_human_dummy(dummy_key) + if(prefs) prefs.copy_all_to(body) - arm_equipment(body, preset) + body.update_body() + body.update_hair() + + // Assumption: Is a list + if(outfit_override) + for(var/obj/item/cur_item as anything in outfit_override) + body.equip_to_appropriate_slot(cur_item) + + // Assumption: Is a string or path + if(equipment_preset_dresscode) + arm_equipment(body, equipment_preset_dresscode) var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") - for(var/D in showDirs) - body.setDir(D) + for(var/dir in showDirs) + body.setDir(dir) var/icon/partial = getFlatIcon(body) - out_icon.Insert(partial, dir = D) + out_icon.Insert(partial, dir = dir) humanoid_icon_cache[icon_id] = out_icon dummy_key ? unset_busy_human_dummy(dummy_key) : qdel(body) return out_icon else return humanoid_icon_cache[icon_id] + +/proc/get_flat_human_copy_icon(mob/living/carbon/human/original, equipment_preset_dresscode, showDirs = GLOB.cardinals, outfit_override) + var/mob/living/carbon/human/dummy/body = generate_or_wait_for_human_dummy(null) + + if(original) + // From /datum/preferences/proc/copy_appearance_to + body.age = original.age + body.gender = original.gender + body.ethnicity = original.ethnicity + body.body_type = original.body_type + + body.r_eyes = original.r_eyes + body.g_eyes = original.g_eyes + body.b_eyes = original.b_eyes + + body.r_hair = original.r_hair + body.g_hair = original.g_hair + body.b_hair = original.b_hair + + body.r_gradient = original.r_gradient + body.g_gradient = original.g_gradient + body.b_gradient = original.b_gradient + body.grad_style = original.grad_style + + body.r_facial = original.r_facial + body.g_facial = original.g_facial + body.b_facial = original.b_facial + + body.r_skin = original.r_skin + body.g_skin = original.g_skin + body.b_skin = original.b_skin + + body.h_style = original.h_style + body.f_style = original.f_style + + body.underwear = original.underwear + body.undershirt = original.undershirt + + body.update_body() + body.update_hair() + + // Assumption: Is a list + if(outfit_override) + for(var/obj/item/cur_item as anything in outfit_override) + body.equip_to_appropriate_slot(cur_item) + + // Assumption: Is a string or path + if(equipment_preset_dresscode) + arm_equipment(body, equipment_preset_dresscode) + + var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") + for(var/dir in showDirs) + body.setDir(dir) + var/icon/partial = getFlatIcon(body) + out_icon.Insert(partial, dir = dir) + + // log_debug("get_flat_human_copy_icon called on ref=[REF(original)], instance=[original], type=[original.type], with [length(original.overlays)] overlays reduced to [length(body.overlays)] overlays") + + qdel(body) + return out_icon diff --git a/code/__HELPERS/job.dm b/code/__HELPERS/job.dm index 43902b07cfd9..220236c6f7e3 100644 --- a/code/__HELPERS/job.dm +++ b/code/__HELPERS/job.dm @@ -14,39 +14,10 @@ all_jobs += new jobtype return all_jobs - /proc/get_all_centcom_jobs() return list() -//gets the actual job rank (ignoring alt titles) -//this is used solely for sechuds -/obj/proc/GetJobRealName() - if (!istype(src,/obj/item/card/id)) return - var/obj/item/card/id/I = src - if(I.rank in GLOB.joblist) return I.rank - if(I.assignment in GLOB.joblist) return I.assignment - return "Unknown" - -/proc/FindNameFromID(mob/living/carbon/human/H) - ASSERT(istype(H)) - var/obj/item/card/id/I = H.wear_id - if(istype(I)) return I.registered_name - I = H.get_active_hand() - if(istype(I)) return I.registered_name - /proc/get_all_job_icons() return GLOB.joblist + list("Prisoner")//For all existing HUD icons -/obj/proc/GetJobName() //Used in secHUD icon generation - var/obj/item/card/id/I = src - if(istype(I)) - var/job_icons = get_all_job_icons() - var/centcom = get_all_centcom_jobs() - - if(I.assignment in job_icons) return I.assignment//Check if the job has a hud icon - if(I.rank in job_icons) return I.rank - if(I.assignment in centcom) return "Centcom"//Return with the NT logo if it is a Centcom job - if(I.rank in centcom) return "Centcom" - return "Unknown" //Return unknown if none of the above apply - /proc/get_actual_job_name(mob/M) if(!M) return null diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/level_traits.dm index 01a972485fa2..8b3d1b0a3809 100644 --- a/code/__HELPERS/level_traits.dm +++ b/code/__HELPERS/level_traits.dm @@ -1,4 +1,3 @@ - #define is_admin_level(z) SSmapping.level_trait(z, ZTRAIT_ADMIN) #define is_ground_level(z) SSmapping.level_trait(z, ZTRAIT_GROUND) diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index 5ecbff108725..c20db3da303f 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -35,27 +35,27 @@ // will get logs that are one big line if the system is Linux and they are using notepad. This solves it by adding CR to every line ending // in the logs. ascii character 13 = CR -/var/global/log_end= world.system_type == UNIX ? ascii2text(13) : "" +GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "") /proc/error(msg) - world.log << "## ERROR: [msg][log_end]" + world.log << "## ERROR: [msg][GLOB.log_end]" GLOB.STUI.debug.Add("\[[time_stamp()]]DEBUG: [msg]") GLOB.STUI.processing |= STUI_LOG_DEBUG #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].") //print a warning message to world.log /proc/warning(msg) - world.log << "## WARNING: [msg][log_end]" + world.log << "## WARNING: [msg][GLOB.log_end]" GLOB.STUI.debug.Add("\[[time_stamp()]]WARNING: [msg]") GLOB.STUI.processing |= STUI_LOG_DEBUG //print a testing-mode debug message to world.log /proc/testing(msg) - world.log << "## TESTING: [msg][log_end]" + world.log << "## TESTING: [msg][GLOB.log_end]" GLOB.STUI.debug.Add("\[[time_stamp()]]TESTING: [msg]") GLOB.STUI.processing |= STUI_LOG_DEBUG /proc/log_admin(text) var/time = time_stamp() - admin_log.Add(text) + GLOB.admin_log.Add(text) if (CONFIG_GET(flag/log_admin)) WRITE_LOG(GLOB.world_game_log, "ADMIN: [text]") LOG_REDIS("admin", "\[[time]\] [text]") @@ -63,14 +63,14 @@ GLOB.STUI.processing |= STUI_LOG_ADMIN /proc/log_asset(text) - asset_log.Add(text) + GLOB.asset_log.Add(text) if (CONFIG_GET(flag/log_asset)) var/time = time_stamp() WRITE_LOG(GLOB.world_game_log, "ASSET: [text]") LOG_REDIS("asset", "\[[time]\] [text]") /proc/log_adminpm(text) - admin_log.Add(text) + GLOB.admin_log.Add(text) if (CONFIG_GET(flag/log_admin)) WRITE_LOG(GLOB.world_game_log, "ADMIN: [text]") GLOB.STUI.staff.Add("\[[time_stamp()]]ADMIN: [text]") diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 9aa1bdc3ea2f..663d72fd5079 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -51,8 +51,10 @@ return f_style /proc/random_name(gender, species = "Human") - if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) - else return capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + if(gender==FEMALE) + return capitalize(pick(GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) + else + return capitalize(pick(GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) /proc/has_species(mob/M, species) if(!M || !istype(M,/mob/living/carbon/human)) @@ -71,6 +73,7 @@ /mob/proc/change_real_name(mob/M, new_name) if(!new_name) return FALSE + var/old_name = M.real_name M.real_name = new_name M.name = new_name @@ -81,6 +84,7 @@ // If we are humans, we need to update our voice as well M.change_mob_voice(new_name) + SEND_SIGNAL(src, COMSIG_MOB_REAL_NAME_CHANGED, old_name, new_name) return TRUE /mob/proc/change_mind_name(new_mind_name) diff --git a/code/__HELPERS/sorts/TimSort.dm b/code/__HELPERS/sorts/TimSort.dm index cfa55f0dfa3c..ae83bd9b0682 100644 --- a/code/__HELPERS/sorts/TimSort.dm +++ b/code/__HELPERS/sorts/TimSort.dm @@ -8,10 +8,14 @@ if(toIndex <= 0) toIndex += L.len + 1 - sortInstance.L = L - sortInstance.cmp = cmp - sortInstance.associative = associative + var/datum/sortInstance/sort_instance = GLOB.sortInstance + if(!sort_instance) + sort_instance = new() - sortInstance.timSort(fromIndex, toIndex) + sort_instance.L = L + sort_instance.cmp = cmp + sort_instance.associative = associative + + sort_instance.timSort(fromIndex, toIndex) return L diff --git a/code/__HELPERS/sorts/_Main.dm b/code/__HELPERS/sorts/_Main.dm index 7bc906be7e63..5d6f5210be47 100644 --- a/code/__HELPERS/sorts/_Main.dm +++ b/code/__HELPERS/sorts/_Main.dm @@ -8,8 +8,8 @@ //When we get into galloping mode, we stay there until both runs win less often than MIN_GALLOP consecutive times. #define MIN_GALLOP 7 - //This is a global instance to allow much of this code to be reused. The interfaces are kept separately -var/datum/sortInstance/sortInstance = new() +//This is a global instance to allow much of this code to be reused. The interfaces are kept separately +GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) /datum/sortInstance //The array being sorted. var/list/L diff --git a/code/__HELPERS/status_effects.dm b/code/__HELPERS/status_effects.dm new file mode 100644 index 000000000000..d06cb687f6a5 --- /dev/null +++ b/code/__HELPERS/status_effects.dm @@ -0,0 +1 @@ +#define TRAIT_STATUS_EFFECT(effect_id) "[effect_id]-trait" diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index d4d9eb320633..967967790b28 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -30,6 +30,11 @@ text = replacetext(text, char, repl_chars[char]) return text +///Helper for only alphanumeric characters plus common punctuation, spaces, underscore and hyphen _ -. +/proc/replace_non_alphanumeric_plus(text) + var/regex/alphanumeric = regex(@{"[^a-z0-9 ,.?!\-_&]"}, "gi") + return alphanumeric.Replace(text, "") + /proc/readd_quotes(text) var/list/repl_chars = list(""" = "\"", "'" = "'") for(var/char in repl_chars) @@ -341,8 +346,8 @@ // ---Begin URL caching. var/list/urls = list() var/i = 1 - while (url_find_lazy.Find_char(message)) - urls["\ref[urls]-[i]"] = url_find_lazy.match + while (GLOB.url_find_lazy.Find_char(message)) + urls["\ref[urls]-[i]"] = GLOB.url_find_lazy.match i++ for (var/ref in urls) @@ -350,9 +355,9 @@ // ---End URL caching var/regex/tag_markup - for (var/tag in (markup_tags - ignore_tags)) - tag_markup = markup_regex[tag] - message = tag_markup.Replace_char(message, "$2[markup_tags[tag][1]]$3[markup_tags[tag][2]]$5") + for (var/tag in (GLOB.markup_tags - ignore_tags)) + tag_markup = GLOB.markup_regex[tag] + message = tag_markup.Replace_char(message, "$2[GLOB.markup_tags[tag][1]]$3[GLOB.markup_tags[tag][2]]$5") // ---Unload URL cache for (var/ref in urls) diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm new file mode 100644 index 000000000000..ba99b2e1e7ff --- /dev/null +++ b/code/__HELPERS/traits.dm @@ -0,0 +1,43 @@ +#define TRAIT_CALLBACK_ADD(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitAdd), ##target, ##trait, ##source) +#define TRAIT_CALLBACK_REMOVE(target, trait, source) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___TraitRemove), ##target, ##trait, ##source) + +///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback. +/proc/___TraitAdd(target,trait,source) + if(!target || !trait || !source) + return + if(islist(target)) + for(var/i in target) + if(!isatom(i)) + continue + var/atom/the_atom = i + ADD_TRAIT(the_atom,trait,source) + else if(isatom(target)) + var/atom/the_atom2 = target + ADD_TRAIT(the_atom2,trait,source) + +///DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback. +/proc/___TraitRemove(target,trait,source) + if(!target || !trait || !source) + return + if(islist(target)) + for(var/i in target) + if(!isatom(i)) + continue + var/atom/the_atom = i + REMOVE_TRAIT(the_atom,trait,source) + else if(isatom(target)) + var/atom/the_atom2 = target + REMOVE_TRAIT(the_atom2,trait,source) + + +/// Proc that handles adding multiple traits to a target via a list. Must have a common source and target. +/datum/proc/add_traits(list/list_of_traits, source) + ASSERT(islist(list_of_traits), "Invalid arguments passed to add_traits! Invoked on [src] with [list_of_traits], source being [source].") + for(var/trait in list_of_traits) + ADD_TRAIT(src, trait, source) + +/// Proc that handles removing multiple traits from a target via a list. Must have a common source and target. +/datum/proc/remove_traits(list/list_of_traits, source) + ASSERT(islist(list_of_traits), "Invalid arguments passed to remove_traits! Invoked on [src] with [list_of_traits], source being [source].") + for(var/trait in list_of_traits) + REMOVE_TRAIT(src, trait, source) diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 4e4a1b3ff31c..5d0d113b0c55 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -21,7 +21,7 @@ var/char = copytext(hex, i, i + 1) switch(char) if("0") - //Apparently, switch works with empty statements, yay! If that doesn't work, blame me, though. -- Urist + pass() if("9", "8", "7", "6", "5", "4", "3", "2", "1") num += text2num(char) * 16 ** power if("a", "A") @@ -77,7 +77,6 @@ hex += "E" if(15.0) hex += "F" - else power-- while(length(hex) < placeholder) hex = text("0[]", hex) @@ -165,8 +164,6 @@ return 6 if("SOUTHWEST") return 10 - else - return //Converts an angle (degrees) into an ss13 direction /proc/angle2dir(degree) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 9a6ee4362088..05fa7c69e50f 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -21,16 +21,16 @@ #define between(low, middle, high) (max(min(middle, high), low)) //Offuscate x for coord system -#define obfuscate_x(x) (x + obfs_x) +#define obfuscate_x(x) (x + GLOB.obfs_x) //Offuscate y for coord system -#define obfuscate_y(y) (y + obfs_y) +#define obfuscate_y(y) (y + GLOB.obfs_y) //Deoffuscate x for coord system -#define deobfuscate_x(x) (x - obfs_x) +#define deobfuscate_x(x) (x - GLOB.obfs_x) //Deoffuscate y for coord system -#define deobfuscate_y(y) (y - obfs_y) +#define deobfuscate_y(y) (y - GLOB.obfs_y) #define can_xeno_build(T) (!T.density && !(locate(/obj/structure/fence) in T) && !(locate(/obj/structure/tunnel) in T) && (locate(/obj/effect/alien/weeds) in T)) @@ -99,38 +99,29 @@ var/atom/movable/big_subject = subject . += (big_subject.bound_height - world.icon_size) / 2 -/proc/Get_Angle(atom/start,atom/end, tile_bound = FALSE)//For beams. - if(!start || !end) return 0 - if(!start.z || !end.z) return 0 //Atoms are not on turfs. - var/dx - var/dy - if(tile_bound) - dy=end.y-start.y - dx=end.x-start.x - else - dy = get_pixel_position_y(end) - get_pixel_position_y(start) - dx = get_pixel_position_x(end) - get_pixel_position_x(start) - if(!dy) - return (dx>=0)?90:270 - .=arctan(dx/dy) - if(dy<0) - .+=180 - else if(dx<0) - .+=360 - -/proc/Get_Compass_Dir(atom/start,atom/end)//get_dir() only considers an object to be north/south/east/west if there is zero deviation. This uses rounding instead. - if(!start || !end) return 0 - if(!start.z || !end.z) return 0 //Atoms are not on turfs. - var/dy=end.y-start.y - var/dx=end.x-start.x - if(!dy) - return (dx>=0)?4:8 - var/angle=arctan(dx/dy) - if(dy<0) - angle+=180 - else if(dx<0) - angle+=360 - +/// Calculate the angle between two atoms. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc. +/proc/Get_Angle(atom/start, atom/end)//For beams. + if(!start || !end) + return 0 + if(!start.z) + start = get_turf(start) + if(!start) + return 0 //Atoms are not on turfs. + if(!end.z) + end = get_turf(end) + if(!end) + return 0 //Atoms are not on turfs. + var/dy = get_pixel_position_y(end) - get_pixel_position_y(start) + var/dx = get_pixel_position_x(end) - get_pixel_position_x(start) + return delta_to_angle(dx, dy) + +/// Calculate the angle produced by a pair of x and y deltas. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc. +/proc/delta_to_angle(dx, dy) + . = arctan(dy, dx) //y-then-x results in north-clockwise convention: https://en.wikipedia.org/wiki/Atan2#East-counterclockwise,_north-clockwise_and_south-clockwise_conventions,_etc. + if(. < 0) + . += 360 + +/proc/angle_to_dir(angle) switch(angle) //diagonal directions get priority over straight directions in edge cases if (22.5 to 67.5) return NORTHEAST @@ -151,6 +142,8 @@ else return NORTH +/proc/Get_Compass_Dir(atom/start, atom/end)//get_dir() only considers an object to be north/south/east/west if there is zero deviation. This uses rounding instead. + return angle_to_dir(Get_Angle(get_turf(start), get_turf(end))) // Among other things, used by flamethrower and boiler spray to calculate if flame/spray can pass through. // Returns an atom for specific effects (primarily flames and acid spray) that damage things upon contact @@ -281,9 +274,10 @@ //update the datacore records! This is goig to be a bit costly. var/mob_ref = WEAKREF(src) for(var/list/L in list(GLOB.data_core.general, GLOB.data_core.medical, GLOB.data_core.security, GLOB.data_core.locked)) - for(var/datum/data/record/R in L) - if(R.fields["ref"] == mob_ref) - R.fields["name"] = newname + for(var/datum/data/record/record_entry in L) + if(record_entry.fields["ref"] == mob_ref) + record_entry.fields["name"] = newname + record_entry.name = newname break //update our pda and id if we have them on our person @@ -916,110 +910,127 @@ return FALSE -var/global/image/busy_indicator_clock -var/global/image/busy_indicator_medical -var/global/image/busy_indicator_build -var/global/image/busy_indicator_friendly -var/global/image/busy_indicator_hostile -var/global/image/emote_indicator_highfive -var/global/image/emote_indicator_fistbump -var/global/image/emote_indicator_headbutt -var/global/image/emote_indicator_tailswipe -var/global/image/emote_indicator_rock_paper_scissors -var/global/image/emote_indicator_rock -var/global/image/emote_indicator_paper -var/global/image/emote_indicator_scissors -var/global/image/action_red_power_up -var/global/image/action_green_power_up -var/global/image/action_blue_power_up -var/global/image/action_purple_power_up +GLOBAL_DATUM(busy_indicator_clock, /image) +GLOBAL_DATUM(busy_indicator_medical, /image) +GLOBAL_DATUM(busy_indicator_build, /image) +GLOBAL_DATUM(busy_indicator_friendly, /image) +GLOBAL_DATUM(busy_indicator_hostile, /image) +GLOBAL_DATUM(emote_indicator_highfive, /image) +GLOBAL_DATUM(emote_indicator_fistbump, /image) +GLOBAL_DATUM(emote_indicator_headbutt, /image) +GLOBAL_DATUM(emote_indicator_tailswipe, /image) +GLOBAL_DATUM(emote_indicator_rock_paper_scissors, /image) +GLOBAL_DATUM(emote_indicator_rock, /image) +GLOBAL_DATUM(emote_indicator_paper, /image) +GLOBAL_DATUM(emote_indicator_scissors, /image) +GLOBAL_DATUM(action_red_power_up, /image) +GLOBAL_DATUM(action_green_power_up, /image) +GLOBAL_DATUM(action_blue_power_up, /image) +GLOBAL_DATUM(action_purple_power_up, /image) /proc/get_busy_icon(busy_type) if(busy_type == BUSY_ICON_GENERIC) - if(!busy_indicator_clock) - busy_indicator_clock = image('icons/mob/mob.dmi', null, "busy_generic", "pixel_y" = 22) - busy_indicator_clock.layer = FLY_LAYER - return busy_indicator_clock + if(!GLOB.busy_indicator_clock) + GLOB.busy_indicator_clock = image('icons/mob/mob.dmi', null, "busy_generic", "pixel_y" = 22) + GLOB.busy_indicator_clock.layer = FLY_LAYER + GLOB.busy_indicator_clock.plane = ABOVE_HUD_PLANE + return GLOB.busy_indicator_clock else if(busy_type == BUSY_ICON_MEDICAL) - if(!busy_indicator_medical) - busy_indicator_medical = image('icons/mob/mob.dmi', null, "busy_medical", "pixel_y" = 0) //This shows directly on top of the mob, no offset! - busy_indicator_medical.layer = FLY_LAYER - return busy_indicator_medical + if(!GLOB.busy_indicator_medical) + GLOB.busy_indicator_medical = image('icons/mob/mob.dmi', null, "busy_medical", "pixel_y" = 0) //This shows directly on top of the mob, no offset! + GLOB.busy_indicator_medical.layer = FLY_LAYER + GLOB.busy_indicator_medical.plane = ABOVE_HUD_PLANE + return GLOB.busy_indicator_medical else if(busy_type == BUSY_ICON_BUILD) - if(!busy_indicator_build) - busy_indicator_build = image('icons/mob/mob.dmi', null, "busy_build", "pixel_y" = 22) - busy_indicator_build.layer = FLY_LAYER - return busy_indicator_build + if(!GLOB.busy_indicator_build) + GLOB.busy_indicator_build = image('icons/mob/mob.dmi', null, "busy_build", "pixel_y" = 22) + GLOB.busy_indicator_build.layer = FLY_LAYER + GLOB.busy_indicator_build.plane = ABOVE_HUD_PLANE + return GLOB.busy_indicator_build else if(busy_type == BUSY_ICON_FRIENDLY) - if(!busy_indicator_friendly) - busy_indicator_friendly = image('icons/mob/mob.dmi', null, "busy_friendly", "pixel_y" = 22) - busy_indicator_friendly.layer = FLY_LAYER - return busy_indicator_friendly + if(!GLOB.busy_indicator_friendly) + GLOB.busy_indicator_friendly = image('icons/mob/mob.dmi', null, "busy_friendly", "pixel_y" = 22) + GLOB.busy_indicator_friendly.layer = FLY_LAYER + GLOB.busy_indicator_friendly.plane = ABOVE_HUD_PLANE + return GLOB.busy_indicator_friendly else if(busy_type == BUSY_ICON_HOSTILE) - if(!busy_indicator_hostile) - busy_indicator_hostile = image('icons/mob/mob.dmi', null, "busy_hostile", "pixel_y" = 22) - busy_indicator_hostile.layer = FLY_LAYER - return busy_indicator_hostile + if(!GLOB.busy_indicator_hostile) + GLOB.busy_indicator_hostile = image('icons/mob/mob.dmi', null, "busy_hostile", "pixel_y" = 22) + GLOB.busy_indicator_hostile.layer = FLY_LAYER + GLOB.busy_indicator_hostile.plane = ABOVE_HUD_PLANE + return GLOB.busy_indicator_hostile else if(busy_type == EMOTE_ICON_HIGHFIVE) - if(!emote_indicator_highfive) - emote_indicator_highfive = image('icons/mob/mob.dmi', null, "emote_highfive", "pixel_y" = 22) - emote_indicator_highfive.layer = FLY_LAYER - return emote_indicator_highfive + if(!GLOB.emote_indicator_highfive) + GLOB.emote_indicator_highfive = image('icons/mob/mob.dmi', null, "emote_highfive", "pixel_y" = 22) + GLOB.emote_indicator_highfive.layer = FLY_LAYER + GLOB.emote_indicator_highfive.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_highfive else if(busy_type == EMOTE_ICON_FISTBUMP) - if(!emote_indicator_fistbump) - emote_indicator_fistbump = image('icons/mob/mob.dmi', null, "emote_fistbump", "pixel_y" = 22) - emote_indicator_fistbump.layer = FLY_LAYER - return emote_indicator_fistbump + if(!GLOB.emote_indicator_fistbump) + GLOB.emote_indicator_fistbump = image('icons/mob/mob.dmi', null, "emote_fistbump", "pixel_y" = 22) + GLOB.emote_indicator_fistbump.layer = FLY_LAYER + GLOB.emote_indicator_fistbump.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_fistbump else if(busy_type == EMOTE_ICON_ROCK_PAPER_SCISSORS) - if(!emote_indicator_rock_paper_scissors) - emote_indicator_rock_paper_scissors = image('icons/mob/mob.dmi', null, "emote_rps", "pixel_y" = 22) - emote_indicator_rock_paper_scissors.layer = FLY_LAYER - return emote_indicator_rock_paper_scissors + if(!GLOB.emote_indicator_rock_paper_scissors) + GLOB.emote_indicator_rock_paper_scissors = image('icons/mob/mob.dmi', null, "emote_rps", "pixel_y" = 22) + GLOB.emote_indicator_rock_paper_scissors.layer = FLY_LAYER + GLOB.emote_indicator_rock_paper_scissors.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_rock_paper_scissors else if(busy_type == EMOTE_ICON_ROCK) - if(!emote_indicator_rock) - emote_indicator_rock = image('icons/mob/mob.dmi', null, "emote_rock", "pixel_y" = 22) - emote_indicator_rock.layer = FLY_LAYER - return emote_indicator_rock + if(!GLOB.emote_indicator_rock) + GLOB.emote_indicator_rock = image('icons/mob/mob.dmi', null, "emote_rock", "pixel_y" = 22) + GLOB.emote_indicator_rock.layer = FLY_LAYER + GLOB.emote_indicator_rock.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_rock else if(busy_type == EMOTE_ICON_PAPER) - if(!emote_indicator_paper) - emote_indicator_paper = image('icons/mob/mob.dmi', null, "emote_paper", "pixel_y" = 22) - emote_indicator_paper.layer = FLY_LAYER - return emote_indicator_paper + if(!GLOB.emote_indicator_paper) + GLOB.emote_indicator_paper = image('icons/mob/mob.dmi', null, "emote_paper", "pixel_y" = 22) + GLOB.emote_indicator_paper.layer = FLY_LAYER + GLOB.emote_indicator_paper.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_paper else if(busy_type == EMOTE_ICON_SCISSORS) - if(!emote_indicator_scissors) - emote_indicator_scissors = image('icons/mob/mob.dmi', null, "emote_scissors", "pixel_y" = 22) - emote_indicator_scissors.layer = FLY_LAYER - return emote_indicator_scissors + if(!GLOB.emote_indicator_scissors) + GLOB.emote_indicator_scissors = image('icons/mob/mob.dmi', null, "emote_scissors", "pixel_y" = 22) + GLOB.emote_indicator_scissors.layer = FLY_LAYER + GLOB.emote_indicator_scissors.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_scissors else if(busy_type == EMOTE_ICON_HEADBUTT) - if(!emote_indicator_headbutt) - emote_indicator_headbutt = image('icons/mob/mob.dmi', null, "emote_headbutt", "pixel_y" = 22) - emote_indicator_headbutt.layer = FLY_LAYER - return emote_indicator_headbutt + if(!GLOB.emote_indicator_headbutt) + GLOB.emote_indicator_headbutt = image('icons/mob/mob.dmi', null, "emote_headbutt", "pixel_y" = 22) + GLOB.emote_indicator_headbutt.layer = FLY_LAYER + GLOB.emote_indicator_headbutt.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_headbutt else if(busy_type == EMOTE_ICON_TAILSWIPE) - if(!emote_indicator_tailswipe) - emote_indicator_tailswipe = image('icons/mob/mob.dmi', null, "emote_tailswipe", "pixel_y" = 22) - emote_indicator_tailswipe.layer = FLY_LAYER - return emote_indicator_tailswipe + if(!GLOB.emote_indicator_tailswipe) + GLOB.emote_indicator_tailswipe = image('icons/mob/mob.dmi', null, "emote_tailswipe", "pixel_y" = 22) + GLOB.emote_indicator_tailswipe.layer = FLY_LAYER + GLOB.emote_indicator_tailswipe.plane = ABOVE_HUD_PLANE + return GLOB.emote_indicator_tailswipe else if(busy_type == ACTION_RED_POWER_UP) - if(!action_red_power_up) - action_red_power_up = image('icons/effects/effects.dmi', null, "anger", "pixel_x" = 16) - action_red_power_up.layer = FLY_LAYER - return action_red_power_up + if(!GLOB.action_red_power_up) + GLOB.action_red_power_up = image('icons/effects/effects.dmi', null, "anger", "pixel_x" = 16) + GLOB.action_red_power_up.layer = FLY_LAYER + GLOB.action_red_power_up.plane = ABOVE_HUD_PLANE + return GLOB.action_red_power_up else if(busy_type == ACTION_GREEN_POWER_UP) - if(!action_green_power_up) - action_green_power_up = image('icons/effects/effects.dmi', null, "vitality", "pixel_x" = 16) - action_green_power_up.layer = FLY_LAYER - return action_green_power_up + if(!GLOB.action_green_power_up) + GLOB.action_green_power_up = image('icons/effects/effects.dmi', null, "vitality", "pixel_x" = 16) + GLOB.action_green_power_up.layer = FLY_LAYER + GLOB.action_green_power_up.plane = ABOVE_HUD_PLANE + return GLOB.action_green_power_up else if(busy_type == ACTION_BLUE_POWER_UP) - if(!action_blue_power_up) - action_blue_power_up = image('icons/effects/effects.dmi', null, "shock", "pixel_x" = 16) - action_blue_power_up.layer = FLY_LAYER - return action_blue_power_up + if(!GLOB.action_blue_power_up) + GLOB.action_blue_power_up = image('icons/effects/effects.dmi', null, "shock", "pixel_x" = 16) + GLOB.action_blue_power_up.layer = FLY_LAYER + GLOB.action_blue_power_up.plane = ABOVE_HUD_PLANE + return GLOB.action_blue_power_up else if(busy_type == ACTION_PURPLE_POWER_UP) - if(!action_purple_power_up) - action_purple_power_up = image('icons/effects/effects.dmi', null, "pain", "pixel_x" = 16) - action_purple_power_up.layer = FLY_LAYER - return action_purple_power_up + if(!GLOB.action_purple_power_up) + GLOB.action_purple_power_up = image('icons/effects/effects.dmi', null, "pain", "pixel_x" = 16) + GLOB.action_purple_power_up.layer = FLY_LAYER + GLOB.action_purple_power_up.plane = ABOVE_HUD_PLANE + return GLOB.action_purple_power_up /* @@ -1089,7 +1100,7 @@ var/global/image/action_purple_power_up target_orig_turf = get_turf(target) var/obj/user_holding = busy_user.get_active_hand() var/obj/target_holding - var/cur_user_lying = busy_user.lying + var/cur_user_lying = busy_user.body_position var/cur_target_lying var/expected_total_time = delayfraction*numticks var/time_remaining = expected_total_time @@ -1097,7 +1108,7 @@ var/global/image/action_purple_power_up if(has_target && istype(T)) cur_target_zone_sel = T.zone_selected target_holding = T.get_active_hand() - cur_target_lying = T.lying + cur_target_lying = T.body_position . = TRUE for(var/i in 1 to numticks) @@ -1121,17 +1132,17 @@ var/global/image/action_purple_power_up ) . = FALSE break - if(user_flags & INTERRUPT_KNOCKED_DOWN && busy_user.knocked_down || \ - target_is_mob && (target_flags & INTERRUPT_KNOCKED_DOWN && T.knocked_down) + if(user_flags & INTERRUPT_KNOCKED_DOWN && HAS_TRAIT(busy_user, TRAIT_FLOORED) || \ + target_is_mob && (target_flags & INTERRUPT_KNOCKED_DOWN && HAS_TRAIT(T, TRAIT_FLOORED)) ) . = FALSE break - if(user_flags & INTERRUPT_STUNNED && busy_user.stunned || \ - target_is_mob && (target_flags & INTERRUPT_STUNNED && T.stunned) + if(user_flags & INTERRUPT_STUNNED && HAS_TRAIT(busy_user, TRAIT_INCAPACITATED)|| \ + target_is_mob && (target_flags & INTERRUPT_STUNNED && HAS_TRAIT(T, TRAIT_INCAPACITATED)) ) . = FALSE break - if(user_flags & INTERRUPT_DAZED && busy_user.dazed) + if(user_flags & INTERRUPT_DAZED && HAS_TRAIT(busy_user, TRAIT_DAZED)) . = FALSE break if(user_flags & INTERRUPT_EMOTE && !busy_user.flags_emote) @@ -1201,8 +1212,8 @@ var/global/image/action_purple_power_up ) . = FALSE break - if(user_flags & INTERRUPT_CHANGED_LYING && busy_user.lying != cur_user_lying || \ - target_is_mob && (target_flags & INTERRUPT_CHANGED_LYING && T.lying != cur_target_lying) + if(user_flags & INTERRUPT_CHANGED_LYING && busy_user.body_position != cur_user_lying || \ + target_is_mob && (target_flags & INTERRUPT_CHANGED_LYING && T.body_position != cur_target_lying) ) . = FALSE break @@ -1465,7 +1476,7 @@ var/global/image/action_purple_power_up /* Checks if that loc and dir has a item on the wall */ -var/list/WALLITEMS = list( +GLOBAL_LIST_INIT(WALLITEMS, list( /obj/structure/machinery/power/apc, /obj/structure/machinery/alarm, /obj/item/device/radio/intercom, @@ -1486,10 +1497,11 @@ var/list/WALLITEMS = list( /obj/structure/mirror, /obj/structure/closet/fireaxecabinet, /obj/structure/machinery/computer/cameras/telescreen/entertainment, - ) + )) + /proc/gotwallitem(loc, dir) for(var/obj/O in loc) - for(var/item in WALLITEMS) + for(var/item in GLOB.WALLITEMS) if(istype(O, item)) //Direction works sometimes if(O.dir == dir) @@ -1513,7 +1525,7 @@ var/list/WALLITEMS = list( //Some stuff is placed directly on the wallturf (signs) for(var/obj/O in get_step(loc, dir)) - for(var/item in WALLITEMS) + for(var/item in GLOB.WALLITEMS) if(istype(O, item)) if(O.pixel_x == 0 && O.pixel_y == 0) return 1 @@ -1650,7 +1662,7 @@ var/list/WALLITEMS = list( var/turf/Turf = get_turf(explosive) if(!(Turf.loc.type in GLOB.explosive_antigrief_exempt_areas)) var/crash_occured = (SSticker?.mode?.is_in_endgame) - if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (security_level < SEC_LEVEL_RED) && !crash_occured) + if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (GLOB.security_level < SEC_LEVEL_RED) && !crash_occured) switch(CONFIG_GET(number/explosive_antigrief)) if(ANTIGRIEF_DISABLED) return FALSE @@ -2093,3 +2105,15 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( if(NORTHWEST) return list(NORTHWEST, NORTH, WEST) + +/// Returns TRUE if the target is somewhere that the game should not interact with if possible +/// In this case, admin Zs and tutorial areas +/proc/should_block_game_interaction(atom/target) + if(is_admin_level(target.z)) + return TRUE + + var/area/target_area = get_area(target) + if(target_area?.block_game_interaction) + return TRUE + + return FALSE diff --git a/code/__odlint.dm b/code/__odlint.dm new file mode 100644 index 000000000000..f42517133746 --- /dev/null +++ b/code/__odlint.dm @@ -0,0 +1,11 @@ +// This file is included right at the start of the DME. +// Its purpose is to enable multiple lints (pragmas) that are supported by OpenDream to better validate the codebase +// These are essentially nitpicks the DM compiler should pick up on but doesnt + +#ifndef SPACEMAN_DMM +#ifdef OPENDREAM +// These are in their own file as you need to do it with an include as a hack to avoid +// SpacemanDMM evaluating the #pragma lines, even if its outside a block it cares about +#include "__pragmas.dm" +#endif +#endif diff --git a/code/__pragmas.dm b/code/__pragmas.dm new file mode 100644 index 000000000000..39c14e1bbc95 --- /dev/null +++ b/code/__pragmas.dm @@ -0,0 +1,27 @@ +//1000-1999 +#pragma FileAlreadyIncluded error +#pragma MissingIncludedFile error +#pragma MisplacedDirective error +#pragma UndefineMissingDirective error +#pragma DefinedMissingParen error +#pragma ErrorDirective error +#pragma WarningDirective error +#pragma MiscapitalizedDirective error + +//2000-2999 +#pragma SoftReservedKeyword error +#pragma DuplicateVariable error +#pragma DuplicateProcDefinition error +#pragma TooManyArguments error +#pragma PointlessParentCall error +#pragma PointlessBuiltinCall error +#pragma SuspiciousMatrixCall error +#pragma MalformedRange error +#pragma InvalidRange error +#pragma InvalidSetStatement error +#pragma InvalidOverride error +#pragma DanglingVarType error +#pragma MissingInterpolatedExpression error + +//3000-3999 +#pragma EmptyBlock error diff --git a/code/_byond_version_compat.dm b/code/_byond_version_compat.dm index 719d85654b5f..26968f0f837c 100644 --- a/code/_byond_version_compat.dm +++ b/code/_byond_version_compat.dm @@ -3,7 +3,7 @@ //Update this whenever you need to take advantage of more recent byond features #define MIN_COMPILER_VERSION 514 #define MIN_COMPILER_BUILD 1588 -#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) +#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. #error You need version 514.1588 or higher diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 0f81b0173ac1..20aa2081318c 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -30,7 +30,7 @@ #define CBT #endif -#if !defined(CBT) && !defined(SPACEMAN_DMM) +#if !defined(CBT) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) #warn Building with Dream Maker is no longer supported and will result in errors. #warn In order to build, run BUILD.bat in the bin directory. #warn Consider switching to VSCode editor instead, where you can press Ctrl+Shift+B to build. diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 53dd40ff6035..59d14f2e0fed 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -87,6 +87,7 @@ DEFINE_BITFIELD(flags_ammo_behaviour, list( "AMMO_IGNORE_RESIST" = AMMO_IGNORE_RESIST, "AMMO_BALLISTIC" = AMMO_BALLISTIC, "AMMO_IGNORE_COVER" = AMMO_IGNORE_COVER, + "AMMO_ANTIVEHICLE" = AMMO_ANTIVEHICLE, "AMMO_STOPPED_BY_COVER" = AMMO_STOPPED_BY_COVER, "AMMO_SPECIAL_EMBED" = AMMO_SPECIAL_EMBED, "AMMO_STRIKES_SURFACE" = AMMO_STRIKES_SURFACE, @@ -97,7 +98,6 @@ DEFINE_BITFIELD(flags_ammo_behaviour, list( "AMMO_FLAME" = AMMO_FLAME, )) - DEFINE_BITFIELD(projectile_flags, list( "PROJECTILE_SHRAPNEL" = PROJECTILE_SHRAPNEL, "PROJECTILE_BULLSEYE" = PROJECTILE_BULLSEYE, @@ -120,6 +120,7 @@ DEFINE_BITFIELD(flags_gun_features, list( "GUN_ANTIQUE" = GUN_ANTIQUE, "GUN_RECOIL_BUILDUP" = GUN_RECOIL_BUILDUP, "GUN_SUPPORT_PLATFORM" = GUN_SUPPORT_PLATFORM, + "GUN_NO_DESCRIPTION" = GUN_NO_DESCRIPTION, )) DEFINE_BITFIELD(flags_magazine, list( @@ -150,6 +151,7 @@ DEFINE_BITFIELD(flags_atom, list( "INITIALIZED" = INITIALIZED, "ATOM_DECORATED" = ATOM_DECORATED, "USES_HEARING" = USES_HEARING, + "HTML_USE_INITAL_ICON" = HTML_USE_INITAL_ICON, )) DEFINE_BITFIELD(flags_item, list( @@ -166,7 +168,6 @@ DEFINE_BITFIELD(flags_item, list( "ITEM_OVERRIDE_NORTHFACE" = ITEM_OVERRIDE_NORTHFACE, "CAN_DIG_SHRAPNEL" = CAN_DIG_SHRAPNEL, "ANIMATED_SURGICAL_TOOL" = ANIMATED_SURGICAL_TOOL, - "NOTABLEMERGE" = NOTABLEMERGE, "IGNITING_ITEM" = IGNITING_ITEM, )) @@ -182,7 +183,7 @@ DEFINE_BITFIELD(flags_inv_hide, list( "HIDETOPHAIR" = HIDETOPHAIR, "HIDEALLHAIR" = HIDEALLHAIR, "HIDETAIL" = HIDETAIL, - "HIDEFACE" = HIDEFACE + "HIDEFACE" = HIDEFACE, )) DEFINE_BITFIELD(flags_inventory, list( @@ -328,9 +329,6 @@ DEFINE_BITFIELD(flags_area, list( DEFINE_BITFIELD(disabilities, list( "NEARSIGHTED" = NEARSIGHTED, - "EPILEPSY" = EPILEPSY, - "COUGHING" = COUGHING, - "TOURETTES" = TOURETTES, "NERVOUS" = NERVOUS, "OPIATE_RECEPTOR_DEFICIENCY" = OPIATE_RECEPTOR_DEFICIENCY, )) @@ -370,6 +368,13 @@ DEFINE_BITFIELD(mob_flags, list( "NOBIOSCAN" = NOBIOSCAN, )) +DEFINE_BITFIELD(mobility_flags, list( + "MOVE" = MOBILITY_MOVE, + "STAND" = MOBILITY_STAND, + "REST" = MOBILITY_REST, + "LIEDOWN" = MOBILITY_LIEDOWN +)) + DEFINE_BITFIELD(flags, list( "NO_BLOOD" = NO_BLOOD, "NO_BREATHE" = NO_BREATHE, @@ -417,6 +422,7 @@ DEFINE_BITFIELD(toggleable_flags, list( "MODE_NO_COMBAT_CAS" = MODE_NO_COMBAT_CAS, "MODE_LZ_PROTECTION" = MODE_LZ_PROTECTION, "MODE_SHIPSIDE_SD" = MODE_SHIPSIDE_SD, + "MODE_HARDCORE_PERMA" = MODE_HARDCORE_PERMA, "MODE_DISPOSABLE_MOBS" = MODE_DISPOSABLE_MOBS, "MODE_BYPASS_JOE" = MODE_BYPASS_JOE, )) @@ -450,7 +456,9 @@ DEFINE_BITFIELD(fire_immunity, list( "FIRE_IMMUNITY_NO_DAMAGE" = FIRE_IMMUNITY_NO_DAMAGE, "FIRE_IMMUNITY_NO_IGNITE" = FIRE_IMMUNITY_NO_IGNITE, "FIRE_IMMUNITY_XENO_FRENZY" = FIRE_IMMUNITY_XENO_FRENZY, + "FIRE_VULNERABILITY" = FIRE_VULNERABILITY, )) + DEFINE_BITFIELD(vend_flags, list( "VEND_TO_HAND" = VEND_TO_HAND, "VEND_UNIFORM_RANKS" = VEND_UNIFORM_RANKS, @@ -461,4 +469,133 @@ DEFINE_BITFIELD(vend_flags, list( "VEND_INSTANCED_CATEGORY" = VEND_INSTANCED_CATEGORY, "VEND_FACTION_THEMES" = VEND_FACTION_THEMES, "VEND_USE_VENDOR_FLAGS" = VEND_USE_VENDOR_FLAGS, + "VEND_LOAD_AMMO_BOXES" = VEND_LOAD_AMMO_BOXES, + "VEND_STOCK_DYNAMIC" = VEND_STOCK_DYNAMIC +)) + +DEFINE_BITFIELD(vehicle_flags, list( + "VEHICLE_CLASS_WEAK" = VEHICLE_CLASS_WEAK, + "VEHICLE_CLASS_LIGHT" = VEHICLE_CLASS_LIGHT, + "VEHICLE_CLASS_MEDIUM" = VEHICLE_CLASS_MEDIUM, + "VEHICLE_CLASS_HEAVY" = VEHICLE_CLASS_HEAVY, + "VEHICLE_BYPASS_BLOCKERS" = VEHICLE_BYPASS_BLOCKERS, +)) + +DEFINE_BITFIELD(flags_pass, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_all, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_front, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(flags_can_pass_behind, list( + "PASS_THROUGH" = PASS_THROUGH, + "PASS_AROUND" = PASS_AROUND, + "PASS_OVER_THROW_ITEM" = PASS_OVER_THROW_ITEM, + "PASS_OVER_THROW_MOB" = PASS_OVER_THROW_MOB, + "PASS_OVER_FIRE" = PASS_OVER_FIRE, + "PASS_OVER_ACID_SPRAY" = PASS_OVER_ACID_SPRAY, + "PASS_UNDER" = PASS_UNDER, + "PASS_GLASS" = PASS_GLASS, + "PASS_MOB_IS_XENO" = PASS_MOB_IS_XENO, + "PASS_MOB_IS_HUMAN" = PASS_MOB_IS_HUMAN, + "PASS_MOB_IS_OTHER" = PASS_MOB_IS_OTHER, + "PASS_MOB_THRU_XENO" = PASS_MOB_THRU_XENO, + "PASS_MOB_THRU_HUMAN" = PASS_MOB_THRU_HUMAN, + "PASS_MOB_THRU_OTHER" = PASS_MOB_THRU_OTHER, + "PASS_TYPE_CRAWLER" = PASS_TYPE_CRAWLER, + "PASS_HIGH_OVER_ONLY" = PASS_HIGH_OVER_ONLY, + "PASS_BUILDING_ONLY" = PASS_BUILDING_ONLY, + "PASS_CRUSHER_CHARGE" = PASS_CRUSHER_CHARGE, +)) + +DEFINE_BITFIELD(sight, list( + "BLIND" = BLIND, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "SEE_INFRA" = SEE_INFRA, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_SELF" = SEE_SELF, + "SEE_THRU" = SEE_THRU, + "SEE_TURFS" = SEE_TURFS, +)) + +DEFINE_BITFIELD(vision_flags, list( + "BLIND" = BLIND, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "SEE_INFRA" = SEE_INFRA, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_SELF" = SEE_SELF, + "SEE_THRU" = SEE_THRU, + "SEE_TURFS" = SEE_TURFS, +)) + +DEFINE_BITFIELD(vis_flags, list( + "VIS_HIDE" = VIS_HIDE, + "VIS_INHERIT_DIR" = VIS_INHERIT_DIR, + "VIS_INHERIT_ICON" = VIS_INHERIT_ICON, + "VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE, + "VIS_INHERIT_ID" = VIS_INHERIT_ID, + "VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER, + "VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE, + "VIS_UNDERLAY" = VIS_UNDERLAY, )) diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 36058a44fc37..6e1b229e562f 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -1,6 +1,3 @@ - -var/list/unansweredAhelps = list() //This feels inefficient, but I can't think of a better way. Stores the message indexed by CID - GLOBAL_LIST_EMPTY(PressFaxes) GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) @@ -9,20 +6,25 @@ GLOBAL_LIST_EMPTY(CMBFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted +//datum containing a reference to the flattend map png url, the actual png is stored in the user's cache. +GLOBAL_LIST_EMPTY(uscm_flat_tacmap_data) +GLOBAL_LIST_EMPTY(xeno_flat_tacmap_data) + +//datum containing the svg overlay coords in array format. +GLOBAL_LIST_EMPTY(uscm_svg_tacmap_data) +GLOBAL_LIST_EMPTY(xeno_svg_tacmap_data) + GLOBAL_LIST_EMPTY(failed_fultons) //A list of fultoned items which weren't collected and fell back down GLOBAL_LIST_EMPTY(larva_burst_by_hive) GLOBAL_LIST_INIT_TYPED(custom_huds_list, /datum/custom_hud, setup_all_huds()) GLOBAL_LIST_INIT_TYPED(custom_human_huds, /datum/custom_hud, setup_human_huds()) -//Since it didn't really belong in any other category, I'm putting this here -//This is for procs to replace all the goddamn 'in world's that are chilling around the code - -var/readied_players = 0 //How many players are readied up in the lobby +GLOBAL_VAR_INIT(readied_players, 0) //How many players are readied up in the lobby GLOBAL_LIST_EMPTY_TYPED(other_factions_human_list, /mob/living/carbon/human) -var/global/list/ai_mob_list = list() //List of all AIs +GLOBAL_LIST_EMPTY(ai_mob_list) //List of all AIs GLOBAL_LIST_EMPTY(freed_mob_list) // List of mobs freed for ghosts @@ -104,12 +106,12 @@ GLOBAL_LIST_INIT_TYPED(resin_mark_meanings, /datum/xeno_mark_define, setup_resin GLOBAL_REFERENCE_LIST_INDEXED(xeno_datum_list, /datum/caste_datum, caste_type) //Chem Stuff -var/global/list/chemical_reactions_filtered_list //List of all /datum/chemical_reaction datums filtered by reaction components. Used during chemical reactions -var/global/list/chemical_reactions_list //List of all /datum/chemical_reaction datums indexed by reaction id. Used to search for the result instead of the components. -var/global/list/chemical_reagents_list //List of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff -var/global/list/chemical_properties_list //List of all /datum/chem_property datums indexed by property name +GLOBAL_LIST(chemical_reactions_filtered_list) //List of all /datum/chemical_reaction datums filtered by reaction components. Used during chemical reactions +GLOBAL_LIST(chemical_reactions_list) //List of all /datum/chemical_reaction datums indexed by reaction id. Used to search for the result instead of the components. +GLOBAL_LIST(chemical_reagents_list) //List of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff +GLOBAL_LIST(chemical_properties_list) //List of all /datum/chem_property datums indexed by property name //List of all id's from classed /datum/reagent datums indexed by class or tier. Used by chemistry generator and chem spawners. -var/global/list/list/chemical_gen_classes_list = list("C" = list(),"C1" = list(),"C2" = list(),"C3" = list(),"C4" = list(),"C5" = list(),"C6" = list(),"T1" = list(),"T2" = list(),"T3" = list(),"T4" = list(),"tau" = list()) +GLOBAL_LIST_INIT_TYPED(chemical_gen_classes_list, /list, list("C" = list(),"C1" = list(),"C2" = list(),"C3" = list(),"C4" = list(),"C5" = list(),"C6" = list(),"T1" = list(),"T2" = list(),"T3" = list(),"T4" = list(),"tau", list())) //properties generated in chemicals, helps to make sure the same property doesn't show up 10 times GLOBAL_LIST_INIT_TYPED(generated_properties, /list, list("positive" = list(), "negative" = list(), "neutral" = list())) @@ -135,13 +137,12 @@ GLOBAL_LIST_INIT(surgical_patient_types, setup_surgical_patient_types()) GLOBAL_LIST_INIT_TYPED(gear_path_presets_list, /datum/equipment_preset, setup_gear_path_presets()) GLOBAL_LIST_INIT_TYPED(gear_name_presets_list, /datum/equipment_preset, setup_gear_name_presets()) -var/global/list/active_areas = list() -var/global/list/all_areas = list() +GLOBAL_LIST_EMPTY(active_areas) +GLOBAL_LIST_EMPTY(all_areas) -var/global/list/turfs = list() -var/global/list/z1turfs = list() +GLOBAL_LIST_EMPTY(turfs) -/var/global/list/objects_of_interest // This is used to track the stealing objective for Agents. +GLOBAL_LIST(objects_of_interest) // This is used to track the stealing objective for Agents. // Areas exempt from explosive antigrief (not Z-levels) GLOBAL_LIST_INIT(explosive_antigrief_exempt_areas, list( @@ -204,23 +205,23 @@ GLOBAL_REFERENCE_LIST_INDEXED(hair_gradient_list, /datum/sprite_accessory/hair_g GLOBAL_REFERENCE_LIST_INDEXED(yautja_hair_styles_list, /datum/sprite_accessory/yautja_hair, name) //Backpacks -var/global/list/backbaglist = list("Backpack", "Satchel") +GLOBAL_LIST_INIT(backbaglist, list("Backpack", "Satchel")) //Armor styles GLOBAL_LIST_INIT(armor_style_list, list("Padded" = 1, "Padless" = 2, "Ridged" = 3, "Carrier" = 4, "Skull" = 5, "Smooth" = 6, "Random")) // var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) -var/global/round_should_check_for_win = TRUE +GLOBAL_VAR_INIT(round_should_check_for_win, TRUE) -var/global/list/key_mods = list("CTRL", "ALT", "SHIFT") +GLOBAL_LIST_INIT(key_mods, list("CTRL", "ALT", "SHIFT")) // A list storing the pass flags for specific types of atoms -var/global/list/pass_flags_cache = list() +GLOBAL_LIST_EMPTY(pass_flags_cache) //Parameterss cache -var/global/list/paramslist_cache = list() +GLOBAL_LIST_EMPTY(paramslist_cache) //Turf Edge info uberlist -- a list whos states contain GLOB.edgeinfo_X keyed as different icon_states -var/global/list/turf_edgeinfo_cache = list() +GLOBAL_LIST_EMPTY(turf_edgeinfo_cache) #define FULL_EDGE 1 #define HALF_EDGE_RIGHT 2 @@ -272,10 +273,10 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living)) GLOBAL_LIST_INIT(emote_list, init_emote_list()) /proc/cached_params_decode(params_data, decode_proc) - . = paramslist_cache[params_data] + . = GLOB.paramslist_cache[params_data] if(!.) . = call(decode_proc)(params_data) - paramslist_cache[params_data] = . + GLOB.paramslist_cache[params_data] = . /proc/key_number_decode(key_number_data) var/list/L = params2list(key_number_data) @@ -456,10 +457,10 @@ GLOBAL_LIST_INIT(emote_list, init_emote_list()) /* // Uncomment to debug chemical reaction list. /client/verb/debug_chemical_list() - for (var/reaction in chemical_reactions_filtered_list) - . += "chemical_reactions_filtered_list\[\"[reaction]\"\] = \"[chemical_reactions_filtered_list[reaction]]\"\n" - if(islist(chemical_reactions_filtered_list[reaction])) - var/list/L = chemical_reactions_filtered_list[reaction] + for (var/reaction in GLOB.chemical_reactions_filtered_list) + . += "GLOB.chemical_reactions_filtered_list\[\"[reaction]\"\] = \"[GLOB.chemical_reactions_filtered_list[reaction]]\"\n" + if(islist(GLOB.chemical_reactions_filtered_list[reaction])) + var/list/L = GLOB.chemical_reactions_filtered_list[reaction] for(var/t in L) . += " has: [t]\n" world << . @@ -473,22 +474,22 @@ GLOBAL_LIST_EMPTY(timelocks) //the global list of specialist kits that haven't been claimed yet. -var/global/list/available_specialist_sets = list( +GLOBAL_LIST_INIT(available_specialist_sets, list( "Scout Set", "Sniper Set", "Demolitionist Set", "Heavy Grenadier Set", "Pyro Set" - ) + )) //Similar thing, but used in /obj/item/spec_kit -var/global/list/available_specialist_kit_boxes = list( +GLOBAL_LIST_INIT(available_specialist_kit_boxes, list( "Pyro" = 2, "Grenadier" = 2, "Sniper" = 2, "Scout" = 2, "Demo" = 2, - ) + )) /proc/init_global_referenced_datums() init_keybindings() diff --git a/code/_globalvars/lists/clans.dm b/code/_globalvars/lists/clans.dm new file mode 100644 index 000000000000..f04915a37435 --- /dev/null +++ b/code/_globalvars/lists/clans.dm @@ -0,0 +1,19 @@ +GLOBAL_LIST_INIT_TYPED(clan_ranks, /datum/yautja_rank, list( + CLAN_RANK_UNBLOODED = new /datum/yautja_rank/unblooded(), + CLAN_RANK_YOUNG = new /datum/yautja_rank/young(), + CLAN_RANK_BLOODED = new /datum/yautja_rank/blooded(), + CLAN_RANK_ELITE = new /datum/yautja_rank/elite(), + CLAN_RANK_ELDER = new /datum/yautja_rank/elder(), + CLAN_RANK_LEADER = new /datum/yautja_rank/leader(), + CLAN_RANK_ADMIN = new /datum/yautja_rank/ancient() +)) + +GLOBAL_LIST_INIT(clan_ranks_ordered, list( + CLAN_RANK_UNBLOODED = CLAN_RANK_UNBLOODED_INT, + CLAN_RANK_YOUNG = CLAN_RANK_YOUNG_INT, + CLAN_RANK_BLOODED = CLAN_RANK_BLOODED_INT, + CLAN_RANK_ELITE = CLAN_RANK_ELITE_INT, + CLAN_RANK_ELDER = CLAN_RANK_ELDER_INT, + CLAN_RANK_LEADER = CLAN_RANK_LEADER_INT, + CLAN_RANK_ADMIN = CLAN_RANK_ADMIN_INT +)) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm new file mode 100644 index 000000000000..09ad2b422d3c --- /dev/null +++ b/code/_globalvars/lists/names.dm @@ -0,0 +1,39 @@ +GLOBAL_LIST_INIT(ai_names, file2list("strings/ai.txt")) +GLOBAL_LIST_INIT(first_names_male, file2list("strings/first_male.txt")) +GLOBAL_LIST_INIT(first_names_female, file2list("strings/first_female.txt")) +GLOBAL_LIST_INIT(last_names, file2list("strings/last.txt")) +GLOBAL_LIST_INIT(clown_names, file2list("strings/clown.txt")) +GLOBAL_LIST_INIT(operation_titles, file2list("strings/operation_title.txt")) +GLOBAL_LIST_INIT(operation_prefixes, file2list("strings/operation_prefix.txt")) +GLOBAL_LIST_INIT(operation_postfixes, file2list("strings/operation_postfix.txt")) + +GLOBAL_LIST_INIT(verbs, file2list("strings/verbs.txt")) +//loaded on startup because of " +//would include in rsc if ' was used + + +GLOBAL_LIST_INIT(first_names_male_clf, list("Alan","Jack","Bil","Jonathan","John","Shiro","Gareth","Clark","Sam", "Lionel", "Aaron", "Charlie", "Scott", "Winston", "Aidan", "Ellis", "Mason", "Wesley", "Nicholas", "Calvin", "Nishikawa", "Hiroto", "Chiba", "Ouchi", "Furuse", "Takagi", "Oba", "Kishimoto")) +GLOBAL_LIST_INIT(first_names_female_clf, list("Emma", "Adelynn", "Mary", "Halie", "Chelsea", "Lexie", "Arya", "Alicia", "Selah", "Amber", "Heather", "Myra", "Heidi", "Charlotte", "Oliva", "Lydia", "Tia", "Riko", "Ari", "Machida", "Ueki", "Mihara", "Noda")) +GLOBAL_LIST_INIT(last_names_clf, list("Hawkins","Rickshaw","Elliot","Billard","Cooper","Fox", "Barlow", "Barrows", "Stewart", "Morgan", "Green", "Stone", "Burr", "Hunt", "Yuko", "Gesshin", "Takanibu", "Tetsuzan", "Tomomi", "Bokkai", "Takesi")) + +GLOBAL_LIST_INIT(first_names_male_colonist, list("Alan","Jack","Bil","Jonathan","John","Shiro","Gareth","Clark","Sam", "Lionel", "Aaron", "Charlie", "Scott", "Winston", "Aidan", "Ellis", "Mason", "Wesley", "Nicholas", "Calvin", "Nishikawa", "Hiroto", "Chiba", "Ouchi", "Furuse", "Takagi", "Oba", "Kishimoto")) +GLOBAL_LIST_INIT(first_names_female_colonist, list("Emma", "Adelynn", "Mary", "Halie", "Chelsea", "Lexie", "Arya", "Alicia", "Selah", "Amber", "Heather", "Myra", "Heidi", "Charlotte", "Ashley", "Raven", "Tori", "Anne", "Madison", "Oliva", "Lydia", "Tia", "Riko", "Ari", "Machida", "Ueki", "Mihara", "Noda")) +GLOBAL_LIST_INIT(last_names_colonist, list("Hawkins","Rickshaw","Elliot","Billard","Cooper","Fox", "Barlow", "Barrows", "Stewart", "Morgan", "Green", "Stone", "Titan", "Crowe", "Krantz", "Pathillo", "Driggers", "Burr", "Hunt", "Yuko", "Gesshin", "Takanibu", "Tetsuzan", "Tomomi", "Bokkai", "Takesi")) + +GLOBAL_LIST_INIT(first_names_male_upp, list("Badai","Mongkeemur","Alexei","Andrei","Artyom","Viktor","Xiangai","Ivan","Choban","Oleg", "Dayan", "Taghi", "Batu", "Arik", "Orda", "Ghazan", "Bala", "Gao", "Zhan", "Ren", "Hou", "Xue", "Serafim", "Luca", "Su", "György", "István", "Mihály", "Vladimir", "Aleksandr", "Fyodor", "Bhodar", "Qazem", "Łukasz", "Miłogost", "Radogost", "Uniegost", "Hostirad", "Hostimil", "Hostisvit", "Lubgost", "Gościsław", "Vseslav", "Bohuměr", "Bronisław", "Česćiměr", "Dobysław", "Horisław", "Jaroměr", "Mirosław", "Mječisław", "Radoměr", "Stanij", "Stanisław", "Wjeleměr", "Wójsław")) +GLOBAL_LIST_INIT(first_names_female_upp, list("Altani","Cirina","Anastasiya","Saran","Wei","Oksana","Ren","Svena","Tatyana","Yaroslava", "Izabella", "Kata", "Krisztina", "Miruna", "Flori", "Lucia", "Anica", "Li", "Yimu", "Alona", "Hsiau-Li", "Xiaoling", "Erhong", "Baśka", "Angela", "Angelina", "Angja", "Ankica", "Biljana", "Bisera", "Bistra", "Blaga", "Blagica", "Blagorodna", "Verka", "Vladica", "Denica", "Živka", "Zlata", "Jagoda", "Letka", "Ljupka", "Mila", "Mirjana", "Mirka", "Rada", "Radmila", "Slavica", "Slavka", "Snežana", "Stojna", "Ubavka", "Jaromir", "Mscëwòj", "Subisłôw", "Swiãtopôłk", "Ji-Sun", "Chaeyong", "Chaewon", "Saerom", "Seoyeong", "Jiheon", "Hayoung")) +GLOBAL_LIST_INIT(last_names_upp, list("Azarov","Bogdanov","Barsukov","Golovin","Davydov","Khan","Noica","Barbu","Zhukov","Ivanov","Mihai","Kasputin","Belov", "Belova","Melnikov", "Vasilevsky", "Aleksander", "Halkovich", "Stanislaw", "Proca", "Zaituc", "Arcos", "Kubat", "Kral", "Volf", "Xun", "Jia", "Bachoń", "Wang", "Ji", "Xiang", "Zhang", "Mei", "Ma", "Kim", "Yi", "Ri", "Pak", "Chong", "Baek", "Kwon", "Hwang", "Roh", "Lee", "Song")) + +GLOBAL_LIST_INIT(first_names_male_pmc, list("Owen","Luka","Nelson","Branson", "Tyson", "Leo", "Bryant", "Kobe", "Rohan", "Riley", "Aidan", "Watase","Egawa", "Hisakawa", "Koide", "Remy", "Martial", "Magnus", "Heiko", "Lennard")) +GLOBAL_LIST_INIT(first_names_female_pmc, list("Madison","Jessica","Anna","Juliet", "Olivia", "Lea", "Diane", "Kaori", "Beatrice", "Riley", "Amy", "Natsue","Yumi", "Aiko", "Fujiko", "Jennifer", "Ashley", "Mary", "Hitomi", "Lisa")) +GLOBAL_LIST_INIT(last_names_pmc, list("Bates","Shaw","Hansen","Black", "Chambers", "Hall", "Gibson", "Weiss", "Waller", "Burton", "Bakin", "Rohan", "Naomichi", "Yakumo", "Yosai", "Gallagher", "Hiles", "Bourdon", "Strassman", "Palau")) + +GLOBAL_LIST_INIT(first_names_male_gladiator, list("Augustus", "Maximus", "Octavius", "Septimus", "Titus", "Brutus", "Caesar", "Justinian")) +GLOBAL_LIST_INIT(first_names_female_gladiator, list("Aelia", "Aquila", "Caecilia", "Camilla", "Claudia", "Flavia", "Martina", "Theodora")) + +GLOBAL_LIST_INIT(first_names_male_dutch, list("Raymond", "Jesse", "Jack", "John", "Sam", "Aaron", "Charlie", "Ellis", "Nick", "Francis", "Louis")) +GLOBAL_LIST_INIT(first_names_female_dutch, list("Chelsea", "Mira", "Jessica", "Catherine", "Eliza", "Emma", "Ashley", "Annie", "Alicia", "Miranda", "Ellen")) + +GLOBAL_LIST_INIT(monkey_names, list("Abu", "Aldo", "Bear", "Bingo", "Clyde", "Crystal", "Gordo", "George", "Koko", "Marcel", "Nim", "Rafiki", "Spike", "Banana", "Boots", "Bubbles", "Smiley", "Winston")) + +GLOBAL_LIST_INIT(weapon_surnames, list("Adze", "Axe", "Bagh Nakha", "Bo", "Bola", "Bow", "Bowman", "Cannon", "Carbine", "Cestus", "Club", "Culverin", "Dagger", "Dao", "Derringer", "Dha", "Dussack", "Emeici", "Falchion", "Fan", "Flyssa", "Gauntlet", "Hammer", "Halberd", "Harquebus", "Hatchet", "Hwando", "Katar", "Kampilan", "Knuckles", "Lance", "Lancer", "Larim", "Maduvu", "Mace", "Maru", "Mauser", "Messer", "Mine", "Mubucae", "Nyepel", "Onager", "Pata", "Pike", "Ram", "Saber", "Seax", "Shamsir", "Sickle", "Sling", "Spear", "Spears", "Staff", "Sword", "Tekko")) diff --git a/code/_globalvars/lists/object_lists.dm b/code/_globalvars/lists/object_lists.dm index 3a417625538b..5cfd0653c24a 100644 --- a/code/_globalvars/lists/object_lists.dm +++ b/code/_globalvars/lists/object_lists.dm @@ -23,11 +23,10 @@ GLOBAL_LIST_EMPTY_TYPED(disposal_retrieval_list, /obj/structure/disposaloutlet/r GLOBAL_LIST_EMPTY_TYPED(disposalpipe_up_list, /obj/structure/disposalpipe/up/almayer) GLOBAL_LIST_EMPTY_TYPED(disposalpipe_down_list, /obj/structure/disposalpipe/down/almayer) -GLOBAL_LIST_EMPTY_TYPED(hijack_bustable_windows, /obj/structure/window) -GLOBAL_LIST_EMPTY_TYPED(hijack_deletable_windows, /obj/structure/machinery/door/window/ultra) -GLOBAL_LIST_EMPTY_TYPED(hijack_bustable_ladders, /obj/structure/ladder/fragile_almayer) - GLOBAL_LIST_EMPTY_TYPED(all_multi_vehicles, /obj/vehicle/multitile) GLOBAL_LIST_EMPTY_TYPED(lifeboat_almayer_docks, /obj/docking_port/stationary/lifeboat_dock) GLOBAL_LIST_EMPTY_TYPED(lifeboat_doors, /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor) + +GLOBAL_LIST_EMPTY_TYPED(teleporters, /datum/teleporter) +GLOBAL_LIST_EMPTY(teleporters_by_id) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 646b8ec2c854..0b7a4af0f05f 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -1,3 +1,89 @@ +GLOBAL_VAR_INIT(game_year, 2182) + +GLOBAL_VAR_INIT(ooc_allowed, TRUE) +GLOBAL_VAR_INIT(looc_allowed, TRUE) +GLOBAL_VAR_INIT(dsay_allowed, TRUE) +GLOBAL_VAR_INIT(dooc_allowed, TRUE) +GLOBAL_VAR_INIT(dlooc_allowed, FALSE) + +GLOBAL_VAR_INIT(enter_allowed, TRUE) + +GLOBAL_LIST_EMPTY(admin_log) +GLOBAL_LIST_EMPTY(asset_log) + +// multiplier for watts per tick <> cell storage (eg: 0.02 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) +//It's a conversion constant. power_used*CELLRATE = charge_provided, or charge_used/CELLRATE = power_provided +#define CELLRATE 0.006 + +// Cap for how fast cells charge, as a percentage-per-tick (0.01 means cellcharge is capped to 1% per second) +#define CHARGELEVEL 0.001 + +GLOBAL_VAR(VehicleElevatorConsole) +GLOBAL_VAR(VehicleGearConsole) + +//Spawnpoints. +GLOBAL_LIST_EMPTY(fallen_list) +/// This is for dogtags placed on crosses- they will show up at the end-round memorial. +GLOBAL_LIST_EMPTY(fallen_list_cross) + +GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) +GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) +GLOBAL_LIST_INIT(reverse_dir, list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63)) + + + +GLOBAL_VAR(join_motd) +GLOBAL_VAR(current_tms) + +GLOBAL_LIST_INIT(BorgWireColorToFlag, RandomBorgWires()) +GLOBAL_LIST(BorgIndexToFlag) +GLOBAL_LIST(BorgIndexToWireColor) +GLOBAL_LIST(BorgWireColorToIndex) +GLOBAL_LIST_INIT(AAlarmWireColorToFlag, RandomAAlarmWires()) +GLOBAL_LIST(AAlarmIndexToFlag) +GLOBAL_LIST(AAlarmIndexToWireColor) +GLOBAL_LIST(AAlarmWireColorToIndex) + +/// 3 minutes in the station. +#define shuttle_time_in_station 3 MINUTES +/// 10 minutes to arrive. +#define shuttle_time_to_arrive 10 MINUTES + + // For FTP requests. (i.e. downloading runtime logs.) + // However it'd be ok to use for accessing attack logs and such too, which are even laggier. +GLOBAL_VAR_INIT(fileaccess_timer, 0) + +// Reference list for disposal sort junctions. Filled up by sorting junction's New() +GLOBAL_LIST_EMPTY(tagger_locations) + +//added for Xenoarchaeology, might be useful for other stuff +GLOBAL_LIST_INIT(alphabet_uppercase, list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")) +GLOBAL_LIST_INIT(alphabet_lowercase, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")) + +GLOBAL_LIST_INIT(greek_letters, list("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omnicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")) +GLOBAL_LIST_INIT(nato_phonetic_alphabet, list("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliett", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu")) + +//Used for autocall procs on ERT +GLOBAL_VAR_INIT(distress_cancel, FALSE) +GLOBAL_VAR_INIT(destroy_cancel, FALSE) + +// Which lobby art is on display +// This is updated by the lobby art turf when it initializes +GLOBAL_VAR_INIT(displayed_lobby_art, -1) + +// Last global ID that was assigned to a mob (for round recording purposes) +GLOBAL_VAR_INIT(last_mob_gid, 0) + +GLOBAL_LIST_INIT(almayer_ship_sections, list( + "Upper deck Foreship", + "Upper deck Midship", + "Upper deck Aftship", + "Lower deck Foreship", + "Lower deck Midship", + "Lower deck Aftship" +)) + + GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag) /// Global performance feature toggle flags @@ -14,8 +100,24 @@ GLOBAL_LIST_INIT(pill_icon_mappings, map_pill_icons()) /// In-round override to default OOC color GLOBAL_VAR(ooc_color_override) +// tacmap cooldown for xenos and marines +GLOBAL_VAR_INIT(uscm_canvas_cooldown, 0) +GLOBAL_VAR_INIT(xeno_canvas_cooldown, 0) + +// getFlatIcon cooldown for xenos and marines +GLOBAL_VAR_INIT(uscm_flatten_map_icon_cooldown, 0) +GLOBAL_VAR_INIT(xeno_flatten_map_icon_cooldown, 0) + +// latest unannounced flat tacmap for xenos and marines +GLOBAL_VAR(uscm_unannounced_map) +GLOBAL_VAR(xeno_unannounced_map) + +//global tacmaps for action button access +GLOBAL_DATUM_INIT(uscm_tacmap_status, /datum/tacmap/drawing/status_tab_view, new) +GLOBAL_DATUM_INIT(xeno_tacmap_status, /datum/tacmap/drawing/status_tab_view/xeno, new) + /// List of roles that can be setup for each gamemode -GLOBAL_LIST_INIT(gamemode_roles, list()) +GLOBAL_LIST_EMPTY(gamemode_roles) GLOBAL_VAR_INIT(minimum_exterior_lighting_alpha, 255) @@ -30,3 +132,10 @@ GLOBAL_VAR_INIT(time_offset, setup_offset()) /// The last count of possible candidates in the xeno larva queue (updated via get_alien_candidates) GLOBAL_VAR(xeno_queue_candidate_count) + +//Coordinate obsfucator +//Used by the rangefinders and linked systems to prevent coords collection/prefiring +/// A number between -500 and 500. +GLOBAL_VAR(obfs_x) +/// A number between -500 and 500. +GLOBAL_VAR(obfs_y) diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index dd7a528bb8a6..6504db0d9f0c 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -94,6 +94,11 @@ Quick adjacency (to turf): /obj/item/Adjacent(atom/neighbor, recurse = 1) if(neighbor == loc || (loc && neighbor == loc.loc)) return TRUE + + // Internal storages have special relationships with the object they are connected to and we still want two depth adjacency for storages + if(istype(loc?.loc, /obj/item/storage/internal) && recurse > 0) + return loc.loc.Adjacent(neighbor, recurse) + if(issurface(loc)) return loc.Adjacent(neighbor, recurse) //Surfaces don't count as storage depth. else if(istype(loc, /obj/item)) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 3b8ba26c07e9..b99d52086e36 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -375,7 +375,7 @@ tX = tX[1] var/shiftX = C.pixel_x / world.icon_size var/shiftY = C.pixel_y / world.icon_size - var/list/actual_view = getviewsize(C ? C.view : world_view_size) + var/list/actual_view = getviewsize(C ? C.view : GLOB.world_view_size) tX = Clamp(origin.x + text2num(tX) + shiftX - round(actual_view[1] / 2) - 1, 1, world.maxx) tY = Clamp(origin.y + text2num(tY) + shiftY - round(actual_view[2] / 2) - 1, 1, world.maxy) return locate(tX, tY, tZ) diff --git a/code/_onclick/click_hold.dm b/code/_onclick/click_hold.dm index f65dd33c2eea..996f7ed2bf3b 100644 --- a/code/_onclick/click_hold.dm +++ b/code/_onclick/click_hold.dm @@ -94,3 +94,12 @@ // Add the hovered atom to the trace LAZYADD(mouse_trace_history, over_obj) + +/client/MouseDrop(datum/over_object, datum/src_location, over_location, src_control, over_control, params) + . = ..() + + if(src_location) + SEND_SIGNAL(src_location, COMSIG_ATOM_DROPPED_ON, over_object, src) + + if(over_object) + SEND_SIGNAL(over_object, COMSIG_ATOM_DROP_ON, src_location, src) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index c6b642974881..22a24e022a3f 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -9,7 +9,7 @@ "1:2,3:4" is the square (1,3) with pixel offsets (+2, +4); slightly right and slightly above the turf grid. Pixel offsets are used so you don't perfectly hide the turf under them, that would be crappy. - The size of the user's screen is defined by client.view (indirectly by world_view_size), in our case "15x15". + The size of the user's screen is defined by client.view (indirectly by GLOB.world_view_size), in our case "15x15". Therefore, the top right corner (except during admin shenanigans) is at "15,15" */ diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index a6754747a019..a99129d09bcd 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -48,6 +48,14 @@ var/mob/dead/observer/G = usr G.reenter_corpse() +/atom/movable/screen/ghost/toggle_huds + name = "Toggle HUDs" + icon_state = "ghost_hud_toggle" + +/atom/movable/screen/ghost/toggle_huds/Click() + var/client/client = usr.client + client.toggle_ghost_hud() + /datum/hud/ghost/New(mob/owner, ui_style='icons/mob/hud/human_white.dmi', ui_color, ui_alpha = 230) . = ..() var/atom/movable/screen/using @@ -68,6 +76,9 @@ using.screen_loc = ui_ghost_slot4 static_inventory += using + using = new /atom/movable/screen/ghost/toggle_huds() + using.screen_loc = ui_ghost_slot5 + static_inventory += using /datum/hud/ghost/show_hud(version = 0, mob/viewmob) // don't show this HUD if observing; show the HUD of the observee diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 215e228fdd9d..f5f61424daac 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -230,6 +230,7 @@ hud_version = display_hud_version persistent_inventory_update(screenmob) mymob.update_action_buttons(TRUE) + reorganize_alerts(screenmob) mymob.reload_fullscreens() // ensure observers get an accurate and up-to-date view diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index d514bdedfcdf..37a858d76699 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -116,6 +116,10 @@ return var/mob/living/carbon/human/H = mymob var/mob/screenmob = viewer || H + + if(!screenmob?.client) + return + if(!gear.len) inventory_shown = FALSE return //species without inv slots don't show items. @@ -181,6 +185,9 @@ var/mob/living/carbon/human/H = mymob var/mob/screenmob = viewer || H + if(!screenmob?.client) + return + if(H.hud_used) if(H.hud_used.hud_shown) if(H.s_store) diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index cfc6c4d034fb..4a23ebd882d3 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -34,6 +34,12 @@ GLOBAL_LIST_EMPTY(radial_menus) /atom/movable/screen/radial/slice/clicked(mob/user) + if(QDELETED(src)) + return + + if(!parent) + CRASH("clicked() called on a radial slice with a null parent while not deleted/deleting") + if(user.client == parent.current_user) if(next_page) parent.next_page() diff --git a/code/_onclick/hud/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm index 91c0e24fae1f..d4181d7e9953 100644 --- a/code/_onclick/hud/rendering/plane_master.dm +++ b/code/_onclick/hud/rendering/plane_master.dm @@ -149,6 +149,14 @@ remove_filter("AO") add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA")) +/atom/movable/screen/plane_master/nvg_plane + name = "NVG plane" + plane = NVG_PLANE + render_relay_plane = RENDER_PLANE_GAME + blend_mode_override = BLEND_MULTIPLY + //icon = 'icons/mob/hud/screen1.dmi' + //icon_state = "noise" + /atom/movable/screen/plane_master/fullscreen name = "fullscreen alert plane" plane = FULLSCREEN_PLANE diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index aecec79a8d3f..9af7e4f1db1c 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -30,6 +30,10 @@ /atom/movable/screen/inventory var/slot_id //The indentifier for the slot. It has nothing to do with ID cards. +/atom/movable/screen/inventory/Initialize(mapload, ...) + . = ..() + + RegisterSignal(src, COMSIG_ATOM_DROPPED_ON, PROC_REF(handle_dropped_on)) /atom/movable/screen/close name = "close" @@ -325,6 +329,22 @@ return 1 return 0 +/atom/movable/screen/inventory/proc/handle_dropped_on(atom/dropped_on, atom/dropping, client/user) + SIGNAL_HANDLER + + if(slot_id != WEAR_L_HAND && slot_id != WEAR_R_HAND) + return + + if(!isstorage(dropping.loc)) + return + + if(!user.mob.Adjacent(dropping)) + return + + var/obj/item/storage/store = dropping.loc + store.remove_from_storage(dropping, get_turf(user.mob)) + user.mob.put_in_active_hand(dropping) + /atom/movable/screen/throw_catch name = "throw/catch" icon = 'icons/mob/hud/human_midnight.dmi' @@ -503,19 +523,19 @@ if(user.observed_xeno == user.tracked_marker) user.overwatch(user.tracked_marker, TRUE) //passing in an obj/effect into a proc that expects mob/xenomorph B) else - to_chat(user, SPAN_XENONOTICE("You psychically observe the [user.tracked_marker.mark_meaning.name] resin mark in [get_area_name(user.tracked_marker)].")) + to_chat(user, SPAN_XENONOTICE("We psychically observe the [user.tracked_marker.mark_meaning.name] resin mark in [get_area_name(user.tracked_marker)].")) user.overwatch(user.tracked_marker) //this is so scuffed, sorry if this causes errors return if(mods["alt"] && user.tracked_marker) user.stop_tracking_resin_mark() return if(!user.hive) - to_chat(user, SPAN_WARNING("You don't belong to a hive!")) + to_chat(user, SPAN_WARNING("We don't belong to a hive!")) return FALSE if(!user.hive.living_xeno_queen) - to_chat(user, SPAN_WARNING("Without a queen your psychic link is broken!")) + to_chat(user, SPAN_WARNING("Without a queen our psychic link is broken!")) return FALSE - if(user.burrow || user.is_mob_incapacitated() || user.buckled) + if(HAS_TRAIT(user, TRAIT_ABILITY_BURROWED) || user.is_mob_incapacitated() || user.buckled) return FALSE user.hive.mark_ui.update_all_data() user.hive.mark_ui.open_mark_menu(user) @@ -531,10 +551,10 @@ return FALSE if(mods["shift"]) var/area/current_area = get_area(user) - to_chat(user, SPAN_NOTICE("You are currently at: [current_area.name].")) + to_chat(user, SPAN_NOTICE("We are currently at: [current_area.name].")) return if(!user.hive) - to_chat(user, SPAN_WARNING("You don't belong to a hive!")) + to_chat(user, SPAN_WARNING("We don't belong to a hive!")) return FALSE if(mods["alt"]) var/list/options = list() @@ -561,9 +581,9 @@ track_state = options[selected] return if(!user.hive.living_xeno_queen) - to_chat(user, SPAN_WARNING("Your hive doesn't have a living queen!")) + to_chat(user, SPAN_WARNING("Our hive doesn't have a living queen!")) return FALSE - if(user.burrow || user.is_mob_incapacitated() || user.buckled) + if(HAS_TRAIT(user, TRAIT_ABILITY_BURROWED) || user.is_mob_incapacitated() || user.buckled) return FALSE user.overwatch(user.hive.living_xeno_queen) diff --git a/code/_onclick/human.dm b/code/_onclick/human.dm index cb71e27f9d1a..b09c26ffb92f 100644 --- a/code/_onclick/human.dm +++ b/code/_onclick/human.dm @@ -64,7 +64,7 @@ /mob/living/carbon/human/UnarmedAttack(atom/A, proximity, click_parameters) - if(lying) //No attacks while laying down + if(body_position == LYING_DOWN) //No attacks while laying down return 0 var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines @@ -88,7 +88,7 @@ /atom/proc/attack_hand(mob/user) return -/mob/living/carbon/human/MouseDrop_T(atom/dropping, mob/user) +/mob/living/carbon/human/MouseDrop_T(atom/dropping, mob/living/user) if(user != src) return . = ..() @@ -99,7 +99,7 @@ if(xeno.stat != DEAD) // If the Xeno is alive, fight back var/mob/living/carbon/carbon_user = user if(!carbon_user || !carbon_user.ally_of_hivenumber(xeno.hivenumber)) - user.KnockDown(rand(xeno.caste.tacklestrength_min, xeno.caste.tacklestrength_max)) + carbon_user.KnockDown(rand(xeno.caste.tacklestrength_min, xeno.caste.tacklestrength_max)) playsound(user.loc, 'sound/weapons/pierce.ogg', 25, TRUE) user.visible_message(SPAN_WARNING("\The [user] tried to unstrap \the [back_item] from [xeno] but instead gets a tail swipe to the head!")) return @@ -153,6 +153,4 @@ target.Move(user.loc, get_dir(target.loc, user.loc)) target.update_transform(TRUE) - target.update_canmove() - diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c6052da33199..8d77920a59cc 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -3,6 +3,7 @@ /obj/item/proc/attack_self(mob/user) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK_SELF, src) if(flags_item & CAN_DIG_SHRAPNEL && ishuman(user)) dig_out_shrapnel(user) @@ -11,6 +12,7 @@ /atom/proc/attackby(obj/item/W, mob/living/user,list/mods) if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, mods) & COMPONENT_NO_AFTERATTACK) return TRUE + SEND_SIGNAL(user, COMSIG_MOB_PARENT_ATTACKBY, src, W) return FALSE /atom/movable/attackby(obj/item/W, mob/living/user) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index f87778355755..21dd804f09c4 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -29,7 +29,7 @@ if(ismob(target) || isVehicle(target)) if(isxeno(target) && SSticker.mode.check_xeno_late_join(src)) //if it's a xeno and all checks are alright, we are gonna try to take their body var/mob/living/carbon/xenomorph/xeno = target - if(xeno.stat == DEAD || is_admin_level(xeno.z) || xeno.aghosted) + if(xeno.stat == DEAD || should_block_game_interaction(xeno) || xeno.aghosted) to_chat(src, SPAN_WARNING("You cannot join as [xeno].")) do_observe(xeno) return FALSE diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 9c9784286d09..0bfa0a759287 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -13,7 +13,7 @@ var/obj/structure/S = A S.do_climb(src, mods) return TRUE - else if(!(isitem(A) && get_dist(src, A) <= 1) && client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_SWAP_HANDS) + else if(!(isitem(A) && get_dist(src, A) <= 1) && (client && (client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_SWAP_HANDS))) swap_hand() return TRUE diff --git a/code/_onclick/ventcrawl.dm b/code/_onclick/ventcrawl.dm index b079cffe2afe..e1877dcbd0a7 100644 --- a/code/_onclick/ventcrawl.dm +++ b/code/_onclick/ventcrawl.dm @@ -7,7 +7,7 @@ return for(var/atom/A as anything in src) if(!(is_type_in_list(A, canEnterVentWith))) - to_chat(src, SPAN_WARNING("You can't be carrying items or have items equipped when vent crawling!")) + to_chat(src, SPAN_WARNING("We cannot be carrying items or have items equipped when vent crawling!")) return FALSE /mob/living/click(atom/A, list/mods) @@ -25,7 +25,7 @@ if(Adjacent(V) && !V.welded) pipes |= V if(!pipes || !pipes.len) - to_chat(src, SPAN_WARNING("There are no pipes that you can ventcrawl into within range!")) + to_chat(src, SPAN_WARNING("There are no pipes that we can ventcrawl into within range!")) return if(pipes.len == 1) pipe = pipes[1] @@ -42,11 +42,11 @@ /mob/living/proc/handle_ventcrawl(atom/clicked_on) if(stat) - to_chat(src, SPAN_WARNING("You must be conscious to do this!")) + to_chat(src, SPAN_WARNING("We must be conscious to do this!")) return - if(lying) - to_chat(src, SPAN_WARNING("You can't vent crawl while you're stunned!")) + if(is_mob_incapacitated()) + to_chat(src, SPAN_WARNING("We can't vent crawl while we are stunned!")) return var/obj/structure/pipes/vents/vent_found @@ -59,11 +59,11 @@ vent_found = locate(/obj/structure/pipes/vents/) in range(1, src) if(!vent_found) - to_chat(src, SPAN_WARNING("You must be standing on or beside an air vent to enter it.")) + to_chat(src, SPAN_WARNING("We must be standing on or beside an air vent to enter it.")) return if(vent_found.welded) - to_chat(src, SPAN_WARNING("This vent is closed off, you cannot climb through it.")) + to_chat(src, SPAN_WARNING("This vent is closed off, we cannot climb through it.")) return if(!ventcrawl_carry()) @@ -78,17 +78,17 @@ if(length(vent_found.connected_to)) if(src.action_busy) - to_chat(src, SPAN_WARNING("You are already busy with something.")) + to_chat(src, SPAN_WARNING("We are already busy with something.")) return - visible_message(SPAN_NOTICE("[src] begins climbing into [vent_found]."), SPAN_NOTICE("You begin climbing into [vent_found].")) + visible_message(SPAN_NOTICE("[src] begins climbing into [vent_found]."), SPAN_NOTICE("We begin climbing into [vent_found].")) vent_found.animate_ventcrawl() if(!do_after(src, 45, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) vent_found.animate_ventcrawl_reset() return updatehealth() - if(stat || stunned || dazed || knocked_down || lying || health < 0 || !client || !ventcrawl_carry()) + if(is_mob_incapacitated(src) || health < 0 || !client || !ventcrawl_carry()) vent_found.animate_ventcrawl_reset() return diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm index 62d612790930..ad4ba9d72546 100644 --- a/code/_onclick/xeno.dm +++ b/code/_onclick/xeno.dm @@ -3,7 +3,7 @@ */ /mob/living/carbon/xenomorph/UnarmedAttack(atom/target, proximity, click_parameters, tile_attack = FALSE, ignores_resin = FALSE) - if(lying || burrow) //No attacks while laying down + if(body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) //No attacks while laying down return FALSE var/mob/alt @@ -21,7 +21,7 @@ if (!L.is_xeno_grabbable() || L == src) //Xenos never attack themselves. continue - if (L.lying) + if (L.body_position == LYING_DOWN) alt = L continue target = L @@ -73,10 +73,10 @@ playsound(loc, 'sound/weapons/alien_claw_swipe.ogg', 10, 1) //Quiet to limit spam/nuisance. if(firepatted) src.visible_message(SPAN_DANGER("\The [src] pats at the fire!"), \ - SPAN_DANGER("You pat the fire!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We pat the fire!"), null, 5, CHAT_TYPE_XENO_COMBAT) else src.visible_message(SPAN_DANGER("\The [src] swipes at \the [target]!"), \ - SPAN_DANGER("You swipe at \the [target]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SPAN_DANGER("We swipe at \the [target]!"), null, 5, CHAT_TYPE_XENO_COMBAT) return TRUE /mob/living/carbon/xenomorph/RangedAttack(atom/A) @@ -111,7 +111,7 @@ so that it doesn't double up on the delays) so that it applies the delay immedia if(alt_pressed && shift_pressed) if(istype(target, /mob/living/carbon/xenomorph)) var/mob/living/carbon/xenomorph/xeno = target - if(!QDELETED(xeno) && xeno.stat != DEAD && !is_admin_level(xeno.z) && xeno.check_state(TRUE) && xeno.hivenumber == hivenumber) + if(!QDELETED(xeno) && xeno.stat != DEAD && !should_block_game_interaction(xeno) && xeno.check_state(TRUE) && xeno.hivenumber == hivenumber) overwatch(xeno) next_move = world.time + 3 // Some minimal delay so this isn't crazy spammy return TRUE diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index e8b010669c0e..147f57fcb1aa 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -20,7 +20,8 @@ var/policy var/static/regex/ic_filter_regex - var/list/fail_to_topic_whitelisted_ips + + var/is_loaded = FALSE /datum/controller/configuration/proc/admin_reload() if(IsAdminAdvancedProcCall()) @@ -53,7 +54,8 @@ loadmaplist(CONFIG_GROUND_MAPS_FILE, GROUND_MAP) loadmaplist(CONFIG_SHIP_MAPS_FILE, SHIP_MAP) LoadChatFilter() - LoadTopicRateWhitelist() + + is_loaded = TRUE if(Master) Master.OnConfigLoad() @@ -333,18 +335,3 @@ /datum/controller/configuration/proc/DelayedMessageAdmins(text) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), text), 0) -/datum/controller/configuration/proc/LoadTopicRateWhitelist() - LAZYINITLIST(fail_to_topic_whitelisted_ips) - if(!fexists("[directory]/topic_rate_limit_whitelist.txt")) - log_config("Error 404: topic_rate_limit_whitelist.txt not found!") - return - - log_config("Loading config file topic_rate_limit_whitelist.txt...") - - for(var/line in file2list("[directory]/topic_rate_limit_whitelist.txt")) - if(!line) - continue - if(findtextEx(line, "#", 1, 2)) - continue - - fail_to_topic_whitelisted_ips[line] = 1 diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 743f9be9fec0..741862b5d65d 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -127,3 +127,8 @@ min_val = 1 config_entry_value = 450 integer = TRUE + +/datum/config_entry/number/whiskey_required_players + min_val = 0 + config_entry_value = 140 + integer = TRUE diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index cc3d00fd951b..385cbcb8d446 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -627,3 +627,5 @@ This maintains a list of ip addresses that are able to bypass topic filtering. protection = CONFIG_ENTRY_HIDDEN|CONFIG_ENTRY_LOCKED /datum/config_entry/flag/guest_ban + +/datum/config_entry/flag/auto_profile diff --git a/code/controllers/mc/admin.dm b/code/controllers/mc/admin.dm index 78eb5c5b5a5a..8c5060864747 100644 --- a/code/controllers/mc/admin.dm +++ b/code/controllers/mc/admin.dm @@ -96,8 +96,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/statclick) set category = "Debug.Controllers" set name = "Debug Role Authority" - if(!RoleAuthority) + if(!GLOB.RoleAuthority) to_chat(usr, "RoleAuthority not found!") return - debug_variables(RoleAuthority) + debug_variables(GLOB.RoleAuthority) message_admins("Admin [key_name_admin(usr)] is debugging the Role Authority.") diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index e54d045baff4..35031cf7334f 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -28,12 +28,12 @@ shuttle.location = 1 shuttle.warmup_time = 1 shuttle.move_time = ELEVATOR_TRANSIT_DURATION - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/supply/dock) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/supply/station) shuttle.area_station = A break @@ -41,7 +41,7 @@ shuttles["Supply"] = shuttle process_shuttles += shuttle - supply_controller.shuttle = shuttle + GLOB.supply_controller.shuttle = shuttle //---ELEVATOR---// // Elevator I @@ -50,17 +50,17 @@ shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator1/underground) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator1/ground) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator1/transit) shuttle.area_transition = A break @@ -76,17 +76,17 @@ shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator2/underground) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator2/ground) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator2/transit) shuttle.area_transition = A break @@ -102,17 +102,17 @@ shuttle.location = 0 shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator3/underground) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator3/ground) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator3/transit) shuttle.area_transition = A break @@ -127,17 +127,17 @@ shuttle.location = 0 shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator4/underground) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator4/ground) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/elevator4/transit) shuttle.area_transition = A break @@ -152,17 +152,17 @@ shuttle.location = 0 shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans1/omega) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans1/alpha) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans1/away) shuttle.area_transition = A break @@ -178,17 +178,17 @@ shuttle.location = 0 shuttle.warmup_time = 10 SECONDS shuttle.recharge_time = ELEVATOR_RECHARGE - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans2/omega) shuttle.area_offsite = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans2/alpha) shuttle.area_station = A break - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.type == /area/shuttle/tri_trans2/away) shuttle.area_transition = A break @@ -216,7 +216,7 @@ //search for the controllers, if we have one. if(dock_controller_map.len) - for(var/obj/structure/machinery/embedded_controller/radio/C in machines) //only radio controllers are supported at the moment + for(var/obj/structure/machinery/embedded_controller/radio/C in GLOB.machines) //only radio controllers are supported at the moment if (istype(C.program, /datum/computer/file/embedded_program/docking)) if(dock_controller_map[C.id_tag]) shuttle = dock_controller_map[C.id_tag] diff --git a/code/controllers/subsystem/admin.dm b/code/controllers/subsystem/admin.dm deleted file mode 100644 index 8aab64b04881..000000000000 --- a/code/controllers/subsystem/admin.dm +++ /dev/null @@ -1,40 +0,0 @@ -SUBSYSTEM_DEF(admin) - name = "Admin" - wait = 5 MINUTES - flags = SS_NO_INIT | SS_KEEP_TIMING - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - var/list/currentrun = list() - var/times_repeated = 0 - -/datum/controller/subsystem/admin/stat_entry(msg) - msg = "P:[unansweredAhelps.len]" - return ..() - -/datum/controller/subsystem/admin/fire(resumed = FALSE) - if (!resumed) - currentrun = unansweredAhelps.Copy() - - if(!currentrun.len) - times_repeated = 0 - return - - var/msg = "Unheard Ahelps (Repeated [times_repeated] times):" - - while (currentrun.len) - var/ahelp_msg = currentrun[currentrun.len] - currentrun.len-- - - if (!ahelp_msg) - continue - - msg += unansweredAhelps[ahelp_msg] + "\n" - - if (MC_TICK_CHECK) - return - - for(var/client/C in GLOB.admins) - if(C && C.admin_holder && (C.admin_holder.rights & R_MOD)) - if(C.prefs.toggles_sound & SOUND_ADMINHELP) - sound_to(C, 'sound/effects/adminhelp_new.ogg') - to_chat(C, msg) - times_repeated++ diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 23da8cc8c9eb..3d544dca1390 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -131,7 +131,7 @@ SUBSYSTEM_DEF(atoms) switch(result) if (INITIALIZE_HINT_NORMAL) - // pass + pass() if(INITIALIZE_HINT_LATELOAD) if(arguments[1]) //mapload late_loaders += A diff --git a/code/controllers/subsystem/cellauto.dm b/code/controllers/subsystem/cellauto.dm index bcdd9d241ccf..b543ddd43c26 100644 --- a/code/controllers/subsystem/cellauto.dm +++ b/code/controllers/subsystem/cellauto.dm @@ -1,4 +1,4 @@ -var/list/cellauto_cells = list() +GLOBAL_LIST_EMPTY(cellauto_cells) SUBSYSTEM_DEF(cellauto) name = "Cellular Automata" @@ -9,12 +9,12 @@ SUBSYSTEM_DEF(cellauto) var/list/currentrun = list() /datum/controller/subsystem/cellauto/stat_entry(msg) - msg = "C: [cellauto_cells.len]" + msg = "C: [GLOB.cellauto_cells.len]" return ..() /datum/controller/subsystem/cellauto/fire(resumed = FALSE) if (!resumed) - currentrun = cellauto_cells.Copy() + currentrun = GLOB.cellauto_cells.Copy() while(currentrun.len) var/datum/automata_cell/C = currentrun[currentrun.len] diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index a5c5271c8d7d..b8b037c33381 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -66,77 +66,83 @@ Frequency range: 1200 to 1600 Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking) */ -var/const/MIN_FREE_FREQ = 1201 // ------------------------------------------------- +#define MIN_FREE_FREQ 1201 // ------------------------------------------------- //Misc channels -var/const/YAUT_FREQ = 1205 -var/const/DUT_FREQ = 1210 -var/const/CMB_FREQ = 1220 -var/const/VAI_FREQ = 1215 -var/const/RMC_FREQ = 1216 +#define YAUT_FREQ 1205 +#define DUT_FREQ 1210 +#define VAI_FREQ 1215 +#define RMC_FREQ 1216 +#define CMB_FREQ 1220 //WY Channels (1230-1249) -var/const/WY_FREQ = 1231 -var/const/PMC_CMD_FREQ = 1232 -var/const/PMC_FREQ = 1233 -var/const/PMC_ENGI_FREQ = 1234 -var/const/PMC_MED_FREQ = 1235 -var/const/PMC_CCT_FREQ = 1236 -var/const/WY_WO_FREQ = 1239 +#define WY_FREQ 1231 +#define PMC_CMD_FREQ 1232 +#define PMC_FREQ 1233 +#define PMC_ENGI_FREQ 1234 +#define PMC_MED_FREQ 1235 +#define PMC_CCT_FREQ 1236 +#define WY_WO_FREQ 1239 //UPP Channels (1250-1269) -var/const/UPP_FREQ = 1251 -var/const/UPP_CMD_FREQ = 1252 -var/const/UPP_ENGI_FREQ = 1253 -var/const/UPP_MED_FREQ = 1254 -var/const/UPP_CCT_FREQ = 1255 -var/const/UPP_KDO_FREQ = 1259 +#define UPP_FREQ 1251 +#define UPP_CMD_FREQ 1252 +#define UPP_ENGI_FREQ 1253 +#define UPP_MED_FREQ 1254 +#define UPP_CCT_FREQ 1255 +#define UPP_KDO_FREQ 1259 //CLF Channels (1270-1289) -var/const/CLF_FREQ = 1271 -var/const/CLF_CMD_FREQ = 1272 -var/const/CLF_ENGI_FREQ = 1273 -var/const/CLF_MED_FREQ = 1274 -var/const/CLF_CCT_FREQ = 1275 +#define CLF_FREQ 1271 +#define CLF_CMD_FREQ 1272 +#define CLF_ENGI_FREQ 1273 +#define CLF_MED_FREQ 1274 +#define CLF_CCT_FREQ 1275 -var/const/MIN_FREQ = 1460 // ------------------------------------------------------ -var/const/PUB_FREQ = 1461 -var/const/MAX_FREQ = 1468 // ------------------------------------------------------ +//Listening Bugs (1290-1291) +#define BUG_A_FREQ 1290 +#define BUG_B_FREQ 1291 + +//General Radio +#define MIN_FREQ 1460 // ------------------------------------------------------ +#define PUB_FREQ 1461 +#define MAX_FREQ 1468 // ------------------------------------------------------ //USCM High Command (USCM 1470-1499) -var/const/HC_FREQ = 1471 -var/const/SOF_FREQ = 1472 -var/const/PVST_FREQ = 1473 +#define HC_FREQ 1471 +#define SOF_FREQ 1472 +#define PVST_FREQ 1473 +#define CBRN_FREQ 1474 //Ship department channels -var/const/SENTRY_FREQ = 1480 -var/const/COMM_FREQ = 1481 -var/const/MED_FREQ = 1482 -var/const/ENG_FREQ = 1483 -var/const/SEC_FREQ = 1484 -var/const/REQ_FREQ = 1485 -var/const/JTAC_FREQ = 1486 -var/const/INTEL_FREQ = 1487 - -var/const/DS1_FREQ = 1488 -var/const/DS2_FREQ = 1489 +#define SENTRY_FREQ 1480 +#define COMM_FREQ 1481 +#define MED_FREQ 1482 +#define ENG_FREQ 1483 +#define SEC_FREQ 1484 +#define REQ_FREQ 1485 +#define JTAC_FREQ 1486 +#define INTEL_FREQ 1487 + +#define DS1_FREQ 1488 +#define DS2_FREQ 1489 //Marine Squad channels -var/const/ALPHA_FREQ = 1491 -var/const/BRAVO_FREQ = 1492 -var/const/CHARLIE_FREQ = 1493 -var/const/DELTA_FREQ = 1494 -var/const/ECHO_FREQ = 1495 -var/const/CRYO_FREQ = 1496 +#define ALPHA_FREQ 1491 +#define BRAVO_FREQ 1492 +#define CHARLIE_FREQ 1493 +#define DELTA_FREQ 1494 +#define ECHO_FREQ 1495 +#define CRYO_FREQ 1496 //Civilian channels -var/const/COLONY_FREQ = 1469 +#define COLONY_FREQ 1469 -var/const/AI_FREQ = 1500 +#define AI_FREQ 1500 -var/const/MAX_FREE_FREQ = 1599 // ------------------------------------------------- +#define MAX_FREE_FREQ 1599 // ------------------------------------------------- -var/list/radiochannels = list( +GLOBAL_LIST_INIT(radiochannels, list( RADIO_CHANNEL_YAUTJA = YAUT_FREQ, RADIO_CHANNEL_VAI = VAI_FREQ, RADIO_CHANNEL_CMB = CMB_FREQ, @@ -162,6 +168,7 @@ var/list/radiochannels = list( SQUAD_MARINE_5 = ECHO_FREQ, SQUAD_MARINE_CRYO = CRYO_FREQ, SQUAD_SOF = SOF_FREQ, + SQUAD_CBRN = CBRN_FREQ, RADIO_CHANNEL_ALAMO = DS1_FREQ, RADIO_CHANNEL_NORMANDY = DS2_FREQ, @@ -189,7 +196,10 @@ var/list/radiochannels = list( RADIO_CHANNEL_CLF_ENGI = CLF_ENGI_FREQ, RADIO_CHANNEL_CLF_MED = CLF_MED_FREQ, RADIO_CHANNEL_CLF_CCT = CLF_CCT_FREQ, -) + + RADIO_CHANNEL_BUG_A = BUG_A_FREQ, + RADIO_CHANNEL_BUG_B = BUG_B_FREQ, +)) // Response Teams #define ERT_FREQS list(VAI_FREQ, DUT_FREQ, YAUT_FREQ, CMB_FREQ, RMC_FREQ) @@ -203,6 +213,9 @@ var/list/radiochannels = list( // PMC Frequencies #define PMC_FREQS list(PMC_FREQ, PMC_CMD_FREQ, PMC_ENGI_FREQ, PMC_MED_FREQ, PMC_CCT_FREQ, WY_WO_FREQ, WY_FREQ) +//Listening Device Frequencies +#define BUG_FREQS list(BUG_A_FREQ, BUG_B_FREQ) + //Depts - used for colors in headset.dm, as well as deciding what the marine comms tower can listen into #define DEPT_FREQS list(COMM_FREQ, MED_FREQ, ENG_FREQ, SEC_FREQ, SENTRY_FREQ, ALPHA_FREQ, BRAVO_FREQ, CHARLIE_FREQ, DELTA_FREQ, ECHO_FREQ, CRYO_FREQ, REQ_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ) @@ -215,17 +228,17 @@ var/list/radiochannels = list( //This is done for performance, so we don't send signals to lots of machines unnecessarily. //This filter is special because devices belonging to default also receive signals sent to any other filter. -var/const/RADIO_DEFAULT = "radio_default" - -var/const/RADIO_TO_AIRALARM = "radio_airalarm" //air alarms -var/const/RADIO_FROM_AIRALARM = "radio_airalarm_rcvr" //devices interested in receiving signals from air alarms -var/const/RADIO_CHAT = "radio_telecoms" -var/const/RADIO_SIGNALS = "radio_signals" -var/const/RADIO_ATMOSIA = "radio_atmos" -var/const/RADIO_NAVBEACONS = "radio_navbeacon" -var/const/RADIO_AIRLOCK = "radio_airlock" -var/const/RADIO_MULEBOT = "radio_mulebot" -var/const/RADIO_MAGNETS = "radio_magnet" +#define RADIO_DEFAULT "radio_default" + +#define RADIO_TO_AIRALARM "radio_airalarm" //air alarms +#define RADIO_FROM_AIRALARM "radio_airalarm_rcvr" //devices interested in receiving signals from air alarms +#define RADIO_CHAT "radio_telecoms" +#define RADIO_SIGNALS "radio_signals" +#define RADIO_ATMOSIA "radio_atmos" +#define RADIO_NAVBEACONS "radio_navbeacon" +#define RADIO_AIRLOCK "radio_airlock" +#define RADIO_MULEBOT "radio_mulebot" +#define RADIO_MAGNETS "radio_magnet" //callback used by objects to react to incoming radio signals /obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param) @@ -262,10 +275,13 @@ SUBSYSTEM_DEF(radio) "[DELTA_FREQ]" = "deltaradio", "[ECHO_FREQ]" = "echoradio", "[CRYO_FREQ]" = "cryoradio", + "[CBRN_FREQ]" = "hcradio", "[SOF_FREQ]" = "hcradio", "[HC_FREQ]" = "hcradio", "[PVST_FREQ]" = "pvstradio", "[COLONY_FREQ]" = "deptradio", + "[BUG_A_FREQ]" = "airadio", + "[BUG_B_FREQ]" = "aiprivradio", ) /datum/controller/subsystem/radio/proc/add_object(obj/device as obj, new_frequency as num, filter = null as text|null) diff --git a/code/controllers/subsystem/disease.dm b/code/controllers/subsystem/disease.dm index 25200cce11ed..b98187ca252c 100644 --- a/code/controllers/subsystem/disease.dm +++ b/code/controllers/subsystem/disease.dm @@ -1,22 +1,19 @@ -var/list/active_diseases = list() - - SUBSYSTEM_DEF(disease) name = "Disease" wait = 2 SECONDS flags = SS_NO_INIT | SS_KEEP_TIMING priority = SS_PRIORITY_DISEASE - var/list/currentrun = list() + var/list/datum/disease/all_diseases = list() + var/list/datum/disease/currentrun = list() /datum/controller/subsystem/disease/stat_entry(msg) - msg = "P:[active_diseases.len]" + msg = "P:[all_diseases.len]" return ..() - /datum/controller/subsystem/disease/fire(resumed = FALSE) if (!resumed) - currentrun = active_diseases.Copy() + currentrun = all_diseases.Copy() while (currentrun.len) var/datum/disease/D = currentrun[currentrun.len] diff --git a/code/controllers/subsystem/fail_to_topic.dm b/code/controllers/subsystem/fail_to_topic.dm deleted file mode 100644 index 45674683a443..000000000000 --- a/code/controllers/subsystem/fail_to_topic.dm +++ /dev/null @@ -1,81 +0,0 @@ -SUBSYSTEM_DEF(fail_to_topic) - name = "Fail to Topic" - init_order = SS_INIT_FAIL_TO_TOPIC - flags = SS_BACKGROUND - runlevels = ALL - - var/list/rate_limiting = list() - var/list/fail_counts = list() - var/list/active_bans = list() - var/list/currentrun = list() - - var/rate_limit - var/max_fails - var/enabled = FALSE - -/datum/controller/subsystem/fail_to_topic/Initialize(timeofday) - rate_limit = ((CONFIG_GET(number/topic_rate_limit)) SECONDS) - max_fails = CONFIG_GET(number/topic_max_fails) - enabled = CONFIG_GET(flag/topic_enabled) - - if (world.system_type == UNIX && enabled) - enabled = FALSE - WARNING("fail_to_topic subsystem disabled. UNIX is not supported.") - return SS_INIT_NO_NEED - - if (!enabled) - can_fire = FALSE - return SS_INIT_NO_NEED - - return SS_INIT_SUCCESS - -/datum/controller/subsystem/fail_to_topic/fire(resumed = FALSE) - if(!resumed) - currentrun = rate_limiting.Copy() - //cache for sanic speed (lists are references anyways) - var/list/current_run = currentrun - - while(current_run.len) - var/ip = current_run[current_run.len] - var/last_attempt = current_run[ip] - current_run.len-- - - // last_attempt list housekeeping - if(world.time - last_attempt > rate_limit) - rate_limiting -= ip - fail_counts -= ip - - if(MC_TICK_CHECK) - return - -/datum/controller/subsystem/fail_to_topic/proc/IsRateLimited(ip) - if(!enabled) - return FALSE - - var/last_attempt = rate_limiting[ip] - - if (config.fail_to_topic_whitelisted_ips[ip]) - return FALSE - - if (active_bans[ip]) - return TRUE - - rate_limiting[ip] = world.time - - if (isnull(last_attempt)) - return FALSE - - if (world.time - last_attempt > rate_limit) - fail_counts -= ip - return FALSE - else - var/failures = fail_counts[ip] - - if (isnull(failures)) - fail_counts[ip] = 1 - return TRUE - else if (failures > max_fails) - return TRUE - else - fail_counts[ip] = failures + 1 - return TRUE diff --git a/code/controllers/subsystem/fast_machinery.dm b/code/controllers/subsystem/fast_machinery.dm deleted file mode 100644 index 8211b3b5e310..000000000000 --- a/code/controllers/subsystem/fast_machinery.dm +++ /dev/null @@ -1,27 +0,0 @@ -var/list/fast_machines = list() - - -SUBSYSTEM_DEF(fast_machinery) - name = "Fast Machinery" - wait = 0.7 SECONDS - priority = SS_PRIORITY_FAST_MACHINERY - flags = SS_NO_INIT - var/list/currentrun = list() - -/datum/controller/subsystem/fast_machinery/stat_entry(msg) - msg = "FP:[fast_machines.len]" - return ..() - -/datum/controller/subsystem/fast_machinery/fire(resumed = FALSE) - if(!resumed) - currentrun = fast_machines.Copy() - while(currentrun.len) - var/obj/structure/machinery/M = currentrun[currentrun.len] - currentrun.len-- - - if(QDELETED(M)) - continue - - M.process() - if(MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/fz_transitions.dm b/code/controllers/subsystem/fz_transitions.dm index fd41ce1ccb55..d12ab1358535 100644 --- a/code/controllers/subsystem/fz_transitions.dm +++ b/code/controllers/subsystem/fz_transitions.dm @@ -1,6 +1,6 @@ -var/list/projectors = list() -var/list/clones = list() -var/list/clones_t = list() +GLOBAL_LIST_EMPTY(projectors) +GLOBAL_LIST_EMPTY(clones) +GLOBAL_LIST_EMPTY(clones_t) SUBSYSTEM_DEF(fz_transitions) name = "Z-Transitions" @@ -10,18 +10,18 @@ SUBSYSTEM_DEF(fz_transitions) flags = SS_KEEP_TIMING /datum/controller/subsystem/fz_transitions/stat_entry(msg) - msg = "P:[projectors.len]|C:[clones.len]|T:[clones_t.len]" + msg = "P:[GLOB.projectors.len]|C:[GLOB.clones.len]|T:[GLOB.clones_t.len]" return ..() /datum/controller/subsystem/fz_transitions/Initialize() for(var/obj/effect/projector/P in world) - projectors.Add(P) + GLOB.projectors.Add(P) return SS_INIT_SUCCESS /datum/controller/subsystem/fz_transitions/fire(resumed = FALSE) - for(var/obj/effect/projector/P in projectors) + for(var/obj/effect/projector/P in GLOB.projectors) if(!P || !P.loc) - projectors -= P + GLOB.projectors -= P continue if(!P.loc.clone) P.loc.create_clone(P.vector_x, P.vector_y) @@ -36,13 +36,13 @@ SUBSYSTEM_DEF(fz_transitions) O.clone.proj_y = P.vector_y - for(var/atom/movable/clone/C in clones) + for(var/atom/movable/clone/C in GLOB.clones) if(C.mstr == null || !istype(C.mstr.loc, /turf)) C.mstr.destroy_clone() //Kill clone if master has been destroyed or picked up else if(C != C.mstr) C.mstr.update_clone() //NOTE: Clone updates are also forced by player movement to reduce latency - for(var/atom/T in clones_t) + for(var/atom/T in GLOB.clones_t) if(T.clone && T.icon_state) //Just keep the icon updated for explosions etc. T.clone.icon_state = T.icon_state diff --git a/code/controllers/subsystem/game_decorator.dm b/code/controllers/subsystem/game_decorator.dm new file mode 100644 index 000000000000..dd53b647d1a8 --- /dev/null +++ b/code/controllers/subsystem/game_decorator.dm @@ -0,0 +1,35 @@ +// Essentially the same as decorators but that apply to the whole game state instead of individual atoms +SUBSYSTEM_DEF(game_decorator) + name = "Game Decorator" + init_order = SS_INIT_DECORATOR + flags = SS_NO_FIRE + +/datum/controller/subsystem/game_decorator/Initialize() + . = ..() + for(var/decorator_type in subtypesof(/datum/game_decorator)) + var/datum/game_decorator/decorator = new decorator_type() + if(!decorator.is_active_decor()) + continue + if(!decorator.defer_decoration) + decorator.decorate() + CHECK_TICK + + return SS_INIT_SUCCESS + +/datum/game_decorator + var/defer_decoration = TRUE //! So map decoration is done post-setup after nightmare and spawners + +/datum/game_decorator/New() + if(defer_decoration && is_active_decor()) + RegisterSignal(SSdcs, COMSIG_GLOB_MODE_POSTSETUP, PROC_REF(defered_decoration)) + +/datum/game_decorator/proc/is_active_decor() + return FALSE + +/datum/game_decorator/proc/defered_decoration(dcs) + SIGNAL_HANDLER + decorate() + +/datum/game_decorator/proc/decorate() + set waitfor = FALSE + return diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm new file mode 100644 index 000000000000..ed9eba2bc6c3 --- /dev/null +++ b/code/controllers/subsystem/hijack.dm @@ -0,0 +1,429 @@ +SUBSYSTEM_DEF(hijack) + name = "Hijack" + wait = 2 SECONDS + flags = SS_KEEP_TIMING + priority = SS_PRIORITY_HIJACK + init_order = SS_INIT_HIJACK + + ///Required progress to evacuate safely via lifeboats + var/required_progress = 100 + + ///Current progress towards evacuating safely via lifeboats + var/current_progress = 0 + + /// How much progress is required to early launch + var/early_launch_required_progress = 25 + + ///The estimated time left to get to the safe evacuation point + var/estimated_time_left = 0 + + ///Areas that are marked as having progress, assoc list that is progress_area = boolean, the boolean indicating if it was progressing or not on the last fire() + var/list/area/progress_areas = list() + + ///The areas that need cycled through currently + var/list/area/current_run = list() + + ///The progress of the current run that needs to be added at the end of the current run + var/current_run_progress_additive = 0 + + ///Holds what the current_run_progress_additive should be multiplied by at the end of the current run + var/current_run_progress_multiplicative = 1 + + ///Holds the progress change from last run + var/last_run_progress_change = 0 + + ///Holds the next % point progress should be announced, increments on itself + var/announce_checkpoint = 25 + + ///What stage of evacuation we are currently on + var/evac_status = EVACUATION_STATUS_NOT_INITIATED + + ///What stage of hijack are we currently on + var/hijack_status = HIJACK_OBJECTIVES_NOT_STARTED + + ///Whether or not evacuation has been disabled by admins + var/evac_admin_denied = FALSE + + /// If TRUE, self destruct has been unlocked and is possible with a hold of reactor + var/sd_unlocked = FALSE + + /// Admin var to manually prevent self destruct from occurring + var/admin_sd_blocked = FALSE + + /// Maximum amount of fusion generators that can be overloaded at once for a time benefit + var/maximum_overload_generators = 18 + + /// How many generators are currently overloaded + var/overloaded_generators = 0 + + /// How long the manual self destruct will take on the high end + var/sd_max_time = 15 MINUTES + + /// How long the manual self destruct will take on the low end + var/sd_min_time = 5 MINUTES + + /// How much time left until SD detonates + var/sd_time_remaining = 0 + + /// Roughly what % of the SD countdown remains + var/percent_completion_remaining = 100 + + /// If the engine room has been heated, occurs at 33% SD completion + var/engine_room_heated = FALSE + + /// If the engine room has been superheated, occurs at 66% SD completion + var/engine_room_superheated = FALSE + + /// If the self destruct has/is detonating + var/sd_detonated = FALSE + + /// If a generator has ever been overloaded in the past this round + var/generator_ever_overloaded = FALSE + + /// If ARES has announced the 50% point yet for SD + var/ares_sd_announced = FALSE + +/datum/controller/subsystem/hijack/Initialize(timeofday) + RegisterSignal(SSdcs, COMSIG_GLOB_GENERATOR_SET_OVERLOADING, PROC_REF(on_generator_overload)) + return SS_INIT_SUCCESS + +/datum/controller/subsystem/hijack/stat_entry(msg) + if(!SSticker?.mode?.is_in_endgame) + msg = " Not Hijack" + return ..() + + if(current_progress >= required_progress) + msg = " Complete" + return ..() + + msg = " Progress: [current_progress]% | Last run: [last_run_progress_change]" + return ..() + +/datum/controller/subsystem/hijack/fire(resumed = FALSE) + if(!SSticker?.mode?.is_in_endgame) + return + + if(hijack_status < HIJACK_OBJECTIVES_STARTED) + hijack_status = HIJACK_OBJECTIVES_STARTED + + if(current_progress >= required_progress) + if(hijack_status < HIJACK_OBJECTIVES_COMPLETE) + hijack_status = HIJACK_OBJECTIVES_COMPLETE + + if(sd_unlocked && overloaded_generators) + sd_time_remaining -= wait + if(!engine_room_heated && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.66))) + heat_engine_room() + + if(!ares_sd_announced && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.5))) + announce_sd_halfway() + + if(!engine_room_superheated && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.33))) + superheat_engine_room() + + if((sd_time_remaining <= 0) && !sd_detonated) + detonate_sd() + + return + + if(!resumed) + current_run = progress_areas.Copy() + + for(var/area/almayer/cycled_area as anything in current_run) + current_run -= cycled_area + + if(progress_areas[cycled_area] != cycled_area.power_equip) + progress_areas[cycled_area] = !progress_areas[cycled_area] + announce_area_power_change(cycled_area) + + if(progress_areas[cycled_area]) + switch(cycled_area.hijack_evacuation_type) + if(EVACUATION_TYPE_ADDITIVE) + current_run_progress_additive += cycled_area.hijack_evacuation_weight + if(EVACUATION_TYPE_MULTIPLICATIVE) + current_run_progress_multiplicative *= cycled_area.hijack_evacuation_weight + + if (MC_TICK_CHECK) + return + + last_run_progress_change = current_run_progress_additive * current_run_progress_multiplicative + current_progress += last_run_progress_change + + if(last_run_progress_change) + estimated_time_left = ((required_progress - current_progress) / last_run_progress_change) * wait + else + estimated_time_left = INFINITY + + if(current_progress >= announce_checkpoint) + announce_progress() + announce_checkpoint += initial(announce_checkpoint) + + current_run_progress_additive = 0 + current_run_progress_multiplicative = 1 + +///Called when the xeno dropship crashes into the Almayer and announces the current status of various objectives to marines +/datum/controller/subsystem/hijack/proc/announce_status_on_crash() + var/message = "" + + for(var/area/cycled_area as anything in progress_areas) + message += "[cycled_area] - [cycled_area.power_equip ? "Online" : "Offline"]\n" + progress_areas[cycled_area] = cycled_area.power_equip + + message += "\nDue to low orbit, extra fuel is required for non-surface evacuations.\nMaintain fueling functionality for optimal evacuation conditions." + + marine_announcement(message, HIJACK_ANNOUNCE) + +///Called when an area power status is changed to announce that it has been changed +/datum/controller/subsystem/hijack/proc/announce_area_power_change(area/changed_area) + var/message = "[changed_area] - [changed_area.power_equip ? "Online" : "Offline"]" + + marine_announcement(message, HIJACK_ANNOUNCE) + +///Called to announce to xenos the state of evacuation progression +/datum/controller/subsystem/hijack/proc/announce_progress() + var/announce = announce_checkpoint / initial(announce_checkpoint) + + var/marine_warning_areas = "" + var/xeno_warning_areas = "" + + for(var/area/cycled_area as anything in progress_areas) + if(cycled_area.power_equip) + xeno_warning_areas += "[cycled_area], " + continue + marine_warning_areas += "[cycled_area], " + + if(xeno_warning_areas) + xeno_warning_areas = copytext(xeno_warning_areas, 1, -2) + + if(marine_warning_areas) + marine_warning_areas = copytext(marine_warning_areas, 1, -2) + + var/datum/hive_status/hive + for(var/hivenumber in GLOB.hive_datum) + hive = GLOB.hive_datum[hivenumber] + if(!length(hive.totalXenos)) + continue + + switch(announce) + if(1) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are a quarter of the way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(2) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are half way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(3) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are three quarters of the way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(4) + xeno_announcement(SPAN_XENOANNOUNCE("The talls have completed their goals!"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + + switch(announce) + if(1) + marine_announcement("Emergency fuel replenishment is at 25 percent. Lifeboat emergency early launch is now available.[marine_warning_areas ? "\nTo increase speed, restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(2) + marine_announcement("Emergency fuel replenishment is at 50 percent.[marine_warning_areas ? "\nTo increase speed, restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(3) + marine_announcement("Emergency fuel replenishment is at 75 percent.[marine_warning_areas ? "\nTo increase speed, restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(4) + marine_announcement("Emergency fuel replenishment is at 100 percent. Safe utilization of lifeboats and pods is now possible.", HIJACK_ANNOUNCE) + if(!admin_sd_blocked) + addtimer(CALLBACK(src, PROC_REF(unlock_self_destruct)), 8 SECONDS) + +/// Passes the ETA for status panels +/datum/controller/subsystem/hijack/proc/get_evac_eta() + switch(hijack_status) + if(HIJACK_OBJECTIVES_STARTED) + if(estimated_time_left == INFINITY) + return "Never" + return "[duration2text_sec(estimated_time_left)]" + + if(HIJACK_OBJECTIVES_COMPLETE) + return "Complete" + +/datum/controller/subsystem/hijack/proc/get_sd_eta() + if(sd_detonated) + return "Complete" + + if(overloaded_generators <= 0) + return "Never" + + return "[duration2text_sec(sd_time_remaining)]" + +//~~~~~~~~~~~~~~~~~~~~~~~~ EVAC STUFF ~~~~~~~~~~~~~~~~~~~~~~~~// + +/// Initiates evacuation by announcing and then prepping all lifepods/lifeboats +/datum/controller/subsystem/hijack/proc/initiate_evacuation() + if(evac_status == EVACUATION_STATUS_NOT_INITIATED && !(evac_admin_denied & FLAGS_EVACUATION_DENY)) + evac_status = EVACUATION_STATUS_INITIATED + ai_announcement("Attention. Emergency. All personnel must evacuate immediately.", 'sound/AI/evacuate.ogg') + + for(var/obj/structure/machinery/status_display/cycled_status_display in GLOB.machines) + if(is_mainship_level(cycled_status_display.z)) + cycled_status_display.set_picture("evac") + for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) + shuttle.prepare_evac() + activate_lifeboats() + return TRUE + +/// Cancels evacuation, tells lifepods/lifeboats and status_displays +/datum/controller/subsystem/hijack/proc/cancel_evacuation() + if(evac_status == EVACUATION_STATUS_INITIATED) + evac_status = EVACUATION_STATUS_NOT_INITIATED + deactivate_lifeboats() + ai_announcement("Evacuation has been cancelled.", 'sound/AI/evacuate_cancelled.ogg') + + for(var/obj/structure/machinery/status_display/cycled_status_display in GLOB.machines) + if(is_mainship_level(cycled_status_display.z)) + cycled_status_display.set_sec_level_picture() + + for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) + shuttle.cancel_evac() + return TRUE + +/// Opens the lifeboat doors and gets them ready to launch +/datum/controller/subsystem/hijack/proc/activate_lifeboats() + for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) + var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() + if(lifeboat && lifeboat.available) + lifeboat.status = LIFEBOAT_ACTIVE + lifeboat_dock.open_dock() + +/// Turns off ability to manually take off lifeboats +/datum/controller/subsystem/hijack/proc/deactivate_lifeboats() + for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) + var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() + if(lifeboat && lifeboat.available) + lifeboat.status = LIFEBOAT_INACTIVE + + +/// Once refueling is done, marines can optionally hold SD for a time for a stalemate instead of a xeno minor +/datum/controller/subsystem/hijack/proc/unlock_self_destruct() + sd_time_remaining = sd_max_time + sd_unlocked = TRUE + marine_announcement("Fuel reserves full. Manual detonation of fuel reserves by overloading the on-board fusion reactors now possible.", HIJACK_ANNOUNCE) + +/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/fusion_engine/source, new_overloading) + SIGNAL_HANDLER + + if(!generator_ever_overloaded) + generator_ever_overloaded = TRUE + var/datum/hive_status/hive + for(var/hivenumber in GLOB.hive_datum) + hive = GLOB.hive_datum[hivenumber] + if(!length(hive.totalXenos)) + continue + + xeno_announcement(SPAN_XENOANNOUNCE("The talls may be attempting to take their ship down with them in Engineering, stop them!"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + + adjust_generator_overload_count(new_overloading ? 1 : -1) + +/datum/controller/subsystem/hijack/proc/adjust_generator_overload_count(amount = 1) + var/generator_overload_percent = round(overloaded_generators / maximum_overload_generators, 0.01) + var/old_required_time = sd_min_time + ((1 - generator_overload_percent) * (sd_max_time - sd_min_time)) + percent_completion_remaining = sd_time_remaining / old_required_time + overloaded_generators = clamp(overloaded_generators + amount, 0, maximum_overload_generators) + generator_overload_percent = round(overloaded_generators / maximum_overload_generators, 0.01) + var/new_required_time = sd_min_time + ((1 - generator_overload_percent) * (sd_max_time - sd_min_time)) + sd_time_remaining = percent_completion_remaining * new_required_time + +/datum/controller/subsystem/hijack/proc/heat_engine_room() + engine_room_heated = TRUE + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/lower/engine_core] + engine_room.firealert() + engine_room.temperature = T90C + for(var/mob/current_mob as anything in GLOB.mob_list) + var/area/mob_area = get_area(current_mob) + if(istype(mob_area, /area/almayer/engineering/lower/engine_core)) + to_chat(current_mob, SPAN_BOLDWARNING("You feel the heat of the room increase as the fusion engines whirr louder.")) + +/datum/controller/subsystem/hijack/proc/superheat_engine_room() + engine_room_superheated = TRUE + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/lower/engine_core] + engine_room.firealert() + engine_room.temperature = T120C //slowly deals burn at this temp + for(var/mob/current_mob as anything in GLOB.mob_list) + var/area/mob_area = get_area(current_mob) + if(istype(mob_area, /area/almayer/engineering/lower/engine_core)) + to_chat(current_mob, SPAN_BOLDWARNING("The room feels incredibly hot, you can't take much more of this!")) + +/datum/controller/subsystem/hijack/proc/announce_sd_halfway() + ares_sd_announced = TRUE + marine_announcement("ALERT: Fusion reactor meltdown has reached fifty percent.", HIJACK_ANNOUNCE) + +/datum/controller/subsystem/hijack/proc/detonate_sd() + set waitfor = FALSE + sd_detonated = TRUE + var/creak_picked = pick('sound/effects/creak1.ogg', 'sound/effects/creak2.ogg', 'sound/effects/creak3.ogg') + for(var/mob/current_mob as anything in GLOB.mob_list) + var/turf/current_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_mob.client || !current_turf || !is_mainship_level(current_turf.z)) + continue + + to_chat(current_mob, SPAN_BOLDWARNING("The ship's deck worryingly creaks underneath you.")) + playsound_client(current_mob.client, creak_picked, vol = 50) + + sleep(7 SECONDS) + shakeship(2, 10, TRUE) + + marine_announcement("ALERT: Fusion reactors dangerously overloaded. Runaway meltdown in reactor core imminent.", HIJACK_ANNOUNCE) + sleep(5 SECONDS) + + var/sound_picked = pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') + for(var/client/player as anything in GLOB.clients) + playsound_client(player, sound_picked, 90) + + var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). + var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. + for(var/mob/current_mob as anything in GLOB.mob_list) //This only does something cool for the people about to die, but should prove pretty interesting. + var/turf/current_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_turf) + continue + + if(current_mob.stat == DEAD) + dead_mobs |= current_mob + continue + + if(is_mainship_level(current_turf.z)) + alive_mobs |= current_mob + shake_camera(current_mob, 110, 4) + + + sleep(10 SECONDS) + /*Hardcoded for now, since this was never really used for anything else. + Would ideally use a better system for showing cutscenes.*/ + var/atom/movable/screen/cinematic/explosion/explosive_cinematic = new() + + for(var/mob/current_mob as anything in (alive_mobs + dead_mobs)) + if(current_mob?.loc && current_mob.client) + current_mob.client.add_to_screen(explosive_cinematic) //They may have disconnected in the mean time. + + sleep(1.5 SECONDS) //Extra 1.5 seconds to look at the ship. + flick("intro_nuke", explosive_cinematic) + + sleep(3.5 SECONDS) + for(var/mob/current_mob as anything in alive_mobs) + var/turf/current_mob_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_mob_turf) //Who knows, maybe they escaped, or don't exist anymore. + continue + + if(is_mainship_level(current_mob_turf.z)) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + + current_mob.death(create_cause_data("nuclear explosion")) + else + current_mob.client.remove_from_screen(explosive_cinematic) //those who managed to escape the z level at last second shouldn't have their view obstructed. + + flick("ship_destroyed", explosive_cinematic) + explosive_cinematic.icon_state = "summary_destroyed" + + for(var/client/player as anything in GLOB.clients) + playsound_client(player, 'sound/effects/explosionfar.ogg', 90) + + + sleep(0.5 SECONDS) + if(SSticker.mode) + SSticker.mode.check_win() + + if(!SSticker.mode) //Just a safety, just in case a mode isn't running, somehow. + to_world(SPAN_ROUNDBODY("Resetting in 30 seconds!")) + sleep(30 SECONDS) + log_game("Rebooting due to nuclear detonation.") + world.Reboot() diff --git a/code/controllers/subsystem/htmlui.dm b/code/controllers/subsystem/htmlui.dm deleted file mode 100644 index 5dc885abc625..000000000000 --- a/code/controllers/subsystem/htmlui.dm +++ /dev/null @@ -1,57 +0,0 @@ -// What in the name of god is this? -// You'd think it'd be some form of process for the HTML interface module. -// But it isn't? -// It's some form of proc queue but ??? -// Does anything even *use* this? - -SUBSYSTEM_DEF(html_ui) - name = "HTMLUI" - wait = 1.7 SECONDS - flags = SS_NO_INIT - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - var/list/update = list() - -/datum/controller/subsystem/html_ui/fire(resumed = FALSE) - if (update.len) - var/list/L = list() - var/key - - for (var/datum/procqueue_item/item in update) - key = "[item.ref]_[item.procname]" - - if (item.args) - key += "(" - var/first = 1 - for (var/a in item.args) - if (!first) - key += "," - key += "[a]" - first = 0 - key += ")" - - if (!(key in L)) - if (item.args) - call(item.ref, item.procname)(arglist(item.args)) - else - call(item.ref, item.procname)() - - L.Add(key) - - update.Cut() - - -/datum/controller/subsystem/html_ui/proc/queue(ref, procname, ...) - var/datum/procqueue_item/item = new - item.ref = ref - item.procname = procname - - if (args.len > 2) - item.args = args.Copy(3) - - update.Insert(1, item) - - -/datum/procqueue_item - var/ref - var/procname - var/list/args diff --git a/code/controllers/subsystem/inactivity.dm b/code/controllers/subsystem/inactivity.dm index dd547e1f406b..6b8542444040 100644 --- a/code/controllers/subsystem/inactivity.dm +++ b/code/controllers/subsystem/inactivity.dm @@ -1,20 +1,26 @@ -#define INACTIVITY_KICK 6000 //10 minutes in ticks (approx.) +#define INACTIVITY_KICK 10 MINUTES SUBSYSTEM_DEF(inactivity) name = "Inactivity" - wait = INACTIVITY_KICK + wait = 1 MINUTES flags = SS_NO_INIT | SS_BACKGROUND priority = SS_PRIORITY_INACTIVITY runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY /datum/controller/subsystem/inactivity/fire(resumed = FALSE) - if (CONFIG_GET(flag/kick_inactive)) - for(var/i in GLOB.clients) - var/client/C = i - if(C.admin_holder && C.admin_holder.rights & R_ADMIN) //Skip admins. - continue - if (C.is_afk(INACTIVITY_KICK)) - if (!istype(C.mob, /mob/dead)) - log_access("AFK: [key_name(C)]") - to_chat(C, SPAN_WARNING("You have been inactive for more than 10 minutes and have been disconnected.")) - qdel(C) + if(list_clear_nulls(GLOB.clients)) + debug_log("Removed nulls from GLOB.clients!") + if(list_clear_nulls(GLOB.player_list)) + debug_log("Removed nulls from GLOB.player_list!") + + if (!CONFIG_GET(flag/kick_inactive)) + return + + for(var/client/current as anything in GLOB.clients) + if(current.admin_holder && current.admin_holder.rights & R_MOD) //Skip admins. + continue + if(current.is_afk(INACTIVITY_KICK)) + if(!istype(current.mob, /mob/dead)) + log_access("AFK: [key_name(current)]") + to_chat(current, SPAN_WARNING("You have been inactive for more than [INACTIVITY_KICK / 600] minutes and have been disconnected.")) + qdel(current) diff --git a/code/controllers/subsystem/influxstats.dm b/code/controllers/subsystem/influxstats.dm index 01015b83191d..066c94cc2593 100644 --- a/code/controllers/subsystem/influxstats.dm +++ b/code/controllers/subsystem/influxstats.dm @@ -104,7 +104,7 @@ SUBSYSTEM_DEF(influxstats) /datum/controller/subsystem/influxstats/proc/run_job_statistics() var/list/team_job_stats = list() - var/list/squad_job_stats = ROLES_SQUAD_ALL.Copy() + var/list/squad_job_stats = GLOB.ROLES_SQUAD_ALL.Copy() for(var/squad in squad_job_stats) squad_job_stats[squad] = list() diff --git a/code/controllers/subsystem/init/earlyruntimes.dm b/code/controllers/subsystem/init/earlyruntimes.dm deleted file mode 100644 index 8e43b94a0735..000000000000 --- a/code/controllers/subsystem/init/earlyruntimes.dm +++ /dev/null @@ -1,14 +0,0 @@ -/// Just messages the unwary coder to tell them there are errors that likely escaped their debugguer. -SUBSYSTEM_DEF(earlyruntimes) - name = "Early Runtimes" - init_order = SS_INIT_EARLYRUNTIMES - flags = SS_NO_FIRE - -/datum/controller/subsystem/earlyruntimes/stat_entry(msg) - msg = " Early Runtimes: [init_runtimes_count || 0] | All runtimes: [total_runtimes || 0]" - return ..() - -/datum/controller/subsystem/earlyruntimes/Initialize() - if(init_runtimes_count) - return SS_INIT_FAILURE - return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/init/landmarks.dm b/code/controllers/subsystem/init/landmarks.dm index 59bba7c7922b..31b71c074a5d 100644 --- a/code/controllers/subsystem/init/landmarks.dm +++ b/code/controllers/subsystem/init/landmarks.dm @@ -1,4 +1,4 @@ -var/list/item_pool_landmarks = list() +GLOBAL_LIST_EMPTY(item_pool_landmarks) SUBSYSTEM_DEF(landmark_init) name = "Landmark Init" @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(landmark_init) // List of all the datums we need to loop through var/list/datum/item_pool_holder/pools = list() - for (var/obj/effect/landmark/item_pool_spawner/L in item_pool_landmarks) + for (var/obj/effect/landmark/item_pool_spawner/L in GLOB.item_pool_landmarks) var/curr_pool_name = L.pool_name @@ -48,8 +48,8 @@ SUBSYSTEM_DEF(landmark_init) continue if (pool.quota > pool.turfs.len) - log_debug("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [turfs.len] instances of [pool.type_to_spawn] instead. Code: ITEM_POOL_4") - message_admins("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [turfs.len] instances of [pool.type_to_spawn] instead. Tell the devs. Code: ITEM_POOL_4") + log_debug("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [pool.turfs.len] instances of [pool.type_to_spawn] instead. Code: ITEM_POOL_4") + message_admins("Item pool [pool.pool_name] wants to spawn more items than it has landmarks for. Spawning [pool.turfs.len] instances of [pool.type_to_spawn] instead. Tell the devs. Code: ITEM_POOL_4") pool.quota = pool.turfs.len // Quota times, pick a random turf, spawn an item there, then remove that turf from the list. diff --git a/code/controllers/subsystem/init/law.dm b/code/controllers/subsystem/init/law.dm index 52fbbbeadf5d..c7ade815972c 100644 --- a/code/controllers/subsystem/init/law.dm +++ b/code/controllers/subsystem/init/law.dm @@ -8,20 +8,24 @@ SUBSYSTEM_DEF(law_init) var/list/minor_law = list() var/list/major_law = list() var/list/capital_law = list() + var/list/precautionary_law = list() /datum/controller/subsystem/law_init/Initialize() - for(var/L in subtypesof(/datum/law/optional_law)) - optional_law += new L + for(var/law in subtypesof(/datum/law/optional_law)) + optional_law += new law - for(var/L in subtypesof(/datum/law/minor_law)) - minor_law += new L + for(var/law in subtypesof(/datum/law/minor_law)) + minor_law += new law - for(var/L in subtypesof(/datum/law/major_law)) - major_law += new L + for(var/law in subtypesof(/datum/law/major_law)) + major_law += new law - for(var/L in subtypesof(/datum/law/capital_law)) - capital_law += new L + for(var/law in subtypesof(/datum/law/capital_law)) + capital_law += new law - laws = optional_law + minor_law + major_law + capital_law + for(var/law in subtypesof(/datum/law/precautionary_charge)) + precautionary_law += new law + + laws = optional_law + minor_law + major_law + capital_law + precautionary_law return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm index 389e95fe6022..8abc3179f191 100644 --- a/code/controllers/subsystem/interior.dm +++ b/code/controllers/subsystem/interior.dm @@ -42,7 +42,7 @@ SUBSYSTEM_DEF(interior) continue if(x >= bounds[1].x && x <= bounds[2].x && y >= bounds[1].y && y <= bounds[2].y) return current_interior - return FALSE + return /// Checks if an atom is in an interior /datum/controller/subsystem/interior/proc/in_interior(loc) @@ -51,10 +51,16 @@ SUBSYSTEM_DEF(interior) if(!isturf(loc)) loc = get_turf(loc) - var/datum/turf_reservation/interior/reservation = SSmapping.used_turfs[loc] + var/datum/weakref/reservation_weakref = SSmapping.used_turfs[loc] + + if(!reservation_weakref) + return + + var/datum/turf_reservation/interior/reservation = reservation_weakref.resolve() if(!istype(reservation)) return FALSE + return TRUE #undef INTERIOR_BORDER_SIZE diff --git a/code/controllers/subsystem/item_cleanup.dm b/code/controllers/subsystem/item_cleanup.dm index 35d1fc2859e9..26958eb8742b 100644 --- a/code/controllers/subsystem/item_cleanup.dm +++ b/code/controllers/subsystem/item_cleanup.dm @@ -1,4 +1,4 @@ -var/global/list/item_cleanup_list = list() +GLOBAL_LIST_EMPTY(item_cleanup_list) SUBSYSTEM_DEF(item_cleanup) name = "Item Cleanup" @@ -34,9 +34,9 @@ SUBSYSTEM_DEF(item_cleanup) break //We transfer items from the global garbage list onto the next iteration list - while(!isnull(item_cleanup_list) && item_cleanup_list.len > 0) - addToListNoDupe(items_to_clean_up, item_cleanup_list[item_cleanup_list.len]) - item_cleanup_list -= item_cleanup_list[item_cleanup_list.len] + while(!isnull(GLOB.item_cleanup_list) && GLOB.item_cleanup_list.len > 0) + addToListNoDupe(items_to_clean_up, GLOB.item_cleanup_list[GLOB.item_cleanup_list.len]) + GLOB.item_cleanup_list -= GLOB.item_cleanup_list[GLOB.item_cleanup_list.len] log_debug("item_cleanup deleted [deleted] garbage out of total [total_items]") @@ -57,9 +57,9 @@ SUBSYSTEM_DEF(item_cleanup) qdel(o) /proc/add_to_garbage(atom/a) - addToListNoDupe(item_cleanup_list, a) + addToListNoDupe(GLOB.item_cleanup_list, a) /proc/remove_from_garbage(atom/a) - item_cleanup_list -= a + GLOB.item_cleanup_list -= a if(SSitem_cleanup) SSitem_cleanup.items_to_clean_up -= a diff --git a/code/controllers/subsystem/machinery.dm b/code/controllers/subsystem/machinery.dm index 7f86689874ff..6a0f938475a1 100644 --- a/code/controllers/subsystem/machinery.dm +++ b/code/controllers/subsystem/machinery.dm @@ -1,8 +1,8 @@ -var/list/machines = list() -var/list/processing_machines = list() +GLOBAL_LIST_EMPTY(machines) +GLOBAL_LIST_EMPTY(processing_machines) -var/list/datum/powernet/powernets = list() //Holds all powernet datums in use or pooled -var/list/datum/powernet/powernets_by_name = list() //Holds all powernet datums in use or pooled +GLOBAL_LIST_EMPTY(powernets) //Holds all powernet datums in use or pooled +GLOBAL_LIST_EMPTY(powernets_by_name) //Holds all powernet datums in use or pooled SUBSYSTEM_DEF(machinery) @@ -19,12 +19,12 @@ SUBSYSTEM_DEF(machinery) return SS_INIT_SUCCESS /datum/controller/subsystem/machinery/stat_entry(msg) - msg = "M:[global.processing_machines.len]" + msg = "M:[GLOB.processing_machines.len]" return ..() /datum/controller/subsystem/machinery/fire(resumed = FALSE) if (!resumed) - currentrunmachines = processing_machines.Copy() + currentrunmachines = GLOB.processing_machines.Copy() while (currentrunmachines.len) var/obj/structure/machinery/M = currentrunmachines[currentrunmachines.len] diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index afecabd74be0..0f4a63ff65e8 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -6,9 +6,13 @@ SUBSYSTEM_DEF(mapping) var/list/datum/map_config/configs var/list/datum/map_config/next_map_configs + ///Name of all maps var/list/map_templates = list() - + ///Name of all shuttles var/list/shuttle_templates = list() + var/list/all_shuttle_templates = list() + ///map_id of all tents + var/list/tent_type_templates = list() var/list/areas_in_z = list() @@ -29,9 +33,7 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!configs) configs = load_map_configs(ALL_MAPTYPES, error_if_missing = FALSE) - for(var/i in GLOB.clients) - var/client/C = i - winset(C, null, "mainwindow.title='[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]'") + world.name = "[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]" /datum/controller/subsystem/mapping/Initialize(timeofday) HACK_LoadMapConfig() @@ -59,6 +61,11 @@ SUBSYSTEM_DEF(mapping) if(MC.perf_mode) GLOB.perf_flags |= MC.perf_mode + if(configs[GROUND_MAP]) + send2chat(new /datum/tgs_message_content("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Round restarted! Map is [configs[GROUND_MAP].map_name]"), CONFIG_GET(string/new_round_alert_channel)) + else + send2chat(new /datum/tgs_message_content("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Round started!"), CONFIG_GET(string/new_round_alert_channel)) + return SS_INIT_SUCCESS /datum/controller/subsystem/mapping/proc/wipe_reservations(wipe_safety_delay = 100) @@ -202,6 +209,7 @@ SUBSYSTEM_DEF(mapping) map_templates[T.name] = T preloadShuttleTemplates() + preload_tent_templates() /proc/generateMapList(filename) . = list() @@ -240,8 +248,14 @@ SUBSYSTEM_DEF(mapping) var/datum/map_template/shuttle/S = new shuttle_type() shuttle_templates[S.shuttle_id] = S + all_shuttle_templates[item] = S map_templates[S.shuttle_id] = S +/datum/controller/subsystem/mapping/proc/preload_tent_templates() + for(var/template in subtypesof(/datum/map_template/tent)) + var/datum/map_template/tent/new_tent = new template() + tent_type_templates[new_tent.map_id] = new_tent + /datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override) UNTIL(initialized && !clearing_reserved_turfs) var/datum/turf_reservation/reserve = new type diff --git a/code/controllers/subsystem/midi.dm b/code/controllers/subsystem/midi.dm deleted file mode 100644 index 158d67cf25ac..000000000000 --- a/code/controllers/subsystem/midi.dm +++ /dev/null @@ -1,45 +0,0 @@ -/datum/midi_record - var/target - var/midi - -SUBSYSTEM_DEF(midi) - name = "Midi" - wait = 2 SECONDS - flags = SS_NO_INIT|SS_BACKGROUND - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - priority = SS_PRIORITY_MIDI - - var/list/datum/midi_record/prepped_midis = list() - - var/list/datum/midi_record/currentrun = list() - - -/datum/controller/subsystem/midi/stat_entry(msg) - msg = "MR:[prepped_midis.len]" - return ..() - - -/datum/controller/subsystem/midi/fire(resumed = FALSE) - if (!resumed) - currentrun = prepped_midis - prepped_midis = list() - - while (currentrun.len) - var/datum/midi_record/E = currentrun[currentrun.len] - currentrun.len-- - - if (!E) - continue - - E.target << E.midi - - if (MC_TICK_CHECK) - return - -/datum/controller/subsystem/midi/proc/queue(target, midi) - if(!prepped_midis) - prepped_midis = list() - var/datum/midi_record/MR = new() - MR.target = target - MR.midi = midi - prepped_midis.Add(MR) diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 6f5b9303a91f..a808e7e3fd85 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -1,3 +1,6 @@ +#define CANVAS_COOLDOWN_TIME 4 MINUTES +#define FLATTEN_MAP_COOLDOWN_TIME 3 MINUTES + /** * # Minimaps subsystem * @@ -256,8 +259,6 @@ SUBSYSTEM_DEF(minimaps) removal_cbs[target] = CALLBACK(src, PROC_REF(removeimage), blip, target) RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(remove_marker)) - - /** * removes an image from raw tracked lists, invoked by callback */ @@ -322,7 +323,7 @@ SUBSYSTEM_DEF(minimaps) minimaps_by_z["[z_level]"].images_assoc["[flag]"] -= source /** - * Fetches a /atom/movable/screen/minimap instance or creates on if none exists + * Fetches a /atom/movable/screen/minimap instance or creates one if none exists * Note this does not destroy them when the map is unused, might be a potential thing to do? * Arguments: * * zlevel: zlevel to fetch map for @@ -338,6 +339,172 @@ SUBSYSTEM_DEF(minimaps) hashed_minimaps[hash] = map return map +/** + * Fetches the datum containing an announced flattend map png reference. + * + * Arguments: + * * faction: FACTION_MARINE or XENO_HIVE_NORMAL + */ +/proc/get_tacmap_data_png(faction) + var/list/map_list + + if(faction == FACTION_MARINE) + map_list = GLOB.uscm_flat_tacmap_data + else if(faction == XENO_HIVE_NORMAL) + map_list = GLOB.xeno_flat_tacmap_data + else + return null + + var/map_length = length(map_list) + + if(map_length == 0) + return null + + return map_list[map_length] + +/** + * Fetches the datum containing the latest unannounced flattend map png reference. + * + * Arguments: + * * faction: FACTION_MARINE or XENO_HIVE_NORMAL + */ +/proc/get_unannounced_tacmap_data_png(faction) + if(faction == FACTION_MARINE) + return GLOB.uscm_unannounced_map + else if(faction == XENO_HIVE_NORMAL) + return GLOB.xeno_unannounced_map + + return null + +/** + * Fetches the last set of svg coordinates for the tacmap drawing. + * + * Arguments: + * * faction: which faction get the map for: FACTION_MARINE or XENO_HIVE_NORMAL + */ +/proc/get_tacmap_data_svg(faction) + var/list/map_list + + if(faction == FACTION_MARINE) + map_list = GLOB.uscm_svg_tacmap_data + else if(faction == XENO_HIVE_NORMAL) + map_list = GLOB.xeno_svg_tacmap_data + else + return null + + var/map_length = length(map_list) + + if(map_length == 0) + return null + + return map_list[map_length] + +/** + * Re-sends relevant flattened tacmaps to a single client. + * + * Arguments: + * * user: The mob that is either an observer, marine, or xeno + */ +/proc/resend_current_map_png(mob/user) + if(!user.client) + return + + var/is_observer = user.faction == FACTION_NEUTRAL && isobserver(user) + if(is_observer || user.faction == FACTION_MARINE) + // Send marine maps + var/datum/flattened_tacmap/latest = get_tacmap_data_png(FACTION_MARINE) + if(latest) + SSassets.transport.send_assets(user.client, latest.asset_key) + var/datum/flattened_tacmap/unannounced = get_unannounced_tacmap_data_png(FACTION_MARINE) + if(unannounced && (!latest || latest.asset_key != unannounced.asset_key)) + SSassets.transport.send_assets(user.client, unannounced.asset_key) + + var/mob/living/carbon/xenomorph/xeno = user + if(is_observer || istype(xeno) && xeno.hivenumber == XENO_HIVE_NORMAL) + // Send xeno maps + var/datum/flattened_tacmap/latest = get_tacmap_data_png(XENO_HIVE_NORMAL) + if(latest) + SSassets.transport.send_assets(user.client, latest.asset_key) + var/datum/flattened_tacmap/unannounced = get_unannounced_tacmap_data_png(XENO_HIVE_NORMAL) + if(unannounced && (!latest || latest.asset_key != unannounced.asset_key)) + SSassets.transport.send_assets(user.client, unannounced.asset_key) + +/** + * Flattens the current map and then distributes it for the specified faction as an unannounced map. + * + * Arguments: + * * faction: Which faction to distribute the map to: FACTION_MARINE or XENO_HIVE_NORMAL + * Return: + * * Returns a boolean value, TRUE if the operation was successful, FALSE if it was not (on cooldown generally). + */ +/datum/tacmap/drawing/proc/distribute_current_map_png(faction) + if(faction == FACTION_MARINE) + if(!COOLDOWN_FINISHED(GLOB, uscm_flatten_map_icon_cooldown)) + return FALSE + COOLDOWN_START(GLOB, uscm_flatten_map_icon_cooldown, FLATTEN_MAP_COOLDOWN_TIME) + else if(faction == XENO_HIVE_NORMAL) + if(!COOLDOWN_FINISHED(GLOB, xeno_flatten_map_icon_cooldown)) + return FALSE + COOLDOWN_START(GLOB, xeno_flatten_map_icon_cooldown, FLATTEN_MAP_COOLDOWN_TIME) + else + return FALSE + + var/icon/flat_map = getFlatIcon(map_holder.map, appearance_flags = TRUE) + if(!flat_map) + to_chat(usr, SPAN_WARNING("A critical error has occurred! Contact a coder.")) // tf2heavy: "Oh, this is bad!" + return FALSE + + // Send to only relevant clients + var/list/faction_clients = list() + for(var/client/client as anything in GLOB.clients) + if(!client || !client.mob) + continue + var/mob/client_mob = client.mob + if(client_mob.faction == faction) + faction_clients += client + else if(client_mob.faction == FACTION_NEUTRAL && isobserver(client_mob)) + faction_clients += client + else if(isxeno(client_mob)) + var/mob/living/carbon/xenomorph/xeno = client_mob + if(xeno.hivenumber == faction) + faction_clients += client + + // This may be unnecessary to do this way if the asset url is always the same as the lookup key + var/flat_tacmap_key = icon2html(flat_map, faction_clients, keyonly = TRUE) + if(!flat_tacmap_key) + to_chat(usr, SPAN_WARNING("A critical error has occurred! Contact a coder.")) + return FALSE + var/flat_tacmap_png = SSassets.transport.get_asset_url(flat_tacmap_key) + var/datum/flattened_tacmap/new_flat = new(flat_tacmap_png, flat_tacmap_key) + + if(faction == FACTION_MARINE) + GLOB.uscm_unannounced_map = new_flat + else //if(faction == XENO_HIVE_NORMAL) + GLOB.xeno_unannounced_map = new_flat + + return TRUE + +/** + * Globally stores svg coords for a given faction. + * + * Arguments: + * * faction: which faction to save the data for: FACTION_MARINE or XENO_HIVE_NORMAL + * * svg_coords: an array of coordinates corresponding to an svg. + * * ckey: the ckey of the user who submitted this + */ +/datum/tacmap/drawing/proc/store_current_svg_coords(faction, svg_coords, ckey) + var/datum/svg_overlay/svg_store_overlay = new(svg_coords, ckey) + + if(faction == FACTION_MARINE) + GLOB.uscm_svg_tacmap_data += svg_store_overlay + else if(faction == XENO_HIVE_NORMAL) + GLOB.xeno_svg_tacmap_data += svg_store_overlay + else + qdel(svg_store_overlay) + debug_log("SVG coordinates for [faction] are not implemented!") + +#define can_draw(faction, user) ((faction == FACTION_MARINE && skillcheck(user, SKILL_LEADERSHIP, SKILL_LEAD_EXPERT)) || (faction == XENO_HIVE_NORMAL && isqueen(user))) + /datum/controller/subsystem/minimaps/proc/fetch_tacmap_datum(zlevel, flags) var/hash = "[zlevel]-[flags]" if(hashed_tacmaps[hash]) @@ -442,7 +609,7 @@ SUBSYSTEM_DEF(minimaps) marker_flags = MINIMAP_FLAG_USCM /datum/action/minimap/observer - minimap_flags = MINIMAP_FLAG_XENO|MINIMAP_FLAG_USCM|MINIMAP_FLAG_UPP|MINIMAP_FLAG_CLF|MINIMAP_FLAG_UPP + minimap_flags = MINIMAP_FLAG_ALL marker_flags = NONE hidden = TRUE @@ -452,17 +619,58 @@ SUBSYSTEM_DEF(minimaps) var/targeted_ztrait = ZTRAIT_GROUND var/atom/owner + /// tacmap holder for holding the minimap var/datum/tacmap_holder/map_holder +/datum/tacmap/drawing + /// A url that will point to the wiki map for the current map as a fall back image + var/static/wiki_map_fallback + + /// color selection for the tactical map canvas, defaults to black. + var/toolbar_color_selection = "black" + var/toolbar_updated_selection = "black" + + /// boolean value to keep track if the canvas has been updated or not, the value is used in tgui state. + var/updated_canvas = FALSE + /// current flattend map + var/datum/flattened_tacmap/new_current_map + /// previous flattened map + var/datum/flattened_tacmap/old_map + /// current svg + var/datum/svg_overlay/current_svg + + var/action_queue_change = 0 + + /// The last time the map has been flattened - used as a key to trick react into updating the canvas + var/last_update_time = 0 + /// A temporary lock out time before we can open the new canvas tab to allow the tacmap time to fire + var/tacmap_ready_time = 0 + /datum/tacmap/New(atom/source, minimap_type) allowed_flags = minimap_type owner = source +/datum/tacmap/drawing/status_tab_view/New() + var/datum/tacmap/drawing/status_tab_view/uscm_tacmap + allowed_flags = MINIMAP_FLAG_USCM + owner = uscm_tacmap + +/datum/tacmap/drawing/status_tab_view/xeno/New() + var/datum/tacmap/drawing/status_tab_view/xeno/xeno_tacmap + allowed_flags = MINIMAP_FLAG_XENO + owner = xeno_tacmap + /datum/tacmap/Destroy() map_holder = null owner = null return ..() +/datum/tacmap/drawing/Destroy() + new_current_map = null + old_map = null + current_svg = null + return ..() + /datum/tacmap/tgui_interact(mob/user, datum/tgui/ui) if(!map_holder) var/level = SSmapping.levels_by_trait(targeted_ztrait) @@ -476,11 +684,234 @@ SUBSYSTEM_DEF(minimaps) ui = new(user, src, "TacticalMap") ui.open() +/datum/tacmap/drawing/tgui_interact(mob/user, datum/tgui/ui) + var/mob/living/carbon/xenomorph/xeno = user + var/is_xeno = istype(xeno) + var/faction = is_xeno ? xeno.hivenumber : user.faction + if(faction == FACTION_NEUTRAL && isobserver(user)) + faction = allowed_flags == MINIMAP_FLAG_XENO ? XENO_HIVE_NORMAL : FACTION_MARINE + + new_current_map = get_unannounced_tacmap_data_png(faction) + old_map = get_tacmap_data_png(faction) + current_svg = get_tacmap_data_svg(faction) + + var/use_live_map = faction == FACTION_MARINE && skillcheck(user, SKILL_LEADERSHIP, SKILL_LEAD_EXPERT) || is_xeno + + if(use_live_map && !map_holder) + var/level = SSmapping.levels_by_trait(targeted_ztrait) + if(!level[1]) + return + map_holder = SSminimaps.fetch_tacmap_datum(level[1], allowed_flags) + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + if(!wiki_map_fallback) + var/wiki_url = CONFIG_GET(string/wikiurl) + var/obj/item/map/current_map/new_map = new + if(wiki_url && new_map.html_link) + wiki_map_fallback ="[wiki_url]/[new_map.html_link]" + else + debug_log("Failed to determine fallback wiki map! Attempted '[wiki_url]/[new_map.html_link]'") + qdel(new_map) + + // Ensure we actually have the map image sent + resend_current_map_png(user) + + if(use_live_map) + tacmap_ready_time = SSminimaps.next_fire + 2 SECONDS + addtimer(CALLBACK(src, PROC_REF(on_tacmap_fire), faction), SSminimaps.next_fire - world.time + 1 SECONDS) + user.client.register_map_obj(map_holder.map) + + ui = new(user, src, "TacticalMap") + ui.open() + +/datum/tacmap/drawing/ui_data(mob/user) + var/list/data = list() + + data["newCanvasFlatImage"] = new_current_map?.flat_tacmap + data["oldCanvasFlatImage"] = old_map?.flat_tacmap + data["svgData"] = current_svg?.svg_data + + data["actionQueueChange"] = action_queue_change + + data["toolbarColorSelection"] = toolbar_color_selection + data["toolbarUpdatedSelection"] = toolbar_updated_selection + + if(isxeno(user)) + data["canvasCooldown"] = max(GLOB.xeno_canvas_cooldown - world.time, 0) + else + data["canvasCooldown"] = max(GLOB.uscm_canvas_cooldown - world.time, 0) + + data["updatedCanvas"] = updated_canvas + + data["lastUpdateTime"] = last_update_time + data["tacmapReady"] = world.time > tacmap_ready_time + + return data + /datum/tacmap/ui_static_data(mob/user) var/list/data = list() - data["mapRef"] = map_holder.map_ref + + data["mapRef"] = map_holder?.map_ref + data["canDraw"] = FALSE + data["canViewTacmap"] = TRUE + data["canViewCanvas"] = FALSE + data["isXeno"] = FALSE + + return data + +/datum/tacmap/drawing/ui_static_data(mob/user) + var/list/data = list() + + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME + data["mapRef"] = map_holder?.map_ref + data["canDraw"] = FALSE + data["mapFallback"] = wiki_map_fallback + + var/mob/living/carbon/xenomorph/xeno = user + var/is_xeno = istype(xeno) + var/faction = is_xeno ? xeno.hivenumber : user.faction + + data["isXeno"] = is_xeno + data["canViewTacmap"] = is_xeno + data["canViewCanvas"] = faction == FACTION_MARINE || faction == XENO_HIVE_NORMAL + + if(can_draw(faction, user)) + data["canDraw"] = TRUE + data["canViewTacmap"] = TRUE + + return data + +/datum/tacmap/drawing/status_tab_view/ui_static_data(mob/user) + var/list/data = list() + + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME + data["mapFallback"] = wiki_map_fallback + data["canDraw"] = FALSE + data["canViewTacmap"] = FALSE + data["canViewCanvas"] = TRUE + data["isXeno"] = FALSE + + return data + +/datum/tacmap/drawing/status_tab_view/xeno/ui_static_data(mob/user) + var/list/data = list() + + data["canvasCooldownDuration"] = CANVAS_COOLDOWN_TIME + data["mapFallback"] = wiki_map_fallback + data["canDraw"] = FALSE + data["canViewTacmap"] = FALSE + data["canViewCanvas"] = TRUE + data["isXeno"] = TRUE + return data +/datum/tacmap/drawing/ui_close(mob/user) + . = ..() + action_queue_change = 0 + updated_canvas = FALSE + toolbar_color_selection = "black" + toolbar_updated_selection = "black" + +/datum/tacmap/drawing/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/mob/user = ui.user + var/mob/living/carbon/xenomorph/xeno = user + var/faction = istype(xeno) ? xeno.hivenumber : user.faction + var/is_observer = isobserver(user) + if(faction == FACTION_NEUTRAL && is_observer) + faction = allowed_flags == MINIMAP_FLAG_XENO ? XENO_HIVE_NORMAL : FACTION_MARINE + var/drawing_allowed = !is_observer && can_draw(faction, user) + + switch (action) + if ("menuSelect") + if(params["selection"] != "Canvas") + if(updated_canvas) + updated_canvas = FALSE + toolbar_updated_selection = toolbar_color_selection // doing this if it == canvas can cause a latency issue with the stroke. + else + if(!drawing_allowed) + msg_admin_niche("[key_name(user)] made an unauthorized attempt to 'menuSelect' the 'new canvas' panel of the [faction] tacmap!") + return FALSE + distribute_current_map_png(faction) + last_update_time = world.time + // An attempt to get the image to load on first try in the interface, but doesn't seem always reliable + + new_current_map = get_unannounced_tacmap_data_png(faction) + old_map = get_tacmap_data_png(faction) + current_svg = get_tacmap_data_svg(faction) + + if("updateCanvas") + toolbar_updated_selection = "export" + updated_canvas = TRUE + action_queue_change += 1 + + if("clearCanvas") + toolbar_updated_selection = "clear" + updated_canvas = FALSE + action_queue_change += 1 + + if("undoChange") + toolbar_updated_selection = "undo" + updated_canvas = FALSE + action_queue_change += 1 + + if("selectColor") + var/newColor = params["color"] + if(newColor) + toolbar_color_selection = newColor + toolbar_updated_selection = newColor + action_queue_change += 1 + + if("onDraw") + updated_canvas = FALSE + + if("selectAnnouncement") + if(!drawing_allowed) + msg_admin_niche("[key_name(user)] made an unauthorized attempt to 'selectAnnouncement' the [faction] tacmap!") + return FALSE + + if(!istype(params["image"], /list)) // potentially very serious? + return FALSE + + var/cooldown_satisfied = FALSE + if(faction == FACTION_MARINE) + cooldown_satisfied = COOLDOWN_FINISHED(GLOB, uscm_canvas_cooldown) + else if(faction == XENO_HIVE_NORMAL) + cooldown_satisfied = COOLDOWN_FINISHED(GLOB, xeno_canvas_cooldown) + if(!cooldown_satisfied) + msg_admin_niche("[key_name(user)] attempted to 'selectAnnouncement' the [faction] tacmap while it is still on cooldown!") + return FALSE + + if(faction == FACTION_MARINE) + GLOB.uscm_flat_tacmap_data += new_current_map + COOLDOWN_START(GLOB, uscm_canvas_cooldown, CANVAS_COOLDOWN_TIME) + for(var/datum/squad/current_squad in GLOB.RoleAuthority.squads) + current_squad.send_maptext("Tactical map update in progress...", "Tactical Map:") + var/mob/living/carbon/human/human_leader = user + human_leader.visible_message(SPAN_BOLDNOTICE("Tactical map update in progress...")) + playsound_client(human_leader.client, "sound/effects/sos-morse-code.ogg") + notify_ghosts(header = "Tactical Map", message = "The USCM tactical map has been updated.", ghost_sound = "sound/effects/sos-morse-code.ogg", notify_volume = 80, action = NOTIFY_USCM_TACMAP, enter_link = "uscm_tacmap=1", enter_text = "View", source = owner) + else if(faction == XENO_HIVE_NORMAL) + GLOB.xeno_flat_tacmap_data += new_current_map + COOLDOWN_START(GLOB, xeno_canvas_cooldown, CANVAS_COOLDOWN_TIME) + xeno_maptext("The Queen has updated our hive mind map", "We sense something unusual...", faction) + var/mutable_appearance/appearance = mutable_appearance(icon('icons/mob/hud/actions_xeno.dmi'), "toggle_queen_zoom") + notify_ghosts(header = "Tactical Map", message = "The Xenomorph tactical map has been updated.", ghost_sound = "sound/voice/alien_distantroar_3.ogg", notify_volume = 50, action = NOTIFY_XENO_TACMAP, enter_link = "xeno_tacmap=1", enter_text = "View", source = user, alert_overlay = appearance) + + store_current_svg_coords(faction, params["image"], user) + current_svg = get_tacmap_data_svg(faction) + old_map = get_tacmap_data_png(faction) + + toolbar_updated_selection = toolbar_color_selection + message_admins("[key_name(user)] has updated the tactical map for [faction].") + updated_canvas = FALSE + + return TRUE + /datum/tacmap/ui_status(mob/user) if(!(isatom(owner))) return UI_INTERACTIVE @@ -493,7 +924,7 @@ SUBSYSTEM_DEF(minimaps) else return UI_CLOSE -/datum/tacmap/xeno/ui_status(mob/user) +/datum/tacmap/drawing/xeno/ui_status(mob/user) if(!isxeno(user)) return UI_CLOSE @@ -516,3 +947,75 @@ SUBSYSTEM_DEF(minimaps) /datum/tacmap_holder/Destroy() map = null return ..() + +/datum/flattened_tacmap + var/flat_tacmap + var/asset_key + var/time + +/datum/flattened_tacmap/New(flat_tacmap, asset_key) + src.flat_tacmap = flat_tacmap + src.asset_key = asset_key + src.time = time_stamp() + +/datum/svg_overlay + var/svg_data + var/ckey + var/name + var/time + +/datum/svg_overlay/New(svg_data, mob/user) + src.svg_data = svg_data + src.ckey = user?.persistent_ckey + src.name = user?.real_name + src.time = time_stamp() + +/// Callback when timer indicates the tacmap is flattenable now +/datum/tacmap/drawing/proc/on_tacmap_fire(faction) + distribute_current_map_png(faction) + last_update_time = world.time + +/// Gets the MINIMAP_FLAG for the provided faction or hivenumber if one exists +/proc/get_minimap_flag_for_faction(faction) + switch(faction) + if(XENO_HIVE_NORMAL) + return MINIMAP_FLAG_XENO + if(FACTION_MARINE) + return MINIMAP_FLAG_USCM + if(FACTION_UPP) + return MINIMAP_FLAG_UPP + if(FACTION_WY) + return MINIMAP_FLAG_USCM + if(FACTION_CLF) + return MINIMAP_FLAG_CLF + if(FACTION_PMC) + return MINIMAP_FLAG_PMC + if(FACTION_YAUTJA) + return MINIMAP_FLAG_YAUTJA + if(XENO_HIVE_CORRUPTED) + return MINIMAP_FLAG_XENO_CORRUPTED + if(XENO_HIVE_ALPHA) + return MINIMAP_FLAG_XENO_ALPHA + if(XENO_HIVE_BRAVO) + return MINIMAP_FLAG_XENO_BRAVO + if(XENO_HIVE_CHARLIE) + return MINIMAP_FLAG_XENO_CHARLIE + if(XENO_HIVE_DELTA) + return MINIMAP_FLAG_XENO_DELTA + if(XENO_HIVE_FERAL) + return MINIMAP_FLAG_XENO_FERAL + if(XENO_HIVE_TAMED) + return MINIMAP_FLAG_XENO_TAMED + if(XENO_HIVE_MUTATED) + return MINIMAP_FLAG_XENO_MUTATED + if(XENO_HIVE_FORSAKEN) + return MINIMAP_FLAG_XENO_FORSAKEN + if(XENO_HIVE_YAUTJA) + return MINIMAP_FLAG_YAUTJA + if(XENO_HIVE_RENEGADE) + return MINIMAP_FLAG_XENO_RENEGADE + return 0 + +#undef CANVAS_COOLDOWN_TIME +#undef FLATTEN_MAP_COOLDOWN_TIME +#undef can_draw diff --git a/code/controllers/subsystem/nanoui.dm b/code/controllers/subsystem/nanoui.dm index 1f33227a7fee..85ad0d32aaf4 100644 --- a/code/controllers/subsystem/nanoui.dm +++ b/code/controllers/subsystem/nanoui.dm @@ -5,6 +5,12 @@ SUBSYSTEM_DEF(nano) priority = SS_PRIORITY_NANOUI runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY var/list/currentrun = list() + var/datum/nanomanager/nanomanager + +/datum/controller/subsystem/nano/New() + . = ..() + + nanomanager = new() /datum/controller/subsystem/nano/stat_entry(msg) msg = "P:[nanomanager.processing_uis.len]" diff --git a/code/controllers/subsystem/power.dm b/code/controllers/subsystem/power.dm index 16f4f2ab6127..9908a60420b2 100644 --- a/code/controllers/subsystem/power.dm +++ b/code/controllers/subsystem/power.dm @@ -1,4 +1,4 @@ -var/list/power_machines = list() +GLOBAL_LIST_EMPTY(power_machines) SUBSYSTEM_DEF(power) name = "Power" @@ -12,7 +12,7 @@ SUBSYSTEM_DEF(power) var/list/currentrun_areas = list() /datum/controller/subsystem/power/stat_entry(msg) - msg = "PN:[powernets.len]|PM:[power_machines.len]|A:[active_areas.len]" + msg = "PN:[GLOB.powernets.len]|PM:[GLOB.power_machines.len]|A:[GLOB.active_areas.len]" return ..() @@ -23,9 +23,9 @@ SUBSYSTEM_DEF(power) /datum/controller/subsystem/power/fire(resumed = FALSE) if (!resumed) - currentrun_powerents = global.powernets.Copy() - currentrun_areas = active_areas.Copy() - currentrun_power_machines = global.power_machines.Copy() + currentrun_powerents = GLOB.powernets.Copy() + currentrun_areas = GLOB.active_areas.Copy() + currentrun_power_machines = GLOB.power_machines.Copy() // First we reset the powernets. // This is done first because we want the power machinery to have acted last on the powernet between intervals. @@ -49,7 +49,7 @@ SUBSYSTEM_DEF(power) var/obj/structure/machinery/M = X if (M.process() == PROCESS_KILL) //M.inMachineList = FALSE - power_machines.Remove(M) + GLOB.power_machines.Remove(M) continue if (MC_TICK_CHECK) diff --git a/code/controllers/subsystem/processing/defprocess.dm b/code/controllers/subsystem/processing/defprocess.dm new file mode 100644 index 000000000000..3701a0617a7a --- /dev/null +++ b/code/controllers/subsystem/processing/defprocess.dm @@ -0,0 +1,5 @@ +PROCESSING_SUBSYSTEM_DEF(defprocess) + name = "Defenses Processing" + priority = SS_PRIORITY_DEFENSES + flags = SS_NO_INIT + wait = 0.7 SECONDS diff --git a/code/controllers/subsystem/processing/effects.dm b/code/controllers/subsystem/processing/effects.dm index 5dc9c5f7b9c2..095d557c1ad3 100644 --- a/code/controllers/subsystem/processing/effects.dm +++ b/code/controllers/subsystem/processing/effects.dm @@ -1,5 +1,4 @@ PROCESSING_SUBSYSTEM_DEF(effects) name = "Effects" wait = 1 SECONDS - flags = SS_NO_INIT | SS_KEEP_TIMING priority = SS_PRIORITY_EFFECTS diff --git a/code/controllers/subsystem/processing/fasteffects.dm b/code/controllers/subsystem/processing/fasteffects.dm new file mode 100644 index 000000000000..29d3857916f9 --- /dev/null +++ b/code/controllers/subsystem/processing/fasteffects.dm @@ -0,0 +1,4 @@ +PROCESSING_SUBSYSTEM_DEF(fasteffects) + name = "Fast Effects" + wait = 0.2 SECONDS + priority = SS_PRIORITY_FASTEFFECTS diff --git a/code/controllers/subsystem/processing/oldeffects.dm b/code/controllers/subsystem/processing/oldeffects.dm new file mode 100644 index 000000000000..d2b217f5fc9d --- /dev/null +++ b/code/controllers/subsystem/processing/oldeffects.dm @@ -0,0 +1,5 @@ +PROCESSING_SUBSYSTEM_DEF(oldeffects) + name = "Old Effects" + wait = 1 SECONDS + flags = SS_NO_INIT | SS_KEEP_TIMING + priority = SS_PRIORITY_OLDEFFECTS diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm new file mode 100644 index 000000000000..f9ba79046c2c --- /dev/null +++ b/code/controllers/subsystem/profiler.dm @@ -0,0 +1,74 @@ +#define PROFILER_FILENAME "profiler.json" +#define SENDMAPS_FILENAME "sendmaps.json" + +SUBSYSTEM_DEF(profiler) + name = "Profiler" + init_order = SS_INIT_PROFILER + runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY + wait = 300 SECONDS + var/fetch_cost = 0 + var/write_cost = 0 + +/datum/controller/subsystem/profiler/stat_entry(msg) + msg += "F:[round(fetch_cost,1)]ms" + msg += "|W:[round(write_cost,1)]ms" + return msg + +/datum/controller/subsystem/profiler/Initialize() + if(CONFIG_GET(flag/auto_profile)) + StartProfiling() + else + StopProfiling() //Stop the early start profiler + return SS_INIT_SUCCESS + +/datum/controller/subsystem/profiler/OnConfigLoad() + if(CONFIG_GET(flag/auto_profile)) + StartProfiling() + can_fire = TRUE + else + StopProfiling() + can_fire = FALSE + +/datum/controller/subsystem/profiler/fire() + DumpFile() + +/datum/controller/subsystem/profiler/Shutdown() + if(CONFIG_GET(flag/auto_profile)) + DumpFile(allow_yield = FALSE) + world.Profile(PROFILE_CLEAR, type = "sendmaps") + return ..() + +/datum/controller/subsystem/profiler/proc/StartProfiling() + world.Profile(PROFILE_START) + world.Profile(PROFILE_START, type = "sendmaps") + +/datum/controller/subsystem/profiler/proc/StopProfiling() + world.Profile(PROFILE_STOP) + world.Profile(PROFILE_STOP, type = "sendmaps") + +/datum/controller/subsystem/profiler/proc/DumpFile(allow_yield = TRUE) + var/timer = TICK_USAGE_REAL + var/current_profile_data = world.Profile(PROFILE_REFRESH, format = "json") + var/current_sendmaps_data = world.Profile(PROFILE_REFRESH, type = "sendmaps", format="json") + fetch_cost = MC_AVERAGE(fetch_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + if(allow_yield) + CHECK_TICK + + if(!length(current_profile_data)) //Would be nice to have explicit proc to check this + stack_trace("Warning, profiling stopped manually before dump.") + var/prof_file = file("[GLOB.log_directory]/[PROFILER_FILENAME]") + if(fexists(prof_file)) + fdel(prof_file) + if(!length(current_sendmaps_data)) //Would be nice to have explicit proc to check this + stack_trace("Warning, sendmaps profiling stopped manually before dump.") + var/sendmaps_file = file("[GLOB.log_directory]/[SENDMAPS_FILENAME]") + if(fexists(sendmaps_file)) + fdel(sendmaps_file) + + timer = TICK_USAGE_REAL + WRITE_FILE(prof_file, current_profile_data) + WRITE_FILE(sendmaps_file, current_sendmaps_data) + write_cost = MC_AVERAGE(write_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + +#undef PROFILER_FILENAME +#undef SENDMAPS_FILENAME diff --git a/code/controllers/subsystem/reagents.dm b/code/controllers/subsystem/reagents.dm index 5a310801b191..187479509385 100644 --- a/code/controllers/subsystem/reagents.dm +++ b/code/controllers/subsystem/reagents.dm @@ -17,33 +17,33 @@ SUBSYSTEM_DEF(reagents) /datum/controller/subsystem/reagents/proc/prepare_properties() //Chemical Properties - Initialises all /datum/chem_property into a list indexed by property name var/paths = typesof(/datum/chem_property) - chemical_properties_list = list() + GLOB.chemical_properties_list = list() //Some filters - chemical_properties_list["negative"] = list() - chemical_properties_list["neutral"] = list() - chemical_properties_list["positive"] = list() - chemical_properties_list["rare"] = list() + GLOB.chemical_properties_list["negative"] = list() + GLOB.chemical_properties_list["neutral"] = list() + GLOB.chemical_properties_list["positive"] = list() + GLOB.chemical_properties_list["rare"] = list() //Save for(var/path in paths) var/datum/chem_property/prop = new path() if(!prop.name) continue - chemical_properties_list[prop.name] = prop + GLOB.chemical_properties_list[prop.name] = prop if(prop.starter) //Add a separate instance to the chemical property database var/datum/chem_property/chem = new path() chem.level = 0 - chemical_data.research_property_data += chem + GLOB.chemical_data.research_property_data += chem if(prop.rarity > PROPERTY_DISABLED) //Filters for the generator picking properties if(prop.rarity == PROPERTY_RARE || prop.rarity == PROPERTY_LEGENDARY) - chemical_properties_list["rare"][prop.name] = prop + GLOB.chemical_properties_list["rare"][prop.name] = prop else if(isNegativeProperty(prop)) - chemical_properties_list["negative"][prop.name] = prop + GLOB.chemical_properties_list["negative"][prop.name] = prop else if(isNeutralProperty(prop)) - chemical_properties_list["neutral"][prop.name] = prop + GLOB.chemical_properties_list["neutral"][prop.name] = prop else if(isPositiveProperty(prop)) - chemical_properties_list["positive"][prop.name] = prop + GLOB.chemical_properties_list["positive"][prop.name] = prop /datum/controller/subsystem/reagents/proc/prepare_reagents() //I dislike having these here but map-objects are initialised before world/New() is called. >_> @@ -51,11 +51,11 @@ SUBSYSTEM_DEF(reagents) //Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id //Generated chemicals should be initialized last, hence the substract then readd. var/list/paths = subtypesof(/datum/reagent) - typesof(/datum/reagent/generated) - subtypesof(/datum/reagent/generated) + subtypesof(/datum/reagent/generated) - chemical_reagents_list = list() + GLOB.chemical_reagents_list = list() for(var/path in paths) var/datum/reagent/chem = new path() chem.save_chemclass() - chemical_reagents_list[chem.id] = chem + GLOB.chemical_reagents_list[chem.id] = chem //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. @@ -63,11 +63,11 @@ SUBSYSTEM_DEF(reagents) // chemical_reaction_list["phoron"] is a list of all reactions relating to phoron var/list/regular_paths = subtypesof(/datum/chemical_reaction) - typesof(/datum/chemical_reaction/generated) var/list/generated_paths = subtypesof(/datum/chemical_reaction/generated) //Generated chemicals should be initialized last - chemical_reactions_filtered_list = list() - chemical_reactions_list = list() + GLOB.chemical_reactions_filtered_list = list() + GLOB.chemical_reactions_list = list() for(paths in list(regular_paths, generated_paths)) for(var/path in paths) var/datum/chemical_reaction/react = new path() - chemical_reactions_list[react.id] = react + GLOB.chemical_reactions_list[react.id] = react react.add_to_filtered_list() diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 972f61aa530f..2da87df90995 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -1,11 +1,11 @@ -var/global/datum/controller/shuttle_controller/shuttle_controller - SUBSYSTEM_DEF(oldshuttle) name = "Old Shuttle" wait = 5.5 SECONDS init_order = SS_INIT_SHUTTLE priority = SS_PRIORITY_SHUTTLE + var/datum/controller/shuttle_controller/shuttle_controller + /datum/controller/subsystem/oldshuttle/Initialize() if(GLOB.perf_flags & PERF_TOGGLE_SHUTTLES) can_fire = FALSE diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 34104736949a..3e59744cff31 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -504,7 +504,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) - ui = new(user, src, "ShuttleManipulator", name, 800, 600) + ui = new(user, src, "ShuttleManipulator", name, 850, 600) ui.open() diff --git a/code/controllers/subsystem/smoke_system.dm b/code/controllers/subsystem/smoke_system.dm deleted file mode 100644 index 2010687fcba2..000000000000 --- a/code/controllers/subsystem/smoke_system.dm +++ /dev/null @@ -1,31 +0,0 @@ -var/list/active_smoke_effects = list() - - -SUBSYSTEM_DEF(smoke_effects) - name = "Smoke Effects" - wait = 1 SECONDS - flags = SS_NO_INIT | SS_KEEP_TIMING - priority = SS_PRIORITY_OBJECTS - - var/list/currentrun = list() - -/datum/controller/subsystem/smoke_effects/stat_entry(msg) - msg = "P:[active_smoke_effects.len]" - return ..() - - -/datum/controller/subsystem/smoke_effects/fire(resumed = FALSE) - if(!resumed) - currentrun = active_smoke_effects.Copy() - - while(currentrun.len) - var/obj/effect/particle_effect/smoke/E = currentrun[currentrun.len] - currentrun.len-- - - if(!E || QDELETED(E)) - continue - - E.process() - - if(MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/sound.dm b/code/controllers/subsystem/sound.dm index 1935294394e7..4fdfd7935349 100644 --- a/code/controllers/subsystem/sound.dm +++ b/code/controllers/subsystem/sound.dm @@ -41,5 +41,5 @@ SUBSYSTEM_DEF(sound) if(VI?.ready) var/list/bounds = VI.get_middle_coords() if(bounds.len >= 2) - hearers |= SSquadtree.players_in_range(RECT(bounds[1], bounds[2], VI.map_template.height, VI.map_template.width), bounds[3]) + hearers |= SSquadtree.players_in_range(RECT(bounds[1], bounds[2], VI.map_template.width, VI.map_template.height), bounds[3]) template_queue[template] = hearers diff --git a/code/controllers/subsystem/stamina.dm b/code/controllers/subsystem/stamina.dm deleted file mode 100644 index 84d5b4038cd0..000000000000 --- a/code/controllers/subsystem/stamina.dm +++ /dev/null @@ -1,25 +0,0 @@ -var/global/list/active_staminas = list() - -SUBSYSTEM_DEF(stamina) - name = "Stamina" - wait = 2 SECONDS - priority = SS_PRIORITY_STAMINA - flags = SS_NO_INIT - var/list/currentrun = list() - - -/datum/controller/subsystem/stamina/fire(resumed = FALSE) - if (!resumed) - currentrun = active_staminas.Copy() - - while (currentrun.len) - var/datum/stamina/S = currentrun[currentrun.len] - currentrun.len-- - - if (!S || QDELETED(S)) - continue - - S.process() - - if (MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 9a94eb3371f9..b65ca1e758a2 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -44,6 +44,9 @@ SUBSYSTEM_DEF(statpanels) var/client/target = currentrun[length(currentrun)] currentrun.len-- + if(!target) + continue + if(!target.stat_panel.is_ready()) continue @@ -313,14 +316,39 @@ SUBSYSTEM_DEF(statpanels) for(index in 1 to length(to_make)) var/atom/thing = to_make[index] + // var/start_time = REALTIMEOFDAY var/generated_string - /* We're cheap and won't render all overlays. It's expensive and updates with onmob changes! - if(ismob(thing) || length(thing.overlays) > 2) - generated_string = costly_icon2html(thing, parent, sourceonly=TRUE) + // We're cheap and won't render all overlays. It's expensive and updates with onmob changes! + //if(ismob(thing) || length(thing.overlays) > 2) + //generated_string = costly_icon2html(thing, parent, sourceonly=TRUE) + if(ishuman(thing)) + var/mob/living/carbon/human/human_thing = thing + var/icon + + // Ensure they have their armor since its going to be the majority of their appearance + var/list/armor = list() + var/obj/item/uniform = human_thing.get_item_by_slot(WEAR_BODY) + if(uniform) + armor += new uniform.type + var/obj/item/hat = human_thing.get_item_by_slot(WEAR_HEAD) + if(hat) + armor += new hat.type + var/obj/item/suit = human_thing.get_item_by_slot(WEAR_JACKET) + if(suit) + armor += new suit.type + var/obj/item/gloves = human_thing.get_item_by_slot(WEAR_HANDS) + if(gloves) + armor += new gloves.type + var/obj/item/shoes = human_thing.get_item_by_slot(WEAR_FEET) + if(shoes) + armor += new shoes.type + + // If we don't succeed making a flat human icon below, allowing the human to pass into icon2html will throw a bad icon operation because of a workaround in icon2html for humans... + icon = get_flat_human_copy_icon(human_thing, showDirs = list(SOUTH), outfit_override = armor) + generated_string = icon2html(icon, parent, sourceonly=TRUE) + // log_debug("object_window_info called on ref=[REF(thing)], instance=[thing], type=[thing.type], finished in [(REALTIMEOFDAY-start_time) / 10]s") else generated_string = icon2html(thing, parent, sourceonly=TRUE) - */ - generated_string = icon2html(thing, parent, sourceonly=TRUE) newly_seen[thing] = generated_string if(TICK_CHECK) @@ -383,8 +411,10 @@ SUBSYSTEM_DEF(statpanels) set name = "Open Statbrowser Options" set hidden = TRUE + if (!current_fontsize) + current_fontsize = 12 - var/datum/statbrowser_options/SM = statbrowser_options - if(!SM) - SM = statbrowser_options = new(src, current_fontsize) - SM.tgui_interact() + var/datum/statbrowser_options/options_panel = statbrowser_options + if(!options_panel) + options_panel = statbrowser_options = new(src, current_fontsize) + options_panel.tgui_interact() diff --git a/code/controllers/subsystem/stats_collector.dm b/code/controllers/subsystem/stats_collector.dm deleted file mode 100644 index de66e3b2c6b1..000000000000 --- a/code/controllers/subsystem/stats_collector.dm +++ /dev/null @@ -1,17 +0,0 @@ -/// Collects simple round statistics periodically -SUBSYSTEM_DEF(stats_collector) - name = "Round Stats" - wait = 30 SECONDS - priority = SS_PRIORITY_PAGER_STATUS - runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY - flags = SS_KEEP_TIMING | SS_NO_INIT - - var/stat_ticks = 0 - var/players_counter = 0 - -/datum/controller/subsystem/stats_collector/fire(resumed = FALSE) - players_counter += length(GLOB.clients) - stat_ticks++ - -/datum/controller/subsystem/stats_collector/proc/get_avg_players() - return players_counter / stat_ticks diff --git a/code/controllers/subsystem/techtree.dm b/code/controllers/subsystem/techtree.dm index 04ac2591bc15..5f22373228f0 100644 --- a/code/controllers/subsystem/techtree.dm +++ b/code/controllers/subsystem/techtree.dm @@ -34,17 +34,6 @@ SUBSYSTEM_DEF(techtree) var/datum/space_level/zpos = SSmapping.add_new_zlevel(tree.name, list(ZTRAIT_TECHTREE)) tree.zlevel = zpos - var/zlevel = zpos.z_value - var/turf/z_min = locate(1, 1, zlevel) - var/turf/z_max = locate(world.maxx, world.maxy, zlevel) - - - - for(var/t in block(z_min, z_max)) - var/turf/Tu = t - Tu.ChangeTurf(/turf/closed/void, list(/turf/closed/void)) - new /area/techtree(Tu) - for(var/tier in tree.tree_tiers) tree.unlocked_techs += tier tree.all_techs += tier diff --git a/code/controllers/subsystem/teleporter.dm b/code/controllers/subsystem/teleporter.dm deleted file mode 100644 index b753bdb0d519..000000000000 --- a/code/controllers/subsystem/teleporter.dm +++ /dev/null @@ -1,10 +0,0 @@ -// Master teleporter controller. -SUBSYSTEM_DEF(teleporter) - name = "Teleporter" - wait = 5 SECONDS - init_order = SS_INIT_TELEPORTER - priority = SS_PRIORITY_TELEPORTER - flags = SS_NO_FIRE|SS_NO_INIT - - var/list/teleporters_by_id = list() // Associative list of teleporters by ID, master list of teleporters to process - var/list/teleporters = list() // Process list (identical contents to teleporters_by_id) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 88627669aa3b..2e11ba8a96cb 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -46,6 +46,7 @@ SUBSYSTEM_DEF(ticker) var/totalPlayers = 0 //used for pregame stats on statpanel var/totalPlayersReady = 0 //used for pregame stats on statpanel + var/tutorial_disabled = FALSE //zonenote /datum/controller/subsystem/ticker/Initialize(timeofday) load_mode() @@ -97,9 +98,9 @@ SUBSYSTEM_DEF(ticker) if(!roundend_check_paused && mode.check_finished(force_ending) || force_ending) current_state = GAME_STATE_FINISHED - ooc_allowed = TRUE + GLOB.ooc_allowed = TRUE mode.declare_completion(force_ending) - REDIS_PUBLISH("byond.round", "type" = "round-complete") + REDIS_PUBLISH("byond.round", "type" = "round-complete", "round_name" = GLOB.round_statistics.round_name) flash_clients() addtimer(CALLBACK( SSvote, @@ -135,8 +136,8 @@ SUBSYSTEM_DEF(ticker) REDIS_PUBLISH("byond.round", "type" = "round-start") for(var/client/C in GLOB.admins) - remove_verb(C, roundstart_mod_verbs) - admin_verbs_minor_event -= roundstart_mod_verbs + remove_verb(C, GLOB.roundstart_mod_verbs) + GLOB.admin_verbs_minor_event -= GLOB.roundstart_mod_verbs return TRUE @@ -173,14 +174,14 @@ SUBSYSTEM_DEF(ticker) if(!mode.can_start(bypass_checks)) to_chat(world, "Reverting to pre-game lobby.") QDEL_NULL(mode) - RoleAuthority.reset_roles() + GLOB.RoleAuthority.reset_roles() return FALSE CHECK_TICK if(!mode.pre_setup() && !bypass_checks) QDEL_NULL(mode) to_chat(world, "Error in pre-setup for [GLOB.master_mode]. Reverting to pre-game lobby.") - RoleAuthority.reset_roles() + GLOB.RoleAuthority.reset_roles() return FALSE CHECK_TICK @@ -194,7 +195,7 @@ SUBSYSTEM_DEF(ticker) if(CONFIG_GET(flag/autooocmute)) - ooc_allowed = FALSE + GLOB.ooc_allowed = FALSE round_start_time = world.time @@ -213,7 +214,7 @@ SUBSYSTEM_DEF(ticker) var/roles_to_roll = null if(length(mode.roles_to_roll)) roles_to_roll = mode.roles_to_roll - RoleAuthority.setup_candidates_and_roles(roles_to_roll) //Distribute jobs + GLOB.RoleAuthority.setup_candidates_and_roles(roles_to_roll) //Distribute jobs if(mode.flags_round_type & MODE_NEW_SPAWN) create_characters() // Create and equip characters else @@ -235,7 +236,7 @@ SUBSYSTEM_DEF(ticker) setup_economy() - shuttle_controller?.setup_shuttle_docks() + SSoldshuttle.shuttle_controller?.setup_shuttle_docks() PostSetup() return TRUE @@ -251,15 +252,15 @@ SUBSYSTEM_DEF(ticker) // Switch back to default automatically save_mode(CONFIG_GET(string/gamemode_default)) - if(round_statistics) - to_chat_spaced(world, html = FONT_SIZE_BIG(SPAN_ROLE_BODY("Welcome to [round_statistics.round_name]"))) + if(GLOB.round_statistics) + to_chat_spaced(world, html = FONT_SIZE_BIG(SPAN_ROLE_BODY("Welcome to [GLOB.round_statistics.round_name]"))) - supply_controller.process() //Start the supply shuttle regenerating points -- TLE + GLOB.supply_controller.start_processing() for(var/i in GLOB.closet_list) //Set up special equipment for lockers and vendors, depending on gamemode var/obj/structure/closet/C = i INVOKE_ASYNC(C, TYPE_PROC_REF(/obj/structure/closet, select_gamemode_equipment), mode.type) - for(var/obj/structure/machinery/vending/V in machines) + for(var/obj/structure/machinery/vending/V in GLOB.machines) INVOKE_ASYNC(V, TYPE_PROC_REF(/obj/structure/machinery/vending, select_gamemode_equipment), mode.type) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_POST_SETUP) @@ -376,7 +377,7 @@ SUBSYSTEM_DEF(ticker) world.Reboot(TRUE) /datum/controller/subsystem/ticker/proc/create_characters() - if(!RoleAuthority) + if(!GLOB.RoleAuthority) return for(var/mob/new_player/player in GLOB.player_list) @@ -386,7 +387,7 @@ SUBSYSTEM_DEF(ticker) INVOKE_ASYNC(src, PROC_REF(spawn_and_equip_char), player) /datum/controller/subsystem/ticker/proc/spawn_and_equip_char(mob/new_player/player) - var/datum/job/J = RoleAuthority.roles_for_mode[player.job] + var/datum/job/J = GLOB.RoleAuthority.roles_for_mode[player.job] if(J.job_options && player?.client?.prefs?.pref_special_job_options[J.title]) J.handle_job_options(player.client.prefs.pref_special_job_options[J.title]) if(J.handle_spawn_and_equip) @@ -424,7 +425,7 @@ SUBSYSTEM_DEF(ticker) if(player.job == JOB_CO) captainless = FALSE if(player.job) - RoleAuthority.equip_role(player, RoleAuthority.roles_by_name[player.job], late_join = FALSE) + GLOB.RoleAuthority.equip_role(player, GLOB.RoleAuthority.roles_by_name[player.job], late_join = FALSE) EquipCustomItems(player) if(player.client) var/client/C = player.client @@ -478,7 +479,6 @@ SUBSYSTEM_DEF(ticker) winset(C, null, "mainwindow.icon=[SSticker.mode.taskbar_icon]") - /datum/controller/subsystem/ticker/proc/hijack_ocurred() if(mode) mode.is_in_endgame = TRUE diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 3882228a5ab1..104bb838bbcf 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -273,10 +273,11 @@ SUBSYSTEM_DEF(vote) question = "Gamemode vote" randomize_entries = TRUE for(var/mode_type in config.gamemode_cache) - var/datum/game_mode/M = initial(mode_type) + var/datum/game_mode/M = mode_type if(initial(M.config_tag)) var/vote_cycle_met = !initial(M.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(M.vote_cycle) == 0) - if(initial(M.votable) && vote_cycle_met) + var/min_players_met = length(GLOB.clients) >= M.required_players + if(initial(M.votable) && vote_cycle_met && min_players_met) choices += initial(M.config_tag) if("groundmap") question = "Ground map vote" @@ -359,7 +360,7 @@ SUBSYSTEM_DEF(vote) log_vote(text) var/vp = CONFIG_GET(number/vote_period) SEND_SOUND(world, sound(vote_sound, channel = SOUND_CHANNEL_VOX, volume = vote_sound_vol)) - to_chat(world, SPAN_CENTERBOLD("

[text]
Type vote or click here to place your votes.
You have [DisplayTimeText(vp)] to vote.


")) + to_chat(world, SPAN_CENTERBOLD("

[text]
Type vote or click here to place your votes.
You have [DisplayTimeText(vp)] to vote.


")) time_remaining = round(vp/10) for(var/c in GLOB.clients) var/client/C = c diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 325c45fe2300..a3fdfe509a96 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -1,4 +1,4 @@ -var/list/weather_notify_objects = list() +GLOBAL_LIST_EMPTY(weather_notify_objects) SUBSYSTEM_DEF(weather) name = "Weather" @@ -46,7 +46,7 @@ SUBSYSTEM_DEF(weather) /datum/controller/subsystem/weather/proc/setup_weather_areas() weather_areas = list() - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(A.weather_enabled && map_holder.should_affect_area(A)) weather_areas += A diff --git a/code/controllers/subsystem/x_evolution.dm b/code/controllers/subsystem/x_evolution.dm index be787b37de80..2232147d2eb8 100644 --- a/code/controllers/subsystem/x_evolution.dm +++ b/code/controllers/subsystem/x_evolution.dm @@ -11,6 +11,7 @@ SUBSYSTEM_DEF(xevolution) var/time_ratio_modifier = 0.4 var/list/boost_power = list() + var/list/overridden_power = list() var/force_boost_power = FALSE // Debugging only /datum/controller/subsystem/xevolution/Initialize(start_timeofday) @@ -18,6 +19,7 @@ SUBSYSTEM_DEF(xevolution) for(var/hivenumber in GLOB.hive_datum) HS = GLOB.hive_datum[hivenumber] boost_power[HS.hivenumber] = 1 + overridden_power[HS.hivenumber] = FALSE return SS_INIT_SUCCESS /datum/controller/subsystem/xevolution/fire(resumed = FALSE) @@ -27,6 +29,9 @@ SUBSYSTEM_DEF(xevolution) if(!HS) continue + if(overridden_power[HS.hivenumber]) + continue + if(!HS.dynamic_evolution) boost_power[HS.hivenumber] = HS.evolution_rate + HS.evolution_bonus HS.hive_ui.update_burrowed_larva() @@ -54,6 +59,12 @@ SUBSYSTEM_DEF(xevolution) /datum/controller/subsystem/xevolution/proc/get_evolution_boost_power(hivenumber) return boost_power[hivenumber] +/datum/controller/subsystem/xevolution/proc/override_power(hivenumber, power, override) + var/datum/hive_status/hive_status = GLOB.hive_datum[hivenumber] + boost_power[hivenumber] = power + overridden_power[hivenumber] = override + hive_status.hive_ui.update_burrowed_larva() + #undef EVOLUTION_INCREMENT_TIME #undef BOOST_POWER_MIN #undef BOOST_POWER_MAX diff --git a/code/controllers/subsystem/xenocon.dm b/code/controllers/subsystem/xenocon.dm deleted file mode 100644 index d16e59bd9813..000000000000 --- a/code/controllers/subsystem/xenocon.dm +++ /dev/null @@ -1,18 +0,0 @@ -SUBSYSTEM_DEF(xenocon) - name = "XENOCON" - wait = 5 SECONDS - priority = SS_PRIORITY_INACTIVITY - flags = SS_NO_INIT - var/rewarded = FALSE - -/datum/controller/subsystem/xenocon/fire(resumed = FALSE) - if(rewarded) - return - - var/datum/hive_status/hive - for(var/hivenumber in GLOB.hive_datum) - hive = GLOB.hive_datum[hivenumber] - if(hive.xenocon_points >= XENOCON_THRESHOLD) - var/datum/emergency_call/em_call = new /datum/emergency_call/xenos/platoon() - em_call.activate() - rewarded = TRUE diff --git a/code/datums/ASRS.dm b/code/datums/ASRS.dm index 86a7363f07ea..57eff892fa58 100644 --- a/code/datums/ASRS.dm +++ b/code/datums/ASRS.dm @@ -2,133 +2,116 @@ //These are non orderable packs that get in automaticly though the ARSR system. //Note these should never show up to buy and some will only show up later in the round. //BIG NOTE: Don't add living things to crates, that's bad, it will break the shuttle. -//We use the cost to determine the spawn chance this equals out the crates that spawn later in the round. -#define ASRS_HIGHEST_WEIGHT 0 //warning this weight wont change. -#define ASRS_VERY_HIGH_WEIGHT 5 -#define ASRS_HIGH_WEIGHT 15 -#define ASRS_MEDIUM_WEIGHT 25 -#define ASRS_LOW_WEIGHT 35 -#define ASRS_VERY_LOW_WEIGHT 50 -#define ASRS_LOWEST_WEIGHT 100 + + +/datum/supply_packs_asrs + /// How likely we are to select this pack over others + var/cost = ASRS_MEDIUM_WEIGHT + /// Which pool of ASRS automatically dispensed supplies this belongs to + var/pool = ASRS_POOL_MAIN + /// What supply pack would this dispense + var/datum/supply_packs/reference_package //=================================== // Rounds -/datum/supply_packs/ammo_rounds_box_rifle/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_rounds_box_rifle + reference_package = /datum/supply_packs/ammo_rounds_box_rifle cost = ASRS_MEDIUM_WEIGHT -/datum/supply_packs/ammo_rounds_box_rifle_ap/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_rounds_box_rifle_ap + reference_package = /datum/supply_packs/ammo_rounds_box_rifle_ap cost = ASRS_LOW_WEIGHT -/datum/supply_packs/ammo_rounds_box_xm88/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_rounds_box_xm88 + reference_package = /datum/supply_packs/ammo_rounds_box_xm88 cost = ASRS_LOW_WEIGHT //=================================== // Magazines -/datum/supply_packs/gun/ammo_hpr/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/gun/ammo_hpr + reference_package = /datum/supply_packs/ammo_hpr cost = ASRS_LOWEST_WEIGHT -/datum/supply_packs/ammo_m4a3_mag_box/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_m4a3_mag_box + reference_package = /datum/supply_packs/ammo_m4a3_mag_box cost = ASRS_LOW_WEIGHT -/datum/supply_packs/ammo_m4a3_mag_box_ap/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_m4a3_mag_box_ap + reference_package = /datum/supply_packs/ammo_m4a3_mag_box_ap cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_mag_box/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_mag_box + reference_package = /datum/supply_packs/ammo_mag_box cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_mag_box_ap/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_mag_box_ap + reference_package = /datum/supply_packs/ammo_mag_box_ap -/datum/supply_packs/ammo_m4ra_mag_box/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_m4ra_mag_box + reference_package = /datum/supply_packs/ammo_m4ra_mag_box cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_m4ra_mag_box_ap/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_m4ra_mag_box_ap + reference_package = /datum/supply_packs/ammo_m4ra_mag_box_ap -/datum/supply_packs/ammo_shell_box/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_shell_box + reference_package = /datum/supply_packs/ammo_shell_box cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_shell_box_buck/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_shell_box_buck + reference_package = /datum/supply_packs/ammo_shell_box_buck cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_shell_box_flechette/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_shell_box_flechette + reference_package = /datum/supply_packs/ammo_shell_box_flechette cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_smartgun/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_smartgun + reference_package = /datum/supply_packs/ammo_smartgun -/datum/supply_packs/ammo_napalm/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_napalm + reference_package = /datum/supply_packs/ammo_napalm cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_napalm_gel/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_napalm_gel + reference_package = /datum/supply_packs/ammo_napalm_gel cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/ammo_flamer_mixed/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_flamer_mixed + reference_package = /datum/supply_packs/ammo_flamer_mixed cost = ASRS_VERY_LOW_WEIGHT //=================================== // Mortar ammo -/datum/supply_packs/ammo_mortar_he/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_mortar_he + reference_package = /datum/supply_packs/ammo_mortar_he -/datum/supply_packs/ammo_mortar_incend/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_mortar_incend + reference_package = /datum/supply_packs/ammo_mortar_incend -/datum/supply_packs/ammo_mortar_flare/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/ammo_mortar_flare + reference_package = /datum/supply_packs/ammo_mortar_flare //=================================== // Misc supplies -/datum/supply_packs/flares/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/flares + reference_package = /datum/supply_packs/flares cost = ASRS_LOW_WEIGHT -/datum/supply_packs/mre/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/mre + reference_package = /datum/supply_packs/mre cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/flashlights/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/flashlights + reference_package = /datum/supply_packs/flashlights cost = ASRS_VERY_LOW_WEIGHT -/datum/supply_packs/batteries/asrs - buyable = 0 - group = "ASRS" +/datum/supply_packs_asrs/batteries + reference_package = /datum/supply_packs/batteries cost = ASRS_VERY_LOW_WEIGHT + +// ============================ +// FOOD POOL - for Mess Tech gradual supplies throughout the round +/datum/supply_packs_asrs/ingredient + reference_package = /datum/supply_packs/ingredient + pool = ASRS_POOL_FOOD diff --git a/code/datums/_atmos_setup.dm b/code/datums/_atmos_setup.dm index be4dc62faeff..3075e98ac464 100644 --- a/code/datums/_atmos_setup.dm +++ b/code/datums/_atmos_setup.dm @@ -14,18 +14,18 @@ #define PIPE_COLOR_YELLOW "#ffcc00" #define PIPE_COLOR_PURPLE "#5c1ec0" -var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE) +GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE)) /proc/pipe_color_lookup(color) - for(var/C in pipe_colors) - if(color == pipe_colors[C]) + for(var/C in GLOB.pipe_colors) + if(color == GLOB.pipe_colors[C]) return "[C]" /proc/pipe_color_check(color) if(!color) return 1 - for(var/C in pipe_colors) - if(color == pipe_colors[C]) + for(var/C in GLOB.pipe_colors) + if(color == GLOB.pipe_colors[C]) return 1 return 0 @@ -89,10 +89,10 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ var/image/I = image('icons/obj/pipes/pipes.dmi', icon_state = state) pipe_icons[cache_name] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/obj/pipes/pipes.dmi', icon_state = state) - I.color = pipe_colors[pipe_color] - pipe_icons[state + "[pipe_colors[pipe_color]]"] = I + I.color = GLOB.pipe_colors[pipe_color] + pipe_icons[state + "[GLOB.pipe_colors[pipe_color]]"] = I pipe = new ('icons/obj/pipes/heat.dmi') for(var/state in pipe.IconStates()) @@ -122,10 +122,10 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ if(findtext(state, "core") || findtext(state, "4way")) var/image/I = image('icons/obj/pipes/manifold.dmi', icon_state = state) manifold_icons[state] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/obj/pipes/manifold.dmi', icon_state = state) - I.color = pipe_colors[pipe_color] - manifold_icons[state + pipe_colors[pipe_color]] = I + I.color = GLOB.pipe_colors[pipe_color] + manifold_icons[state + GLOB.pipe_colors[pipe_color]] = I /datum/pipe_icon_manager/proc/gen_device_icons() if(!device_icons) @@ -170,13 +170,13 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ var/cache_name = state - for(var/D in cardinal) + for(var/D in GLOB.cardinals) var/image/I = image('icons/obj/pipes/pipe_underlays.dmi', icon_state = state, dir = D) underlays[cache_name + "[D]"] = I - for(var/pipe_color in pipe_colors) + for(var/pipe_color in GLOB.pipe_colors) I = image('icons/obj/pipes/pipe_underlays.dmi', icon_state = state, dir = D) - I.color = pipe_colors[pipe_color] - underlays[state + "[D]" + "[pipe_colors[pipe_color]]"] = I + I.color = GLOB.pipe_colors[pipe_color] + underlays[state + "[D]" + "[GLOB.pipe_colors[pipe_color]]"] = I /* Leaving the old icon manager code commented out for now, as we may want to rewrite the new code to cleanly @@ -202,7 +202,7 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ if(state == "") continue - for(var/D in cardinal) + for(var/D in GLOB.cardinals) var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) switch(state) if("intact") diff --git a/code/datums/_ndatabase/code/brsql_adapter.dm b/code/datums/_ndatabase/code/brsql_adapter.dm index 345ddfe005f3..251267a04fdb 100644 --- a/code/datums/_ndatabase/code/brsql_adapter.dm +++ b/code/datums/_ndatabase/code/brsql_adapter.dm @@ -101,8 +101,8 @@ SSdatabase.create_parametric_query(query_updatetable, qpars, CB) /datum/db/adapter/brsql_adapter/insert_table(table_name, list/values, datum/callback/CB, sync = FALSE) - if(!sync) - set waitfor = 0 + set waitfor = FALSE + var/length = values.len var/list/qpars = list() var/query_inserttable = getquery_insert_table(table_name, values, qpars) @@ -530,7 +530,7 @@ if(first && !is_id) if(!items_first) update_items+="," - update_items+="`[table_name]`.[esfield]=`__prep_update`.[esfield]" + update_items+="`[table_name]`.[esfield]=`subquery`.[esfield]" items_first = FALSE local_first = FALSE calltext += "SELECT [local_text]" @@ -539,9 +539,7 @@ issue_log += "No ID passed to update query." return "" // AAAAAAAAAAAAAH FUCK DON'T JUST KILL THE ENTIRE FUCKING TABLE BRUH return {" - WITH __prep_update as ( - [calltext] - ) UPDATE `[connection.database]`.`[table_name]` INNER JOIN `__prep_update` ON `[table_name]`.id = `__prep_update`.id SET [update_items] + UPDATE `[connection.database]`.`[table_name]` JOIN (WITH `__prep_update` AS ( [calltext] ) SELECT * FROM `__prep_update`) subquery ON `[table_name]`.id = subquery.id SET [update_items] "} /datum/db/adapter/brsql_adapter/proc/getquery_delete_table(table_name, list/ids) diff --git a/code/datums/_ndatabase/code/interfaces/connection_settings.dm b/code/datums/_ndatabase/code/interfaces/connection_settings.dm index 4092ee712ba9..0c990b2b9cbc 100644 --- a/code/datums/_ndatabase/code/interfaces/connection_settings.dm +++ b/code/datums/_ndatabase/code/interfaces/connection_settings.dm @@ -33,5 +33,3 @@ if(!typestr) typestr = /datum/db/connection_settings/native return new typestr(config) - -var/global/datum/db/connection_settings/connection_settings diff --git a/code/datums/_ndatabase/code/native_adapter.dm b/code/datums/_ndatabase/code/native_adapter.dm index a5e4d41fb6a0..1c23a6ceab8f 100644 --- a/code/datums/_ndatabase/code/native_adapter.dm +++ b/code/datums/_ndatabase/code/native_adapter.dm @@ -83,8 +83,7 @@ SSdatabase.create_query(query_gettable, CB) /datum/db/adapter/native_adapter/update_table(table_name, list/values, datum/callback/CB, sync = FALSE) - if(!sync) - set waitfor = 0 + set waitfor = FALSE for(var/list/vals in values) var/list/qpars = list() diff --git a/code/datums/_ndatabase/subsystems/database_query_manager.dm b/code/datums/_ndatabase/subsystems/database_query_manager.dm index 7eef5842e2dd..596d55121920 100644 --- a/code/datums/_ndatabase/subsystems/database_query_manager.dm +++ b/code/datums/_ndatabase/subsystems/database_query_manager.dm @@ -19,8 +19,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -var/datum/controller/subsystem/database_query_manager/SSdatabase - +GLOBAL_REAL(SSdatabase, /datum/controller/subsystem/database_query_manager) /datum/controller/subsystem/database_query_manager name = "Database QM" wait = 1 diff --git a/code/datums/_ndatabase/subsystems/entity_manager.dm b/code/datums/_ndatabase/subsystems/entity_manager.dm index 667f2a855563..833bc6926e09 100644 --- a/code/datums/_ndatabase/subsystems/entity_manager.dm +++ b/code/datums/_ndatabase/subsystems/entity_manager.dm @@ -19,7 +19,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -var/datum/controller/subsystem/entity_manager/SSentity_manager +GLOBAL_REAL(SSentity_manager, /datum/controller/subsystem/entity_manager) /datum/controller/subsystem/entity_manager name = "Entity Manager" diff --git a/code/datums/action.dm b/code/datums/action.dm index 47b302e09aac..3a597ad262b1 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -11,9 +11,9 @@ var/cost = 0 // By default an action has no cost -> will be utilized by skill actions/xeno actions var/action_flags = 0 // Check out __game.dm for flags /// Whether the action is hidden from its owner - /// Useful for when you want to preserve action state while preventing - /// a mob from using said action - var/hidden = FALSE + var/hidden = FALSE //Preserve action state while preventing mob from using action + ///Hide the action from the owner without preventing them from using it (incase of keybind listen_signal) + var/player_hidden = FALSE var/unique = TRUE /// A signal on the mob that will cause the action to activate var/listen_signal @@ -187,8 +187,10 @@ I.ui_action_click(owner, holder_item) /datum/action/item_action/can_use_action() - if(ishuman(owner) && !owner.is_mob_incapacitated() && !owner.lying) - return TRUE + if(ishuman(owner) && !owner.is_mob_incapacitated()) + var/mob/living/carbon/human/human = owner + if(human.body_position == STANDING_UP) + return TRUE /datum/action/item_action/update_button_icon() button.overlays.Cut() @@ -225,7 +227,7 @@ var/atom/movable/screen/action_button/B = A.button if(reload_screen) client.add_to_screen(B) - if(A.hidden) + if(A.hidden || A.player_hidden) B.screen_loc = null continue button_number++ diff --git a/code/datums/agents/tools/chloroform.dm b/code/datums/agents/tools/chloroform.dm index 464533309bcc..b1c666ac9ec8 100644 --- a/code/datums/agents/tools/chloroform.dm +++ b/code/datums/agents/tools/chloroform.dm @@ -47,10 +47,9 @@ /obj/item/weapon/chloroform/proc/grab_stun(mob/living/M, mob/living/user) M.anchored = TRUE - M.frozen = TRUE - M.density = FALSE + ADD_TRAIT(M, TRAIT_IMMOBILIZED, CHLOROFORM_TRAIT) + ADD_TRAIT(M, TRAIT_UNDENSE, CHLOROFORM_TRAIT) M.able_to_speak = FALSE - M.update_canmove() M.drop_inv_item_on_ground(M.wear_mask, force = TRUE) @@ -79,10 +78,10 @@ /obj/item/weapon/chloroform/proc/remove_stun(mob/living/M) animate(M, pixel_x = 0, pixel_y = 0, time = 0.2 SECONDS, easing = QUAD_EASING) M.anchored = FALSE - M.density = TRUE M.able_to_speak = TRUE M.layer = MOB_LAYER - M.unfreeze() + REMOVE_TRAIT(M, TRAIT_IMMOBILIZED, CHLOROFORM_TRAIT) + REMOVE_TRAIT(M, TRAIT_UNDENSE, CHLOROFORM_TRAIT) QDEL_NULL(mask_item) diff --git a/code/datums/agents/tools/tracker.dm b/code/datums/agents/tools/tracker.dm index 1d6d6d4801b4..2f3063afb78c 100644 --- a/code/datums/agents/tools/tracker.dm +++ b/code/datums/agents/tools/tracker.dm @@ -12,7 +12,7 @@ overlays.Cut() if(active && tracked_object) - overlays += icon(icon, "+tracker_arrow", get_dir(src, tracked_object)) + overlays += icon(icon, "+tracker_arrow", Get_Compass_Dir(src, tracked_object)) /obj/item/device/tracker/attack_self(mob/user) if(!skillcheckexplicit(user, SKILL_ANTAG, SKILL_ANTAG_AGENT)) @@ -48,12 +48,12 @@ return ..() /obj/item/device/tracker/proc/select_object(mob/user) - if(!LAZYLEN(objects_of_interest)) + if(!LAZYLEN(GLOB.objects_of_interest)) to_chat(user, SPAN_WARNING("There are nothing of interest to track.")) return var/list/object_choices = list() - for(var/obj/O in objects_of_interest) + for(var/obj/O in GLOB.objects_of_interest) var/z_level_to_compare_from = O.z if(istype(O.loc, /obj/structure/surface)) z_level_to_compare_from = O.loc.z diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm new file mode 100644 index 000000000000..7a4006deee73 --- /dev/null +++ b/code/datums/ammo/ammo.dm @@ -0,0 +1,247 @@ +/datum/ammo + var/name = "generic bullet" + //Icon state when a human is permanently killed with it by execution/suicide. + var/headshot_state = null + var/icon = 'icons/obj/items/weapons/projectiles.dmi' + var/icon_state = "bullet" + /// The icon that is displayed when the bullet bounces off something. + var/ping = "ping_b" + /// When it deals damage. + var/sound_hit + /// When it's blocked by human armor. + var/sound_armor + /// When it misses someone. + var/sound_miss + /// When it bounces off something. + var/sound_bounce + /// When the bullet is absorbed by a xeno_shield + var/sound_shield_hit + /// Snipers use this to simulate poor accuracy at close ranges + var/accurate_range_min = 0 + /// How much the ammo scatters when burst fired, added to gun scatter, along with other mods + var/scatter = 0 + var/stamina_damage = 0 + /// This is the base damage of the bullet as it is fired + var/damage = 0 + /// BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here + var/damage_type = BRUTE + /// How much armor it ignores before calculations take place + var/penetration = 0 + /// The % chance it will imbed in a human + var/shrapnel_chance = 0 + /// The shrapnel type the ammo will embed, if the chance rolls + var/shrapnel_type = 0 + /// Type path of the extra projectiles + var/bonus_projectiles_type + /// How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together + var/bonus_projectiles_amount = 0 + /// Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony + var/debilitate[] = null + /// how much armor breaking will be done per point of penetration. This is for weapons that penetrate with their shape (like needle bullets) + var/pen_armor_punch = 0.5 + /// how much armor breaking is done by sheer weapon force. This is for big blunt weapons + var/damage_armor_punch = 0.5 + /// if we should play a special sound when firing. + var/sound_override = null + var/flags_ammo_behavior = NO_FLAGS + + /// This is added to the bullet's base accuracy. + var/accuracy = HIT_ACCURACY_TIER_1 + /// How much the accuracy varies when fired. // This REDUCES the lower bound of accuracy variance by 2%, to 96%. + var/accuracy_var_low = PROJECTILE_VARIANCE_TIER_9 + /// This INCREASES the upper bound of accuracy variance by 2%, to 107%. + var/accuracy_var_high = PROJECTILE_VARIANCE_TIER_9 + /// For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though. + var/accurate_range = 6 + /// This will de-increment a counter on the bullet. + var/max_range = 22 + /// Same as with accuracy variance. + var/damage_var_low = PROJECTILE_VARIANCE_TIER_9 + /// This INCREASES the upper bound of damage variance by 2%, to 107%. + var/damage_var_high = PROJECTILE_VARIANCE_TIER_9 + /// How much damage the bullet loses per turf traveled after the effective range + var/damage_falloff = DAMAGE_FALLOFF_TIER_10 + /// How much damage the bullet loses per turf away before the effective range + var/damage_buildup = DAMAGE_BUILDUP_TIER_1 + /// What minimum range the ammo deals full damage, builds up the closer you get. 0 for no minimum. Added onto gun range as a modifier. + var/effective_range_min = EFFECTIVE_RANGE_OFF + /// What maximum range the ammo deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum. Added onto gun range as a modifier. + var/effective_range_max = EFFECTIVE_RANGE_OFF + /// How fast the projectile moves. + var/shell_speed = AMMO_SPEED_TIER_1 + + var/handful_type = /obj/item/ammo_magazine/handful + var/handful_color + /// custom handful sprite, for shotgun shells or etc. + var/handful_state = "bullet" + /// so handfuls say 'buckshot shells' not 'shell' + var/multiple_handful_name + + /// Does this apply xenomorph behaviour delegate? + var/apply_delegate = TRUE + + /// An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args)) + /// that will be given to a projectile with the current ammo datum + var/list/list/traits_to_give + + var/flamer_reagent_type = /datum/reagent/napalm/ut + + /// The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all. + var/hit_effect_color = "#FF0000" + +/datum/ammo/New() + set_bullet_traits() + +/datum/ammo/proc/on_bullet_generation(obj/projectile/generated_projectile, mob/bullet_generator) //NOT used on New(), applied to the projectiles. + return + +/// Populate traits_to_give in this proc +/datum/ammo/proc/set_bullet_traits() + return + +/datum/ammo/can_vv_modify() + return FALSE + +/datum/ammo/proc/do_at_half_range(obj/projectile/P) + SHOULD_NOT_SLEEP(TRUE) + return + +/datum/ammo/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) + return + +/datum/ammo/proc/do_at_max_range(obj/projectile/P) + SHOULD_NOT_SLEEP(TRUE) + return + +/datum/ammo/proc/on_shield_block(mob/M, obj/projectile/P) //Does it do something special when shield blocked? Ie. a flare or grenade that still blows up. + return + +/datum/ammo/proc/on_hit_turf(turf/T, obj/projectile/P) //Special effects when hitting dense turfs. + SHOULD_NOT_SLEEP(TRUE) + return + +/datum/ammo/proc/on_hit_mob(mob/M, obj/projectile/P, mob/user) //Special effects when hitting mobs. + SHOULD_NOT_SLEEP(TRUE) + return + +///Special effects when pointblanking mobs. Ultimately called from /living/attackby(). Return TRUE to end the PB attempt. +/datum/ammo/proc/on_pointblank(mob/living/L, obj/projectile/P, mob/living/user, obj/item/weapon/gun/fired_from) + return + +/datum/ammo/proc/on_hit_obj(obj/O, obj/projectile/P) //Special effects when hitting objects. + SHOULD_NOT_SLEEP(TRUE) + return + +/datum/ammo/proc/on_near_target(turf/T, obj/projectile/P) //Special effects when passing near something. Range of things that triggers it is controlled by other ammo flags. + return 0 //return 0 means it flies even after being near something. Return 1 means it stops + +/datum/ammo/proc/knockback(mob/living/living_mob, obj/projectile/fired_projectile, max_range = 2) + if(!living_mob || living_mob == fired_projectile.firer) + return + if(fired_projectile.distance_travelled > max_range || living_mob.body_position == LYING_DOWN) + return //Two tiles away or more, basically. + + if(living_mob.mob_size >= MOB_SIZE_BIG) + return //Big xenos are not affected. + + shake_camera(living_mob, 3, 4) + knockback_effects(living_mob, fired_projectile) + slam_back(living_mob, fired_projectile) + +/datum/ammo/proc/slam_back(mob/living/living_mob, obj/projectile/fired_projectile) + /// Either knockback or slam them into an obstacle. + var/direction = Get_Compass_Dir(fired_projectile.z ? fired_projectile : fired_projectile.firer, living_mob) //More precise than get_dir. + if(!direction) //Same tile. + return + if(!step(living_mob, direction)) + living_mob.animation_attack_on(get_step(living_mob, direction)) + playsound(living_mob.loc, "punch", 25, 1) + living_mob.visible_message(SPAN_DANGER("[living_mob] slams into an obstacle!"), + isxeno(living_mob) ? SPAN_XENODANGER("You slam into an obstacle!") : SPAN_HIGHDANGER("You slam into an obstacle!"), null, 4, CHAT_TYPE_TAKING_HIT) + living_mob.apply_damage(MELEE_FORCE_TIER_2) + +///The applied effects for knockback(), overwrite to change slow/stun amounts for different ammo datums +/datum/ammo/proc/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + target.Stun(0.7) // Previous comment said they believed 0.7 was 0.9s and that the balance team approved this. Geez... + target.KnockDown(0.7) + target.apply_effect(1, SUPERSLOW) + target.apply_effect(2, SLOW) + to_chat(target, SPAN_XENODANGER("You are shaken by the sudden impact!")) + else + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + +/datum/ammo/proc/slowdown(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + target.apply_effect(1, SUPERSLOW) + target.apply_effect(2, SLOW) + to_chat(target, SPAN_XENODANGER("You are slowed by the sudden impact!")) + else + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + +/datum/ammo/proc/pushback(mob/living/target_mob, obj/projectile/fired_projectile, max_range = 2) + if(!target_mob || target_mob == fired_projectile.firer || fired_projectile.distance_travelled > max_range || target_mob.body_position == LYING_DOWN) + return + + if(target_mob.mob_size >= MOB_SIZE_BIG) + return //too big to push + + to_chat(target_mob, isxeno(target_mob) ? SPAN_XENODANGER("You are pushed back by the sudden impact!") : SPAN_HIGHDANGER("You are pushed back by the sudden impact!")) + slam_back(target_mob, fired_projectile, max_range) + +/datum/ammo/proc/burst(atom/target, obj/projectile/P, damage_type = BRUTE, range = 1, damage_div = 2, show_message = SHOW_MESSAGE_VISIBLE) //damage_div says how much we divide damage + if(!target || !P) return + for(var/mob/living/carbon/M in orange(range,target)) + if(P.firer == M) + continue + if(show_message) + var/msg = "You are hit by backlash from \a [P.name]!" + M.visible_message(SPAN_DANGER("[M] is hit by backlash from \a [P.name]!"),isxeno(M) ? SPAN_XENODANGER("[msg]"):SPAN_HIGHDANGER("[msg]")) + var/damage = P.damage/damage_div + + var/mob/living/carbon/xenomorph/XNO = null + + if(isxeno(M)) + XNO = M + var/total_explosive_resistance = XNO.caste.xeno_explosion_resistance + XNO.armor_explosive_buff + damage = armor_damage_reduction(GLOB.xeno_explosive, damage, total_explosive_resistance , 60, 0, 0.5, XNO.armor_integrity) + var/armor_punch = armor_break_calculation(GLOB.xeno_explosive, damage, total_explosive_resistance, 60, 0, 0.5, XNO.armor_integrity) + XNO.apply_armorbreak(armor_punch) + + M.apply_damage(damage,damage_type) + + if(XNO && XNO.xeno_shields.len) + P.play_shielded_hit_effect(M) + else + P.play_hit_effect(M) + +/datum/ammo/proc/fire_bonus_projectiles(obj/projectile/original_P) + set waitfor = 0 + + var/turf/curloc = get_turf(original_P.shot_from) + var/initial_angle = Get_Angle(curloc, original_P.target_turf) + + for(var/i in 1 to bonus_projectiles_amount) //Want to run this for the number of bonus projectiles. + var/final_angle = initial_angle + + var/obj/projectile/P = new /obj/projectile(curloc, original_P.weapon_cause_data) + P.generate_bullet(GLOB.ammo_list[bonus_projectiles_type]) //No bonus damage or anything. + P.accuracy = round(P.accuracy * original_P.accuracy/initial(original_P.accuracy)) //if the gun changes the accuracy of the main projectile, it also affects the bonus ones. + original_P.give_bullet_traits(P) + + var/total_scatter_angle = P.scatter + final_angle += rand(-total_scatter_angle, total_scatter_angle) + var/turf/new_target = get_angle_target_turf(curloc, final_angle, 30) + + P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range, P.ammo.shell_speed, original_P.original) //Fire! + +/datum/ammo/proc/drop_flame(turf/T, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 + if(!istype(T)) + return + if(locate(/obj/flamer_fire) in T) + return + + var/datum/reagent/R = new flamer_reagent_type() + new /obj/flamer_fire(T, cause_data, R) diff --git a/code/datums/ammo/bullet/bullet.dm b/code/datums/ammo/bullet/bullet.dm new file mode 100644 index 000000000000..dadb644201df --- /dev/null +++ b/code/datums/ammo/bullet/bullet.dm @@ -0,0 +1,81 @@ +/* +//====== + Default Ammo +//====== +*/ +//Only when things screw up do we use this as a placeholder. +/datum/ammo/bullet + name = "default bullet" + icon_state = "bullet" + headshot_state = HEADSHOT_OVERLAY_LIGHT + flags_ammo_behavior = AMMO_BALLISTIC + sound_hit = "ballistic_hit" + sound_armor = "ballistic_armor" + sound_miss = "ballistic_miss" + sound_bounce = "ballistic_bounce" + sound_shield_hit = "ballistic_shield_hit" + + accurate_range_min = 0 + damage = 10 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_1 + shrapnel_type = /obj/item/shard/shrapnel + shell_speed = AMMO_SPEED_TIER_4 + +/datum/ammo/bullet/proc/handle_battlefield_execution(datum/ammo/firing_ammo, mob/living/hit_mob, obj/projectile/firing_projectile, mob/living/user, obj/item/weapon/gun/fired_from) + SIGNAL_HANDLER + + if(!user || hit_mob == user || user.zone_selected != "head" || user.a_intent != INTENT_HARM || !ishuman_strict(hit_mob)) + return + + if(!skillcheck(user, SKILL_EXECUTION, SKILL_EXECUTION_TRAINED)) + to_chat(user, SPAN_DANGER("You don't know how to execute someone correctly.")) + return + + var/mob/living/carbon/human/execution_target = hit_mob + + if(execution_target.status_flags & PERMANENTLY_DEAD) + to_chat(user, SPAN_DANGER("[execution_target] has already been executed!")) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_battlefield_execution), src, execution_target, firing_projectile, user, fired_from) + + return COMPONENT_CANCEL_AMMO_POINT_BLANK + +/datum/ammo/bullet/proc/attempt_battlefield_execution(datum/ammo/firing_ammo, mob/living/carbon/human/execution_target, obj/projectile/firing_projectile, mob/living/user, obj/item/weapon/gun/fired_from) + user.affected_message(execution_target, + SPAN_HIGHDANGER("You aim \the [fired_from] at [execution_target]'s head!"), + SPAN_HIGHDANGER("[user] aims \the [fired_from] directly at your head!"), + SPAN_DANGER("[user] aims \the [fired_from] at [execution_target]'s head!")) + + user.next_move += 1.1 SECONDS //PB has no click delay; readding it here to prevent people accidentally queuing up multiple executions. + + if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE) || !user.Adjacent(execution_target)) + fired_from.delete_bullet(firing_projectile, TRUE) + return + + if(!(fired_from.flags_gun_features & GUN_SILENCED)) + playsound(user, fired_from.fire_sound, fired_from.firesound_volume, FALSE) + else + playsound(user, fired_from.fire_sound, 25, FALSE) + + shake_camera(user, 1, 2) + + execution_target.apply_damage(damage * 3, BRUTE, "head", no_limb_loss = TRUE, permanent_kill = TRUE) //Apply gobs of damage and make sure they can't be revived later... + execution_target.apply_damage(200, OXY) //...fill out the rest of their health bar with oxyloss... + execution_target.death(create_cause_data("execution", user)) //...make certain they're properly dead... + shake_camera(execution_target, 3, 4) + execution_target.update_headshot_overlay(headshot_state) //...and add a gory headshot overlay. + + execution_target.visible_message(SPAN_HIGHDANGER(uppertext("[execution_target] WAS EXECUTED!")), \ + SPAN_HIGHDANGER("You WERE EXECUTED!")) + + user.count_niche_stat(STATISTICS_NICHE_EXECUTION, 1, firing_projectile.weapon_cause_data?.cause_name) + + var/area/execution_area = get_area(execution_target) + + msg_admin_attack(FONT_SIZE_HUGE("[key_name(usr)] has battlefield executed [key_name(execution_target)] in [get_area(usr)] ([usr.loc.x],[usr.loc.y],[usr.loc.z])."), usr.loc.x, usr.loc.y, usr.loc.z) + log_attack("[key_name(usr)] battlefield executed [key_name(execution_target)] at [execution_area.name].") + + if(flags_ammo_behavior & AMMO_EXPLOSIVE) + execution_target.gib() + diff --git a/code/datums/ammo/bullet/lever_action.dm b/code/datums/ammo/bullet/lever_action.dm new file mode 100644 index 000000000000..2770231b6811 --- /dev/null +++ b/code/datums/ammo/bullet/lever_action.dm @@ -0,0 +1,72 @@ +/* +//====== + Lever Action +//====== +*/ + +/datum/ammo/bullet/lever_action + name = "lever-action bullet" + + damage = 80 + penetration = 0 + accuracy = HIT_ACCURACY_TIER_1 + shell_speed = AMMO_SPEED_TIER_6 + accurate_range = 14 + handful_state = "lever_action_bullet" + +//unused and not working. need to refactor MD code. Unobtainable. +//intended mechanic is to have xenos hit with it show up very frequently on any MDs around +/datum/ammo/bullet/lever_action/tracker + name = "tracking lever-action bullet" + icon_state = "redbullet" + damage = 70 + penetration = ARMOR_PENETRATION_TIER_3 + accuracy = HIT_ACCURACY_TIER_1 + handful_state = "tracking_lever_action_bullet" + +/datum/ammo/bullet/lever_action/tracker/on_hit_mob(mob/M, obj/projectile/P, mob/user) + //SEND_SIGNAL(user, COMSIG_BULLET_TRACKING, user, M) + M.visible_message(SPAN_DANGER("You hear a faint beep under [M]'s [M.mob_size > MOB_SIZE_HUMAN ? "chitin" : "skin"].")) + +/datum/ammo/bullet/lever_action/training + name = "lever-action blank" + icon_state = "blank" + damage = 70 //blanks CAN hurt you if shot very close + penetration = 0 + accuracy = HIT_ACCURACY_TIER_1 + damage_falloff = DAMAGE_FALLOFF_BLANK //not much, though (comparatively) + shell_speed = AMMO_SPEED_TIER_5 + handful_state = "training_lever_action_bullet" + +//unused, and unobtainable... for now +/datum/ammo/bullet/lever_action/marksman + name = "marksman lever-action bullet" + shrapnel_chance = 0 + damage_falloff = 0 + accurate_range = 12 + damage = 70 + penetration = ARMOR_PENETRATION_TIER_6 + shell_speed = AMMO_SPEED_TIER_6 + handful_state = "marksman_lever_action_bullet" + +/datum/ammo/bullet/lever_action/xm88 + name = ".458 SOCOM round" + + damage = 80 + penetration = ARMOR_PENETRATION_TIER_2 + accuracy = HIT_ACCURACY_TIER_1 + shell_speed = AMMO_SPEED_TIER_6 + accurate_range = 14 + handful_state = "boomslang_bullet" + +/datum/ammo/bullet/lever_action/xm88/pen20 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/lever_action/xm88/pen30 + penetration = ARMOR_PENETRATION_TIER_6 + +/datum/ammo/bullet/lever_action/xm88/pen40 + penetration = ARMOR_PENETRATION_TIER_8 + +/datum/ammo/bullet/lever_action/xm88/pen50 + penetration = ARMOR_PENETRATION_TIER_10 diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm new file mode 100644 index 000000000000..8be63b0a15af --- /dev/null +++ b/code/datums/ammo/bullet/pistol.dm @@ -0,0 +1,265 @@ +/* +//====== + Pistol Ammo +//====== +*/ + +// Used by M4A3, M4A3 Custom and B92FS +/datum/ammo/bullet/pistol + name = "pistol bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + accuracy = -HIT_ACCURACY_TIER_3 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + damage = 40 + penetration= ARMOR_PENETRATION_TIER_2 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + +/datum/ammo/bullet/pistol/tiny + name = "light pistol bullet" + +/datum/ammo/bullet/pistol/tranq + name = "tranquilizer bullet" + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST + stamina_damage = 30 + damage = 15 + +//2020 rebalance: is supposed to counter runners and lurkers, dealing high damage to the only castes with no armor. +//Limited by its lack of versatility and lower supply, so marines finally have an answer for flanker castes that isn't just buckshot. + +/datum/ammo/bullet/pistol/hollow + name = "hollowpoint pistol bullet" + + damage = 55 //hollowpoint is strong + penetration = 0 //hollowpoint can't pierce armor! + shrapnel_chance = SHRAPNEL_CHANCE_TIER_3 //hollowpoint causes shrapnel + +// Used by M4A3 AP and mod88 +/datum/ammo/bullet/pistol/ap + name = "armor-piercing pistol bullet" + + damage = 25 + accuracy = HIT_ACCURACY_TIER_2 + penetration= ARMOR_PENETRATION_TIER_8 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + +/datum/ammo/bullet/pistol/ap/penetrating + name = "wall-penetrating pistol bullet" + shrapnel_chance = 0 + + damage = 30 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/pistol/ap/penetrating/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/pistol/ap/toxin + name = "toxic pistol bullet" + var/acid_per_hit = 10 + var/organic_damage_mult = 3 + +/datum/ammo/bullet/pistol/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + +/datum/ammo/bullet/pistol/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) + . = ..() + if(T.flags_turf & TURF_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/pistol/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) + . = ..() + if(O.flags_obj & OBJ_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/pistol/le + name = "armor-shredding pistol bullet" + + damage = 15 + penetration = ARMOR_PENETRATION_TIER_4 + pen_armor_punch = 3 + +/datum/ammo/bullet/pistol/rubber + name = "rubber pistol bullet" + sound_override = 'sound/weapons/gun_c99.ogg' + + damage = 0 + stamina_damage = 25 + shrapnel_chance = 0 + +// Reskinned rubber bullet used for the ES-4 CL pistol. +/datum/ammo/bullet/pistol/rubber/stun + name = "stun pistol bullet" + sound_override = null + +// Used by M1911, Deagle and KT-42 +/datum/ammo/bullet/pistol/heavy + name = "heavy pistol bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + accuracy = -HIT_ACCURACY_TIER_3 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + damage = 55 + penetration = ARMOR_PENETRATION_TIER_3 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + +/datum/ammo/bullet/pistol/heavy/super //Commander's variant + name = ".50 heavy pistol bullet" + damage = 60 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_6 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/pistol/heavy/super/highimpact + name = ".50 high-impact pistol bullet" + penetration = ARMOR_PENETRATION_TIER_1 + debilitate = list(0,1.5,0,0,0,1,0,0) + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/pistol/heavy/super/highimpact/ap + name = ".50 high-impact armor piercing pistol bullet" + penetration = ARMOR_PENETRATION_TIER_10 + damage = 45 + +/datum/ammo/bullet/pistol/heavy/super/highimpact/upp + name = "high-impact pistol bullet" + sound_override = 'sound/weapons/gun_DE50.ogg' + penetration = ARMOR_PENETRATION_TIER_6 + debilitate = list(0,1.5,0,0,0,1,0,0) + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/pistol/heavy/super/highimpact/New() + ..() + RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) + +/datum/ammo/bullet/pistol/heavy/super/highimpact/on_hit_mob(mob/M, obj/projectile/P) + knockback(M, P, 4) + +/datum/ammo/bullet/pistol/deagle + name = ".50 heavy pistol bullet" + damage = 45 + headshot_state = HEADSHOT_OVERLAY_HEAVY + accuracy = -HIT_ACCURACY_TIER_3 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + penetration = ARMOR_PENETRATION_TIER_6 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_5 + +/datum/ammo/bullet/pistol/incendiary + name = "incendiary pistol bullet" + damage_type = BURN + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC + + accuracy = HIT_ACCURACY_TIER_3 + damage = 20 + +/datum/ammo/bullet/pistol/incendiary/set_bullet_traits() + ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +// Used by the hipower +// I know that the 'high power' in the name is supposed to mean its 'impressive' magazine capacity +// but this is CM, half our guns have baffling misconceptions and mistakes (how do you grab the type-71?) so it's on-brand. +// maybe in the far flung future of 2280 someone screwed up the design. + +/datum/ammo/bullet/pistol/highpower + name = "high-powered pistol bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + accuracy = HIT_ACCURACY_TIER_3 + damage = 36 + penetration = ARMOR_PENETRATION_TIER_5 + damage_falloff = DAMAGE_FALLOFF_TIER_7 + +// Used by VP78 and Auto 9 +/datum/ammo/bullet/pistol/squash + name = "squash-head pistol bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + debilitate = list(0,0,0,0,0,0,0,2) + + accuracy = HIT_ACCURACY_TIER_4 + damage = 45 + penetration= ARMOR_PENETRATION_TIER_6 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + damage_falloff = DAMAGE_FALLOFF_TIER_6 //"VP78 - the only pistol viable as a primary."-Vampmare, probably. + +/datum/ammo/bullet/pistol/squash/toxin + name = "toxic squash-head pistol bullet" + var/acid_per_hit = 10 + var/organic_damage_mult = 3 + +/datum/ammo/bullet/pistol/squash/toxin/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + +/datum/ammo/bullet/pistol/squash/toxin/on_hit_turf(turf/T, obj/projectile/P) + . = ..() + if(T.flags_turf & TURF_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/pistol/squash/toxin/on_hit_obj(obj/O, obj/projectile/P) + . = ..() + if(O.flags_obj & OBJ_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/pistol/squash/penetrating + name = "wall-penetrating squash-head pistol bullet" + shrapnel_chance = 0 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/pistol/squash/penetrating/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/pistol/squash/incendiary + name = "incendiary squash-head pistol bullet" + damage_type = BURN + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC + accuracy = HIT_ACCURACY_TIER_3 + damage = 35 + +/datum/ammo/bullet/pistol/squash/incendiary/set_bullet_traits() + ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + + +/datum/ammo/bullet/pistol/mankey + name = "live monkey" + icon_state = "monkey1" + ping = null //no bounce off. + damage_type = BURN + debilitate = list(4,4,0,0,0,0,0,0) + flags_ammo_behavior = AMMO_IGNORE_ARMOR + + damage = 15 + damage_var_high = PROJECTILE_VARIANCE_TIER_5 + shell_speed = AMMO_SPEED_TIER_2 + +/datum/ammo/bullet/pistol/mankey/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/pistol/mankey/on_hit_mob(mob/M,obj/projectile/P) + if(P && P.loc && !M.stat && !istype(M,/mob/living/carbon/human/monkey)) + P.visible_message(SPAN_DANGER("The [src] chimpers furiously!")) + new /mob/living/carbon/human/monkey(P.loc) + +/datum/ammo/bullet/pistol/smart + name = "smartpistol bullet" + flags_ammo_behavior = AMMO_BALLISTIC + + accuracy = HIT_ACCURACY_TIER_8 + damage = 30 + penetration = 20 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm new file mode 100644 index 000000000000..633bf3e2f7ff --- /dev/null +++ b/code/datums/ammo/bullet/revolver.dm @@ -0,0 +1,180 @@ +/* +//====== + Revolver Ammo +//====== +*/ + +/datum/ammo/bullet/revolver + name = "revolver bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + damage = 55 + penetration = ARMOR_PENETRATION_TIER_1 + accuracy = HIT_ACCURACY_TIER_1 + +/datum/ammo/bullet/revolver/marksman + name = "marksman revolver bullet" + + shrapnel_chance = 0 + damage_falloff = 0 + accurate_range = 12 + penetration = ARMOR_PENETRATION_TIER_7 + +/datum/ammo/bullet/revolver/heavy + name = "heavy revolver bullet" + + damage = 35 + penetration = ARMOR_PENETRATION_TIER_4 + accuracy = HIT_ACCURACY_TIER_3 + +/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/entity, obj/projectile/bullet) + slowdown(entity, bullet) + pushback(entity, bullet, 4) + +/datum/ammo/bullet/revolver/incendiary + name = "incendiary revolver bullet" + damage = 40 + +/datum/ammo/bullet/revolver/incendiary/set_bullet_traits() + ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/revolver/marksman/toxin + name = "toxic revolver bullet" + var/acid_per_hit = 10 + var/organic_damage_mult = 3 + +/datum/ammo/bullet/revolver/marksman/toxin/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + +/datum/ammo/bullet/revolver/marksman/toxin/on_hit_turf(turf/T, obj/projectile/P) + . = ..() + if(T.flags_turf & TURF_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/revolver/marksman/toxin/on_hit_obj(obj/O, obj/projectile/P) + . = ..() + if(O.flags_obj & OBJ_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/revolver/penetrating + name = "wall-penetrating revolver bullet" + shrapnel_chance = 0 + + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/revolver/penetrating/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/revolver/upp + name = "heavy revolver bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + penetration = ARMOR_PENETRATION_TIER_4 + damage = 70 + + +/datum/ammo/bullet/revolver/upp/shrapnel + name = "shrapnel shot" + headshot_state = HEADSHOT_OVERLAY_HEAVY //Gol-dang shotgun blow your fething head off. + debilitate = list(0,0,0,0,0,0,0,0) + icon_state = "shrapnelshot" + handful_state = "shrapnel" + bonus_projectiles_type = /datum/ammo/bullet/revolver/upp/shrapnel_bits + + max_range = 6 + damage = 40 // + TIER_4 * 3 + damage_falloff = DAMAGE_FALLOFF_TIER_7 + penetration = ARMOR_PENETRATION_TIER_8 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + shrapnel_chance = 100 + shrapnel_type = /obj/item/shard/shrapnel/upp + //roughly 90 or so damage with the additional shrapnel, around 130 in total with primary round + +/datum/ammo/bullet/revolver/upp/shrapnel/on_hit_mob(mob/M, obj/projectile/P) + pushback(M, P, 1) + +/datum/ammo/bullet/revolver/upp/shrapnel_bits + name = "small shrapnel" + icon_state = "shrapnelshot_bit" + + max_range = 6 + damage = 30 + penetration = ARMOR_PENETRATION_TIER_4 + scatter = SCATTER_AMOUNT_TIER_1 + bonus_projectiles_amount = 0 + shrapnel_type = /obj/item/shard/shrapnel/upp/bits + +/datum/ammo/bullet/revolver/small + name = "small revolver bullet" + headshot_state = HEADSHOT_OVERLAY_LIGHT + + damage = 45 + + penetration = ARMOR_PENETRATION_TIER_3 + +/datum/ammo/bullet/revolver/small/hollowpoint + name = "small hollowpoint revolver bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + damage = 75 // way too strong because it's hard to make a good balance between HP and normal with this system, but the damage falloff is really strong + penetration = 0 + damage_falloff = DAMAGE_FALLOFF_TIER_6 + +/datum/ammo/bullet/revolver/mateba + name = ".454 heavy revolver bullet" + + damage = 60 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_6 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/revolver/mateba/highimpact + name = ".454 heavy high-impact revolver bullet" + debilitate = list(0,2,0,0,0,1,0,0) + penetration = ARMOR_PENETRATION_TIER_1 + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/revolver/mateba/highimpact/ap + name = ".454 heavy high-impact armor piercing revolver bullet" + penetration = ARMOR_PENETRATION_TIER_10 + damage = 45 + +/datum/ammo/bullet/revolver/mateba/highimpact/New() + ..() + RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) + +/datum/ammo/bullet/revolver/mateba/highimpact/on_hit_mob(mob/M, obj/projectile/P) + knockback(M, P, 4) + +/datum/ammo/bullet/revolver/mateba/highimpact/explosive //if you ever put this in normal gameplay, i am going to scream + name = ".454 heavy explosive revolver bullet" + damage = 100 + damage_var_low = PROJECTILE_VARIANCE_TIER_10 + damage_var_high = PROJECTILE_VARIANCE_TIER_1 + penetration = ARMOR_PENETRATION_TIER_10 + flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_BALLISTIC + +/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_mob(mob/M, obj/projectile/P) + ..() + cell_explosion(get_turf(M), 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_obj(obj/O, obj/projectile/P) + ..() + cell_explosion(get_turf(O), 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_turf(turf/T, obj/projectile/P) + ..() + cell_explosion(T, 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/revolver/webley //Mateba round without the knockdown. + name = ".455 Webley bullet" + damage = 60 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_6 + penetration = ARMOR_PENETRATION_TIER_2 diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm new file mode 100644 index 000000000000..0be6f1db8ff4 --- /dev/null +++ b/code/datums/ammo/bullet/rifle.dm @@ -0,0 +1,211 @@ +/* +//====== + Rifle Ammo +//====== +*/ + +/datum/ammo/bullet/rifle + name = "rifle bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + damage = 40 + penetration = ARMOR_PENETRATION_TIER_1 + accurate_range = 16 + accuracy = HIT_ACCURACY_TIER_4 + scatter = SCATTER_AMOUNT_TIER_10 + shell_speed = AMMO_SPEED_TIER_6 + effective_range_max = 7 + damage_falloff = DAMAGE_FALLOFF_TIER_7 + max_range = 24 //So S8 users don't have their bullets magically disappaer at 22 tiles (S8 can see 24 tiles) + +/datum/ammo/bullet/rifle/holo_target + name = "holo-targeting rifle bullet" + damage = 30 + var/holo_stacks = 10 + +/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + +/datum/ammo/bullet/rifle/holo_target/hunting + name = "holo-targeting hunting bullet" + damage = 25 + holo_stacks = 15 + +/datum/ammo/bullet/rifle/explosive + name = "explosive rifle bullet" + + damage = 25 + accurate_range = 22 + accuracy = 0 + shell_speed = AMMO_SPEED_TIER_4 + damage_falloff = DAMAGE_FALLOFF_TIER_9 + +/datum/ammo/bullet/rifle/explosive/on_hit_mob(mob/M, obj/projectile/P) + cell_explosion(get_turf(M), 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/rifle/explosive/on_hit_obj(obj/O, obj/projectile/P) + cell_explosion(get_turf(O), 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/rifle/explosive/on_hit_turf(turf/T, obj/projectile/P) + if(T.density) + cell_explosion(T, 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) + +/datum/ammo/bullet/rifle/ap + name = "armor-piercing rifle bullet" + + damage = 30 + penetration = ARMOR_PENETRATION_TIER_8 + +// Basically AP but better. Focused at taking out armour temporarily +/datum/ammo/bullet/rifle/ap/toxin + name = "toxic rifle bullet" + var/acid_per_hit = 7 + var/organic_damage_mult = 3 + +/datum/ammo/bullet/rifle/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + +/datum/ammo/bullet/rifle/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) + . = ..() + if(T.flags_turf & TURF_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/rifle/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) + . = ..() + if(O.flags_obj & OBJ_ORGANIC) + P.damage *= organic_damage_mult + + +/datum/ammo/bullet/rifle/ap/penetrating + name = "wall-penetrating rifle bullet" + shrapnel_chance = 0 + + damage = 35 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/rifle/ap/penetrating/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/rifle/le + name = "armor-shredding rifle bullet" + + damage = 20 + penetration = ARMOR_PENETRATION_TIER_4 + pen_armor_punch = 5 + +/datum/ammo/bullet/rifle/heap + name = "high-explosive armor-piercing rifle bullet" + + headshot_state = HEADSHOT_OVERLAY_HEAVY + damage = 55//big damage, doesn't actually blow up because thats stupid. + penetration = ARMOR_PENETRATION_TIER_8 + +/datum/ammo/bullet/rifle/rubber + name = "rubber rifle bullet" + sound_override = 'sound/weapons/gun_c99.ogg' + + damage = 0 + stamina_damage = 15 + shrapnel_chance = 0 + +/datum/ammo/bullet/rifle/incendiary + name = "incendiary rifle bullet" + damage_type = BURN + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC + + damage = 30 + shell_speed = AMMO_SPEED_TIER_4 + accuracy = -HIT_ACCURACY_TIER_2 + damage_falloff = DAMAGE_FALLOFF_TIER_10 + +/datum/ammo/bullet/rifle/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/rifle/m4ra + name = "A19 high velocity bullet" + shrapnel_chance = 0 + damage_falloff = 0 + flags_ammo_behavior = AMMO_BALLISTIC + accurate_range_min = 4 + + damage = 55 + scatter = -SCATTER_AMOUNT_TIER_8 + penetration= ARMOR_PENETRATION_TIER_7 + shell_speed = AMMO_SPEED_TIER_6 + +/datum/ammo/bullet/rifle/m4ra/incendiary + name = "A19 high velocity incendiary bullet" + flags_ammo_behavior = AMMO_BALLISTIC + + damage = 40 + accuracy = HIT_ACCURACY_TIER_4 + scatter = -SCATTER_AMOUNT_TIER_8 + penetration= ARMOR_PENETRATION_TIER_5 + shell_speed = AMMO_SPEED_TIER_6 + +/datum/ammo/bullet/rifle/m4ra/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/rifle/m4ra/impact + name = "A19 high velocity impact bullet" + flags_ammo_behavior = AMMO_BALLISTIC + + damage = 40 + accuracy = -HIT_ACCURACY_TIER_2 + scatter = -SCATTER_AMOUNT_TIER_8 + penetration = ARMOR_PENETRATION_TIER_10 + shell_speed = AMMO_SPEED_TIER_6 + +/datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P) + knockback(M, P, 32) // Can knockback basically at max range + +/datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) + target.KnockDown(0.5) // purely for visual effect, noone actually cares + target.Stun(0.5) + target.apply_effect(2, SUPERSLOW) + target.apply_effect(5, SLOW) + else + if(!isyautja(living_mob)) //Not predators. + living_mob.apply_effect(1, SUPERSLOW) + living_mob.apply_effect(2, SLOW) + to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + +/datum/ammo/bullet/rifle/mar40 + name = "heavy rifle bullet" + + damage = 55 + +/datum/ammo/bullet/rifle/type71 + name = "heavy rifle bullet" + + damage = 55 + penetration = ARMOR_PENETRATION_TIER_3 + +/datum/ammo/bullet/rifle/type71/ap + name = "heavy armor-piercing rifle bullet" + + damage = 40 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/rifle/type71/heap + name = "heavy high-explosive armor-piercing rifle bullet" + + headshot_state = HEADSHOT_OVERLAY_HEAVY + damage = 65 + penetration = ARMOR_PENETRATION_TIER_10 diff --git a/code/datums/ammo/bullet/shotgun.dm b/code/datums/ammo/bullet/shotgun.dm new file mode 100644 index 000000000000..96ac4cb6ba04 --- /dev/null +++ b/code/datums/ammo/bullet/shotgun.dm @@ -0,0 +1,366 @@ +/* +//====== + Shotgun Ammo +//====== +*/ + +/datum/ammo/bullet/shotgun + headshot_state = HEADSHOT_OVERLAY_HEAVY + +/datum/ammo/bullet/shotgun/slug + name = "shotgun slug" + handful_state = "slug_shell" + + accurate_range = 6 + max_range = 8 + damage = 70 + penetration = ARMOR_PENETRATION_TIER_4 + damage_armor_punch = 2 + handful_state = "slug_shell" + +/datum/ammo/bullet/shotgun/slug/on_hit_mob(mob/M,obj/projectile/P) + knockback(M, P, 6) + +/datum/ammo/bullet/shotgun/slug/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) + target.apply_effect(1, SUPERSLOW) + target.apply_effect(3, SLOW) + else + if(!isyautja(living_mob)) //Not predators. + living_mob.apply_effect(1, SUPERSLOW) + living_mob.apply_effect(2, SLOW) + to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + +/datum/ammo/bullet/shotgun/beanbag + name = "beanbag slug" + headshot_state = HEADSHOT_OVERLAY_LIGHT //It's not meant to kill people... but if you put it in your mouth, it will. + handful_state = "beanbag_slug" + icon_state = "beanbag" + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST + sound_override = 'sound/weapons/gun_shotgun_riot.ogg' + + max_range = 12 + shrapnel_chance = 0 + damage = 0 + stamina_damage = 45 + accuracy = HIT_ACCURACY_TIER_3 + shell_speed = AMMO_SPEED_TIER_3 + handful_state = "beanbag_slug" + +/datum/ammo/bullet/shotgun/beanbag/on_hit_mob(mob/M, obj/projectile/P) + if(!M || M == P.firer) return + if(ishuman(M)) + var/mob/living/carbon/human/H = M + shake_camera(H, 2, 1) + + +/datum/ammo/bullet/shotgun/incendiary + name = "incendiary slug" + handful_state = "incendiary_slug" + damage_type = BURN + flags_ammo_behavior = AMMO_BALLISTIC + + accuracy = -HIT_ACCURACY_TIER_2 + max_range = 12 + damage = 55 + penetration= ARMOR_PENETRATION_TIER_1 + handful_state = "incendiary_slug" + +/datum/ammo/bullet/shotgun/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/shotgun/incendiary/on_hit_mob(mob/M,obj/projectile/P) + burst(get_turf(M),P,damage_type) + knockback(M,P) + +/datum/ammo/bullet/shotgun/incendiary/on_hit_obj(obj/O,obj/projectile/P) + burst(get_turf(P),P,damage_type) + +/datum/ammo/bullet/shotgun/incendiary/on_hit_turf(turf/T,obj/projectile/P) + burst(get_turf(T),P,damage_type) + + +/datum/ammo/bullet/shotgun/flechette + name = "flechette shell" + icon_state = "flechette" + handful_state = "flechette_shell" + bonus_projectiles_type = /datum/ammo/bullet/shotgun/flechette_spread + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + max_range = 12 + damage = 30 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_7 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + handful_state = "flechette_shell" + multiple_handful_name = TRUE + +/datum/ammo/bullet/shotgun/flechette_spread + name = "additional flechette" + icon_state = "flechette" + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + max_range = 12 + damage = 30 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_7 + scatter = SCATTER_AMOUNT_TIER_5 + +/datum/ammo/bullet/shotgun/buckshot + name = "buckshot shell" + icon_state = "buckshot" + handful_state = "buckshot_shell" + multiple_handful_name = TRUE + bonus_projectiles_type = /datum/ammo/bullet/shotgun/spread + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_5 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_5 + accurate_range = 4 + max_range = 4 + damage = 65 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_1 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + shell_speed = AMMO_SPEED_TIER_2 + damage_armor_punch = 0 + pen_armor_punch = 0 + handful_state = "buckshot_shell" + multiple_handful_name = TRUE + +/datum/ammo/bullet/shotgun/buckshot/incendiary + name = "incendiary buckshot shell" + handful_state = "incen_buckshot" + handful_type = /obj/item/ammo_magazine/handful/shotgun/buckshot/incendiary + +/datum/ammo/bullet/shotgun/buckshot/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/shotgun/buckshot/on_hit_mob(mob/M,obj/projectile/P) + knockback(M,P) + +//buckshot variant only used by the masterkey shotgun attachment. +/datum/ammo/bullet/shotgun/buckshot/masterkey + bonus_projectiles_type = /datum/ammo/bullet/shotgun/spread/masterkey + + damage = 55 + +/datum/ammo/bullet/shotgun/spread + name = "additional buckshot" + icon_state = "buckshot" + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 4 + max_range = 6 + damage = 65 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_1 + shell_speed = AMMO_SPEED_TIER_2 + scatter = SCATTER_AMOUNT_TIER_1 + damage_armor_punch = 0 + pen_armor_punch = 0 + +/datum/ammo/bullet/shotgun/spread/masterkey + damage = 20 + +/* + 8 GAUGE SHOTGUN AMMO +*/ + +/datum/ammo/bullet/shotgun/heavy/buckshot + name = "heavy buckshot shell" + icon_state = "buckshot" + handful_state = "heavy_buckshot" + multiple_handful_name = TRUE + bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/spread + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + accurate_range = 3 + max_range = 3 + damage = 75 + penetration = 0 + shell_speed = AMMO_SPEED_TIER_2 + damage_armor_punch = 0 + pen_armor_punch = 0 + +/datum/ammo/bullet/shotgun/heavy/buckshot/on_hit_mob(mob/M,obj/projectile/P) + knockback(M,P) + +/datum/ammo/bullet/shotgun/heavy/buckshot/spread + name = "additional heavy buckshot" + max_range = 4 + scatter = SCATTER_AMOUNT_TIER_1 + bonus_projectiles_amount = 0 + +//basically the same +/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath + name = "dragon's breath shell" + handful_state = "heavy_dragonsbreath" + multiple_handful_name = TRUE + damage_type = BURN + damage = 60 + accurate_range = 3 + max_range = 4 + bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread + +/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread + name = "additional dragon's breath" + bonus_projectiles_amount = 0 + accurate_range = 4 + max_range = 5 //make use of the ablaze property + shell_speed = AMMO_SPEED_TIER_4 // so they hit before the main shell stuns + + +/datum/ammo/bullet/shotgun/heavy/slug + name = "heavy shotgun slug" + handful_state = "heavy_slug" + + accurate_range = 7 + max_range = 8 + damage = 90 //ouch. + penetration = ARMOR_PENETRATION_TIER_6 + damage_armor_punch = 2 + +/datum/ammo/bullet/shotgun/heavy/slug/on_hit_mob(mob/M,obj/projectile/P) + knockback(M, P, 7) + +/datum/ammo/bullet/shotgun/heavy/slug/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) + target.apply_effect(2, SUPERSLOW) + target.apply_effect(5, SLOW) + else + if(!isyautja(living_mob)) //Not predators. + living_mob.apply_effect(1, SUPERSLOW) + living_mob.apply_effect(2, SLOW) + to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + +/datum/ammo/bullet/shotgun/heavy/beanbag + name = "heavy beanbag slug" + icon_state = "beanbag" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + handful_state = "heavy_beanbag" + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST + sound_override = 'sound/weapons/gun_shotgun_riot.ogg' + + max_range = 7 + shrapnel_chance = 0 + damage = 0 + stamina_damage = 100 + accuracy = HIT_ACCURACY_TIER_2 + shell_speed = AMMO_SPEED_TIER_2 + +/datum/ammo/bullet/shotgun/heavy/beanbag/on_hit_mob(mob/M, obj/projectile/P) + if(!M || M == P.firer) + return + if(ishuman(M)) + var/mob/living/carbon/human/H = M + shake_camera(H, 2, 1) + +/datum/ammo/bullet/shotgun/heavy/flechette + name = "heavy flechette shell" + icon_state = "flechette" + handful_state = "heavy_flechette" + multiple_handful_name = TRUE + bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/flechette_spread + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_3 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_3 + max_range = 12 + damage = 45 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_10 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_2 + +/datum/ammo/bullet/shotgun/heavy/flechette_spread + name = "additional heavy flechette" + icon_state = "flechette" + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + max_range = 12 + damage = 45 + damage_var_low = PROJECTILE_VARIANCE_TIER_8 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_10 + scatter = SCATTER_AMOUNT_TIER_4 + +//Enormous shell for Van Bandolier's superheavy double-barreled hunting gun. +/datum/ammo/bullet/shotgun/twobore + name = "two bore bullet" + icon_state = "autocannon" + handful_state = "twobore" + + accurate_range = 8 //Big low-velocity projectile; this is for blasting dangerous game at close range. + max_range = 14 //At this range, it's lost all its damage anyway. + damage = 300 //Hits like a buckshot PB. + penetration = ARMOR_PENETRATION_TIER_3 + damage_falloff = DAMAGE_FALLOFF_TIER_1 * 3 //It has a lot of energy, but the 26mm bullet drops off fast. + effective_range_max = EFFECTIVE_RANGE_MAX_TIER_2 //Full damage up to this distance, then falloff for each tile beyond. + var/hit_messages = list() + +/datum/ammo/bullet/shotgun/twobore/on_hit_mob(mob/living/M, obj/projectile/P) + var/mob/shooter = P.firer + if(shooter && ismob(shooter) && HAS_TRAIT(shooter, TRAIT_TWOBORE_TRAINING) && M.stat != DEAD && prob(40)) //Death is handled by periodic life() checks so this should have a chance to fire on a killshot. + if(!length(hit_messages)) //Pick and remove lines, refill on exhaustion. + hit_messages = list("Got you!", "Aha!", "Bullseye!", "It's curtains for you, Sonny Jim!", "Your head will look fantastic on my wall!", "I have you now!", "You miserable coward! Come and fight me like a man!", "Tally ho!") + var/message = pick_n_take(hit_messages) + shooter.say(message) + + if(P.distance_travelled > 8) + knockback(M, P, 12) + + else if(!M || M == P.firer || M.body_position == LYING_DOWN) //These checks are included in knockback and would be redundant above. + return + + shake_camera(M, 3, 4) + M.KnockDown(2) // If you ask me the KD should be left out, but players like their visual cues + M.Stun(2) + M.apply_effect(4, SLOW) + if(iscarbonsizexeno(M)) + to_chat(M, SPAN_XENODANGER("The impact knocks you off your feet!")) + else //This will hammer a Yautja as hard as a human. + to_chat(M, SPAN_HIGHDANGER("The impact knocks you off your feet!")) + + step(M, get_dir(P.firer, M)) + +/datum/ammo/bullet/shotgun/twobore/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) + target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues + target.Stun(0.5) + target.apply_effect(2, SUPERSLOW) + target.apply_effect(5, SLOW) + else + if(!isyautja(living_mob)) //Not predators. + living_mob.apply_effect(1, SUPERSLOW) + living_mob.apply_effect(2, SLOW) + to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) diff --git a/code/datums/ammo/bullet/smg.dm b/code/datums/ammo/bullet/smg.dm new file mode 100644 index 000000000000..e24b3021da97 --- /dev/null +++ b/code/datums/ammo/bullet/smg.dm @@ -0,0 +1,147 @@ +/* +//====== + SMG Ammo +//====== +*/ +//2020 SMG/ammo rebalance. default ammo actually has penetration so it can be useful, by 4khan: should be meh against t3s, better under 15 armor. Perfectly does this right now (oct 2020) +//has reduced falloff compared to the m39. this means it is best for kiting castes (mostly t2s and below admittedly) +//while the m39 ap is better for shredding them at close range, but has reduced velocity, so it's better for just running in and erasing armor-centric castes (defender, crusher) +// which i think is really interesting and good balance, giving both ammo types a reason to exist even against ravagers. +//i feel it is necessary to reflavor the default bullet, because otherwise, people won't be able to notice it has less falloff and faster bullet speed. even with a changelog, +//way too many people don't read the changelog, and after one or two months the changelog entry is all but archive, so there needs to be an ingame description of what the ammo does +//in comparison to armor-piercing rounds. + +/datum/ammo/bullet/smg + name = "submachinegun bullet" + damage = 34 + accurate_range = 4 + effective_range_max = 4 + penetration = ARMOR_PENETRATION_TIER_1 + shell_speed = AMMO_SPEED_TIER_6 + damage_falloff = DAMAGE_FALLOFF_TIER_5 + scatter = SCATTER_AMOUNT_TIER_6 + accuracy = HIT_ACCURACY_TIER_3 + +/datum/ammo/bullet/smg/m39 + name = "high-velocity submachinegun bullet" //i don't want all smgs to inherit 'high velocity' + +/datum/ammo/bullet/smg/ap + name = "armor-piercing submachinegun bullet" + + damage = 26 + penetration = ARMOR_PENETRATION_TIER_6 + shell_speed = AMMO_SPEED_TIER_4 + +/datum/ammo/bullet/smg/heap + name = "high-explosive armor-piercing submachinegun bullet" + + damage = 45 + headshot_state = HEADSHOT_OVERLAY_MEDIUM + penetration = ARMOR_PENETRATION_TIER_6 + shell_speed = AMMO_SPEED_TIER_4 + +/datum/ammo/bullet/smg/ap/toxin + name = "toxic submachinegun bullet" + var/acid_per_hit = 5 + var/organic_damage_mult = 3 + +/datum/ammo/bullet/smg/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) + +/datum/ammo/bullet/smg/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) + . = ..() + if(T.flags_turf & TURF_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/smg/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) + . = ..() + if(O.flags_obj & OBJ_ORGANIC) + P.damage *= organic_damage_mult + +/datum/ammo/bullet/smg/nail + name = "7x45mm plasteel nail" + icon_state = "nail-projectile" + + damage = 25 + penetration = ARMOR_PENETRATION_TIER_5 + damage_falloff = DAMAGE_FALLOFF_TIER_6 + accurate_range = 5 + shell_speed = AMMO_SPEED_TIER_4 + +/datum/ammo/bullet/smg/incendiary + name = "incendiary submachinegun bullet" + damage_type = BURN + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC + + damage = 25 + accuracy = -HIT_ACCURACY_TIER_2 + +/datum/ammo/bullet/smg/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/smg/ap/penetrating + name = "wall-penetrating submachinegun bullet" + shrapnel_chance = 0 + + damage = 30 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/smg/ap/penetrating/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/smg/le + name = "armor-shredding submachinegun bullet" + + scatter = SCATTER_AMOUNT_TIER_10 + damage = 20 + penetration = ARMOR_PENETRATION_TIER_4 + shell_speed = AMMO_SPEED_TIER_3 + damage_falloff = DAMAGE_FALLOFF_TIER_10 + pen_armor_punch = 4 + +/datum/ammo/bullet/smg/rubber + name = "rubber submachinegun bullet" + sound_override = 'sound/weapons/gun_c99.ogg' + + damage = 0 + stamina_damage = 10 + shrapnel_chance = 0 + +/datum/ammo/bullet/smg/mp27 + name = "simple submachinegun bullet" + damage = 40 + accurate_range = 5 + effective_range_max = 7 + penetration = 0 + shell_speed = AMMO_SPEED_TIER_6 + damage_falloff = DAMAGE_FALLOFF_TIER_6 + scatter = SCATTER_AMOUNT_TIER_6 + accuracy = HIT_ACCURACY_TIER_2 + +// less damage than the m39, but better falloff, range, and AP + +/datum/ammo/bullet/smg/ppsh + name = "crude submachinegun bullet" + damage = 26 + accurate_range = 7 + effective_range_max = 7 + penetration = ARMOR_PENETRATION_TIER_2 + damage_falloff = DAMAGE_FALLOFF_TIER_7 + scatter = SCATTER_AMOUNT_TIER_5 + +/datum/ammo/bullet/smg/pps43 + name = "simple submachinegun bullet" + damage = 35 + accurate_range = 7 + effective_range_max = 10 + penetration = ARMOR_PENETRATION_TIER_4 + damage_falloff = DAMAGE_FALLOFF_TIER_6 + scatter = SCATTER_AMOUNT_TIER_6 diff --git a/code/datums/ammo/bullet/sniper.dm b/code/datums/ammo/bullet/sniper.dm new file mode 100644 index 000000000000..a82f00631608 --- /dev/null +++ b/code/datums/ammo/bullet/sniper.dm @@ -0,0 +1,170 @@ +/* +//====== + Sniper Ammo +//====== +*/ + +/datum/ammo/bullet/sniper + name = "sniper bullet" + headshot_state = HEADSHOT_OVERLAY_HEAVY + damage_falloff = 0 + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER + accurate_range_min = 4 + + accuracy = HIT_ACCURACY_TIER_8 + accurate_range = 32 + max_range = 32 + scatter = 0 + damage = 70 + penetration= ARMOR_PENETRATION_TIER_10 + shell_speed = AMMO_SPEED_TIER_6 + damage_falloff = 0 + +/datum/ammo/bullet/sniper/on_hit_mob(mob/M,obj/projectile/P) + if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) + var/mob/living/L = M + L.apply_armoured_damage(damage*2, ARMOR_BULLET, BRUTE, null, penetration) + to_chat(P.firer, SPAN_WARNING("Bullseye!")) + +/datum/ammo/bullet/sniper/incendiary + name = "incendiary sniper bullet" + damage_type = BRUTE + shrapnel_chance = 0 + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER + + //Removed accuracy = 0, accuracy_var_high = Variance Tier 6, and scatter = 0. -Kaga + damage = 60 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/sniper/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/sniper/incendiary/on_hit_mob(mob/M,obj/projectile/P) + if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) + var/mob/living/L = M + var/blind_duration = 5 + if(isxeno(M)) + var/mob/living/carbon/xenomorph/target = M + if(target.mob_size >= MOB_SIZE_BIG) + blind_duration = 2 + L.AdjustEyeBlur(blind_duration) + L.adjust_fire_stacks(10) + to_chat(P.firer, SPAN_WARNING("Bullseye!")) + +/datum/ammo/bullet/sniper/flak + name = "flak sniper bullet" + damage_type = BRUTE + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER + + accuracy = HIT_ACCURACY_TIER_8 + scatter = SCATTER_AMOUNT_TIER_8 + damage = 55 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 //Documenting old code: This converts to a variance of 96-109% damage. -Kaga + penetration = 0 + +/datum/ammo/bullet/sniper/flak/on_hit_mob(mob/M,obj/projectile/P) + if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) + var/slow_duration = 7 + var/mob/living/L = M + if(isxeno(M)) + var/mob/living/carbon/xenomorph/target = M + if(target.mob_size >= MOB_SIZE_BIG) + slow_duration = 4 + M.adjust_effect(slow_duration, SUPERSLOW) + L.apply_armoured_damage(damage, ARMOR_BULLET, BRUTE, null, penetration) + to_chat(P.firer, SPAN_WARNING("Bullseye!")) + else + burst(get_turf(M),P,damage_type, 2 , 2) + burst(get_turf(M),P,damage_type, 1 , 2 , 0) + +/datum/ammo/bullet/sniper/flak/on_near_target(turf/T, obj/projectile/P) + burst(T,P,damage_type, 2 , 2) + burst(T,P,damage_type, 1 , 2, 0) + return 1 + +/datum/ammo/bullet/sniper/crude + name = "crude sniper bullet" + damage = 42 + penetration = ARMOR_PENETRATION_TIER_6 + +/datum/ammo/bullet/sniper/crude/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + pushback(M, P, 3) + +/datum/ammo/bullet/sniper/upp + name = "armor-piercing sniper bullet" + damage = 80 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/bullet/sniper/anti_materiel + name = "anti-materiel sniper bullet" + + shrapnel_chance = 0 // This isn't leaving any shrapnel. + accuracy = HIT_ACCURACY_TIER_8 + damage = 125 + shell_speed = AMMO_SPEED_TIER_6 + +/datum/ammo/bullet/sniper/anti_materiel/on_hit_mob(mob/M,obj/projectile/P) + if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) + var/mob/living/L = M + var/size_damage_mod = 0.8 + if(isxeno(M)) + var/mob/living/carbon/xenomorph/target = M + if(target.mob_size >= MOB_SIZE_XENO) + size_damage_mod += 0.6 + if(target.mob_size >= MOB_SIZE_BIG) + size_damage_mod += 0.6 + L.apply_armoured_damage(damage*size_damage_mod, ARMOR_BULLET, BRUTE, null, penetration) + // 180% damage to all targets (225), 240% (300) against non-Runner xenos, and 300% against Big xenos (375). -Kaga + to_chat(P.firer, SPAN_WARNING("Bullseye!")) + +/datum/ammo/bullet/sniper/anti_materiel/vulture + damage = 400 // Fully intended to vaporize anything smaller than a mini cooper + accurate_range_min = 10 + handful_state = "vulture_bullet" + sound_hit = 'sound/bullets/bullet_vulture_impact.ogg' + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER|AMMO_ANTIVEHICLE + +/datum/ammo/bullet/sniper/anti_materiel/vulture/on_hit_mob(mob/hit_mob, obj/projectile/bullet) + . = ..() + knockback(hit_mob, bullet, 30) + hit_mob.apply_effect(3, SLOW) + +/datum/ammo/bullet/sniper/anti_materiel/vulture/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/heavy) + )) + +/datum/ammo/bullet/sniper/elite + name = "supersonic sniper bullet" + + shrapnel_chance = 0 // This isn't leaving any shrapnel. + accuracy = HIT_ACCURACY_TIER_8 + damage = 150 + shell_speed = AMMO_SPEED_TIER_6 + AMMO_SPEED_TIER_2 + +/datum/ammo/bullet/sniper/elite/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) + )) + +/datum/ammo/bullet/sniper/elite/on_hit_mob(mob/M,obj/projectile/P) + if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) + var/mob/living/L = M + var/size_damage_mod = 0.5 + if(isxeno(M)) + var/mob/living/carbon/xenomorph/target = M + if(target.mob_size >= MOB_SIZE_XENO) + size_damage_mod += 0.5 + if(target.mob_size >= MOB_SIZE_BIG) + size_damage_mod += 1 + L.apply_armoured_damage(damage*size_damage_mod, ARMOR_BULLET, BRUTE, null, penetration) + else + L.apply_armoured_damage(damage, ARMOR_BULLET, BRUTE, null, penetration) + // 150% damage to runners (225), 300% against Big xenos (450), and 200% against all others (300). -Kaga + to_chat(P.firer, SPAN_WARNING("Bullseye!")) diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm new file mode 100644 index 000000000000..3d53c6b0c0d0 --- /dev/null +++ b/code/datums/ammo/bullet/special_ammo.dm @@ -0,0 +1,179 @@ +/* +//====== + Special Ammo +//====== +*/ + +/datum/ammo/bullet/smartgun + name = "smartgun bullet" + icon_state = "redbullet" + flags_ammo_behavior = AMMO_BALLISTIC + + max_range = 12 + accuracy = HIT_ACCURACY_TIER_4 + damage = 30 + penetration = 0 + +/datum/ammo/bullet/smartgun/armor_piercing + name = "armor-piercing smartgun bullet" + icon_state = "bullet" + + accurate_range = 12 + accuracy = HIT_ACCURACY_TIER_2 + damage = 20 + penetration = ARMOR_PENETRATION_TIER_8 + damage_armor_punch = 1 + +/datum/ammo/bullet/smartgun/dirty + name = "irradiated smartgun bullet" + debilitate = list(0,0,0,3,0,0,0,1) + + shrapnel_chance = SHRAPNEL_CHANCE_TIER_7 + accurate_range = 32 + accuracy = HIT_ACCURACY_TIER_3 + damage = 40 + penetration = 0 + +/datum/ammo/bullet/smartgun/dirty/armor_piercing + debilitate = list(0,0,0,3,0,0,0,1) + + accurate_range = 22 + accuracy = HIT_ACCURACY_TIER_3 + damage = 30 + penetration = ARMOR_PENETRATION_TIER_7 + damage_armor_punch = 3 + +/datum/ammo/bullet/smartgun/holo_target //Royal marines smartgun bullet has only diff between regular ammo is this one does holostacks + name = "holo-targeting smartgun bullet" + damage = 30 + ///Stuff for the HRP holotargetting stacks + var/holo_stacks = 15 + +/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + +/datum/ammo/bullet/smartgun/holo_target/ap + name = "armor-piercing smartgun bullet" + icon_state = "bullet" + + accurate_range = 12 + accuracy = HIT_ACCURACY_TIER_2 + damage = 20 + penetration = ARMOR_PENETRATION_TIER_8 + damage_armor_punch = 1 + +/datum/ammo/bullet/smartgun/m56_fpw + name = "\improper M56 FPW bullet" + icon_state = "redbullet" + flags_ammo_behavior = AMMO_BALLISTIC + + max_range = 7 + accuracy = HIT_ACCURACY_TIER_7 + damage = 35 + penetration = ARMOR_PENETRATION_TIER_1 + +/datum/ammo/bullet/turret + name = "autocannon bullet" + icon_state = "redbullet" //Red bullets to indicate friendly fire restriction + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_COVER + + accurate_range = 22 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_8 + max_range = 22 + damage = 30 + penetration = ARMOR_PENETRATION_TIER_7 + damage_armor_punch = 0 + pen_armor_punch = 0 + shell_speed = 2*AMMO_SPEED_TIER_6 + accuracy = HIT_ACCURACY_TIER_5 + +/datum/ammo/bullet/turret/dumb + icon_state = "bullet" + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/machinegun //Adding this for the MG Nests (~Art) + name = "machinegun bullet" + icon_state = "bullet" // Keeping it bog standard with the turret but allows it to be changed + + accurate_range = 12 + damage = 35 + penetration= ARMOR_PENETRATION_TIER_10 //Bumped the penetration to serve a different role from sentries, MGs are a bit more offensive + accuracy = HIT_ACCURACY_TIER_3 + +/datum/ammo/bullet/machinegun/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) + )) + +/datum/ammo/bullet/machinegun/doorgun + flags_ammo_behavior = AMMO_BALLISTIC | AMMO_IGNORE_COVER + +/datum/ammo/bullet/machinegun/auto // for M2C, automatic variant for M56D, stats for bullet should always be moderately overtuned to fulfill its ultra-offense + flank-push purpose + name = "heavy machinegun bullet" + + accurate_range = 10 + damage = 50 + penetration = ARMOR_PENETRATION_TIER_6 + accuracy = -HIT_ACCURACY_TIER_2 // 75 accuracy + shell_speed = AMMO_SPEED_TIER_2 + max_range = 15 + effective_range_max = 7 + damage_falloff = DAMAGE_FALLOFF_TIER_8 + +/datum/ammo/bullet/machinegun/auto/set_bullet_traits() + return + +/datum/ammo/bullet/minigun + name = "minigun bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + accuracy = -HIT_ACCURACY_TIER_3 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 12 + damage = 35 + penetration = ARMOR_PENETRATION_TIER_6 + +/datum/ammo/bullet/minigun/New() + ..() + if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH)) + damage = 15 + else if(SSticker.current_state < GAME_STATE_PLAYING) + RegisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP, PROC_REF(setup_hvh_damage)) + +/datum/ammo/bullet/minigun/proc/setup_hvh_damage() + if(MODE_HAS_FLAG(MODE_FACTION_CLASH)) + damage = 15 + +/datum/ammo/bullet/minigun/tank + accuracy = -HIT_ACCURACY_TIER_1 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_8 + accurate_range = 12 + +/datum/ammo/bullet/m60 + name = "M60 bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + accuracy = HIT_ACCURACY_TIER_2 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 12 + damage = 45 //7.62x51 is scary + penetration= ARMOR_PENETRATION_TIER_6 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + +/datum/ammo/bullet/pkp + name = "machinegun bullet" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + + accuracy = HIT_ACCURACY_TIER_1 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 14 + damage = 35 + penetration= ARMOR_PENETRATION_TIER_6 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 diff --git a/code/datums/ammo/bullet/tank.dm b/code/datums/ammo/bullet/tank.dm new file mode 100644 index 000000000000..70a953c6e273 --- /dev/null +++ b/code/datums/ammo/bullet/tank.dm @@ -0,0 +1,74 @@ +/* +//====== + Tank Ammo +//====== +*/ + +/datum/ammo/bullet/tank/flak + name = "flak autocannon bullet" + icon_state = "autocannon" + damage_falloff = 0 + flags_ammo_behavior = AMMO_BALLISTIC + accurate_range_min = 4 + + accuracy = HIT_ACCURACY_TIER_8 + scatter = 0 + damage = 60 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_6 + accurate_range = 32 + max_range = 32 + shell_speed = AMMO_SPEED_TIER_6 + +/datum/ammo/bullet/tank/flak/on_hit_mob(mob/M,obj/projectile/P) + burst(get_turf(M),P,damage_type, 2 , 3) + burst(get_turf(M),P,damage_type, 1 , 3 , 0) + +/datum/ammo/bullet/tank/flak/on_near_target(turf/T, obj/projectile/P) + burst(get_turf(T),P,damage_type, 2 , 3) + burst(get_turf(T),P,damage_type, 1 , 3, 0) + return 1 + +/datum/ammo/bullet/tank/flak/on_hit_obj(obj/O,obj/projectile/P) + burst(get_turf(P),P,damage_type, 2 , 3) + burst(get_turf(P),P,damage_type, 1 , 3 , 0) + +/datum/ammo/bullet/tank/flak/on_hit_turf(turf/T,obj/projectile/P) + burst(get_turf(T),P,damage_type, 2 , 3) + burst(get_turf(T),P,damage_type, 1 , 3 , 0) + +/datum/ammo/bullet/tank/dualcannon + name = "dualcannon bullet" + icon_state = "autocannon" + damage_falloff = 0 + flags_ammo_behavior = AMMO_BALLISTIC + + accuracy = HIT_ACCURACY_TIER_8 + scatter = 0 + damage = 50 + damage_var_high = PROJECTILE_VARIANCE_TIER_8 + penetration = ARMOR_PENETRATION_TIER_3 + accurate_range = 10 + max_range = 12 + shell_speed = AMMO_SPEED_TIER_5 + +/datum/ammo/bullet/tank/dualcannon/on_hit_mob(mob/M,obj/projectile/P) + for(var/mob/living/carbon/L in get_turf(M)) + if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) + shake_camera(L, 1, 1) + +/datum/ammo/bullet/tank/dualcannon/on_near_target(turf/T, obj/projectile/P) + for(var/mob/living/carbon/L in T) + if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) + shake_camera(L, 1, 1) + return 1 + +/datum/ammo/bullet/tank/dualcannon/on_hit_obj(obj/O,obj/projectile/P) + for(var/mob/living/carbon/L in get_turf(O)) + if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) + shake_camera(L, 1, 1) + +/datum/ammo/bullet/tank/dualcannon/on_hit_turf(turf/T,obj/projectile/P) + for(var/mob/living/carbon/L in T) + if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) + shake_camera(L, 1, 1) diff --git a/code/datums/ammo/energy.dm b/code/datums/ammo/energy.dm new file mode 100644 index 000000000000..27d2b7d4e0c5 --- /dev/null +++ b/code/datums/ammo/energy.dm @@ -0,0 +1,232 @@ +/* +//====== + Energy Ammo +//====== +*/ + +/datum/ammo/energy + ping = null //no bounce off. We can have one later. + sound_hit = "energy_hit" + sound_miss = "energy_miss" + sound_bounce = "energy_bounce" + + damage_type = BURN + flags_ammo_behavior = AMMO_ENERGY + + accuracy = HIT_ACCURACY_TIER_4 + +/datum/ammo/energy/emitter //Damage is determined in emitter.dm + name = "emitter bolt" + icon_state = "emitter" + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_ARMOR + + accurate_range = 6 + max_range = 6 + +/datum/ammo/energy/taser + name = "taser bolt" + icon_state = "stun" + damage_type = OXY + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_ALWAYS_FF //Not that ignoring will do much right now. + + stamina_damage = 45 + accuracy = HIT_ACCURACY_TIER_8 + shell_speed = AMMO_SPEED_TIER_1 // Slightly faster + hit_effect_color = "#FFFF00" + +/datum/ammo/energy/taser/on_hit_mob(mob/M, obj/projectile/P) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.disable_special_items() // Disables scout cloak + +/datum/ammo/energy/taser/precise + name = "precise taser bolt" + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_MP + +/datum/ammo/energy/rxfm_eva + name = "laser blast" + icon_state = "laser_new" + flags_ammo_behavior = AMMO_LASER + accurate_range = 14 + max_range = 22 + damage = 45 + stamina_damage = 25 //why not + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/energy/rxfm_eva/on_hit_mob(mob/living/M, obj/projectile/P) + ..() + if(prob(10)) //small chance for one to ignite on hit + M.fire_act() + +/datum/ammo/energy/laz_uzi + name = "laser bolt" + icon_state = "laser_new" + flags_ammo_behavior = AMMO_ENERGY + damage = 40 + accurate_range = 5 + effective_range_max = 7 + max_range = 10 + shell_speed = AMMO_SPEED_TIER_4 + scatter = SCATTER_AMOUNT_TIER_6 + accuracy = HIT_ACCURACY_TIER_3 + damage_falloff = DAMAGE_FALLOFF_TIER_8 + +/datum/ammo/energy/yautja + headshot_state = HEADSHOT_OVERLAY_MEDIUM + accurate_range = 12 + shell_speed = AMMO_SPEED_TIER_3 + damage_type = BURN + flags_ammo_behavior = AMMO_IGNORE_RESIST + +/datum/ammo/energy/yautja/pistol + name = "plasma pistol bolt" + icon_state = "ion" + + damage = 40 + shell_speed = AMMO_SPEED_TIER_2 + +/datum/ammo/energy/yautja/pistol/incendiary + damage = 10 + +/datum/ammo/energy/yautja/pistol/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/shrapnel/plasma + name = "plasma wave" + shrapnel_chance = 0 + penetration = ARMOR_PENETRATION_TIER_10 + accuracy = HIT_ACCURACY_TIER_MAX + damage = 15 + icon_state = "shrapnel_plasma" + damage_type = BURN + +/datum/ammo/bullet/shrapnel/plasma/on_hit_mob(mob/living/hit_mob, obj/projectile/hit_projectile) + hit_mob.Stun(2) + +/datum/ammo/energy/yautja/caster + name = "root caster bolt" + icon_state = "ion" + +/datum/ammo/energy/yautja/caster/stun + name = "low power stun bolt" + debilitate = list(2,2,0,0,0,1,0,0) + + damage = 0 + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST + +/datum/ammo/energy/yautja/caster/bolt + name = "plasma bolt" + icon_state = "pulse1" + flags_ammo_behavior = AMMO_IGNORE_RESIST + shell_speed = AMMO_SPEED_TIER_6 + damage = 35 + +/datum/ammo/energy/yautja/caster/bolt/stun + name = "high power stun bolt" + var/stun_time = 2 + + damage = 0 + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST + +/datum/ammo/energy/yautja/caster/bolt/stun/on_hit_mob(mob/M, obj/projectile/P) + var/mob/living/carbon/C = M + var/stun_time = src.stun_time + if(istype(C)) + if(isyautja(C) || ispredalien(C)) + return + to_chat(C, SPAN_DANGER("An electric shock ripples through your body, freezing you in place!")) + log_attack("[key_name(C)] was stunned by a high power stun bolt from [key_name(P.firer)] at [get_area(P)]") + + if(ishuman(C)) + stun_time++ + C.apply_effect(stun_time, WEAKEN) + C.apply_effect(stun_time, STUN) + ..() + +/datum/ammo/energy/yautja/caster/sphere + name = "plasma eradicator" + icon_state = "bluespace" + flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_HITS_TARGET_TURF + shell_speed = AMMO_SPEED_TIER_4 + accuracy = HIT_ACCURACY_TIER_8 + + damage = 55 + + accurate_range = 8 + max_range = 8 + + var/vehicle_slowdown_time = 5 SECONDS + +/datum/ammo/energy/yautja/caster/sphere/on_hit_mob(mob/M, obj/projectile/P) + cell_explosion(P, 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/energy/yautja/caster/sphere/on_hit_turf(turf/T, obj/projectile/P) + cell_explosion(P, 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/energy/yautja/caster/sphere/on_hit_obj(obj/O, obj/projectile/P) + if(istype(O, /obj/vehicle/multitile)) + var/obj/vehicle/multitile/multitile_vehicle = O + multitile_vehicle.next_move = world.time + vehicle_slowdown_time + playsound(multitile_vehicle, 'sound/effects/meteorimpact.ogg', 35) + multitile_vehicle.at_munition_interior_explosion_effect(cause_data = create_cause_data("Plasma Eradicator", P.firer)) + multitile_vehicle.interior_crash_effect() + multitile_vehicle.ex_act(150, P.dir, P.weapon_cause_data, 100) + cell_explosion(get_turf(P), 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/energy/yautja/caster/sphere/do_at_max_range(obj/projectile/P) + cell_explosion(get_turf(P), 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + + +/datum/ammo/energy/yautja/caster/sphere/stun + name = "plasma immobilizer" + damage = 0 + flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST + accurate_range = 20 + max_range = 20 + + var/stun_range = 4 // Big + var/stun_time = 6 + +/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_mob(mob/M, obj/projectile/P) + do_area_stun(P) + +/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_turf(turf/T,obj/projectile/P) + do_area_stun(P) + +/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_obj(obj/O,obj/projectile/P) + do_area_stun(P) + +/datum/ammo/energy/yautja/caster/sphere/stun/do_at_max_range(obj/projectile/P) + do_area_stun(P) + +/datum/ammo/energy/yautja/caster/sphere/stun/proc/do_area_stun(obj/projectile/P) + playsound(P, 'sound/weapons/wave.ogg', 75, 1, 25) + for (var/mob/living/carbon/M in view(src.stun_range, get_turf(P))) + var/stun_time = src.stun_time + log_attack("[key_name(M)] was stunned by a plasma immobilizer from [key_name(P.firer)] at [get_area(P)]") + if (isyautja(M)) + stun_time -= 2 + if(ispredalien(M)) + continue + to_chat(M, SPAN_DANGER("A powerful electric shock ripples through your body, freezing you in place!")) + M.apply_effect(stun_time, STUN) + M.apply_effect(stun_time, WEAKEN) + +/datum/ammo/energy/yautja/rifle/bolt + name = "plasma rifle bolt" + icon_state = "ion" + damage_type = BURN + debilitate = list(0,2,0,0,0,0,0,0) + flags_ammo_behavior = AMMO_IGNORE_RESIST + + damage = 55 + penetration = ARMOR_PENETRATION_TIER_10 + +/datum/ammo/energy/yautja/rifle/bolt/on_hit_mob(mob/hit_mob, obj/projectile/hit_projectile) + if(isxeno(hit_mob)) + var/mob/living/carbon/xenomorph/xeno = hit_mob + xeno.apply_damage(damage * 0.75, BURN) + xeno.interference = 30 diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm new file mode 100644 index 000000000000..3aaba8443efb --- /dev/null +++ b/code/datums/ammo/misc.dm @@ -0,0 +1,294 @@ +/* +//====== + Misc Ammo +//====== +*/ + +/datum/ammo/alloy_spike + name = "alloy spike" + headshot_state = HEADSHOT_OVERLAY_MEDIUM + ping = "ping_s" + icon_state = "MSpearFlight" + sound_hit = "alloy_hit" + sound_armor = "alloy_armor" + sound_bounce = "alloy_bounce" + + accuracy = HIT_ACCURACY_TIER_8 + accurate_range = 12 + max_range = 12 + damage = 30 + penetration= ARMOR_PENETRATION_TIER_10 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_7 + shrapnel_type = /obj/item/shard/shrapnel + +/datum/ammo/flamethrower + name = "flame" + icon_state = "pulse0" + damage_type = BURN + flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_HITS_TARGET_TURF + + max_range = 6 + damage = 35 + +/datum/ammo/flamethrower/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/flamethrower/on_hit_mob(mob/M, obj/projectile/P) + drop_flame(get_turf(M), P.weapon_cause_data) + +/datum/ammo/flamethrower/on_hit_obj(obj/O, obj/projectile/P) + drop_flame(get_turf(O), P.weapon_cause_data) + +/datum/ammo/flamethrower/on_hit_turf(turf/T, obj/projectile/P) + drop_flame(T, P.weapon_cause_data) + +/datum/ammo/flamethrower/do_at_max_range(obj/projectile/P) + drop_flame(get_turf(P), P.weapon_cause_data) + +/datum/ammo/flamethrower/tank_flamer + flamer_reagent_type = /datum/reagent/napalm/blue + +/datum/ammo/flamethrower/sentry_flamer + flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_IGNORE_COVER|AMMO_FLAME + flamer_reagent_type = /datum/reagent/napalm/blue + + accuracy = HIT_ACCURACY_TIER_8 + accurate_range = 6 + max_range = 12 + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/flamethrower/sentry_flamer/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/flamethrower/sentry_flamer/glob + max_range = 14 + accurate_range = 10 + var/datum/effect_system/smoke_spread/phosphorus/smoke + +/datum/ammo/flamethrower/sentry_flamer/glob/New() + . = ..() + smoke = new() + +/datum/ammo/flamethrower/sentry_flamer/glob/drop_flame(turf/T, datum/cause_data/cause_data) + if(!istype(T)) + return + smoke.set_up(1, 0, T, new_cause_data = cause_data) + smoke.start() + +/datum/ammo/flamethrower/sentry_flamer/glob/Destroy() + qdel(smoke) + return ..() + +/datum/ammo/flamethrower/sentry_flamer/mini + name = "normal fire" + +/datum/ammo/flamethrower/sentry_flamer/mini/drop_flame(turf/T, datum/cause_data/cause_data) + if(!istype(T)) + return + var/datum/reagent/napalm/ut/R = new() + R.durationfire = BURN_TIME_INSTANT + new /obj/flamer_fire(T, cause_data, R, 0) + +/datum/ammo/flare + name = "flare" + ping = null //no bounce off. + damage_type = BURN + flags_ammo_behavior = AMMO_HITS_TARGET_TURF + icon_state = "flare" + + damage = 15 + accuracy = HIT_ACCURACY_TIER_3 + max_range = 14 + shell_speed = AMMO_SPEED_TIER_3 + + var/flare_type = /obj/item/device/flashlight/flare/on/gun + handful_type = /obj/item/device/flashlight/flare + +/datum/ammo/flare/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/flare/on_hit_mob(mob/M,obj/projectile/P) + drop_flare(get_turf(M), P, P.firer) + +/datum/ammo/flare/on_hit_obj(obj/O,obj/projectile/P) + drop_flare(get_turf(P), P, P.firer) + +/datum/ammo/flare/on_hit_turf(turf/T, obj/projectile/P) + if(T.density && isturf(P.loc)) + drop_flare(P.loc, P, P.firer) + else + drop_flare(T, P, P.firer) + +/datum/ammo/flare/do_at_max_range(obj/projectile/P, mob/firer) + drop_flare(get_turf(P), P, P.firer) + +/datum/ammo/flare/proc/drop_flare(turf/T, obj/projectile/fired_projectile, mob/firer) + var/obj/item/device/flashlight/flare/G = new flare_type(T) + var/matrix/rotation = matrix() + rotation.Turn(fired_projectile.angle - 90) + G.apply_transform(rotation) + G.visible_message(SPAN_WARNING("\A [G] bursts into brilliant light nearby!")) + return G + +/datum/ammo/flare/signal + name = "signal flare" + icon_state = "flare_signal" + flare_type = /obj/item/device/flashlight/flare/signal/gun + handful_type = /obj/item/device/flashlight/flare/signal + +/datum/ammo/flare/signal/drop_flare(turf/T, obj/projectile/fired_projectile, mob/firer) + var/obj/item/device/flashlight/flare/signal/gun/signal_flare = ..() + signal_flare.activate_signal(firer) + if(istype(fired_projectile.shot_from, /obj/item/weapon/gun/flare)) + var/obj/item/weapon/gun/flare/flare_gun_fired_from = fired_projectile.shot_from + flare_gun_fired_from.last_signal_flare_name = signal_flare.name + +/datum/ammo/flare/starshell + name = "starshell ash" + icon_state = "starshell_bullet" + max_range = 5 + flare_type = /obj/item/device/flashlight/flare/on/starshell_ash + +/datum/ammo/flare/starshell/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff, /datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/souto + name = "Souto Can" + ping = null //no bounce off. + damage_type = BRUTE + shrapnel_type = /obj/item/reagent_container/food/drinks/cans/souto/classic + flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_IGNORE_ARMOR|AMMO_IGNORE_RESIST|AMMO_BALLISTIC|AMMO_STOPPED_BY_COVER|AMMO_SPECIAL_EMBED + var/obj/item/reagent_container/food/drinks/cans/souto/can_type + icon_state = "souto_classic" + + max_range = 12 + shrapnel_chance = 10 + accuracy = HIT_ACCURACY_TIER_8 + HIT_ACCURACY_TIER_8 + accurate_range = 12 + shell_speed = AMMO_SPEED_TIER_1 + +/datum/ammo/souto/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) + if(ishuman(embedded_mob) && !isyautja(embedded_mob)) + if(istype(target_organ)) + target_organ.embed(new can_type) + +/datum/ammo/souto/on_hit_mob(mob/M, obj/projectile/P) + if(!M || M == P.firer) return + if(M.throw_mode && !M.get_active_hand()) //empty active hand and we're in throw mode. If so we catch the can. + if(!M.is_mob_incapacitated()) // People who are not able to catch cannot catch. + if(P.contents.len == 1) + for(var/obj/item/reagent_container/food/drinks/cans/souto/S in P.contents) + M.put_in_active_hand(S) + for(var/mob/O in viewers(GLOB.world_view_size, P)) //find all people in view. + O.show_message(SPAN_DANGER("[M] catches [S]!"), SHOW_MESSAGE_VISIBLE) //Tell them the can was caught. + return //Can was caught. + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.species.name == "Human") //no effect on synths or preds. + H.apply_effect(6, STUN) + H.apply_effect(8, WEAKEN) + H.apply_effect(15, DAZE) + H.apply_effect(15, SLOW) + shake_camera(H, 2, 1) + if(P.contents.len) + drop_can(P.loc, P) //We make a can at the location. + +/datum/ammo/souto/on_hit_obj(obj/O,obj/projectile/P) + drop_can(P.loc, P) //We make a can at the location. + +/datum/ammo/souto/on_hit_turf(turf/T, obj/projectile/P) + drop_can(P.loc, P) //We make a can at the location. + +/datum/ammo/souto/do_at_max_range(obj/projectile/P) + drop_can(P.loc, P) //We make a can at the location. + +/datum/ammo/souto/on_shield_block(mob/M, obj/projectile/P) + drop_can(P.loc, P) //We make a can at the location. + +/datum/ammo/souto/proc/drop_can(loc, obj/projectile/P) + if(P.contents.len) + for(var/obj/item/I in P.contents) + I.forceMove(loc) + randomize_projectile(P) + +/datum/ammo/souto/proc/randomize_projectile(obj/projectile/P) + shrapnel_type = pick(typesof(/obj/item/reagent_container/food/drinks/cans/souto)-/obj/item/reagent_container/food/drinks/cans/souto) + +/datum/ammo/grenade_container + name = "grenade shell" + ping = null + damage_type = BRUTE + var/nade_type = /obj/item/explosive/grenade/high_explosive + icon_state = "grenade" + flags_ammo_behavior = AMMO_IGNORE_COVER|AMMO_SKIPS_ALIENS + + damage = 15 + accuracy = HIT_ACCURACY_TIER_3 + max_range = 6 + +/datum/ammo/grenade_container/on_hit_mob(mob/M,obj/projectile/P) + drop_nade(P) + +/datum/ammo/grenade_container/on_hit_obj(obj/O,obj/projectile/P) + drop_nade(P) + +/datum/ammo/grenade_container/on_hit_turf(turf/T,obj/projectile/P) + drop_nade(P) + +/datum/ammo/grenade_container/do_at_max_range(obj/projectile/P) + drop_nade(P) + +/datum/ammo/grenade_container/proc/drop_nade(obj/projectile/P) + var/turf/T = get_turf(P) + var/obj/item/explosive/grenade/G = new nade_type(T) + G.visible_message(SPAN_WARNING("\A [G] lands on [T]!")) + G.det_time = 10 + G.cause_data = P.weapon_cause_data + G.activate() + +/datum/ammo/grenade_container/rifle + flags_ammo_behavior = NO_FLAGS + +/datum/ammo/grenade_container/smoke + name = "smoke grenade shell" + nade_type = /obj/item/explosive/grenade/smokebomb + icon_state = "smoke_shell" + +/datum/ammo/hugger_container + name = "hugger shell" + ping = null + damage_type = BRUTE + var/hugger_hive = XENO_HIVE_NORMAL + icon_state = "smoke_shell" + + damage = 15 + accuracy = HIT_ACCURACY_TIER_3 + max_range = 6 + +/datum/ammo/hugger_container/on_hit_mob(mob/M,obj/projectile/P) + spawn_hugger(get_turf(P)) + +/datum/ammo/hugger_container/on_hit_obj(obj/O,obj/projectile/P) + spawn_hugger(get_turf(P)) + +/datum/ammo/hugger_container/on_hit_turf(turf/T,obj/projectile/P) + spawn_hugger(get_turf(P)) + +/datum/ammo/hugger_container/do_at_max_range(obj/projectile/P) + spawn_hugger(get_turf(P)) + +/datum/ammo/hugger_container/proc/spawn_hugger(turf/T) + var/obj/item/clothing/mask/facehugger/child = new(T) + child.hivenumber = hugger_hive + INVOKE_ASYNC(child, TYPE_PROC_REF(/obj/item/clothing/mask/facehugger, leap_at_nearest_target)) diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm new file mode 100644 index 000000000000..66a9f65bdcdd --- /dev/null +++ b/code/datums/ammo/rocket.dm @@ -0,0 +1,298 @@ +/* +//====== + Rocket Ammo +//====== +*/ + +/datum/ammo/rocket + name = "high explosive rocket" + icon_state = "missile" + ping = null //no bounce off. + sound_bounce = "rocket_bounce" + damage_falloff = 0 + flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_STRIKES_SURFACE + var/datum/effect_system/smoke_spread/smoke + + accuracy = HIT_ACCURACY_TIER_2 + accurate_range = 7 + max_range = 7 + damage = 15 + shell_speed = AMMO_SPEED_TIER_2 + +/datum/ammo/rocket/New() + ..() + smoke = new() + +/datum/ammo/rocket/Destroy() + qdel(smoke) + smoke = null + . = ..() + +/datum/ammo/rocket/on_hit_mob(mob/M, obj/projectile/P) + cell_explosion(get_turf(M), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, get_turf(M)) + if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. + M.ex_act(350, P.dir, P.weapon_cause_data, 100) + smoke.start() + +/datum/ammo/rocket/on_hit_obj(obj/O, obj/projectile/P) + cell_explosion(get_turf(O), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, get_turf(O)) + smoke.start() + +/datum/ammo/rocket/on_hit_turf(turf/T, obj/projectile/P) + cell_explosion(T, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, T) + smoke.start() + +/datum/ammo/rocket/do_at_max_range(obj/projectile/P) + cell_explosion(get_turf(P), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, get_turf(P)) + smoke.start() + +/datum/ammo/rocket/ap + name = "anti-armor rocket" + damage_falloff = 0 + flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET + + accuracy = HIT_ACCURACY_TIER_8 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_9 + accurate_range = 6 + max_range = 6 + damage = 10 + penetration= ARMOR_PENETRATION_TIER_10 + +/datum/ammo/rocket/ap/on_hit_mob(mob/M, obj/projectile/P) + var/turf/T = get_turf(M) + M.ex_act(150, P.dir, P.weapon_cause_data, 100) + M.apply_effect(2, PARALYZE) + if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. + M.ex_act(300, P.dir, P.weapon_cause_data, 100) + cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, T) + smoke.start() + +/datum/ammo/rocket/ap/on_hit_obj(obj/O, obj/projectile/P) + var/turf/T = get_turf(O) + O.ex_act(150, P.dir, P.weapon_cause_data, 100) + cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, T) + smoke.start() + +/datum/ammo/rocket/ap/on_hit_turf(turf/T, obj/projectile/P) + var/hit_something = 0 + for(var/mob/M in T) + M.ex_act(150, P.dir, P.weapon_cause_data, 100) + M.apply_effect(4, PARALYZE) + hit_something = 1 + continue + if(!hit_something) + for(var/obj/O in T) + if(O.density) + O.ex_act(150, P.dir, P.weapon_cause_data, 100) + hit_something = 1 + continue + if(!hit_something) + T.ex_act(150, P.dir, P.weapon_cause_data, 200) + + cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, T) + smoke.start() + +/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/P) + var/turf/T = get_turf(P) + var/hit_something = 0 + for(var/mob/M in T) + M.ex_act(250, P.dir, P.weapon_cause_data, 100) + M.apply_effect(2, WEAKEN) + M.apply_effect(2, PARALYZE) + hit_something = 1 + continue + if(!hit_something) + for(var/obj/O in T) + if(O.density) + O.ex_act(250, P.dir, P.weapon_cause_data, 100) + hit_something = 1 + continue + if(!hit_something) + T.ex_act(250, P.dir, P.weapon_cause_data) + cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + smoke.set_up(1, T) + smoke.start() + +/datum/ammo/rocket/ap/anti_tank + name = "anti-tank rocket" + damage = 100 + var/vehicle_slowdown_time = 5 SECONDS + shrapnel_chance = 5 + shrapnel_type = /obj/item/large_shrapnel/at_rocket_dud + +/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/O, obj/projectile/P) + if(istype(O, /obj/vehicle/multitile)) + var/obj/vehicle/multitile/M = O + M.next_move = world.time + vehicle_slowdown_time + playsound(M, 'sound/effects/meteorimpact.ogg', 35) + M.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) + M.interior_crash_effect() + var/turf/T = get_turf(M.loc) + M.ex_act(150, P.dir, P.weapon_cause_data, 100) + smoke.set_up(1, T) + smoke.start() + return + return ..() + + +/datum/ammo/rocket/ltb + name = "cannon round" + icon_state = "ltb" + flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_STRIKES_SURFACE + + accuracy = HIT_ACCURACY_TIER_3 + accurate_range = 32 + max_range = 32 + damage = 25 + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/rocket/ltb/on_hit_mob(mob/M, obj/projectile/P) + cell_explosion(get_turf(M), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + cell_explosion(get_turf(M), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/rocket/ltb/on_hit_obj(obj/O, obj/projectile/P) + cell_explosion(get_turf(O), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + cell_explosion(get_turf(O), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/rocket/ltb/on_hit_turf(turf/T, obj/projectile/P) + cell_explosion(get_turf(T), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + cell_explosion(get_turf(T), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/P) + cell_explosion(get_turf(P), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + cell_explosion(get_turf(P), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) + +/datum/ammo/rocket/wp + name = "white phosphorous rocket" + flags_ammo_behavior = AMMO_ROCKET|AMMO_EXPLOSIVE|AMMO_STRIKES_SURFACE + damage_type = BURN + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 8 + damage = 90 + max_range = 8 + +/datum/ammo/rocket/wp/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/rocket/wp/drop_flame(turf/T, datum/cause_data/cause_data) + playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(T)) return + smoke.set_up(1, T) + smoke.start() + var/datum/reagent/napalm/blue/R = new() + new /obj/flamer_fire(T, cause_data, R, 3) + + var/datum/effect_system/smoke_spread/phosphorus/landingSmoke = new /datum/effect_system/smoke_spread/phosphorus + landingSmoke.set_up(3, 0, T, null, 6, cause_data) + landingSmoke.start() + landingSmoke = null + +/datum/ammo/rocket/wp/on_hit_mob(mob/M, obj/projectile/P) + drop_flame(get_turf(M), P.weapon_cause_data) + +/datum/ammo/rocket/wp/on_hit_obj(obj/O, obj/projectile/P) + drop_flame(get_turf(O), P.weapon_cause_data) + +/datum/ammo/rocket/wp/on_hit_turf(turf/T, obj/projectile/P) + drop_flame(T, P.weapon_cause_data) + +/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/P) + drop_flame(get_turf(P), P.weapon_cause_data) + +/datum/ammo/rocket/wp/upp + name = "extreme-intensity incendiary rocket" + flags_ammo_behavior = AMMO_ROCKET|AMMO_EXPLOSIVE|AMMO_STRIKES_SURFACE + damage_type = BURN + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 8 + damage = 150 + max_range = 10 + +/datum/ammo/rocket/wp/upp/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/rocket/wp/upp/drop_flame(turf/T, datum/cause_data/cause_data) + playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(T)) return + smoke.set_up(1, T) + smoke.start() + var/datum/reagent/napalm/upp/R = new() + new /obj/flamer_fire(T, cause_data, R, 3) + +/datum/ammo/rocket/wp/upp/on_hit_mob(mob/M, obj/projectile/P) + drop_flame(get_turf(M), P.weapon_cause_data) + +/datum/ammo/rocket/wp/upp/on_hit_obj(obj/O, obj/projectile/P) + drop_flame(get_turf(O), P.weapon_cause_data) + +/datum/ammo/rocket/wp/upp/on_hit_turf(turf/T, obj/projectile/P) + drop_flame(T, P.weapon_cause_data) + +/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/P) + drop_flame(get_turf(P), P.weapon_cause_data) + +/datum/ammo/rocket/wp/quad + name = "thermobaric rocket" + flags_ammo_behavior = AMMO_ROCKET|AMMO_STRIKES_SURFACE + + damage = 100 + max_range = 32 + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/rocket/wp/quad/on_hit_mob(mob/M, obj/projectile/P) + drop_flame(get_turf(M), P.weapon_cause_data) + explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) + +/datum/ammo/rocket/wp/quad/on_hit_obj(obj/O, obj/projectile/P) + drop_flame(get_turf(O), P.weapon_cause_data) + explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) + +/datum/ammo/rocket/wp/quad/on_hit_turf(turf/T, obj/projectile/P) + drop_flame(T, P.weapon_cause_data) + explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) + +/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/P) + drop_flame(get_turf(P), P.weapon_cause_data) + explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) + +/datum/ammo/rocket/custom + name = "custom rocket" + +/datum/ammo/rocket/custom/proc/prime(atom/A, obj/projectile/P) + var/obj/item/weapon/gun/launcher/rocket/launcher = P.shot_from + var/obj/item/ammo_magazine/rocket/custom/rocket = launcher.current_mag + if(rocket.locked && rocket.warhead && rocket.warhead.detonator) + if(rocket.fuel && rocket.fuel.reagents.get_reagent_amount(rocket.fuel_type) >= rocket.fuel_requirement) + rocket.forceMove(P.loc) + rocket.warhead.cause_data = P.weapon_cause_data + rocket.warhead.prime() + qdel(rocket) + smoke.set_up(1, get_turf(A)) + smoke.start() + +/datum/ammo/rocket/custom/on_hit_mob(mob/M, obj/projectile/P) + prime(M, P) + +/datum/ammo/rocket/custom/on_hit_obj(obj/O, obj/projectile/P) + prime(O, P) + +/datum/ammo/rocket/custom/on_hit_turf(turf/T, obj/projectile/P) + prime(T, P) + +/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/P) + prime(null, P) diff --git a/code/datums/ammo/shrapnel.dm b/code/datums/ammo/shrapnel.dm new file mode 100644 index 000000000000..e27caa4b277d --- /dev/null +++ b/code/datums/ammo/shrapnel.dm @@ -0,0 +1,157 @@ +/* +//====== + Shrapnel +//====== +*/ +/datum/ammo/bullet/shrapnel + name = "shrapnel" + icon_state = "buckshot" + accurate_range_min = 5 + flags_ammo_behavior = AMMO_BALLISTIC|AMMO_STOPPED_BY_COVER + + accuracy = HIT_ACCURACY_TIER_3 + accurate_range = 32 + max_range = 8 + damage = 25 + damage_var_low = -PROJECTILE_VARIANCE_TIER_6 + damage_var_high = PROJECTILE_VARIANCE_TIER_6 + penetration = ARMOR_PENETRATION_TIER_4 + shell_speed = AMMO_SPEED_TIER_2 + shrapnel_chance = 5 + +/datum/ammo/bullet/shrapnel/on_hit_obj(obj/O, obj/projectile/P) + if(istype(O, /obj/structure/barricade)) + var/obj/structure/barricade/B = O + B.health -= rand(2, 5) + B.update_health(1) + +/datum/ammo/bullet/shrapnel/rubber + name = "rubber pellets" + icon_state = "rubber_pellets" + flags_ammo_behavior = AMMO_STOPPED_BY_COVER + + damage = 0 + stamina_damage = 25 + shrapnel_chance = 0 + + +/datum/ammo/bullet/shrapnel/hornet_rounds + name = ".22 hornet round" + icon_state = "hornet_round" + flags_ammo_behavior = AMMO_BALLISTIC + damage = 20 + shrapnel_chance = 0 + shell_speed = AMMO_SPEED_TIER_3//she fast af boi + penetration = ARMOR_PENETRATION_TIER_5 + +/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + M.AddComponent(/datum/component/bonus_damage_stack, 10, world.time) + +/datum/ammo/bullet/shrapnel/incendiary + name = "flaming shrapnel" + icon_state = "beanbag" // looks suprisingly a lot like flaming shrapnel chunks + flags_ammo_behavior = AMMO_STOPPED_BY_COVER + + shell_speed = AMMO_SPEED_TIER_1 + damage = 20 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/shrapnel/incendiary/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + +/datum/ammo/bullet/shrapnel/metal + name = "metal shrapnel" + icon_state = "shrapnelshot_bit" + flags_ammo_behavior = AMMO_STOPPED_BY_COVER|AMMO_BALLISTIC + shell_speed = AMMO_SPEED_TIER_1 + damage = 30 + shrapnel_chance = 15 + accuracy = HIT_ACCURACY_TIER_8 + penetration = ARMOR_PENETRATION_TIER_4 + +/datum/ammo/bullet/shrapnel/light // weak shrapnel + name = "light shrapnel" + icon_state = "shrapnel_light" + + damage = 10 + penetration = ARMOR_PENETRATION_TIER_1 + shell_speed = AMMO_SPEED_TIER_1 + shrapnel_chance = 0 + +/datum/ammo/bullet/shrapnel/light/human + name = "human bone fragments" + icon_state = "shrapnel_human" + + shrapnel_chance = 50 + shrapnel_type = /obj/item/shard/shrapnel/bone_chips/human + +/datum/ammo/bullet/shrapnel/light/human/var1 // sprite variants + icon_state = "shrapnel_human1" + +/datum/ammo/bullet/shrapnel/light/human/var2 // sprite variants + icon_state = "shrapnel_human2" + +/datum/ammo/bullet/shrapnel/light/xeno + name = "alien bone fragments" + icon_state = "shrapnel_xeno" + + shrapnel_chance = 50 + shrapnel_type = /obj/item/shard/shrapnel/bone_chips/xeno + +/datum/ammo/bullet/shrapnel/spall // weak shrapnel + name = "spall" + icon_state = "shrapnel_light" + + damage = 10 + penetration = ARMOR_PENETRATION_TIER_1 + shell_speed = AMMO_SPEED_TIER_1 + shrapnel_chance = 0 + +/datum/ammo/bullet/shrapnel/light/glass + name = "glass shrapnel" + icon_state = "shrapnel_glass" + +/datum/ammo/bullet/shrapnel/light/effect/ // no damage, but looks bright and neat + name = "sparks" + + damage = 1 // Tickle tickle + +/datum/ammo/bullet/shrapnel/light/effect/ver1 + icon_state = "shrapnel_bright1" + +/datum/ammo/bullet/shrapnel/light/effect/ver2 + icon_state = "shrapnel_bright2" + +/datum/ammo/bullet/shrapnel/jagged + shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 + accuracy = HIT_ACCURACY_TIER_MAX + +/datum/ammo/bullet/shrapnel/jagged/on_hit_mob(mob/M, obj/projectile/P) + if(isxeno(M)) + M.apply_effect(0.4, SLOW) + +/* +//======== + CAS 30mm impacters +//======== +*/ +/datum/ammo/bullet/shrapnel/gau //for the GAU to have a impact bullet instead of firecrackers + name = "30mm Multi-Purpose shell" + + damage = 1 // ALL DAMAGE IS IN dropship_ammo SO WE CAN DEAL DAMAGE TO RESTING MOBS, these will still remain however so that we can get cause_data and status effects. + damage_type = BRUTE + penetration = ARMOR_PENETRATION_TIER_2 + accuracy = HIT_ACCURACY_TIER_MAX + max_range = 0 + shrapnel_chance = 100 //the least of your problems + +/datum/ammo/bullet/shrapnel/gau/at + name = "30mm Anti-Tank shell" + + damage = 1 // ALL DAMAGE IS IN dropship_ammo SO WE CAN DEAL DAMAGE TO RESTING MOBS, these will still remain however so that we can get cause_data and status effects. + penetration = ARMOR_PENETRATION_TIER_8 + accuracy = HIT_ACCURACY_TIER_MAX diff --git a/code/datums/ammo/xeno.dm b/code/datums/ammo/xeno.dm new file mode 100644 index 000000000000..654ab88c7abc --- /dev/null +++ b/code/datums/ammo/xeno.dm @@ -0,0 +1,396 @@ +/* +//====== + Xeno Spits +//====== +*/ +/datum/ammo/xeno + icon_state = "neurotoxin" + ping = "ping_x" + damage_type = TOX + flags_ammo_behavior = AMMO_XENO + + ///used to make cooldown of the different spits vary. + var/added_spit_delay = 0 + var/spit_cost + + /// Should there be a windup for this spit? + var/spit_windup = FALSE + + /// Should there be an additional warning while winding up? (do not put to true if there is not a windup) + var/pre_spit_warn = FALSE + accuracy = HIT_ACCURACY_TIER_8*2 + max_range = 12 + +/datum/ammo/xeno/toxin + name = "neurotoxic spit" + damage_falloff = 0 + flags_ammo_behavior = AMMO_XENO|AMMO_IGNORE_RESIST + spit_cost = 25 + var/effect_power = XENO_NEURO_TIER_4 + var/datum/callback/neuro_callback + + shell_speed = AMMO_SPEED_TIER_3 + max_range = 7 + +/datum/ammo/xeno/toxin/New() + ..() + + neuro_callback = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(apply_neuro)) + +/proc/apply_neuro(mob/living/M, power, insta_neuro) + if(skillcheck(M, SKILL_ENDURANCE, SKILL_ENDURANCE_MAX) && !insta_neuro) + M.visible_message(SPAN_DANGER("[M] withstands the neurotoxin!")) + return //endurance 5 makes you immune to weak neurotoxin + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO || H.species.flags & NO_NEURO) + H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!")) + return //species like zombies or synths are immune to neurotoxin + + if(!isxeno(M)) + if(insta_neuro) + if(M.GetKnockDownDuration() < 3) // Why are you not using KnockDown(3) ? Do you even know 3 is SIX seconds ? So many questions left unanswered. + M.KnockDown(power) + M.Stun(power) + return + + if(ishuman(M)) + M.apply_effect(2.5, SUPERSLOW) + M.visible_message(SPAN_DANGER("[M]'s movements are slowed.")) + + var/no_clothes_neuro = FALSE + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.wear_suit || H.wear_suit.slowdown == 0) + no_clothes_neuro = TRUE + + if(no_clothes_neuro) + if(M.GetKnockDownDuration() < 5) // Nobody actually knows what this means. Supposedly it means less than 10 seconds. Frankly if you get locked into 10s of knockdown to begin with there are bigger issues. + M.KnockDown(power) + M.Stun(power) + M.visible_message(SPAN_DANGER("[M] falls prone.")) + +/proc/apply_scatter_neuro(mob/living/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(skillcheck(M, SKILL_ENDURANCE, SKILL_ENDURANCE_MAX)) + M.visible_message(SPAN_DANGER("[M] withstands the neurotoxin!")) + return //endurance 5 makes you immune to weak neuro + if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO || H.species.flags & NO_NEURO) + H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!")) + return + + M.KnockDown(0.7) // Completely arbitrary values from another time where stun timers incorrectly stacked. Kill as needed. + M.Stun(0.7) + M.visible_message(SPAN_DANGER("[M] falls prone.")) + +/datum/ammo/xeno/toxin/on_hit_mob(mob/M,obj/projectile/P) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.status_flags & XENO_HOST) + neuro_callback.Invoke(H, effect_power, TRUE) + return + + neuro_callback.Invoke(M, effect_power, FALSE) + +/datum/ammo/xeno/toxin/medium //Spitter + name = "neurotoxic spatter" + spit_cost = 50 + effect_power = 1 + + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/xeno/toxin/queen + name = "neurotoxic spit" + spit_cost = 50 + effect_power = 2 + + accuracy = HIT_ACCURACY_TIER_5*2 + max_range = 6 - 1 + +/datum/ammo/xeno/toxin/queen/on_hit_mob(mob/M,obj/projectile/P) + neuro_callback.Invoke(M, effect_power, TRUE) + +/datum/ammo/xeno/toxin/shotgun + name = "neurotoxic droplet" + flags_ammo_behavior = AMMO_XENO|AMMO_IGNORE_RESIST + bonus_projectiles_type = /datum/ammo/xeno/toxin/shotgun/additional + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + accurate_range = 5 + max_range = 5 + scatter = SCATTER_AMOUNT_NEURO + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_4 + +/datum/ammo/xeno/toxin/shotgun/New() + ..() + + neuro_callback = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(apply_scatter_neuro)) + +/datum/ammo/xeno/toxin/shotgun/additional + name = "additional neurotoxic droplets" + + bonus_projectiles_amount = 0 + +/datum/ammo/xeno/acid + name = "acid spit" + icon_state = "xeno_acid" + sound_hit = "acid_hit" + sound_bounce = "acid_bounce" + damage_type = BURN + spit_cost = 25 + flags_ammo_behavior = AMMO_ACIDIC|AMMO_XENO + accuracy = HIT_ACCURACY_TIER_5 + damage = 20 + max_range = 8 // 7 will disappear on diagonals. i love shitcode + penetration = ARMOR_PENETRATION_TIER_2 + shell_speed = AMMO_SPEED_TIER_3 + +/datum/ammo/xeno/acid/on_shield_block(mob/M, obj/projectile/P) + burst(M,P,damage_type) + +/datum/ammo/xeno/acid/on_hit_mob(mob/M, obj/projectile/P) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(C.status_flags & XENO_HOST && HAS_TRAIT(C, TRAIT_NESTED) || C.stat == DEAD) + return FALSE + ..() + +/datum/ammo/xeno/acid/spatter + name = "acid spatter" + + damage = 30 + max_range = 6 + +/datum/ammo/xeno/acid/spatter/on_hit_mob(mob/M, obj/projectile/P) + . = ..() + if(. == FALSE) + return + + new /datum/effects/acid(M, P.firer) + +/datum/ammo/xeno/acid/praetorian + name = "acid splash" + + accuracy = HIT_ACCURACY_TIER_10 + HIT_ACCURACY_TIER_5 + max_range = 8 + damage = 30 + shell_speed = AMMO_SPEED_TIER_2 + added_spit_delay = 0 + +/datum/ammo/xeno/acid/dot + name = "acid spit" + +/datum/ammo/xeno/acid/prae_nade // Used by base prae's acid nade + name = "acid scatter" + + flags_ammo_behavior = AMMO_STOPPED_BY_COVER + accuracy = HIT_ACCURACY_TIER_5 + accurate_range = 32 + max_range = 4 + damage = 25 + shell_speed = AMMO_SPEED_TIER_1 + scatter = SCATTER_AMOUNT_TIER_6 + + apply_delegate = FALSE + +/datum/ammo/xeno/acid/prae_nade/on_hit_mob(mob/M, obj/projectile/P) + if (!ishuman(M)) + return + + var/mob/living/carbon/human/H = M + + var/datum/effects/prae_acid_stacks/PAS = null + for (var/datum/effects/prae_acid_stacks/prae_acid_stacks in H.effects_list) + PAS = prae_acid_stacks + break + + if (PAS == null) + PAS = new /datum/effects/prae_acid_stacks(H) + else + PAS.increment_stack_count() + +/datum/ammo/xeno/boiler_gas + name = "glob of neuro gas" + icon_state = "neuro_glob" + ping = "ping_x" + debilitate = list(2,2,0,1,11,12,1,10) // Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony + flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE|AMMO_IGNORE_RESIST|AMMO_HITS_TARGET_TURF|AMMO_ACIDIC + var/datum/effect_system/smoke_spread/smoke_system + spit_cost = 200 + pre_spit_warn = TRUE + spit_windup = 5 SECONDS + accuracy_var_high = PROJECTILE_VARIANCE_TIER_4 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_4 + accuracy = HIT_ACCURACY_TIER_2 + scatter = SCATTER_AMOUNT_TIER_4 + shell_speed = 0.75 + max_range = 16 + /// range on the smoke in tiles from center + var/smokerange = 4 + var/lifetime_mult = 1.0 + +/datum/ammo/xeno/boiler_gas/New() + ..() + set_xeno_smoke() + +/datum/ammo/xeno/boiler_gas/Destroy() + qdel(smoke_system) + smoke_system = null + . = ..() + +/datum/ammo/xeno/boiler_gas/on_hit_mob(mob/moob, obj/projectile/proj) + if(iscarbon(moob)) + var/mob/living/carbon/carbon = moob + if(carbon.status_flags & XENO_HOST && HAS_TRAIT(carbon, TRAIT_NESTED) || carbon.stat == DEAD) + return + var/datum/effects/neurotoxin/neuro_effect = locate() in moob.effects_list + if(!neuro_effect) + neuro_effect = new /datum/effects/neurotoxin(moob, proj.firer) + neuro_effect.duration += 5 + moob.apply_effect(3, DAZE) + to_chat(moob, SPAN_HIGHDANGER("Neurotoxic liquid spreads all over you and immediately soaks into your pores and orifices! Oh fuck!")) // Fucked up but have a chance to escape rather than being game-ended + drop_nade(get_turf(proj), proj,TRUE) + +/datum/ammo/xeno/boiler_gas/on_hit_obj(obj/outbacksteakhouse, obj/projectile/proj) + drop_nade(get_turf(proj), proj) + +/datum/ammo/xeno/boiler_gas/on_hit_turf(turf/Turf, obj/projectile/proj) + if(Turf.density && isturf(proj.loc)) + drop_nade(proj.loc, proj) //we don't want the gas globs to land on dense turfs, they block smoke expansion. + else + drop_nade(Turf, proj) + +/datum/ammo/xeno/boiler_gas/do_at_max_range(obj/projectile/proj) + drop_nade(get_turf(proj), proj) + +/datum/ammo/xeno/boiler_gas/proc/set_xeno_smoke(obj/projectile/proj) + smoke_system = new /datum/effect_system/smoke_spread/xeno_weaken() + +/datum/ammo/xeno/boiler_gas/proc/drop_nade(turf/turf, obj/projectile/proj) + var/lifetime_mult = 1.0 + var/datum/cause_data + if(isboiler(proj.firer)) + cause_data = proj.weapon_cause_data + smoke_system.set_up(smokerange, 0, turf, new_cause_data = cause_data) + smoke_system.lifetime = 12 * lifetime_mult + smoke_system.start() + turf.visible_message(SPAN_DANGER("A glob of acid lands with a splat and explodes into noxious fumes!")) + + +/datum/ammo/xeno/boiler_gas/acid + name = "glob of acid gas" + icon_state = "acid_glob" + ping = "ping_x" + accuracy_var_high = PROJECTILE_VARIANCE_TIER_4 + smokerange = 3 + + +/datum/ammo/xeno/boiler_gas/acid/set_xeno_smoke(obj/projectile/proj) + smoke_system = new /datum/effect_system/smoke_spread/xeno_acid() + +/datum/ammo/xeno/boiler_gas/acid/on_hit_mob(mob/moob, obj/projectile/proj) + if(iscarbon(moob)) + var/mob/living/carbon/carbon = moob + if(carbon.status_flags & XENO_HOST && HAS_TRAIT(carbon, TRAIT_NESTED) || carbon.stat == DEAD) + return + to_chat(moob,SPAN_HIGHDANGER("Acid covers your body! Oh fuck!")) + playsound(moob,"acid_strike",75,1) + INVOKE_ASYNC(moob, TYPE_PROC_REF(/mob, emote), "pain") // why do I need this bullshit + new /datum/effects/acid(moob, proj.firer) + drop_nade(get_turf(proj), proj,TRUE) + +/datum/ammo/xeno/bone_chips + name = "bone chips" + icon_state = "shrapnel_light" + ping = null + flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR + damage_type = BRUTE + bonus_projectiles_type = /datum/ammo/xeno/bone_chips/spread + + damage = 8 + max_range = 6 + accuracy = HIT_ACCURACY_TIER_8 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_7 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_7 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_7 + shrapnel_type = /obj/item/shard/shrapnel/bone_chips + shrapnel_chance = 60 + +/datum/ammo/xeno/bone_chips/on_hit_mob(mob/living/M, obj/projectile/P) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if((HAS_FLAG(C.status_flags, XENO_HOST) && HAS_TRAIT(C, TRAIT_NESTED)) || C.stat == DEAD) + return + if(ishuman_strict(M) || isxeno(M)) + playsound(M, 'sound/effects/spike_hit.ogg', 25, 1, 1) + if(M.slowed < 3) + M.apply_effect(3, SLOW) + +/datum/ammo/xeno/bone_chips/spread + name = "small bone chips" + + scatter = 30 // We want a wild scatter angle + max_range = 5 + bonus_projectiles_amount = 0 + +/datum/ammo/xeno/bone_chips/spread/short_range + name = "small bone chips" + + max_range = 3 // Very short range + +/datum/ammo/xeno/bone_chips/spread/runner_skillshot + name = "bone chips" + + scatter = 0 + max_range = 5 + damage = 10 + shrapnel_chance = 0 + +/datum/ammo/xeno/bone_chips/spread/runner/on_hit_mob(mob/living/M, obj/projectile/P) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if((HAS_FLAG(C.status_flags, XENO_HOST) && HAS_TRAIT(C, TRAIT_NESTED)) || C.stat == DEAD) + return + if(ishuman_strict(M) || isxeno(M)) + playsound(M, 'sound/effects/spike_hit.ogg', 25, 1, 1) + if(M.slowed < 6) + M.apply_effect(6, SLOW) + +/datum/ammo/xeno/oppressor_tail + name = "tail hook" + icon_state = "none" + ping = null + flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR + damage_type = BRUTE + + damage = XENO_DAMAGE_TIER_5 + max_range = 4 + accuracy = HIT_ACCURACY_TIER_MAX + +/datum/ammo/xeno/oppressor_tail/on_bullet_generation(obj/projectile/generated_projectile, mob/bullet_generator) + //The projectile has no icon, so the overlay shows up in FRONT of the projectile, and the beam connects to it in the middle. + var/image/hook_overlay = new(icon = 'icons/effects/beam.dmi', icon_state = "oppressor_tail_hook", layer = BELOW_MOB_LAYER) + generated_projectile.overlays += hook_overlay + +/datum/ammo/xeno/oppressor_tail/on_hit_mob(mob/target, obj/projectile/fired_proj) + var/mob/living/carbon/xenomorph/xeno_firer = fired_proj.firer + if(xeno_firer.can_not_harm(target)) + return + + shake_camera(target, 5, 0.1 SECONDS) + var/obj/effect/beam/tail_beam = fired_proj.firer.beam(target, "oppressor_tail", 'icons/effects/beam.dmi', 0.5 SECONDS, 5) + var/image/tail_image = image('icons/effects/status_effects.dmi', "hooked") + target.overlays += tail_image + + new /datum/effects/xeno_slow(target, fired_proj.firer, ttl = 0.5 SECONDS) + target.apply_effect(0.5, STUN) + INVOKE_ASYNC(target, TYPE_PROC_REF(/atom/movable, throw_atom), fired_proj.firer, get_dist(fired_proj.firer, target)-1, SPEED_VERY_FAST) + + qdel(tail_beam) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/ammo/xeno/oppressor_tail, remove_tail_overlay), target, tail_image), 0.5 SECONDS) //needed so it can actually be seen as it gets deleted too quickly otherwise. + +/datum/ammo/xeno/oppressor_tail/proc/remove_tail_overlay(mob/overlayed_mob, image/tail_image) + overlayed_mob.overlays -= tail_image diff --git a/code/datums/autocells/auto_cell.dm b/code/datums/autocells/auto_cell.dm index accc5f180119..fb679c56676e 100644 --- a/code/datums/autocells/auto_cell.dm +++ b/code/datums/autocells/auto_cell.dm @@ -37,7 +37,7 @@ in_turf = T LAZYADD(in_turf.autocells, src) - cellauto_cells += src + GLOB.cellauto_cells += src birth() @@ -48,7 +48,7 @@ LAZYREMOVE(in_turf.autocells, src) in_turf = null - cellauto_cells -= src + GLOB.cellauto_cells -= src death() @@ -88,7 +88,7 @@ // Get cardinal neighbors if(neighbor_type & NEIGHBORS_CARDINAL) - for(var/dir in cardinal) + for(var/dir in GLOB.cardinals) var/turf/T = get_step(in_turf, dir) if(QDELETED(T)) continue @@ -100,7 +100,7 @@ // Get ordinal/diagonal neighbors if(neighbor_type & NEIGHBORS_ORDINAL) - for(var/dir in diagonals) + for(var/dir in GLOB.diagonals) var/turf/T = get_step(in_turf, dir) if(QDELETED(T)) continue diff --git a/code/datums/autocells/explosion.dm b/code/datums/autocells/explosion.dm index 42e1409d595f..970e5618bae3 100644 --- a/code/datums/autocells/explosion.dm +++ b/code/datums/autocells/explosion.dm @@ -109,7 +109,7 @@ survivor.power += dying.power // Two waves travling towards each other weakens the explosion - if(survivor.direction == reverse_dir[dying.direction]) + if(survivor.direction == GLOB.reverse_dir[dying.direction]) survivor.power -= dying.power return is_stronger @@ -120,11 +120,11 @@ // If the cell is the epicenter, propagate in all directions if(isnull(direction)) - return alldirs + return GLOB.alldirs - var/dir = reflected ? reverse_dir[direction] : direction + var/dir = reflected ? GLOB.reverse_dir[direction] : direction - if(dir in cardinal) + if(dir in GLOB.cardinals) propagation_dirs += list(dir, turn(dir, 45), turn(dir, -45)) else propagation_dirs += dir @@ -180,7 +180,7 @@ for(var/dir in to_spread) // Diagonals are longer, that should be reflected in the power falloff var/dir_falloff = 1 - if(dir in diagonals) + if(dir in GLOB.diagonals) dir_falloff = 1.414 if(isnull(direction)) @@ -210,7 +210,7 @@ // Set the direction the explosion is traveling in E.direction = dir //Diagonal cells have a small delay when branching off the center. This helps the explosion look circular - if(!direction && (dir in diagonals)) + if(!direction && (dir in GLOB.diagonals)) E.delay = 1 setup_new_cell(E) diff --git a/code/datums/autocells/vomit_wave.dm b/code/datums/autocells/vomit_wave.dm index 62ea1d4c6e7e..396bf6d3e528 100644 --- a/code/datums/autocells/vomit_wave.dm +++ b/code/datums/autocells/vomit_wave.dm @@ -37,7 +37,7 @@ return // Propagate to cardinal directions - var/list/to_spread = cardinal.Copy() + var/list/to_spread = GLOB.cardinals.Copy() for(var/datum/automata_cell/vomit_wave/C in neighbors) to_spread -= get_dir(in_turf, C.in_turf) diff --git a/code/datums/components/autofire/autofire.dm b/code/datums/components/autofire/autofire.dm index 2b9401e8d346..455fb70a9fa1 100644 --- a/code/datums/components/autofire/autofire.dm +++ b/code/datums/components/autofire/autofire.dm @@ -82,6 +82,8 @@ /datum/component/automatedfire/autofire/proc/initiate_shot() SIGNAL_HANDLER if(shooting)//if we are already shooting, it means the shooter is still on cooldown + if(bursting && (world.time > (next_fire + (burstfire_shot_delay * burst_shots_to_fire)))) + hard_reset() return shooting = TRUE process_shot() @@ -123,19 +125,19 @@ if(GUN_FIREMODE_BURSTFIRE) shots_fired++ if(shots_fired == burst_shots_to_fire) - callback_bursting.Invoke(FALSE) - callback_display_ammo.Invoke() + callback_bursting?.Invoke(FALSE) + callback_display_ammo?.Invoke() bursting = FALSE stop_firing() if(have_to_reset_at_burst_end)//We failed to reset because we were bursting, we do it now - callback_reset_fire.Invoke() + callback_reset_fire?.Invoke() have_to_reset_at_burst_end = FALSE return - callback_bursting.Invoke(TRUE) + callback_bursting?.Invoke(TRUE) bursting = TRUE next_fire = world.time + burstfire_shot_delay if(GUN_FIREMODE_AUTOMATIC) - callback_set_firing.Invoke(TRUE) + callback_set_firing?.Invoke(TRUE) next_fire = world.time + (auto_fire_shot_delay * automatic_delay_mult) if(GUN_FIREMODE_SEMIAUTO) return diff --git a/code/datums/components/cell.dm b/code/datums/components/cell.dm new file mode 100644 index 000000000000..81ef3733e2e2 --- /dev/null +++ b/code/datums/components/cell.dm @@ -0,0 +1,202 @@ +#define UNLIMITED_CHARGE -1 +#define UNLIMITED_DISTANCE -1 + +/datum/component/cell + dupe_mode = COMPONENT_DUPE_UNIQUE + /// Maximum charge of the power cell, set to -1 for infinite charge + var/max_charge = 10000 + /// Initial max charge of the power cell + var/initial_max_charge + /// Current charge of power cell + var/charge = 10000 + /// If the component can be recharged by hitting its parent with a cell + var/hit_charge = FALSE + /// The maximum amount that can be recharged per tick when using a cell to recharge this component + var/max_recharge_tick = 400 + /// If draining charge on process(), how much to drain per process call + var/charge_drain = 10 + /// If the parent should show cell charge on examine + var/display_charge = TRUE + /// From how many tiles at the highest someone can examine the parent to see the charge + var/charge_examine_range = 1 + /// If the component requires a cell to be inserted to work instead of having an integrated one + var/cell_insert = FALSE + /// Ref to an inserted cell. Should only be null if cell_insert is false + var/obj/item/cell/inserted_cell + + +/datum/component/cell/Initialize( + max_charge = 10000, + hit_charge = FALSE, + max_recharge_tick = 400, + charge_drain = 10, + display_charge = TRUE, + charge_examine_range = 1, + cell_insert = FALSE, + ) + + . = ..() + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + src.max_charge = max_charge + charge = max_charge + src.hit_charge = hit_charge + src.max_recharge_tick = max_recharge_tick + src.charge_drain = charge_drain + src.display_charge = display_charge + src.charge_examine_range = charge_examine_range + src.cell_insert = cell_insert + +/datum/component/cell/Destroy(force, silent) + QDEL_NULL(inserted_cell) + return ..() + + +/datum/component/cell/RegisterWithParent() + ..() + RegisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_ITEM_ATTACKED), PROC_REF(on_object_hit)) + RegisterSignal(parent, COMSIG_CELL_ADD_CHARGE, PROC_REF(add_charge)) + RegisterSignal(parent, COMSIG_CELL_USE_CHARGE, PROC_REF(use_charge)) + RegisterSignal(parent, COMSIG_CELL_CHECK_CHARGE, PROC_REF(has_charge)) + RegisterSignal(parent, COMSIG_CELL_START_TICK_DRAIN, PROC_REF(start_drain)) + RegisterSignal(parent, COMSIG_CELL_STOP_TICK_DRAIN, PROC_REF(stop_drain)) + RegisterSignal(parent, COMSIG_CELL_REMOVE_CELL, PROC_REF(remove_cell)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp)) + +/datum/component/cell/process() + use_charge(null, charge_drain) + +/datum/component/cell/proc/on_emp(datum/source, severity) + SIGNAL_HANDLER + + use_charge(null, round(max_charge / severity)) + +/datum/component/cell/proc/start_drain(datum/source) + SIGNAL_HANDLER + + START_PROCESSING(SSobj, src) + +/datum/component/cell/proc/stop_drain(datum/source) + SIGNAL_HANDLER + + STOP_PROCESSING(SSobj, src) + +/datum/component/cell/proc/on_examine(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + if(!display_charge) + return + + if((charge_examine_range != UNLIMITED_DISTANCE) && get_dist(examiner, parent) > charge_examine_range) + return + + examine_text += "A small gauge in the corner reads \"Power: [round(100 * charge / max_charge)]%\"." + +/datum/component/cell/proc/on_object_hit(datum/source, obj/item/cell/attack_obj, mob/living/attacker, params) + SIGNAL_HANDLER + + if(!hit_charge || !istype(attack_obj)) + return + + if(!cell_insert) + INVOKE_ASYNC(src, PROC_REF(charge_from_cell), attack_obj, attacker) + + else + insert_cell(attack_obj, attacker) + + return COMPONENT_NO_AFTERATTACK|COMPONENT_CANCEL_ITEM_ATTACK + +/datum/component/cell/proc/insert_cell(obj/item/cell/power_cell, mob/living/user) + if(inserted_cell) + to_chat(user, SPAN_WARNING("There's already a power cell in [parent]!")) + return + + if(SEND_SIGNAL(parent, COMSIG_CELL_TRY_INSERT_CELL) & COMPONENT_CANCEL_CELL_INSERT) + return + + power_cell.drop_to_floor(user) + power_cell.forceMove(parent) + inserted_cell = power_cell + charge = power_cell.charge + max_charge = power_cell.maxcharge + +/datum/component/cell/proc/remove_cell(mob/living/user) + SIGNAL_HANDLER + + user.put_in_hands(inserted_cell, TRUE) + to_chat(user, SPAN_NOTICE("You remove [inserted_cell] from [parent].")) + inserted_cell = null + max_charge = initial_max_charge + charge = 0 + +/datum/component/cell/proc/charge_from_cell(obj/item/cell/power_cell, mob/living/user) + if(max_charge == UNLIMITED_CHARGE) + to_chat(user, SPAN_WARNING("[parent] doesn't need more power.")) + return + + while(charge < max_charge) + if(SEND_SIGNAL(parent, COMSIG_CELL_TRY_RECHARGING, user) & COMPONENT_CELL_NO_RECHARGE) + return + + if(power_cell.charge <= 0) + to_chat(user, SPAN_WARNING("[power_cell] is completely dry.")) + return + + if(!do_after(user, 1 SECONDS, (INTERRUPT_ALL & (~INTERRUPT_MOVED)), BUSY_ICON_BUILD, power_cell, INTERRUPT_DIFF_LOC)) + to_chat(user, SPAN_WARNING("You were interrupted.")) + return + + if(power_cell.charge <= 0) + return + + var/to_transfer = min(max_recharge_tick, power_cell.charge, (max_charge - charge)) + if(power_cell.use(to_transfer)) + add_charge(null, to_transfer) + to_chat(user, "You transfer some power between [power_cell] and [parent]. The gauge now reads: [round(100 * charge / max_charge)]%.") + +/datum/component/cell/proc/add_charge(datum/source, charge_add = 0) + SIGNAL_HANDLER + + if(max_charge == UNLIMITED_CHARGE) + return + + if(!charge_add) + return + + charge = clamp(charge + charge_add, 0, max_charge) + +/datum/component/cell/proc/use_charge(datum/source, charge_use = 0) + SIGNAL_HANDLER + + if(max_charge == UNLIMITED_CHARGE) + return + + if(!charge_use) + return + + if(!charge) + return COMPONENT_CELL_NO_USE_CHARGE + + charge = clamp(charge - charge_use, 0, max_charge) + + if(!charge) + on_charge_empty() + return + +/datum/component/cell/proc/has_charge(datum/source, charge_amount = 0) + SIGNAL_HANDLER + + if(!charge) + return COMPONENT_CELL_CHARGE_INSUFFICIENT + + if(charge < charge_amount) + return COMPONENT_CELL_CHARGE_INSUFFICIENT + +/datum/component/cell/proc/on_charge_empty() + stop_drain() + SEND_SIGNAL(parent, COMSIG_CELL_OUT_OF_CHARGE) + +#undef UNLIMITED_CHARGE +#undef UNLIMITED_DISTANCE diff --git a/code/datums/components/crate_tag.dm b/code/datums/components/crate_tag.dm new file mode 100644 index 000000000000..379df82a2084 --- /dev/null +++ b/code/datums/components/crate_tag.dm @@ -0,0 +1,36 @@ +/datum/component/crate_tag + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + /// The crate tag used for notifications and as label + var/name + +/datum/component/crate_tag/Initialize(name, obj/structure/closet/crate/masquarade_type) + var/obj/structure/closet/crate/crate = parent + if(!istype(crate)) + return COMPONENT_INCOMPATIBLE + setup(name, masquarade_type) + RegisterSignal(parent, COMSIG_STRUCTURE_CRATE_SQUAD_LAUNCHED, PROC_REF(notify_squad)) + +/datum/component/crate_tag/InheritComponent(datum/component/C, i_am_original, name, obj/structure/closet/crate/masquarade_type) + . = ..() + setup(name, masquarade_type) + +/datum/component/crate_tag/proc/setup(name, obj/structure/closet/crate/masquarade_type) + var/obj/structure/closet/crate/crate = parent + if(masquarade_type) + crate.name = initial(masquarade_type.name) + crate.desc = initial(masquarade_type.desc) + crate.icon_opened = initial(masquarade_type.icon_opened) + crate.icon_closed = initial(masquarade_type.icon_closed) + if(crate.opened) + crate.icon_state = crate.icon_opened + else + crate.icon_state = crate.icon_closed + if(name) + parent.AddComponent(/datum/component/label, name) + src.name = name // Keep it around additionally for notifications + +/// Handler to notify an overwatched squad that this crate has been dropped for them +/datum/component/crate_tag/proc/notify_squad(datum/source, datum/squad/squad) + SIGNAL_HANDLER + squad.send_message("'[name]' supply drop incoming. Heads up!") + squad.send_maptext(name, "Incoming Supply Drop:") diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index ef77aaf471dc..6eaaa6e76af5 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -47,7 +47,7 @@ if(!T) return var/mob/living/parent_mob = parent - if(parent_mob.lying && (isfile(drag_sounds) || istext(drag_sounds))) + if(parent_mob.body_position == LYING_DOWN && (isfile(drag_sounds) || istext(drag_sounds))) playsound(T, drag_sounds, volume, rand(20000, 25000), range, falloff = falloff) else if(isfile(footstep_sounds) || istext(footstep_sounds)) playsound(T, footstep_sounds, volume, rand(20000, 25000), range, falloff = falloff) diff --git a/code/datums/components/healing_reduction.dm b/code/datums/components/healing_reduction.dm index b98d52cab251..54ea02dc6b73 100644 --- a/code/datums/components/healing_reduction.dm +++ b/code/datums/components/healing_reduction.dm @@ -21,33 +21,36 @@ Humans will take continuous damage instead. src.healing_reduction_dissipation = healing_reduction_dissipation src.max_buildup = max_buildup -/datum/component/healing_reduction/InheritComponent(datum/component/healing_reduction/C, i_am_original, healing_reduction) +/datum/component/healing_reduction/InheritComponent(datum/component/healing_reduction/inherit_component, i_am_original, healing_reduction) . = ..() - if(!C) + if(!inherit_component) src.healing_reduction += healing_reduction else - src.healing_reduction += C.healing_reduction + src.healing_reduction += inherit_component.healing_reduction src.healing_reduction = min(src.healing_reduction, max_buildup) /datum/component/healing_reduction/process(delta_time) if(!parent) qdel(src) - healing_reduction = max(healing_reduction - healing_reduction_dissipation * delta_time, 0) + return - if(ishuman(parent)) //deals brute to humans - var/mob/living/carbon/human/H = parent - H.apply_damage(healing_reduction_dissipation * delta_time, BRUTE) + healing_reduction = max(healing_reduction - healing_reduction_dissipation * delta_time, 0) if(healing_reduction <= 0) qdel(src) + return + + if(ishuman(parent)) //deals brute to humans + var/mob/living/carbon/human/human_parent = parent + human_parent.apply_damage(healing_reduction_dissipation * delta_time, BRUTE) var/color = GLOW_COLOR var/intensity = healing_reduction/max_buildup color += num2text(MAX_ALPHA*intensity, 2, 16) - var/atom/A = parent - A.add_filter("healing_reduction", 2, list("type" = "outline", "color" = color, "size" = 1)) + var/atom/parent_atom = parent + parent_atom.add_filter("healing_reduction", 2, list("type" = "outline", "color" = color, "size" = 1)) /datum/component/healing_reduction/RegisterWithParent() START_PROCESSING(SSdcs, src) @@ -64,14 +67,14 @@ Humans will take continuous damage instead. COMSIG_XENO_ON_HEAL_WOUNDS, COMSIG_XENO_APPEND_TO_STAT )) - var/atom/A = parent - A.remove_filter("healing_reduction") + var/atom/parent_atom = parent + parent_atom.remove_filter("healing_reduction") -/datum/component/healing_reduction/proc/stat_append(mob/M, list/L) +/datum/component/healing_reduction/proc/stat_append(mob/target_mob, list/stat_list) SIGNAL_HANDLER - L += "Healing Reduction: [healing_reduction]/[max_buildup]" + stat_list += "Healing Reduction: [healing_reduction]/[max_buildup]" -/datum/component/healing_reduction/proc/apply_healing_reduction(mob/living/carbon/xenomorph/X, list/healing) +/datum/component/healing_reduction/proc/apply_healing_reduction(mob/living/carbon/xenomorph/xeno, list/healing) SIGNAL_HANDLER healing["healing"] -= healing_reduction diff --git a/code/datums/components/tutorial_status.dm b/code/datums/components/tutorial_status.dm new file mode 100644 index 000000000000..97b8d408bcb5 --- /dev/null +++ b/code/datums/components/tutorial_status.dm @@ -0,0 +1,25 @@ +/datum/component/tutorial_status + dupe_mode = COMPONENT_DUPE_UNIQUE + /// What the mob's current tutorial status is, displayed in the status panel + var/tutorial_status = "" + +/datum/component/tutorial_status/Initialize() + . = ..() + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/tutorial_status/RegisterWithParent() + ..() + RegisterSignal(parent, COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE, PROC_REF(update_objective)) + RegisterSignal(parent, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) + +/datum/component/tutorial_status/proc/update_objective(datum/source, objective_text) + SIGNAL_HANDLER + + tutorial_status = objective_text + +/datum/component/tutorial_status/proc/get_status_tab_item(datum/source, list/status_tab_items) + SIGNAL_HANDLER + + if(tutorial_status) + status_tab_items += "Tutorial Objective: " + tutorial_status diff --git a/code/datums/components/weed_food.dm b/code/datums/components/weed_food.dm index ce6c17e0af95..2335a053412f 100644 --- a/code/datums/components/weed_food.dm +++ b/code/datums/components/weed_food.dm @@ -6,15 +6,19 @@ desc = "Weird black weeds in the shape of a body..." gender = PLURAL vis_flags = VIS_INHERIT_DIR|VIS_INHERIT_PLANE|VIS_INHERIT_LAYER + mouse_opacity = MOUSE_OPACITY_TRANSPARENT icon = 'icons/mob/xenos/weeds.dmi' - var/static/list/icon_states = list("human_1","human_2","human_3","human_4","human_5") - var/static/list/icon_states_flipped = list("human_1_f","human_2_f","human_3_f","human_4_f","human_5_f") + var/list/icon_states + var/list/icon_states_flipped var/icon_state_idx = 0 var/timer_id = null var/flipped = FALSE -/atom/movable/vis_obj/weed_food/Initialize(mapload, is_flipped, ...) +/atom/movable/vis_obj/weed_food/Initialize(mapload, is_flipped, weeds_icon, states, states_flipped, ...) flipped = is_flipped + icon = weeds_icon + icon_states = states + icon_states_flipped = states_flipped timer_id = addtimer(CALLBACK(src, PROC_REF(on_animation_timer)), WEED_FOOD_STATE_DELAY, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_LOOP|TIMER_DELETE_ME) on_animation_timer() return ..() @@ -22,6 +26,7 @@ /// Timer callback for changing the icon_state /atom/movable/vis_obj/weed_food/proc/on_animation_timer() icon_state_idx++ + // Assumption: Length of icon_states is the same as icon_states_flipped if(icon_state_idx > length(icon_states)) deltimer(timer_id) timer_id = null @@ -50,6 +55,8 @@ var/turf/parent_turf /// The obj that our parent is buckled to and we have registered a signal var/obj/parent_buckle + /// A nest our parent is buckled to and we have registered a signal + var/obj/structure/bed/nest/parent_nest /// The weeds that we are merging/merged with var/obj/effect/alien/weeds/absorbing_weeds /// The overlay image when merged @@ -57,10 +64,9 @@ /datum/component/weed_food/Initialize(...) parent_mob = parent - //if(!istype(parent_mob)) - //return COMPONENT_INCOMPATIBLE - if(!istype(parent_mob, /mob/living/carbon/human)) - return COMPONENT_INCOMPATIBLE // TODO: At the moment we only support humans + // At the moment we only support humans and xenos + if(!istype(parent_mob, /mob/living/carbon/human) && !istype(parent_mob, /mob/living/carbon/xenomorph)) + return COMPONENT_INCOMPATIBLE parent_turf = get_turf(parent_mob) if(parent_turf != parent_mob.loc) @@ -78,6 +84,7 @@ QDEL_NULL(weed_appearance) parent_mob = null parent_turf = null + parent_buckle = null /datum/component/weed_food/RegisterWithParent() RegisterSignal(parent_mob, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) @@ -100,6 +107,8 @@ UnregisterSignal(parent_turf, COMSIG_WEEDNODE_GROWTH) if(parent_buckle) UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) + if(parent_nest) + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) /// SIGNAL_HANDLER for COMSIG_MOVABLE_MOVED /datum/component/weed_food/proc/on_move() @@ -160,6 +169,15 @@ unmerge_with_weeds() return +/// SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of nest +/datum/component/weed_food/proc/on_nest_deletion() + SIGNAL_HANDLER + + if(merged) + parent_mob.plane = FLOOR_PLANE + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) + parent_nest = null + /** * Try to start the process to turn into weeds * Returns TRUE if started successfully @@ -243,6 +261,10 @@ parent_buckle = parent_mob.buckled RegisterSignal(parent_mob.buckled, COSMIG_OBJ_AFTER_BUCKLE, PROC_REF(on_after_buckle)) return FALSE + else + parent_nest = parent_mob.buckled + RegisterSignal(parent_nest, COMSIG_PARENT_QDELETING, PROC_REF(on_nest_deletion)) + if(parent_buckle) UnregisterSignal(parent_buckle, COSMIG_OBJ_AFTER_BUCKLE) parent_buckle = null @@ -259,19 +281,20 @@ active = FALSE merged = TRUE - parent_mob.density = FALSE + ADD_TRAIT(parent_mob, TRAIT_UNDENSE, XENO_WEED_TRAIT) + ADD_TRAIT(parent_mob, TRAIT_MERGED_WITH_WEEDS, XENO_WEED_TRAIT) parent_mob.anchored = TRUE parent_mob.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - parent_mob.plane = FLOOR_PLANE + if(!parent_nest) + parent_mob.plane = FLOOR_PLANE parent_mob.remove_from_all_mob_huds() if(!weed_appearance) // Make a new sprite if we aren't re-merging var/is_flipped = parent_mob.transform.b == -1 // Technically we should check if d is 1 too, but corpses can only be rotated 90 or 270 (1/-1 or -1/1) if(parent_mob.dir & WEST) is_flipped = !is_flipped // The direction reversed the effect of the flip! - weed_appearance = new(null, is_flipped) + weed_appearance = new(null, is_flipped, parent_mob.weed_food_icon, parent_mob.weed_food_states, parent_mob.weed_food_states_flipped) weed_appearance.color = absorbing_weeds.color - // TODO: For non-humans change the icon_state or something here parent_mob.vis_contents += weed_appearance return TRUE @@ -288,6 +311,11 @@ UnregisterSignal(absorbing_weeds, COMSIG_PARENT_QDELETING) absorbing_weeds = null + if(parent_nest) + UnregisterSignal(parent_nest, COMSIG_PARENT_QDELETING) + parent_nest = null + + REMOVE_TRAIT(parent_mob, TRAIT_MERGED_WITH_WEEDS, XENO_WEED_TRAIT) parent_mob.anchored = FALSE parent_mob.mouse_opacity = MOUSE_OPACITY_ICON parent_mob.plane = GAME_PLANE diff --git a/code/datums/construction/construction_template.dm b/code/datums/construction/construction_template.dm index 0b874def4495..37832327c381 100644 --- a/code/datums/construction/construction_template.dm +++ b/code/datums/construction/construction_template.dm @@ -14,8 +14,8 @@ var/pixel_y = -16 var/pixel_x = -16 - var/crystals_required = 0 - var/crystals_stored = 0 + var/plasma_required = 0 + var/plasma_stored = 0 var/materials_required = list() //Example resource requirements i.e. MATERIAL_METAL = 1 var/extras_required = list() //Example extra requirements i.e. /obj/item = 1 @@ -43,47 +43,23 @@ return if(!xeno.plasma_max) return - if(crystals_stored >= crystals_required) + if(plasma_stored >= plasma_required) to_chat(xeno, SPAN_WARNING("\The [name] does not require plasma.")) return - to_chat(xeno, SPAN_NOTICE("You begin adding \the plasma to \the [name].")) + to_chat(xeno, SPAN_NOTICE("We begin adding \the plasma to \the [name].")) xeno_attack_delay(xeno) if(!do_after(xeno, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return //double-check amount required - if(crystals_stored >= crystals_required) + if(plasma_stored >= plasma_required) to_chat(xeno, SPAN_WARNING("\The [name] has enough plasma.")) return - var/amount_to_use = min(xeno.plasma_stored, (crystals_required - crystals_stored)) - crystals_stored += amount_to_use + var/amount_to_use = min(xeno.plasma_stored, (plasma_required - plasma_stored)) + plasma_stored += amount_to_use xeno.plasma_stored -= amount_to_use - to_chat(xeno, SPAN_WARNING("\The [name] requires [crystals_required - crystals_stored] more plasma.")) + to_chat(xeno, SPAN_WARNING("\The [name] requires [plasma_required - plasma_stored] more plasma.")) check_completion() -// Xeno ressource collection -/* -/datum/construction_template/proc/add_crystal(mob/living/carbon/xenomorph/M) - if(!istype(M)) - return - if(!M.crystal_stored) - to_chat(M, SPAN_WARNING("You have no [MATERIAL_CRYSTAL] stored.")) - return - if(crystals_stored >= crystals_required) - to_chat(M, SPAN_WARNING("\The [name] does not require [MATERIAL_CRYSTAL].")) - return - to_chat(M, SPAN_NOTICE("You begin adding \the [MATERIAL_CRYSTAL] to \the [name].")) - if(!do_after(M, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return - //double-check amount required - if(crystals_stored >= crystals_required) - to_chat(M, SPAN_WARNING("\The [name] has enough [MATERIAL_CRYSTAL].")) - return - var/amount_to_use = min(M.crystal_stored, (crystals_required - crystals_stored)) - crystals_stored += amount_to_use - M.crystal_stored -= amount_to_use - to_chat(M, SPAN_WARNING("\The [name] requires [crystals_required - crystals_stored] more [MATERIAL_CRYSTAL].")) - check_completion() */ - /datum/construction_template/proc/add_material(mob/user, obj/item/I) if(isStack(I)) var/obj/item/stack/S = I @@ -123,7 +99,7 @@ check_completion() /datum/construction_template/proc/check_completion() - if(crystals_stored < crystals_required) + if(plasma_stored < plasma_required) return FALSE for(var/material_req in materials_required) if(materials_required[material_req] > 0) diff --git a/code/datums/construction/xenomorph/construction_template_xenomorph.dm b/code/datums/construction/xenomorph/construction_template_xenomorph.dm index 46b7e797632f..94914eb1e9ce 100644 --- a/code/datums/construction/xenomorph/construction_template_xenomorph.dm +++ b/code/datums/construction/xenomorph/construction_template_xenomorph.dm @@ -3,8 +3,10 @@ /datum/construction_template/xenomorph name = "xenomorph structure" build_type = /obj/effect/alien/resin/special - crystals_required = 45 * XENO_STRUCTURE_PLASMA_MULTIPLIER - var/datum/hive_status/hive_ref //Who gets what we build + plasma_required = 45 * XENO_STRUCTURE_PLASMA_MULTIPLIER + /// The hive that this structure belongs to. + var/datum/hive_status/hive_ref + /// The range around this structure which needs to be clear for it to be constructed. var/block_range = 1 /datum/construction_template/xenomorph/set_structure_image() @@ -24,18 +26,20 @@ /datum/construction_template/xenomorph/core name = XENO_STRUCTURE_CORE + description = "Heart of the hive, grows hive weeds (which are necessary for other structures), stores larva, spawns lesser drones, and protects the hive from skyfire." build_type = /obj/effect/alien/resin/special/pylon/core build_icon_state = "core" - crystals_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/cluster name = XENO_STRUCTURE_CLUSTER + description = "Remote section of the hive, grows hive weeds, and morphs into a hive pylon when placed near a communications tower." build_type = /obj/effect/alien/resin/special/cluster build_icon_state = "hive_cluster" pixel_y = -8 pixel_x = -8 - crystals_required = 50 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 50 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/cluster/set_structure_image() @@ -43,23 +47,27 @@ /datum/construction_template/xenomorph/pylon name = XENO_STRUCTURE_PYLON + description = "Remote section of the hive, grows hive weeds, spawns lesser drones, and protects sisters from air strikes." build_type = /obj/effect/alien/resin/special/pylon build_icon_state = "pylon" - crystals_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER + plasma_required = 100 * XENO_STRUCTURE_PLASMA_MULTIPLIER block_range = 0 /datum/construction_template/xenomorph/eggmorph name = XENO_STRUCTURE_EGGMORPH + description = "Processes hatched hosts into new facehuggers." build_type = /obj/effect/alien/resin/special/eggmorph build_icon_state = "eggmorph_preview" /datum/construction_template/xenomorph/recovery name = XENO_STRUCTURE_RECOVERY + description = "Hastily recovers the strength of sisters resting around it." build_type = /obj/effect/alien/resin/special/recovery build_icon_state = "recovery" /datum/construction_template/xenomorph/nest name = XENO_STRUCTURE_NEST + description = "Strong enough to secure a headhunter for indeterminate durations." build_type = /obj/effect/alien/resin/special/nest build_icon_state = "reinforced_nest" @@ -101,3 +109,5 @@ xeno_message(SPAN_XENOWARNING("This structure needs to be built directly next to an vertical surface."), 7, XENO_HIVE_NORMAL) qdel(owner) qdel(src) + +#undef XENO_STRUCTURE_PLASMA_MULTIPLIER diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index b60b20bc9026..ae19a3044678 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -8,16 +8,16 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) var/locked[] = list() /datum/datacore/proc/get_manifest(monochrome, OOC, nonHTML) - var/list/cic = ROLES_CIC.Copy() - var/list/auxil = ROLES_AUXIL_SUPPORT.Copy() - var/list/misc = ROLES_MISC.Copy() - var/list/mp = ROLES_POLICE.Copy() - var/list/eng = ROLES_ENGINEERING.Copy() - var/list/req = ROLES_REQUISITION.Copy() - var/list/med = ROLES_MEDICAL.Copy() - var/list/marines_by_squad = ROLES_SQUAD_ALL.Copy() + var/list/cic = GLOB.ROLES_CIC.Copy() + var/list/auxil = GLOB.ROLES_AUXIL_SUPPORT.Copy() + var/list/misc = GLOB.ROLES_MISC.Copy() + var/list/mp = GLOB.ROLES_POLICE.Copy() + var/list/eng = GLOB.ROLES_ENGINEERING.Copy() + var/list/req = GLOB.ROLES_REQUISITION.Copy() + var/list/med = GLOB.ROLES_MEDICAL.Copy() + var/list/marines_by_squad = GLOB.ROLES_SQUAD_ALL.Copy() for(var/squad_name in marines_by_squad) - marines_by_squad[squad_name] = ROLES_MARINES.Copy() + marines_by_squad[squad_name] = GLOB.ROLES_MARINES.Copy() var/list/isactive = new() // If we need not the HTML table, but list @@ -32,18 +32,18 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) ) departments += marines_by_squad var/list/manifest_out = list() - for(var/datum/data/record/t in GLOB.data_core.general) - if(t.fields["mob_faction"] != FACTION_MARINE) //we process only USCM humans + for(var/datum/data/record/record_entry in GLOB.data_core.general) + if(record_entry.fields["mob_faction"] != FACTION_MARINE) //we process only USCM humans continue - var/name = t.fields["name"] - var/rank = t.fields["rank"] - var/squad = t.fields["squad"] + var/name = record_entry.fields["name"] + var/rank = record_entry.fields["rank"] + var/squad = record_entry.fields["squad"] if(isnull(name) || isnull(rank)) continue var/has_department = FALSE for(var/department in departments) // STOP SIGNING ALL MARINES IN ALPHA! - if(department in ROLES_SQUAD_ALL) + if(department in GLOB.ROLES_SQUAD_ALL) if(squad != department) continue var/list/jobs = departments[department] @@ -83,16 +83,16 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) // sort mobs var/dept_flags = NO_FLAGS //Is there anybody in the department?. - var/list/squad_sublists = ROLES_SQUAD_ALL.Copy() //Are there any marines in the squad? + var/list/squad_sublists = GLOB.ROLES_SQUAD_ALL.Copy() //Are there any marines in the squad? - for(var/datum/data/record/t in GLOB.data_core.general) - if(t.fields["mob_faction"] != FACTION_MARINE) //we process only USCM humans + for(var/datum/data/record/record_entry in GLOB.data_core.general) + if(record_entry.fields["mob_faction"] != FACTION_MARINE) //we process only USCM humans continue - var/name = t.fields["name"] - var/rank = t.fields["rank"] - var/real_rank = t.fields["real_rank"] - var/squad_name = t.fields["squad"] + var/name = record_entry.fields["name"] + var/rank = record_entry.fields["rank"] + var/real_rank = record_entry.fields["real_rank"] + var/squad_name = record_entry.fields["squad"] if(isnull(name) || isnull(rank) || isnull(real_rank)) continue @@ -104,35 +104,38 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) break isactive[name] = active ? "Active" : "Inactive" else - isactive[name] = t.fields["p_stat"] + isactive[name] = record_entry.fields["p_stat"] //cael - to prevent multiple appearances of a player/job combination, add a continue after each line - if(real_rank in ROLES_CIC) + if(real_rank in GLOB.ROLES_CIC) dept_flags |= FLAG_SHOW_CIC LAZYSET(cic[real_rank], name, rank) - else if(real_rank in ROLES_AUXIL_SUPPORT) + else if(real_rank in GLOB.ROLES_AUXIL_SUPPORT) dept_flags |= FLAG_SHOW_AUXIL_SUPPORT LAZYSET(auxil[real_rank], name, rank) - else if(real_rank in ROLES_MISC) + else if(real_rank in GLOB.ROLES_MISC) dept_flags |= FLAG_SHOW_MISC LAZYSET(misc[real_rank], name, rank) - else if(real_rank in ROLES_POLICE) + else if(real_rank in GLOB.ROLES_POLICE) dept_flags |= FLAG_SHOW_POLICE LAZYSET(mp[real_rank], name, rank) - else if(real_rank in ROLES_ENGINEERING) + else if(real_rank in GLOB.ROLES_ENGINEERING) dept_flags |= FLAG_SHOW_ENGINEERING LAZYSET(eng[real_rank], name, rank) - else if(real_rank in ROLES_REQUISITION) + else if(real_rank in GLOB.ROLES_REQUISITION) dept_flags |= FLAG_SHOW_REQUISITION LAZYSET(req[real_rank], name, rank) - else if(real_rank in ROLES_MEDICAL) + else if(real_rank in GLOB.ROLES_MEDICAL) dept_flags |= FLAG_SHOW_MEDICAL LAZYSET(med[real_rank], name, rank) - else if(real_rank in ROLES_MARINES) + else if(real_rank in GLOB.ROLES_MARINES) if(isnull(squad_name)) continue dept_flags |= FLAG_SHOW_MARINES squad_sublists[squad_name] = TRUE + ///If it is a real squad in the USCM squad list to prevent the crew manifest from breaking + if(!(squad_name in GLOB.ROLES_SQUAD_ALL)) + continue LAZYSET(marines_by_squad[squad_name][real_rank], name, rank) //here we fill manifest @@ -152,7 +155,7 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) even = !even if(dept_flags & FLAG_SHOW_MARINES) dat += "Marines" - for(var/squad_name in ROLES_SQUAD_ALL) + for(var/squad_name in GLOB.ROLES_SQUAD_ALL) if(!squad_sublists[squad_name]) continue dat += "[squad_name]" @@ -202,9 +205,9 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) if(!nosleep) sleep(40) - var/list/jobs_to_check = ROLES_CIC + ROLES_AUXIL_SUPPORT + ROLES_MISC + ROLES_POLICE + ROLES_ENGINEERING + ROLES_REQUISITION + ROLES_MEDICAL + ROLES_MARINES - for(var/mob/living/carbon/human/H in GLOB.human_mob_list) - if(is_admin_level(H.z)) + var/list/jobs_to_check = GLOB.ROLES_CIC + GLOB.ROLES_AUXIL_SUPPORT + GLOB.ROLES_MISC + GLOB.ROLES_POLICE + GLOB.ROLES_ENGINEERING + GLOB.ROLES_REQUISITION + GLOB.ROLES_MEDICAL + GLOB.ROLES_MARINES + for(var/mob/living/carbon/human/H as anything in GLOB.human_mob_list) + if(should_block_game_interaction(H)) continue if(H.job in jobs_to_check) manifest_inject(H) @@ -213,14 +216,14 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) var/datum/data/record/foundrecord var/use_name = isnull(ref) - for(var/datum/data/record/t in GLOB.data_core.general) + for(var/datum/data/record/record_entry in GLOB.data_core.general) if(use_name) - if(t.fields["name"] == name) - foundrecord = t + if(record_entry.fields["name"] == name) + foundrecord = record_entry break else - if(t.fields["ref"] == ref) - foundrecord = t + if(record_entry.fields["ref"] == ref) + foundrecord = record_entry break if(foundrecord) @@ -236,102 +239,106 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) return TRUE return FALSE -/datum/datacore/proc/manifest_inject(mob/living/carbon/human/H) +/datum/datacore/proc/manifest_inject(mob/living/carbon/human/target) var/assignment - if(H.job) - assignment = H.job + if(target.job) + assignment = target.job else assignment = "Unassigned" - var/id = add_zero(num2hex(H.gid), 6) //this was the best they could come up with? A large random number? *sigh* + var/id = add_zero(num2hex(target.gid), 6) //this was the best they could come up with? A large random number? *sigh* //var/icon/front = new(get_id_photo(H), dir = SOUTH) //var/icon/side = new(get_id_photo(H), dir = WEST) //General Record - var/datum/data/record/G = new() - G.fields["id"] = id - G.fields["name"] = H.real_name - G.fields["real_rank"] = H.job - G.fields["rank"] = assignment - G.fields["squad"] = H.assigned_squad ? H.assigned_squad.name : null - G.fields["age"] = H.age - G.fields["p_stat"] = "Active" - G.fields["m_stat"] = "Stable" - G.fields["sex"] = H.gender - G.fields["species"] = H.get_species() - G.fields["origin"] = H.origin - G.fields["faction"] = H.personal_faction - G.fields["mob_faction"] = H.faction - G.fields["religion"] = H.religion - G.fields["ref"] = WEAKREF(H) - //G.fields["photo_front"] = front - //G.fields["photo_side"] = side - - if(H.gen_record && !jobban_isbanned(H, "Records")) - G.fields["notes"] = H.gen_record + var/datum/data/record/record_general = new() + record_general.fields["id"] = id + record_general.fields["name"] = target.real_name + record_general.name = target.real_name + record_general.fields["real_rank"] = target.job + record_general.fields["rank"] = assignment + record_general.fields["squad"] = target.assigned_squad ? target.assigned_squad.name : null + record_general.fields["age"] = target.age + record_general.fields["p_stat"] = "Active" + record_general.fields["m_stat"] = "Stable" + record_general.fields["sex"] = target.gender + record_general.fields["species"] = target.get_species() + record_general.fields["origin"] = target.origin + record_general.fields["faction"] = target.personal_faction + record_general.fields["mob_faction"] = target.faction + record_general.fields["religion"] = target.religion + record_general.fields["ref"] = WEAKREF(target) + //record_general.fields["photo_front"] = front + //record_general.fields["photo_side"] = side + + if(target.gen_record && !jobban_isbanned(target, "Records")) + record_general.fields["notes"] = target.gen_record else - G.fields["notes"] = "No notes found." - general += G + record_general.fields["notes"] = "No notes found." + general += record_general //Medical Record - var/datum/data/record/M = new() - M.fields["id"] = id - M.fields["name"] = H.real_name - M.fields["b_type"] = H.blood_type - M.fields["mi_dis"] = "None" - M.fields["mi_dis_d"] = "No minor disabilities have been declared." - M.fields["ma_dis"] = "None" - M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." - M.fields["alg"] = "None" - M.fields["alg_d"] = "No allergies have been detected in this patient." - M.fields["cdi"] = "None" - M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." - M.fields["last_scan_time"] = null - M.fields["last_scan_result"] = "No scan data on record" // body scanner results - M.fields["autodoc_data"] = list() - M.fields["autodoc_manual"] = list() - M.fields["ref"] = WEAKREF(H) - - if(H.med_record && !jobban_isbanned(H, "Records")) - M.fields["notes"] = H.med_record + var/datum/data/record/record_medical = new() + record_medical.fields["id"] = id + record_medical.fields["name"] = target.real_name + record_medical.name = target.name + record_medical.fields["b_type"] = target.blood_type + record_medical.fields["mi_dis"] = "None" + record_medical.fields["mi_dis_d"] = "No minor disabilities have been declared." + record_medical.fields["ma_dis"] = "None" + record_medical.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + record_medical.fields["alg"] = "None" + record_medical.fields["alg_d"] = "No allergies have been detected in this patient." + record_medical.fields["cdi"] = "None" + record_medical.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + record_medical.fields["last_scan_time"] = null + record_medical.fields["last_scan_result"] = "No scan data on record" // body scanner results + record_medical.fields["autodoc_data"] = list() + record_medical.fields["autodoc_manual"] = list() + record_medical.fields["ref"] = WEAKREF(target) + + if(target.med_record && !jobban_isbanned(target, "Records")) + record_medical.fields["notes"] = target.med_record else - M.fields["notes"] = "No notes found." - medical += M + record_medical.fields["notes"] = "No notes found." + medical += record_medical //Security Record - var/datum/data/record/S = new() - S.fields["id"] = id - S.fields["name"] = H.real_name - S.fields["criminal"] = "None" - S.fields["incident"] = "" - S.fields["ref"] = WEAKREF(H) + var/datum/data/record/record_security = new() + record_security.fields["id"] = id + record_security.fields["name"] = target.real_name + record_security.name = target.real_name + record_security.fields["criminal"] = "None" + record_security.fields["incident"] = "" + record_security.fields["ref"] = WEAKREF(target) - if(H.sec_record && !jobban_isbanned(H, "Records")) - var/new_comment = list("entry" = H.sec_record, "created_by" = list("name" = "\[REDACTED\]", "rank" = "Military Police"), "deleted_by" = null, "deleted_at" = null, "created_at" = "Pre-Deployment") - S.fields["comments"] = list("1" = new_comment) - S.fields["notes"] = H.sec_record - security += S + if(target.sec_record && !jobban_isbanned(target, "Records")) + var/new_comment = list("entry" = target.sec_record, "created_by" = list("name" = "\[REDACTED\]", "rank" = "Military Police"), "deleted_by" = null, "deleted_at" = null, "created_at" = "Pre-Deployment") + record_security.fields["comments"] = list("1" = new_comment) + record_security.fields["notes"] = target.sec_record + security += record_security //Locked Record - var/datum/data/record/L = new() - L.fields["id"] = md5("[H.real_name][H.job]") - L.fields["name"] = H.real_name - L.fields["rank"] = H.job - L.fields["age"] = H.age - L.fields["sex"] = H.gender - L.fields["b_type"] = H.b_type - L.fields["species"] = H.get_species() - L.fields["origin"] = H.origin - L.fields["faction"] = H.personal_faction - L.fields["religion"] = H.religion - L.fields["ref"] = WEAKREF(H) - - if(H.exploit_record && !jobban_isbanned(H, "Records")) - L.fields["exploit_record"] = H.exploit_record + var/datum/data/record/record_locked = new() + record_locked.fields["id"] = md5("[target.real_name][target.job]") + record_locked.fields["name"] = target.real_name + record_locked.name = target.real_name + record_locked.fields["rank"] = target.job + record_locked.fields["age"] = target.age + record_locked.fields["sex"] = target.gender + record_locked.fields["b_type"] = target.b_type + record_locked.fields["species"] = target.get_species() + record_locked.fields["origin"] = target.origin + record_locked.fields["faction"] = target.personal_faction + record_locked.fields["religion"] = target.religion + record_locked.fields["ref"] = WEAKREF(target) + + if(target.exploit_record && !jobban_isbanned(target, "Records")) + record_locked.fields["exploit_record"] = target.exploit_record else - L.fields["exploit_record"] = "No additional information acquired." - locked += L + record_locked.fields["exploit_record"] = "No additional information acquired." + locked += record_locked /proc/get_id_photo(mob/living/carbon/human/H) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index b26c6afe4d91..7d497785a72a 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -19,8 +19,8 @@ /// Active timers with this datum as the target var/list/active_timers - /// Status traits attached. - var/list/status_traits + /// Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...)) + var/list/_status_traits /** * Components attached to this datum diff --git a/code/datums/disease.dm b/code/datums/disease.dm index e9c399c7b8bf..024337c8e065 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -7,7 +7,7 @@ to null does not delete the object itself. Thank you. */ -var/list/diseases = typesof(/datum/disease) - /datum/disease +GLOBAL_LIST_INIT(diseases, typesof(/datum/disease) - /datum/disease) /datum/disease @@ -121,17 +121,17 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it if(isturf(source.loc)) - for(var/mob/living/carbon/M in oview(check_range, source)) - if(isturf(M.loc)) - if(AStar(source.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range)) - M.contract_disease(src, 0, 1, force_spread) + for(var/mob/living/carbon/victim in oview(check_range, source)) + if(isturf(victim.loc)) + if(AStar(source.loc, victim.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range)) + victim.contract_disease(src, 0, 1, force_spread) return /datum/disease/process() if(!holder) - active_diseases -= src + SSdisease.all_diseases -= src return if(prob(65)) spread(holder) @@ -173,12 +173,10 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease var/mob/living/carbon/human/H = affected_mob H.med_hud_set_status() - - /datum/disease/New(process=TRUE)//process = 1 - adding the object to global list. List is processed by master controller. cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New() if(process) // Viruses in list are considered active. - active_diseases += src + SSdisease.all_diseases += src initial_spread = spread /datum/disease/proc/IsSame(datum/disease/D) @@ -193,5 +191,5 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/Destroy() affected_mob = null holder = null - active_diseases -= src + SSdisease.all_diseases -= src . = ..() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 6440c9734374..d933b81eb620 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -9,15 +9,15 @@ #define RANDOM_STARTING_LEVEL 2 -var/list/archive_diseases = list() +GLOBAL_LIST_EMPTY(archive_diseases) // The order goes from easy to cure to hard to cure. -var/list/advance_cures = list( +GLOBAL_LIST_INIT(advance_cures, list( "nutriment", "sugar", "orangejuice", "spaceacillin", "kelotane", "ethanol", "leporazine", "lipozine", "silver", "gold", "phoron" - ) + )) /* @@ -50,10 +50,10 @@ var/list/advance_cures = list( /datum/disease/advance/New(process = 1, datum/disease/advance/D) // Setup our dictionary if it hasn't already. - if(!dictionary_symptoms.len) - for(var/symp in list_symptoms) + if(!GLOB.dictionary_symptoms.len) + for(var/symp in GLOB.list_symptoms) var/datum/symptom/S = new symp - dictionary_symptoms[S.id] = symp + GLOB.dictionary_symptoms[S.id] = symp if(!istype(D)) D = null @@ -142,7 +142,7 @@ var/list/advance_cures = list( // Generate symptoms. By default, we only choose non-deadly symptoms. var/list/possible_symptoms = list() - for(var/symp in list_symptoms) + for(var/symp in GLOB.list_symptoms) var/datum/symptom/S = new symp if(S.level <= type_level_limit) if(!HasSymptom(S)) @@ -170,13 +170,13 @@ var/list/advance_cures = list( var/list/properties = GenerateProperties() AssignProperties(properties) - if(!archive_diseases[GetDiseaseID()]) + if(!GLOB.archive_diseases[GetDiseaseID()]) if(new_name) AssignName() - archive_diseases[GetDiseaseID()] = src // So we don't infinite loop - archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1) + GLOB.archive_diseases[GetDiseaseID()] = src // So we don't infinite loop + GLOB.archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1) - var/datum/disease/advance/A = archive_diseases[GetDiseaseID()] + var/datum/disease/advance/A = GLOB.archive_diseases[GetDiseaseID()] AssignName(A.name) //Generate disease properties based on the effects. Returns an associated list. @@ -254,11 +254,11 @@ var/list/advance_cures = list( // Will generate a random cure, the less resistance the symptoms have, the harder the cure. /datum/disease/advance/proc/GenerateCure(list/properties = list()) if(properties && properties.len) - var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) - cure_id = advance_cures[res] + var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, GLOB.advance_cures.len) + cure_id = GLOB.advance_cures[res] // Get the cure name from the cure_id - var/datum/reagent/D = chemical_reagents_list[cure_id] + var/datum/reagent/D = GLOB.chemical_reagents_list[cure_id] cure = D.name @@ -373,7 +373,7 @@ var/list/advance_cures = list( var/list/symptoms = list() symptoms += "Done" - symptoms += list_symptoms.Copy() + symptoms += GLOB.list_symptoms.Copy() do var/symptom = tgui_input_list(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom", symptoms) if(istext(symptom)) @@ -391,7 +391,7 @@ var/list/advance_cures = list( D.AssignName(new_name) D.Refresh() - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in SSdisease.all_diseases) AD.Refresh() for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list.Copy())) @@ -409,7 +409,7 @@ var/list/advance_cures = list( /* /mob/verb/test() - for(var/datum/disease/D in active_diseases) + for(var/datum/disease/D in SSdisease.all_diseases) to_chat(src, "[D.name] - [D.holder]") */ diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index 72a132cf517e..7746a03b4f89 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -1,9 +1,7 @@ // Symptoms are the effects that engineered advanced diseases do. -var/list/list_symptoms = typesof(/datum/symptom) - /datum/symptom -var/list/dictionary_symptoms = list() - -var/global/const/SYMPTOM_ACTIVATION_PROB = 3 +GLOBAL_LIST_INIT(list_symptoms, typesof(/datum/symptom) - /datum/symptom) +GLOBAL_LIST_EMPTY(dictionary_symptoms) /datum/symptom // Buffs/Debuffs the symptom has to the overall engineered disease. @@ -18,7 +16,7 @@ var/global/const/SYMPTOM_ACTIVATION_PROB = 3 var/id = "" /datum/symptom/New() - var/list/S = list_symptoms + var/list/S = GLOB.list_symptoms for(var/i = 1; i <= S.len; i++) if(src.type == S[i]) id = "[i]" diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm index 7547242473db..e5af4a8eaab4 100644 --- a/code/datums/diseases/advance/symptoms/voice_change.dm +++ b/code/datums/diseases/advance/symptoms/voice_change.dm @@ -38,10 +38,10 @@ Bonus var/random_name = "" switch(H.gender) if(MALE) - random_name = pick(first_names_male) + random_name = pick(GLOB.first_names_male) else - random_name = pick(first_names_female) - random_name += " [pick(last_names)]" + random_name = pick(GLOB.first_names_female) + random_name += " [pick(GLOB.last_names)]" H.SetSpecialVoice(random_name) return diff --git a/code/datums/diseases/black_goo.dm b/code/datums/diseases/black_goo.dm index 38a26f3648c7..183cdadf17aa 100644 --- a/code/datums/diseases/black_goo.dm +++ b/code/datums/diseases/black_goo.dm @@ -1,104 +1,140 @@ //Disease Datum +#define ZOMBIE_INFECTION_STAGE_ONE 1 +#define ZOMBIE_INFECTION_STAGE_TWO 2 +#define ZOMBIE_INFECTION_STAGE_THREE 3 +#define SLOW_INFECTION_RATE 1 +#define FAST_INFECTION_RATE 7 +#define STAGE_LEVEL_THRESHOLD 360 +#define MESSAGE_COOLDOWN_TIME 1 MINUTES + /datum/disease/black_goo name = "Black Goo" - max_stages = 5 + max_stages = 3 cure = "Anti-Zed" cure_id = "antiZed" spread = "Bites" spread_type = SPECIAL affected_species = list("Human") - curable = 0 - cure_chance = 100 - desc = "" + cure_chance = 100 //meaning the cure will kill the virus asap severity = "Medium" agent = "Unknown Biological Organism X-65" hidden = list(1,0) //Hidden from med-huds, but not pandemic scanners. BLOOD TESTS FOR THE WIN permeability_mod = 2 - stage_prob = 4 - stage_minimum_age = 150 - survive_mob_death = TRUE //FALSE //switch to true to make dead infected humans still transform - longevity = 500 //should allow the dead to rise - var/zombie_transforming = 0 //whether we're currently transforming the host into a zombie. - var/goo_message_cooldown = 0 //to make sure we don't spam messages too often. - var/stage_counter = 0 // tells a dead infectee their stage, so they can know when-abouts they'll revive + survive_mob_death = TRUE //We want the dead to turn into zombie. + longevity = 500 //the virus tend to die before the dead is turn into zombie this should fix it. + stage_prob = 0//no randomness + + /// boolean value to determine if the mob is currently transforming into a zombie. + var/zombie_is_transforming = FALSE + + /// variable to keep track of the stage level, used to prevent the stage message from being displayed more than once for any given stage. + var/stage_counter = 0 + +//new variables to handle infection progression inside a stage. + + /// variable that contains accumulated virus progression for a host. Iterates to a value above 360 and is then reset. + var/stage_level = 0 + + /// variable that handles passive increase of the virus of a host. + var/infection_rate = SLOW_INFECTION_RATE + + /// cooldown for the living mob's symptom messages + COOLDOWN_DECLARE(goo_message_cooldown) /datum/disease/black_goo/stage_act() ..() - if(!ishuman(affected_mob)) return - var/mob/living/carbon/human/H = affected_mob + if(!ishuman_strict(affected_mob)) + return + var/mob/living/carbon/human/infected_mob = affected_mob + + if(iszombie(infected_mob)) + return + + // infection rate is faster for dead mobs + if(infected_mob.stat == DEAD) + infection_rate = FAST_INFECTION_RATE + + // standard infection rate for living mobs + if(infected_mob.stat != DEAD) + infection_rate = SLOW_INFECTION_RATE + + stage_level += infection_rate + + // resets the stage_level once it passes the threshold. + if(stage_level >= STAGE_LEVEL_THRESHOLD) + stage++ + stage_level = stage_level % STAGE_LEVEL_THRESHOLD - if(age > 1.5*stage_minimum_age) stage_prob = 100 //if it takes too long we force a stage increase - else stage_prob = initial(stage_prob) - if(H.stat == DEAD) stage_minimum_age = 75 //the virus progress faster when the host is dead. switch(stage) - if(1) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage One! Zombie transformation begins at Stage Four.")) + if(ZOMBIE_INFECTION_STAGE_ONE) + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage one! Zombie transformation begins at stage three.")) stage_counter = stage - survive_mob_death = TRUE //changed because infection rate was REALLY horrible. - if(goo_message_cooldown < world.time ) - if(prob(3)) - to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - goo_message_cooldown = world.time + 100 - if(2) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Two! Zombie transformation begins at Stage Four.")) + + // dead mobs should not have symptoms, because... they are dead. + if(infected_mob.stat != DEAD) + if (!COOLDOWN_FINISHED(src, goo_message_cooldown)) + return + COOLDOWN_START(src, goo_message_cooldown, MESSAGE_COOLDOWN_TIME) + + switch(rand(0, 100)) + if(0 to 25) + return + if(25 to 75) + to_chat(infected_mob, SPAN_DANGER("You feel warm...")) + stage_level += 9 + if(75 to 95) + to_chat(infected_mob, SPAN_DANGER("Your throat is really dry...")) + stage_level += 18 + if(95 to 100) + to_chat(infected_mob, SPAN_DANGER("You can't trust them...")) + stage_level += 36 + + if(ZOMBIE_INFECTION_STAGE_TWO) + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage two! Zombie transformation begins at stage three.")) stage_counter = stage - if(goo_message_cooldown < world.time) - if (prob(3)) to_chat(affected_mob, SPAN_DANGER("Your throat is really dry...")) - else if (prob(6)) to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - else if (prob(2)) H.vomit_on_floor() - goo_message_cooldown = world.time + 100 - if(3) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Three! Zombie transformation begins at Stage Four, which will be soon.")) + + if(infected_mob.stat != DEAD) + if (!COOLDOWN_FINISHED(src, goo_message_cooldown)) + return + COOLDOWN_START(src, goo_message_cooldown, MESSAGE_COOLDOWN_TIME) + + switch(rand(0, 100)) + if(0 to 25) + return + if(25 to 50) + to_chat(infected_mob, SPAN_DANGER("You can't trust them...")) + stage_level += 5 + if(50 to 75) + to_chat(infected_mob, SPAN_DANGER("You feel really warm...")) + stage_level += 9 + if(75 to 85) + to_chat(infected_mob, SPAN_DANGER("Your throat is really dry...")) + stage_level += 18 + if(85 to 95) + infected_mob.vomit_on_floor() + stage_level += 36 + if(95 to 100) + to_chat(infected_mob, SPAN_DANGER("You cough up some black fluid...")) + stage_level += 42 + + if(ZOMBIE_INFECTION_STAGE_THREE) + //check if the mob is already a zombie and just return to avoid weird stuff, edge case if zombie_is_transforming deoesn't work. + if(iszombie(infected_mob)) + return + + if(infected_mob.stat == DEAD && stage_counter != stage) + to_chat(infected_mob, SPAN_CENTERBOLD("Your zombie infection is now at stage three! Zombie transformation begin!")) stage_counter = stage hidden = list(0,0) - //survive_mob_death = TRUE //even if host dies now, the transformation will occur. - H.next_move_slowdown = max(H.next_move_slowdown, 1) - if(goo_message_cooldown < world.time) - if (prob(3)) - to_chat(affected_mob, SPAN_DANGER("You cough up some black fluid...")) - goo_message_cooldown = world.time + 100 - else if (prob(6)) - to_chat(affected_mob, SPAN_DANGER("Your throat is really dry...")) - goo_message_cooldown = world.time + 100 - else if (prob(9)) - to_chat(affected_mob, SPAN_DANGER("You feel really warm...")) - goo_message_cooldown = world.time + 100 - else if(prob(5)) - goo_message_cooldown = world.time + 100 - H.vomit_on_floor() - if(4) - if(H.stat == DEAD && stage_counter != stage) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Four! Your transformation will happen any moment now.")) - stage_counter = stage - H.next_move_slowdown = max(H.next_move_slowdown, 2) - if(prob(5) || age >= stage_minimum_age-1) - if(!zombie_transforming) - zombie_transform(H) - else if(prob(5)) - H.vomit_on_floor() - if(5) - if(H.stat == DEAD && stage_counter != stage) - stage_counter = stage - if(H.species.name != SPECIES_ZOMBIE && !zombie_transforming) - to_chat(H, SPAN_CENTERBOLD("Your zombie infection is now at Stage Five! Your transformation should have happened already, but will be forced now.")) - zombie_transform(H) - if(!zombie_transforming && prob(50)) - if(H.stat != DEAD) - var/healamt = 2 - if(H.health < H.maxHealth) - H.apply_damage(-healamt, BURN) - H.apply_damage(-healamt, BRUTE) - H.apply_damage(-healamt, TOX) - H.apply_damage(-healamt, OXY) - H.nutrition = NUTRITION_MAX //never hungry - + if(!zombie_is_transforming) + zombie_transform(infected_mob) + infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2) /datum/disease/black_goo/proc/zombie_transform(mob/living/carbon/human/human) set waitfor = 0 - zombie_transforming = TRUE + zombie_is_transforming = TRUE human.vomit_on_floor() human.adjust_effect(5, STUN) sleep(20) @@ -113,9 +149,9 @@ playsound(human.loc, 'sound/hallucinations/wail.ogg', 25, 1) human.jitteriness = 0 human.set_species(SPECIES_ZOMBIE) - stage = 5 + stage = 3 human.faction = FACTION_ZOMBIE - zombie_transforming = FALSE + zombie_is_transforming = FALSE /obj/item/weapon/zombie_claws @@ -211,6 +247,15 @@ . = ..() reagents.add_reagent("antiZed", 30) +/obj/item/reagent_container/glass/bottle/labeled_black_goo_cure + name = "\"Pathogen\" cure bottle" + desc = "The bottle has a biohazard symbol on the front, and has a label, designating its use against Agent A0-3959X.91–15, colloquially known as the \"Black Goo\"." + icon_state = "bottle20" + +/obj/item/reagent_container/glass/bottle/labeled_black_goo_cure/Initialize() + . = ..() + reagents.add_reagent("antiZed", 60) + /datum/language/zombie name = "Zombie" desc = "A growling, guttural method of communication, only Zombies seem to be capable of producing these sounds." @@ -261,3 +306,11 @@ for(var/i=1; i <= storage_slots; i++) new /obj/item/reagent_container/food/drinks/bottle/black_goo(src) return + +#undef ZOMBIE_INFECTION_STAGE_ONE +#undef ZOMBIE_INFECTION_STAGE_TWO +#undef ZOMBIE_INFECTION_STAGE_THREE +#undef STAGE_LEVEL_THRESHOLD +#undef SLOW_INFECTION_RATE +#undef FAST_INFECTION_RATE +#undef MESSAGE_COOLDOWN_TIME diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index 46cd8952dda1..fd3fbc3a7d2d 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -20,7 +20,7 @@ cure() return */ - if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed + if(affected_mob.body_position == LYING_DOWN && prob(40)) //changed FROM prob(10) until sleeping is fixed to_chat(affected_mob, SPAN_NOTICE(" You feel better.")) cure() return @@ -43,7 +43,7 @@ cure() return */ - if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed + if(affected_mob.body_position == LYING_DOWN && prob(25)) //changed FROM prob(5) until sleeping is fixed to_chat(affected_mob, SPAN_NOTICE(" You feel better.")) cure() return diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index f2c029587616..fad0b15228b1 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -21,7 +21,7 @@ stage-- return */ - if(affected_mob.lying && prob(20)) //added until sleeping is fixed --Blaank + if(affected_mob.body_position == LYING_DOWN && prob(20)) //added until sleeping is fixed --Blaank to_chat(affected_mob, SPAN_NOTICE(" You feel better.")) stage-- return @@ -46,7 +46,7 @@ stage-- return */ - if(affected_mob.lying && prob(15)) //added until sleeping is fixed + if(affected_mob.body_position == LYING_DOWN && prob(15)) //added until sleeping is fixed to_chat(affected_mob, SPAN_NOTICE(" You feel better.")) stage-- return diff --git a/code/datums/diseases/mob_procs.dm b/code/datums/diseases/mob_procs.dm index 7f9704c46f47..c27efecdff84 100644 --- a/code/datums/diseases/mob_procs.dm +++ b/code/datums/diseases/mob_procs.dm @@ -80,9 +80,6 @@ passed = check_disease_pass_clothes(target_zone) - if(!passed && spread_type == AIRBORNE && !internal) - passed = (prob((50*virus.permeability_mod) - 1)) - if(passed) AddDisease(virus) @@ -111,36 +108,39 @@ /mob/living/carbon/human/check_disease_pass_clothes(target_zone) var/obj/item/clothing/Cl + var/protection = 0 switch(target_zone) if(1) if(isobj(head) && !istype(head, /obj/item/paper)) Cl = head - . = prob((Cl.permeability_coefficient*100) - 1) - if(. && wear_mask) - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 + if(isobj(wear_mask)) + Cl = wear_mask + protection += (Cl.permeability_coefficient*100)-100 if(2)//arms and legs included if(isobj(wear_suit)) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) - if(. && isobj(WEAR_BODY)) + protection += (Cl.permeability_coefficient*100)-100 + if(isobj(WEAR_BODY)) Cl = WEAR_BODY - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 if(3) if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_HANDS) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 - if(. && isobj(gloves)) + if(isobj(gloves)) Cl = gloves - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 if(4) if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_FEET) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 - if(. && isobj(shoes)) + if(isobj(shoes)) Cl = shoes - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 else to_chat(src, "Something bad happened with disease target zone code, tell a dev or admin ") + return prob(clamp(protection, 5, 90)) diff --git a/code/datums/effects/_effects.dm b/code/datums/effects/_effects.dm index 932dc44954fc..ea6823574f54 100644 --- a/code/datums/effects/_effects.dm +++ b/code/datums/effects/_effects.dm @@ -41,7 +41,7 @@ if(!validate_atom(thing) || QDELETED(thing)) qdel(src) return - START_PROCESSING(SSeffects, src) + START_PROCESSING(SSoldeffects, src) affected_atom = thing LAZYADD(affected_atom.effects_list, src) @@ -118,7 +118,7 @@ if(affected_atom) LAZYREMOVE(affected_atom.effects_list, src) affected_atom = null - STOP_PROCESSING(SSeffects, src) + STOP_PROCESSING(SSoldeffects, src) . = ..() diff --git a/code/datums/effects/bleeding.dm b/code/datums/effects/bleeding.dm index e6cb184850d4..2171580a94db 100644 --- a/code/datums/effects/bleeding.dm +++ b/code/datums/effects/bleeding.dm @@ -19,6 +19,13 @@ if(L && istype(L)) limb = L +/datum/effects/bleeding/Destroy() + if(limb) + SEND_SIGNAL(limb, COMSIG_LIMB_STOP_BLEEDING, TRUE, FALSE) + limb.bleeding_effects_list -= src + limb = null + return ..() + /datum/effects/bleeding/validate_atom(atom/A) if(isobj(A)) return FALSE @@ -48,12 +55,6 @@ duration += damage * (blood_duration_multiplier / BLOOD_ADD_PENALTY) blood_loss += damage / (blood_loss_divider * BLOOD_ADD_PENALTY) //Make the first hit count, adding on bleeding has a penalty -/datum/effects/bleeding/Destroy() - if(limb) - limb.bleeding_effects_list -= src - return ..() - - /datum/effects/bleeding/external var/buffer_blood_loss = 0 diff --git a/code/datums/effects/tether.dm b/code/datums/effects/tether.dm index ddaafff46489..1667d901a08a 100644 --- a/code/datums/effects/tether.dm +++ b/code/datums/effects/tether.dm @@ -52,7 +52,7 @@ var/turf/T var/dir_away = get_dir(affected_atom, A) - for (var/dir in alldirs) + for (var/dir in GLOB.alldirs) if (dir & dir_away) continue T = get_step(A, dir) diff --git a/code/datums/effects/xeno_strains/boiler_trap.dm b/code/datums/effects/xeno_strains/boiler_trap.dm index 61451391e816..199505379b27 100644 --- a/code/datums/effects/xeno_strains/boiler_trap.dm +++ b/code/datums/effects/xeno_strains/boiler_trap.dm @@ -4,19 +4,17 @@ effect_name = "boiler trap" duration = null flags = INF_DURATION - /// Ghetto flag indicating whether we actually placed the freeze or not, until we have an actual effects system - var/freezer = FALSE -/datum/effects/boiler_trap/New(atom/A, mob/from, last_dmg_source, zone) +/datum/effects/boiler_trap/New(atom/A, mob/living/from, last_dmg_source, zone) . = ..() if(!QDELETED(src)) - var/mob/M = affected_atom - freezer = M.freeze() + var/mob/living/affected_living = affected_atom + ADD_TRAIT(affected_living, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY(effect_name)) /datum/effects/boiler_trap/Destroy(force) - if(ismob(affected_atom) && freezer) - var/mob/M = affected_atom - M.unfreeze() + if(ismob(affected_atom)) + var/mob/living/affected_living = affected_atom + REMOVE_TRAIT(affected_living, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY(effect_name)) return ..() /datum/effects/boiler_trap/validate_atom(atom/A) @@ -28,8 +26,6 @@ /datum/effects/boiler_trap/process_mob() . = ..() if(!.) return FALSE - var/mob/M = affected_atom - if(M.frozen) return TRUE - if(!freezer) - freezer = M.freeze() + var/mob/living/affected_living = affected_atom + ADD_TRAIT(affected_living, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY(effect_name)) return TRUE diff --git a/code/datums/effects/xeno_strains/xeno_buff.dm b/code/datums/effects/xeno_strains/xeno_buff.dm index ad39a61dd13e..16a4bb82113e 100644 --- a/code/datums/effects/xeno_strains/xeno_buff.dm +++ b/code/datums/effects/xeno_strains/xeno_buff.dm @@ -21,7 +21,7 @@ if(!isxeno(A)) qdel(src) - to_chat(A, SPAN_XENONOTICE("You feel empowered")) + to_chat(A, SPAN_XENONOTICE("We feel empowered")) var/mob/living/carbon/xenomorph/X = A X.melee_damage_lower += bonus_damage @@ -47,7 +47,7 @@ /datum/effects/xeno_buff/Destroy() if(affected_atom) - to_chat(affected_atom, SPAN_XENONOTICE("You no longer feel empowered")) + to_chat(affected_atom, SPAN_XENONOTICE("We no longer feel empowered")) var/mob/living/carbon/xenomorph/X = affected_atom X.melee_damage_lower -= bonus_damage X.melee_damage_upper -= bonus_damage diff --git a/code/datums/elements/bullet_trait/incendiary.dm b/code/datums/elements/bullet_trait/incendiary.dm index 2d5d0a15f368..861e67651a53 100644 --- a/code/datums/elements/bullet_trait/incendiary.dm +++ b/code/datums/elements/bullet_trait/incendiary.dm @@ -13,7 +13,7 @@ if(ispath(reagent)) var/datum/reagent/R = reagent - burn_reagent = chemical_reagents_list[initial(R.id)] + burn_reagent = GLOB.chemical_reagents_list[initial(R.id)] else burn_reagent = reagent burn_stacks = stacks diff --git a/code/datums/elements/mouth_drop_item.dm b/code/datums/elements/mouth_drop_item.dm index 42c61bd275cc..7a546c6b3933 100644 --- a/code/datums/elements/mouth_drop_item.dm +++ b/code/datums/elements/mouth_drop_item.dm @@ -19,9 +19,9 @@ SIGNAL_HANDLER if(slot == WEAR_FACE) - I.RegisterSignal(user, COMSIG_MOB_KNOCKED_DOWN, TYPE_PROC_REF(/obj/item, drop_to_floor)) + I.RegisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION, TYPE_PROC_REF(/obj/item, drop_to_floor)) /datum/element/mouth_drop_item/proc/item_dropped(obj/item/I, mob/living/carbon/human/user) SIGNAL_HANDLER - I.UnregisterSignal(user, COMSIG_MOB_KNOCKED_DOWN) + I.UnregisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION) diff --git a/code/datums/emergency_calls/cbrn.dm b/code/datums/emergency_calls/cbrn.dm new file mode 100644 index 000000000000..cee96e10137e --- /dev/null +++ b/code/datums/emergency_calls/cbrn.dm @@ -0,0 +1,80 @@ +/datum/emergency_call/cbrn + name = "CBRN (Squad)" + arrival_message = "A CBRN squad has been dispatched to your ship. Stand by." + objectives = "Handle the chemical, biological, radiological, or nuclear threat. Further orders may be provided." + mob_min = 3 + mob_max = 5 + max_heavies = 0 + max_smartgunners = 0 + +/datum/emergency_call/cbrn/create_member(datum/mind/new_mind, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/mob = new(spawn_loc) + new_mind.transfer_to(mob, TRUE) + + if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = mob + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/leader, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Fireteam Leader!")) + + else if(medics < max_medics && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(mob.client, JOB_SQUAD_MEDIC, time_required_for_job)) + medics++ + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/medic, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Squad Medic!")) + + else if(engineers < max_engineers && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_ENGI, time_required_for_job)) + engineers++ + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/engineer, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Squad Engineer!")) + + else + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/standard, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are a CBRN Squad Rifleman!")) + + to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's CBRN. The CBRN is a force that specializes in handling chemical, biological, radiological, and nuclear threats.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + +/datum/emergency_call/cbrn/ert + name = "CBRN (Distress)" + arrival_message = "Your distress signal has been received and we are dispatching the nearest CBRN squad to board with you now. Stand by." + probability = 10 + +/datum/emergency_call/cbrn/ert/New() + ..() + objectives = "Investigate the distress signal aboard the [MAIN_SHIP_NAME]." + +/datum/emergency_call/cbrn/specialists + name = "CBRN (Specialists)" + mob_min = 2 + mob_max = 5 + max_engineers = 0 + max_medics = 0 + +/datum/emergency_call/cbrn/specialists/New() + var/cbrn_ship_name = "Unit [pick(GLOB.nato_phonetic_alphabet)]-[rand(1, 99)]" + arrival_message = "[MAIN_SHIP_NAME], CBRN [cbrn_ship_name] has been dispatched. Follow all orders provided by [cbrn_ship_name]." + objectives = "You are a specialist team in [cbrn_ship_name] dispatched to quell a threat to [MAIN_SHIP_NAME]. Further orders may be provided." + +/datum/emergency_call/cbrn/specialists/create_member(datum/mind/new_mind, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/mob = new(spawn_loc) + new_mind.transfer_to(mob, TRUE) + + if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = mob + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/specialist/lead, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are the CBRN Specialist Squad Leader!")) + else + arm_equipment(mob, /datum/equipment_preset/uscm/cbrn/specialist, TRUE, TRUE) + to_chat(mob, SPAN_ROLE_HEADER("You are a CBRN Specialist!")) + + to_chat(mob, SPAN_ROLE_BODY("You are a member of the USCM's CBRN. The CBRN is a force that specializes in handling chemical, biological, radiological, and nuclear threats.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) diff --git a/code/datums/emergency_calls/clf.dm b/code/datums/emergency_calls/clf.dm index 0a5f09e2a2f2..837ecb340dda 100644 --- a/code/datums/emergency_calls/clf.dm +++ b/code/datums/emergency_calls/clf.dm @@ -28,7 +28,7 @@ to_chat(H, SPAN_BOLD("The Dust Raiders responded with deadly force, scattering many of the colonists who attempted to fight their occupation.")) to_chat(H, SPAN_BOLD("The Dust Raiders and their flagship, the USS Alistoun eventually withdrew from the sector by the end of the year.")) to_chat(H, SPAN_BOLD("With the Neroid Sector existing in relative isolation from United America oversight for the last five years, many colonists have considered themselves free from governmental rule.")) - to_chat(H, SPAN_BOLD("The year is now [game_year].")) + to_chat(H, SPAN_BOLD("The year is now [GLOB.game_year].")) to_chat(H, SPAN_BOLD("The arrival of the USCM Battalion, the Falling Falcons, and their flagship, the [MAIN_SHIP_NAME], have reaffirmed that the United Americas considers the Neroid Sector part of their holdings.")) to_chat(H, SPAN_BOLD("It is up to you and your fellow colonists to make them realize their trespasses. This sector is no longer theirs.")) @@ -45,7 +45,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Cell Leader of the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Multi-Purpose Synthetic for the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm index 777ad322befc..5dba3ee8fc7d 100644 --- a/code/datums/emergency_calls/cmb.dm +++ b/code/datums/emergency_calls/cmb.dm @@ -35,7 +35,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) @@ -100,6 +100,19 @@ to_chat(M, SPAN_BOLD("Corporate Officers chase after paychecks and promotions, but you are motivated to do your sworn duty and care for the population, no matter how far or isolated a colony may be.")) to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction.")) + +// A Nearby Colonial Marshal patrol team responding to Marshals in Distress. +/datum/emergency_call/cmb/alt + name = "CMB - Patrol Team - Marshals in Distress (Friendly)" + mob_max = 5 + mob_min = 1 + probability = 0 + +/datum/emergency_call/cmb/alt/New() + ..() + arrival_message = "CMB Team, this is Anchorpoint Station. We have confirmed you are in distress. Routing nearby units to assist!" + objectives = "Patrol Unit 5807, we have nearby Marshals in Distress! Locate and assist them immediately." + // Anchorpoint Station Colonial Marines, use this primarily for reinforcing or evacuating the CMB, as the CMB themselves are not equipped to handle heavy engagements. /datum/emergency_call/cmb/anchorpoint name = "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)" diff --git a/code/datums/emergency_calls/contractor.dm b/code/datums/emergency_calls/contractor.dm index a5d6c2d7e80f..0e0c975f0d13 100644 --- a/code/datums/emergency_calls/contractor.dm +++ b/code/datums/emergency_calls/contractor.dm @@ -29,7 +29,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/synth, TRUE, TRUE) @@ -117,13 +117,13 @@ var/mob/living/carbon/human/H = new(spawn_loc) H.key = M.key if(H.client) - H.client.change_view(world_view_size) + H.client.change_view(GLOB.world_view_size) if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Covert Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/cryo_marines.dm b/code/datums/emergency_calls/cryo_marines.dm index 7ed61852e9bf..fb8d4b8a5a69 100644 --- a/code/datums/emergency_calls/cryo_marines.dm +++ b/code/datums/emergency_calls/cryo_marines.dm @@ -13,8 +13,8 @@ var/leaders = 0 spawn_max_amount = TRUE -/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) - var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] +/datum/emergency_call/cryo_squad/spawn_candidates(quiet_launch, announce_incoming, override_spawn_loc) + var/datum/squad/marine/cryo/cryo_squad = GLOB.RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders . = ..() shipwide_ai_announcement("Successfully deployed [mob_max] Foxtrot marines, of which [length(members)] are ready for duty.") @@ -43,41 +43,41 @@ break sleep(5) - var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] + var/datum/squad/marine/cryo/cryo_squad = GLOB.RoleAuthority.squads_by_type[/datum/squad/marine/cryo] if(leaders < cryo_squad.max_leaders && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(human.client, JOB_SQUAD_LEADER, time_required_for_job)))) leader = human leaders++ human.client?.prefs.copy_all_to(human, JOB_SQUAD_LEADER, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/leader/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are a Squad Leader in the USCM")) - to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) else if (heavies < max_heavies && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(human.client, JOB_SQUAD_SPECIALIST, time_required_for_job)))) heavies++ human.client?.prefs.copy_all_to(human, JOB_SQUAD_SPECIALIST, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/spec/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM")) - to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) else if (medics < max_medics && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(human.client, JOB_SQUAD_MEDIC, time_required_for_job)))) medics++ human.client?.prefs.copy_all_to(human, JOB_SQUAD_MEDIC, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/medic/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are a Hospital Corpsman in the USCM")) - to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) else if (engineers < max_engineers && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(human.client, JOB_SQUAD_ENGI, time_required_for_job)))) engineers++ human.client?.prefs.copy_all_to(human, JOB_SQUAD_ENGI, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/engineer/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are an Engineer in the USCM")) - to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) else human.client?.prefs.copy_all_to(human, JOB_SQUAD_MARINE, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/pfc/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are a Rifleman in the USCM")) - to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) sleep(10) diff --git a/code/datums/emergency_calls/cryo_marines_heavy.dm b/code/datums/emergency_calls/cryo_marines_heavy.dm index 70ce52443573..42f25a461254 100644 --- a/code/datums/emergency_calls/cryo_marines_heavy.dm +++ b/code/datums/emergency_calls/cryo_marines_heavy.dm @@ -16,8 +16,8 @@ var/leaders = 0 -/datum/emergency_call/cryo_squad_equipped/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) - var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] +/datum/emergency_call/cryo_squad_equipped/spawn_candidates(quiet_launch, announce_incoming, override_spawn_loc) + var/datum/squad/marine/cryo/cryo_squad = GLOB.RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders . = ..() if(length(members)) @@ -35,37 +35,37 @@ M.transfer_to(H, TRUE) sleep(5) - var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] + var/datum/squad/marine/cryo/cryo_squad = GLOB.RoleAuthority.squads_by_type[/datum/squad/marine/cryo] if(leaders < cryo_squad.max_leaders && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) leader = H leaders++ arm_equipment(H, /datum/equipment_preset/uscm/leader_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Squad Leader in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if (heavies < max_heavies && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(H.client, JOB_SQUAD_SPECIALIST, time_required_for_job)) heavies++ arm_equipment(H, /datum/equipment_preset/uscm/specialist_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if(smartgunners < max_smartgunners && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(H.client, JOB_SQUAD_SMARTGUN, time_required_for_job)) smartgunners++ arm_equipment(H, /datum/equipment_preset/uscm/smartgunner_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Smartgunner in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if(engineers < max_engineers && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(H.client, JOB_SQUAD_ENGI, time_required_for_job)) engineers++ arm_equipment(H, /datum/equipment_preset/uscm/engineer_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are an Engineer in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if (medics < max_medics && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(H.client, JOB_SQUAD_MEDIC, time_required_for_job)) medics++ arm_equipment(H, /datum/equipment_preset/uscm/medic_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Hospital Corpsman in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else arm_equipment(H, /datum/equipment_preset/uscm/private_equipped/cryo, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Rifleman in the USCM")) - to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) sleep(10) to_chat(H, SPAN_BOLD("Objectives: [objectives]")) diff --git a/code/datums/emergency_calls/cryo_spec.dm b/code/datums/emergency_calls/cryo_spec.dm index 6cc7c905efbc..8d563b0693f8 100644 --- a/code/datums/emergency_calls/cryo_spec.dm +++ b/code/datums/emergency_calls/cryo_spec.dm @@ -34,7 +34,7 @@ human.client?.prefs.copy_all_to(human, JOB_SQUAD_SPECIALIST, TRUE, TRUE) arm_equipment(human, /datum/equipment_preset/uscm/spec/cryo, mind == null, TRUE) to_chat(human, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM")) - to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) sleep(10) diff --git a/code/datums/emergency_calls/deathsquad.dm b/code/datums/emergency_calls/deathsquad.dm index 0bfab8fbf2b7..1cd5bdef6713 100644 --- a/code/datums/emergency_calls/deathsquad.dm +++ b/code/datums/emergency_calls/deathsquad.dm @@ -3,7 +3,7 @@ //Weyland-Yutani Deathsquad - W-Y Deathsquad. Event only /datum/emergency_call/death - name = "Weyland Whiteout Operators" + name = "Weyland Whiteout Operators (!DEATHSQUAD!)" mob_max = 8 mob_min = 5 arrival_message = "'!`2*%slau#*jer t*h$em a!l%. le&*ve n(o^ w&*nes%6es.*v$e %#d ou^'" @@ -18,41 +18,76 @@ // DEATH SQUAD-------------------------------------------------------------------------------- -/datum/emergency_call/death/create_member(datum/mind/M, turf/override_spawn_loc) +/datum/emergency_call/death/create_member(datum/mind/player, turf/override_spawn_loc) var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() if(!istype(spawn_loc)) return //Didn't find a useable spawn point. - var/mob/living/carbon/human/H = new(spawn_loc) - M.transfer_to(H, TRUE) + var/mob/living/carbon/human/person = new(spawn_loc) + player.transfer_to(person, TRUE) - if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) - leader = H - to_chat(H, SPAN_ROLE_HEADER("You are the Whiteout Team Leader!")) - to_chat(H, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) - arm_equipment(H, /datum/equipment_preset/pmc/w_y_whiteout/leader, TRUE, TRUE) - else if(medics < max_medics && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(H.client, JOB_SQUAD_MEDIC, time_required_for_job)) + if(!leader && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(person.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = person + to_chat(person, SPAN_ROLE_HEADER("You are the Whiteout Team Leader!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/leader, TRUE, TRUE) + else if(medics < max_medics && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(person.client, JOB_SQUAD_MEDIC, time_required_for_job)) medics++ - to_chat(H, SPAN_ROLE_HEADER("You are a Whiteout Team Medic!")) - to_chat(H, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) - arm_equipment(H, /datum/equipment_preset/pmc/w_y_whiteout/medic, TRUE, TRUE) - else if(heavies < max_heavies && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(H.client, list(JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN), time_required_for_job)) + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Medic!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/medic, TRUE, TRUE) + else if(heavies < max_heavies && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(person.client, list(JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN), time_required_for_job)) heavies++ - to_chat(H, SPAN_ROLE_HEADER("You are a Whiteout Team Terminator!")) - to_chat(H, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) - arm_equipment(H, /datum/equipment_preset/pmc/w_y_whiteout/terminator, TRUE, TRUE) + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Terminator!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/terminator, TRUE, TRUE) else - to_chat(H, SPAN_ROLE_HEADER("You are a Whiteout Team Operative!")) - to_chat(H, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) - arm_equipment(H, /datum/equipment_preset/pmc/w_y_whiteout, TRUE, TRUE) + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Operative!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout, TRUE, TRUE) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), person, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + +/datum/emergency_call/death/low_threat + name = "Weyland Whiteout Operators" + +// DEATH SQUAD-------------------------------------------------------------------------------- +/datum/emergency_call/death/low_threat/create_member(datum/mind/player, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/person = new(spawn_loc) + player.transfer_to(person, TRUE) + + if(!leader && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(person.client, JOB_SQUAD_LEADER, time_required_for_job)) + leader = person + to_chat(person, SPAN_ROLE_HEADER("You are the Whiteout Team Leader!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/low_threat/leader, TRUE, TRUE) + else if(medics < max_medics && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(person.client, JOB_SQUAD_MEDIC, time_required_for_job)) + medics++ + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Medic!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/low_threat/medic, TRUE, TRUE) + else if(heavies < max_heavies && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(person.client, list(JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN), time_required_for_job)) + heavies++ + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Terminator!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/low_threat/terminator, TRUE, TRUE) + else + to_chat(person, SPAN_ROLE_HEADER("You are a Whiteout Team Operative!")) + to_chat(person, SPAN_ROLE_BODY("Whiteout protocol is in effect for the target, all assets onboard are to be liquidated with expediency unless otherwise instructed by Weyland Yutani personnel holding the position of Director or above.")) + arm_equipment(person, /datum/equipment_preset/pmc/w_y_whiteout/low_threat, TRUE, TRUE) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), person, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) //################################################################################################ // Marine commandos - USCM Deathsquad. Event only /datum/emergency_call/marsoc - name = "Marine Raider Strike Team" + name = "Marine Raider Strike Team (!DEATHSQUAD!)" mob_max = 8 mob_min = 5 probability = 0 @@ -81,7 +116,7 @@ return /datum/emergency_call/marsoc_covert - name = "Marine Raider Operatives (Covert)" + name = "Marine Raider Operatives (!DEATHSQUAD! Covert)" mob_max = 8 mob_min = 5 probability = 0 @@ -107,3 +142,27 @@ to_chat(H, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) to_chat(H, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) return + + +/datum/emergency_call/marsoc/low_threat + name = "Marine Raider Operatives" + +/datum/emergency_call/marsoc/low_threat/create_member(datum/mind/MIND) + + var/turf/spawn_loc = get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/player = new(spawn_loc) + MIND.transfer_to(player, TRUE) + if(!leader && HAS_FLAG(player.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(player.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. + leader = player + to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) + arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat/sl, TRUE, TRUE) + else + to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider, the best of the best."))) + arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat, TRUE, TRUE) + to_chat(player, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) + to_chat(player, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) + return diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm index 6533086d98f3..7884d93b18bc 100644 --- a/code/datums/emergency_calls/emergency_call.dm +++ b/code/datums/emergency_calls/emergency_call.dm @@ -30,7 +30,7 @@ var/arrival_message = "" //Msg to display about when the shuttle arrives var/objectives //Txt of objectives to display to joined. Todo: make this into objective notes var/objective_info //For additional info in the objectives txt - var/probability = 0 //Chance of it occurring. Total must equal 100% + var/probability = 0 var/hostility //For ERTs who are either hostile or friendly by random chance. var/list/datum/mind/members = list() //Currently-joined members. var/list/datum/mind/candidates = list() //Potential candidates for enlisting. @@ -91,12 +91,12 @@ else return chosen_call -/datum/game_mode/proc/get_specific_call(call_name, quiet_launch = FALSE, announce = TRUE, is_emergency = TRUE, info = "", announce_dispatch_message = TRUE) +/datum/game_mode/proc/get_specific_call(call_name, quiet_launch = FALSE, announce_incoming = TRUE, info = "") for(var/datum/emergency_call/E in all_calls) //Loop through all potential candidates if(E.name == call_name) var/datum/emergency_call/em_call = new E.type() em_call.objective_info = info - em_call.activate(quiet_launch, announce, is_emergency, announce_dispatch_message) + em_call.activate(quiet_launch, announce_incoming) return error("get_specific_call could not find emergency call '[call_name]'") return @@ -168,7 +168,7 @@ return var/deathtime = world.time - usr.timeofdeath - if(deathtime < 1 MINUTES) //Nice try, ghosting right after the announcement + if(deathtime < 30 SECONDS) //Nice try, ghosting right after the announcement if(SSmapping.configs[GROUND_MAP].map_name != MAP_WHISKEY_OUTPOST) // people ghost so often on whiskey outpost. to_chat(src, SPAN_WARNING("You ghosted too recently.")) return @@ -192,7 +192,7 @@ else to_chat(src, SPAN_WARNING("You did not get enlisted in the response team. Better luck next time!")) -/datum/emergency_call/proc/activate(quiet_launch = FALSE, announce = TRUE, turf/override_spawn_loc, announce_dispatch_message = TRUE) +/datum/emergency_call/proc/activate(quiet_launch = FALSE, announce_incoming = TRUE, turf/override_spawn_loc) set waitfor = 0 if(!SSticker.mode) //Something horribly wrong with the gamemode ticker return @@ -200,14 +200,14 @@ SSticker.mode.picked_calls += src show_join_message() //Show our potential candidates the message to let them join. - message_admins("Distress beacon: '[name]' activated [src.hostility? "[SPAN_WARNING("(THEY ARE HOSTILE)")]":"(they are friendly)"]. Looking for candidates.") + message_admins("Distress beacon: '[name]' activated [hostility? "[SPAN_WARNING("(THEY ARE HOSTILE)")]":"(they are friendly)"]. Looking for candidates.") if(!quiet_launch) marine_announcement("A distress beacon has been launched from the [MAIN_SHIP_NAME].", "Priority Alert", 'sound/AI/distressbeacon.ogg', logging = ARES_LOG_SECURITY) - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/emergency_call, spawn_candidates), quiet_launch, announce, override_spawn_loc, announce_dispatch_message), 30 SECONDS) + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/emergency_call, spawn_candidates), quiet_launch, announce_incoming, override_spawn_loc), 30 SECONDS) -/datum/emergency_call/proc/spawn_candidates(quiet_launch = FALSE, announce = TRUE, override_spawn_loc, announce_dispatch_message = TRUE) +/datum/emergency_call/proc/spawn_candidates(quiet_launch = FALSE, announce_incoming = TRUE, override_spawn_loc) if(SSticker.mode) SSticker.mode.picked_calls -= src @@ -248,7 +248,7 @@ if(I.current) to_chat(I.current, SPAN_WARNING("You didn't get selected to join the distress team. Better luck next time!")) - if(announce) + if(announce_incoming) marine_announcement(dispatch_message, "Distress Beacon", 'sound/AI/distressreceived.ogg', logging = ARES_LOG_SECURITY) //Announcement that the Distress Beacon has been answered, does not hint towards the chosen ERT message_admins("Distress beacon: [src.name] finalized, setting up candidates.") @@ -304,8 +304,8 @@ create_member(null, override_spawn_loc) candidates = list() - if(arrival_message && announce) - marine_announcement(arrival_message, "Intercepted Tranmission:") + if(arrival_message && announce_incoming) + marine_announcement(arrival_message, "Intercepted Transmission:") /datum/emergency_call/proc/add_candidate(mob/M) if(!M.client || (M.mind && (M.mind in candidates)) || istype(M, /mob/living/carbon/xenomorph)) diff --git a/code/datums/emergency_calls/inspection.dm b/code/datums/emergency_calls/inspection.dm index 4c33d7d9bfa3..2cd121093ea4 100644 --- a/code/datums/emergency_calls/inspection.dm +++ b/code/datums/emergency_calls/inspection.dm @@ -183,7 +183,7 @@ /datum/emergency_call/inspection_cmb/New() ..() - arrival_message = "[MAIN_SHIP_NAME], This is Anchorpoint Station with the Colonial Marshal Bureau. Be advised, a CMB transport vessel is preparing to board you, submitting Federal docking clearances now. Standby." + arrival_message = "[MAIN_SHIP_NAME], this is Anchorpoint Station with the Colonial Marshal Bureau. Be advised, a CMB transport vessel is preparing to board you, submitting Federal docking clearances now. Standby." objectives = "Get your instructions from the CMB Office at Anchorpoint Station, and carry out your orders. Ensure that Colonial assets are safe and in your custody. Do not enforce or override Marine Law on a Marine Ship unless requested, as it's outside of your juristiction." will_spawn_icc_liaison = prob(90) @@ -202,7 +202,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) @@ -265,7 +265,7 @@ to_chat(M, SPAN_BOLD("Despite being stretched thin, the stalwart oath of the Marshals has continued to keep communities safe, with the CMB well respected by many. You are a representation of that oath, serve with distinction.")) /datum/emergency_call/inspection_cmb/black_market - name = "Inspection - Colonial Marshal Ledger Investigation Team" + name = "Inspection - Colonial Marshals Ledger Investigation Team" mob_max = 3 //Marshal, Deputy, ICC CL mob_min = 2 shuttle_id = "Distress_PMC" diff --git a/code/datums/emergency_calls/mercs.dm b/code/datums/emergency_calls/mercs.dm index 40210c845c6f..67e09e8992f0 100644 --- a/code/datums/emergency_calls/mercs.dm +++ b/code/datums/emergency_calls/mercs.dm @@ -11,7 +11,7 @@ /datum/emergency_call/mercs/New() . = ..() hostility = pick(75;FALSE,25;TRUE) - arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." if(hostility) objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." else @@ -25,7 +25,7 @@ /datum/emergency_call/mercs/friendly/New() . = ..() hostility = FALSE - arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." /datum/emergency_call/mercs/hostile //ditto @@ -36,7 +36,7 @@ /datum/emergency_call/mercs/hostile/New() . = ..() hostility = TRUE - arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." /datum/emergency_call/mercs/print_backstory(mob/living/carbon/human/H) @@ -96,7 +96,7 @@ /datum/emergency_call/heavy_mercs/New() . = ..() hostility = pick(75;FALSE,25;TRUE) - arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." if(hostility) objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." else @@ -108,7 +108,7 @@ /datum/emergency_call/heavy_mercs/hostile/New() . = ..() hostility = TRUE - arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." /datum/emergency_call/heavy_mercs/friendly @@ -117,7 +117,7 @@ /datum/emergency_call/heavy_mercs/friendly/New() . = ..() hostility = FALSE - arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(alphabet_lowercase)][pick(alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." + arrival_message = "[MAIN_SHIP_NAME], this is Elite Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." /datum/emergency_call/heavy_mercs/print_backstory(mob/living/carbon/human/H) diff --git a/code/datums/emergency_calls/pmc.dm b/code/datums/emergency_calls/pmc.dm index a06b0cc0c02e..2d21dc768f4a 100644 --- a/code/datums/emergency_calls/pmc.dm +++ b/code/datums/emergency_calls/pmc.dm @@ -34,7 +34,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Squad Leader!")) arm_equipment(mob, /datum/equipment_preset/pmc/pmc_leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Support Synthetic!")) arm_equipment(mob, /datum/equipment_preset/pmc/synth, TRUE, TRUE) @@ -120,7 +120,7 @@ var/mob/living/carbon/human/H = new(spawn_loc) H.key = M.key if(H.client) - H.client.change_view(world_view_size) + H.client.change_view(GLOB.world_view_size) if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. leader = H diff --git a/code/datums/emergency_calls/royal_marines.dm b/code/datums/emergency_calls/royal_marines.dm index b3feaccf87bb..21f79e7c3026 100644 --- a/code/datums/emergency_calls/royal_marines.dm +++ b/code/datums/emergency_calls/royal_marines.dm @@ -1,7 +1,7 @@ /datum/emergency_call/royal_marines name = "Royal Marines Commando (Squad) (Friendly)" mob_max = 7 - probability = 0 + probability = 15 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_twe item_spawn = /obj/effect/landmark/ert_spawns/distress_twe/item max_engineers = 0 diff --git a/code/datums/emergency_calls/tank_crew.dm b/code/datums/emergency_calls/tank_crew.dm index fb437c179e48..f8d20051c244 100644 --- a/code/datums/emergency_calls/tank_crew.dm +++ b/code/datums/emergency_calls/tank_crew.dm @@ -24,11 +24,10 @@ sleep(5) arm_equipment(H, /datum/equipment_preset/uscm/tank/full, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are a Vehicle Crewman in the USCM")) - to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) + to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command.")) to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced.")) sleep(10) to_chat(H, SPAN_BOLD("Objectives: [objectives]")) GLOB.data_core.manifest_inject(H) //Put people in crew manifest - diff --git a/code/datums/emergency_calls/upp.dm b/code/datums/emergency_calls/upp.dm index 04bcfecf9128..80ef111be3e4 100644 --- a/code/datums/emergency_calls/upp.dm +++ b/code/datums/emergency_calls/upp.dm @@ -4,7 +4,7 @@ /datum/emergency_call/upp name = "UPP Naval Infantry (Squad)" mob_max = 9 - probability = 10 + probability = 20 shuttle_id = "Distress_UPP" name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item @@ -14,15 +14,17 @@ max_heavies = 1 max_smartgunners = 0 var/heavy_pick = TRUE // whether heavy should count as either a minigunner or shotgunner - hostility = TRUE var/max_synths = 1 var/synths = 0 /datum/emergency_call/upp/New() - ..() - arrival_message = "T*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns )0r c|*$e @u*r*r$ c0m&*t." - objectives = "Eliminate the UA Forces to ensure the UPP prescence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs." - + . = ..() + hostility = pick(50;FALSE,50;TRUE) + arrival_message = "[MAIN_SHIP_NAME] t*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns and pR*epr# t% r@nd$r a(tD." + if(hostility) + objectives = "Eliminate the UA Forces to ensure the UPP prescence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs." + else + objectives = "Render assistance towards the UA Forces, do not engage UA forces. Listen to your superior officers." /datum/emergency_call/upp/print_backstory(mob/living/carbon/human/M) if(ishuman_strict(M)) @@ -59,7 +61,7 @@ leader = H arm_equipment(H, /datum/equipment_preset/upp/leader, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are an Officer of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Combat Synthetic of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) arm_equipment(H, /datum/equipment_preset/upp/synth, TRUE, TRUE) @@ -94,10 +96,26 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) +/datum/emergency_call/upp/hostile + name = "UPP Naval Infantry (Squad) (Hostile)" + hostility = TRUE + +/datum/emergency_call/upp/hostile/New() + ..() + arrival_message = "[MAIN_SHIP_NAME] t*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns and pR*epr# t% r@nd$r a(tD." + objectives = "Eliminate the UA Forces to ensure the UPP presence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs." + +/datum/emergency_call/upp/friendly + name = "UPP Naval Infantry (Squad) (Friendly)" + hostility = FALSE + +/datum/emergency_call/upp/friendly/New() + ..() + arrival_message = "This is UPP dispatch. USS Almayer, We are responding to your distress call, we will render aid as able, do not fire." + objectives = "Render assistance towards the UA Forces, Listen to your superior officers." /datum/emergency_call/upp/platoon - name = "UPP Naval Infantry (Platoon)" - mob_min = 4 + name = "UPP Naval Infantry (Platoon) (Hostile)" mob_max = 30 probability = 0 max_medics = 3 @@ -106,6 +124,21 @@ max_engineers = 2 max_synths = 1 heavy_pick = FALSE + hostility = TRUE + +/datum/emergency_call/upp/platoon/New() + ..() + arrival_message = "[MAIN_SHIP_NAME] t*is i* UP* d^sp^*ch`. STr*&e teaM, #*u are cLe*% for a*pr*%^h. Pr*mE a*l wE*p^ns and pR*epr# t% r@nd$r a(tD." + objectives = "Eliminate the UA Forces to ensure the UPP presence in this sector is continued. Listen to your superior officers and take over the [MAIN_SHIP_NAME] at all costs." + +/datum/emergency_call/upp/platoon/friendly + name = "UPP Naval Infantry (Platoon) (Friendly)" + hostility = FALSE + +/datum/emergency_call/upp/platoon/friendly/New() + ..() + arrival_message = "This is UPP dispatch. USS Almayer, We are responding to your distress call, we will render aid as able, do not fire." + objectives = "Render assistance towards the UA Forces, Listen to your superior officers." /obj/effect/landmark/ert_spawns/distress_upp name = "Distress_UPP" diff --git a/code/datums/emergency_calls/upp_commando.dm b/code/datums/emergency_calls/upp_commando.dm index 14c4af46c27b..1bc2b59ba08c 100644 --- a/code/datums/emergency_calls/upp_commando.dm +++ b/code/datums/emergency_calls/upp_commando.dm @@ -1,7 +1,7 @@ //UPP COMMANDOS /datum/emergency_call/upp_commando - name = "UPP Commandos" + name = "UPP Commandos (!DEATHSQUAD!)" mob_max = 6 probability = 0 objectives = "Stealthily assault the ship. Use your silenced weapons, tranquilizers, and night vision to get the advantage on the enemy. Take out the power systems, comms and engine. Stick together and keep a low profile." @@ -51,3 +51,29 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) +/datum/emergency_call/upp_commando/low_threat + name = "UPP Commandos" + +/datum/emergency_call/upp_commando/create_member(datum/mind/mind, turf/override_spawn_loc) + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) + return //Didn't find a useable spawn point. + + var/mob/living/carbon/human/person = new(spawn_loc) + mind.transfer_to(person, TRUE) + + if(!leader && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(person.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. + leader = person + arm_equipment(person, /datum/equipment_preset/upp/commando/leader/low_threat, TRUE, TRUE) + to_chat(person, SPAN_ROLE_HEADER("You are a Commando Team Leader of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) + else if(medics < max_medics && HAS_FLAG(person.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(person.client, JOB_SQUAD_MEDIC, time_required_for_job)) + medics++ + to_chat(person, SPAN_ROLE_HEADER("You are a Commando Medic of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) + arm_equipment(person, /datum/equipment_preset/upp/commando/medic/low_threat, TRUE, TRUE) + else + to_chat(person, SPAN_ROLE_HEADER("You are a Commando of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) + arm_equipment(person, /datum/equipment_preset/upp/commando/low_threat, TRUE, TRUE) + print_backstory(person) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), person, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) diff --git a/code/datums/emergency_calls/whiskey_outpost.dm b/code/datums/emergency_calls/whiskey_outpost.dm index 8a20043da558..c6a7e4947756 100644 --- a/code/datums/emergency_calls/whiskey_outpost.dm +++ b/code/datums/emergency_calls/whiskey_outpost.dm @@ -28,30 +28,30 @@ if(!leader && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(mob.client, JOB_SQUAD_LEADER, time_required_for_job)) leader = mob arm_equipment(mob, /datum/equipment_preset/dust_raider/leader, TRUE, TRUE) - to_chat(mob, SPAN_BOLDNOTICE("You are a Squad Leader in the USCM, your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(mob, SPAN_BOLDNOTICE("You are a Squad Leader in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if (heavies < max_heavies && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(mob.client, JOB_SQUAD_SPECIALIST, time_required_for_job)) heavies++ arm_equipment(mob, /datum/equipment_preset/dust_raider/specialist, TRUE, TRUE) - to_chat(mob, SPAN_BOLDNOTICE("You are a Specialist in the USCM, your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(mob, SPAN_BOLDNOTICE("You are a Specialist in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if(smartgunners < max_smartgunners && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SMARTGUNNER) && check_timelock(mob.client, JOB_SQUAD_SMARTGUN, time_required_for_job)) smartgunners++ arm_equipment(mob, /datum/equipment_preset/dust_raider/smartgunner, TRUE, TRUE) - to_chat(mob, SPAN_BOLDNOTICE("You are a Smartgunner in the USCM, your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(mob, SPAN_BOLDNOTICE("You are a Smartgunner in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if(engineers < max_engineers && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(mob.client, JOB_SQUAD_ENGI, time_required_for_job)) engineers++ arm_equipment(mob, /datum/equipment_preset/dust_raider/engineer, TRUE, TRUE) - to_chat(mob, SPAN_BOLDNOTICE("You are an Engineer in the USCM, your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(mob, SPAN_BOLDNOTICE("You are an Engineer in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else if (medics < max_medics && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(mob.client, JOB_SQUAD_MEDIC, time_required_for_job)) medics++ arm_equipment(mob, /datum/equipment_preset/dust_raider/medic, TRUE, TRUE) - to_chat(mob, SPAN_BOLDNOTICE("You are a Hospital Corpsman in the USCM, your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name].")) + to_chat(mob, SPAN_BOLDNOTICE("You are a Hospital Corpsman in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) else arm_equipment(mob, /datum/equipment_preset/dust_raider/private, TRUE, TRUE) to_chat(mob, SPAN_BOLDNOTICE("You are a Rifleman in the USCM, your squad is here to assist in the defence of [SSmapping.configs[GROUND_MAP].map_name].")) sleep(10) to_chat(mob, "Objectives: [objectives]") - RoleAuthority.randomize_squad(mob) + GLOB.RoleAuthority.randomize_squad(mob) mob.sec_hud_set_ID() mob.hud_set_squad() @@ -60,7 +60,7 @@ /datum/game_mode/whiskey_outpost/activate_distress() var/datum/emergency_call/em_call = /datum/emergency_call/wo - em_call.activate(FALSE) + em_call.activate(TRUE, FALSE) return /datum/emergency_call/wo/platoon diff --git a/code/datums/emergency_calls/xeno_cultists.dm b/code/datums/emergency_calls/xeno_cultists.dm index e5ebf089a9c2..5da5c9c17e59 100644 --- a/code/datums/emergency_calls/xeno_cultists.dm +++ b/code/datums/emergency_calls/xeno_cultists.dm @@ -25,7 +25,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are the leader of this xeno cult! Bring glory to Queen Mother!")) arm_equipment(H, /datum/equipment_preset/other/xeno_cultist/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) synths++ to_chat(H, SPAN_ROLE_HEADER("You are the xeno cult's synthetic! Tend to the Hive and the captured hosts, make sure the Hive grows!")) arm_equipment(H, /datum/equipment_preset/synth/survivor/cultist_synth, TRUE, TRUE) diff --git a/code/datums/entities/clans.dm b/code/datums/entities/clans.dm index 8caa538e0e31..916afd18c178 100644 --- a/code/datums/entities/clans.dm +++ b/code/datums/entities/clans.dm @@ -45,8 +45,8 @@ BSQL_PROTECT_DATUM(/datum/entity/clan) /datum/entity_meta/clan_player/on_insert(datum/entity/clan_player/player) player.honor = 0 - player.clan_rank = clan_ranks_ordered[CLAN_RANK_UNBLOODED] - player.permissions = clan_ranks[CLAN_RANK_UNBLOODED].permissions + player.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_UNBLOODED] + player.permissions = GLOB.clan_ranks[CLAN_RANK_UNBLOODED].permissions player.save() diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm index febeb1fc73a9..e5fa811002a2 100644 --- a/code/datums/entities/player.dm +++ b/code/datums/entities/player.dm @@ -93,7 +93,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) notes_add(ckey, note_text, admin.mob) else // notes_add already sends a message - message_admins("[key_name_admin(admin.mob)] has edited [ckey]'s [note_categories[note_category]] notes: [sanitize(note_text)]") + message_admins("[key_name_admin(admin.mob)] has edited [ckey]'s [GLOB.note_categories[note_category]] notes: [sanitize(note_text)]") if(!is_confidential && note_category == NOTE_ADMIN && owning_client) to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_LARGE("You have been noted by [key_name_admin(admin.mob, FALSE)]."))) to_chat_immediate(owning_client, SPAN_WARNING(FONT_SIZE_BIG("The note is : [sanitize(note_text)]"))) @@ -235,7 +235,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) if(job_bans[safe_rank]) continue var/old_rank = check_jobban_path(safe_rank) - jobban_keylist[old_rank][ckey] = ban_text + GLOB.jobban_keylist[old_rank][ckey] = ban_text jobban_savebanfile() add_note("Banned from [total_rank] - [ban_text]", FALSE, NOTE_ADMIN, TRUE, duration) // it is ban related note @@ -570,33 +570,33 @@ BSQL_PROTECT_DATUM(/datum/entity/player) save() /datum/entity/player/proc/migrate_bans() - if(!Banlist) // if Banlist cannot be located for some reason + if(!GLOB.Banlist) // if GLOB.Banlist cannot be located for some reason LoadBans() // try to load the bans - if(!Banlist) // uh oh, can't find bans! + if(!GLOB.Banlist) // uh oh, can't find bans! return var/reason var/expiration var/banned_by - Banlist.cd = "/base" + GLOB.Banlist.cd = "/base" - for (var/A in Banlist.dir) - Banlist.cd = "/base/[A]" + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" - if(ckey != Banlist["key"]) + if(ckey != GLOB.Banlist["key"]) continue - if(Banlist["temp"]) - if (!GetExp(Banlist["minutes"])) + if(GLOB.Banlist["temp"]) + if (!GetExp(GLOB.Banlist["minutes"])) return - if(expiration > Banlist["minutes"]) + if(expiration > GLOB.Banlist["minutes"]) return // found longer ban - reason = Banlist["reason"] - banned_by = Banlist["bannedby"] - expiration = Banlist["minutes"] + reason = GLOB.Banlist["reason"] + banned_by = GLOB.Banlist["bannedby"] + expiration = GLOB.Banlist["minutes"] migrated_bans = TRUE save() @@ -619,13 +619,13 @@ BSQL_PROTECT_DATUM(/datum/entity/player) /datum/entity/player/proc/migrate_jobbans() if(!job_bans) job_bans = list() - for(var/name in RoleAuthority.roles_for_mode) + for(var/name in GLOB.RoleAuthority.roles_for_mode) var/safe_job_name = ckey(name) - if(!jobban_keylist[safe_job_name]) + if(!GLOB.jobban_keylist[safe_job_name]) continue if(!safe_job_name) continue - var/reason = jobban_keylist[safe_job_name][ckey] + var/reason = GLOB.jobban_keylist[safe_job_name][ckey] if(!reason) continue diff --git a/code/datums/entities/player_times.dm b/code/datums/entities/player_times.dm index a6304bd5d874..2bbd4a3bc39e 100644 --- a/code/datums/entities/player_times.dm +++ b/code/datums/entities/player_times.dm @@ -84,7 +84,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player_time) return GLOB.always_state /datum/entity/player/proc/load_timestat_data() - if(!playtime_loaded || !RoleAuthority || LAZYACCESS(playtime_data, "loading")) // Need roleauthority to be up to see which job is xeno-related + if(!playtime_loaded || !GLOB.RoleAuthority || LAZYACCESS(playtime_data, "loading")) // Need roleauthority to be up to see which job is xeno-related return LAZYSET(playtime_data, "loading", TRUE) @@ -118,13 +118,13 @@ BSQL_PROTECT_DATUM(/datum/entity/player_time) LAZYADD(marine_playtimes, list(marine_playtime)) for(var/datum/view_record/playtime/PT in PTs) - var/isxeno = (PT.role_id in RoleAuthority.castes_by_name) + var/isxeno = (PT.role_id in GLOB.RoleAuthority.castes_by_name) var/isOther = (PT.role_id == JOB_OBSERVER) // more maybe eventually if(PT.role_id == JOB_XENOMORPH) continue // Snowflake check, will need to be removed in the future - if(!(PT.role_id in RoleAuthority.roles_by_name) && !isxeno && !isOther) + if(!(PT.role_id in GLOB.RoleAuthority.roles_by_name) && !isxeno && !isOther) continue if(isxeno) diff --git a/code/datums/factions/upp.dm b/code/datums/factions/upp.dm index 5a790c89be67..90b04765cf85 100644 --- a/code/datums/factions/upp.dm +++ b/code/datums/factions/upp.dm @@ -41,6 +41,8 @@ hud_icon_state = "co" if(JOB_UPP_COMBAT_SYNTH) hud_icon_state = "synth" + if(JOB_UPP_SUPPORT_SYNTH) + hud_icon_state = "synth" if(JOB_UPP_COMMANDO) hud_icon_state = "com" if(JOB_UPP_COMMANDO_MEDIC) diff --git a/code/datums/factions/uscm.dm b/code/datums/factions/uscm.dm index cf77142ce5d6..0a9b0cff40b9 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -189,6 +189,19 @@ if(JOB_CMB_OBS) marine_rk = "obs" icon_prefix = "cmb_" + // Check squad marines here too, for the unique ones + if(JOB_SQUAD_ENGI) + marine_rk = "engi" + if(JOB_SQUAD_MEDIC) + marine_rk = "med" + if(JOB_SQUAD_SPECIALIST) + marine_rk = "spec" + if(JOB_SQUAD_SMARTGUN) + marine_rk = "gun" + if(JOB_SQUAD_TEAM_LEADER) + marine_rk = "tl" + if(JOB_SQUAD_LEADER) + marine_rk = "leader" if(marine_rk) var/image/I = image('icons/mob/hud/marine_hud.dmi', current_human, "hudsquad") diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index a2932532e78e..b7d528380a42 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -48,6 +48,8 @@ GLOBAL_DATUM_INIT(revdata, /datum/getrev, new) var/datum/tgs_revision_information/test_merge/tm = line var/cm = tm.head_commit var/details = ": '" + html_encode(tm.title) + "' by " + html_encode(tm.author) + " at commit " + html_encode(copytext_char(cm, 1, 11)) + if(details && findtext(details, "\[s\]") && (!usr || !usr.client.admin_holder)) + continue . += "#[tm.number][details]
" /client/verb/showrevinfo() diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 16825ab8a7ba..6a4276208d13 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -166,18 +166,18 @@ /datum/teleport/instant/science/teleportChecks() if(istype(teleatom, /obj/item/disk/nuclear)) // Don't let nuke disks get teleported --NeoFite - teleatom.visible_message(SPAN_DANGER("The [teleatom] bounces off of the portal!")) + teleatom.visible_message(SPAN_DANGER("[teleatom] bounces off of the portal!")) return 0 if(length(teleatom.search_contents_for(/obj/item/disk/nuclear))) if(istype(teleatom, /mob/living)) var/mob/living/MM = teleatom - MM.visible_message(SPAN_DANGER("The [MM] bounces off of the portal!"),SPAN_DANGER("Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through.")) + MM.visible_message(SPAN_DANGER("[MM] bounces off of the portal!"),SPAN_DANGER("Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through.")) else - teleatom.visible_message(SPAN_DANGER("The [teleatom] bounces off of the portal!")) + teleatom.visible_message(SPAN_DANGER("[teleatom] bounces off of the portal!")) return 0 - if(is_admin_level(destination.z)) + if(should_block_game_interaction(destination)) if(length(teleatom.search_contents_for(/obj/item/storage/backpack/holding))) teleatom.visible_message(SPAN_DANGER("The Bag of Holding bounces off of the portal!")) return 0 diff --git a/code/datums/keybinding/client.dm b/code/datums/keybinding/client.dm index a5baf09a1360..752287882277 100644 --- a/code/datums/keybinding/client.dm +++ b/code/datums/keybinding/client.dm @@ -4,8 +4,8 @@ /datum/keybinding/client/admin_help - hotkey_keys = list("F1") - classic_keys = list("F1") + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") name = "admin_help" full_name = "Admin Help" description = "Ask an admin for help." diff --git a/code/datums/keybinding/communication.dm b/code/datums/keybinding/communication.dm index 4164198d4818..e1ba0ab5a31e 100644 --- a/code/datums/keybinding/communication.dm +++ b/code/datums/keybinding/communication.dm @@ -32,7 +32,7 @@ /datum/keybinding/client/communication/whisper hotkey_keys = list("Unbound") classic_keys = list("Unbound") - name = "Whisper" + name = WHISPER_CHANNEL full_name = "IC Whisper" keybind_signal = COMSIG_KB_CLIENT_WHISPER_DOWN @@ -56,4 +56,4 @@ name = MENTOR_CHANNEL full_name = "Mentor Say" description = "Talk with other mentors." - keybind_signal = COMSIG_KB_ADMIN_ASAY_DOWN + keybind_signal = COMSIG_KB_ADMIN_MENTORSAY_DOWN diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm index 6580c38083ea..6d7037eac398 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -1,8 +1,3 @@ -#define QUICK_EQUIP_PRIMARY 1 -#define QUICK_EQUIP_SECONDARY 2 -#define QUICK_EQUIP_TERTIARY 3 -#define QUICK_EQUIP_QUATERNARY 4 - /datum/keybinding/human category = CATEGORY_HUMAN weight = WEIGHT_MOB @@ -10,86 +5,6 @@ /datum/keybinding/human/can_use(client/user) return ishuman(user.mob) -/datum/keybinding/human/quick_equip - hotkey_keys = list("E") - classic_keys = list("E") - name = "quick_equip" - full_name = "Unholster" - description = "Take out an available weapon" - keybind_signal = COMSIG_KB_HUMAN_QUICKEQUIP_DOWN - -/datum/keybinding/human/quick_equip/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - H.holster_verb(QUICK_EQUIP_PRIMARY) - return TRUE - -/datum/keybinding/human/quick_equip_secondary - hotkey_keys = list("Shift+E") - classic_keys = list("Shift+E") - name = "quick_equip_secondary" - full_name = "Unholster secondary" - description = "Take out your secondary weapon" - keybind_signal = COMSIG_KB_HUMAN_SECONDARY_DOWN - -/datum/keybinding/human/quick_equip_secondary/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - H.holster_verb(QUICK_EQUIP_SECONDARY) - return TRUE - -/datum/keybinding/human/quick_equip_tertiary - hotkey_keys = list("Ctrl+E", "Alt+E") - classic_keys = list("Ctrl+E", "Alt+E") - name = "quick_equip_tertiary" - full_name = "Unholster tertiary" - description = "Take out your tertiary item." - keybind_signal = COMSIG_KB_HUMAN_TERTIARY_DOWN - -/datum/keybinding/human/quick_equip_tertiary/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - H.holster_verb(QUICK_EQUIP_TERTIARY) - return TRUE - -/datum/keybinding/human/quick_equip_quaternary - hotkey_keys = list("Unbound") - classic_keys = list("Unbound") - name = "quick_equip_quaternary" - full_name = "Unholster quaternary" - description = "Take out your quaternary item." - keybind_signal = COMSIG_KB_HUMAN_QUATERNARY_DOWN - -/datum/keybinding/human/quick_equip_quaternary/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - H.holster_verb(QUICK_EQUIP_QUATERNARY) - return TRUE - -/datum/keybinding/human/quick_equip_inventory - hotkey_keys = list("Unbound") - classic_keys = list("Unbound") - name = "quick_equip_inventory" - full_name = "Quick equip inventory" - description = "Quickly puts an item in the best slot available" - keybind_signal = COMSIG_KB_HUMAN_QUICK_EQUIP_DOWN - -/datum/keybinding/human/quick_equip_inventory/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - H.quick_equip() - return TRUE - /datum/keybinding/human/issue_order hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -103,8 +18,8 @@ . = ..() if(.) return - var/mob/living/carbon/human/H = user.mob - H.issue_order(order) + var/mob/living/carbon/human/human_mob = user.mob + human_mob.issue_order(order) return TRUE /datum/keybinding/human/issue_order/move @@ -139,8 +54,8 @@ . = ..() if(.) return - var/mob/living/carbon/human/H = user.mob - H.spec_activation_one() + var/mob/living/carbon/human/human_mob = user.mob + human_mob.spec_activation_one() return TRUE /datum/keybinding/human/specialist_two @@ -154,24 +69,8 @@ . = ..() if(.) return - var/mob/living/carbon/human/H = user.mob - H.spec_activation_two() - return TRUE - -/datum/keybinding/human/pick_up - hotkey_keys = list("F") - classic_keys = list("Unbound") - name = "pick_up" - full_name = "Pick Up Dropped Items" - keybind_signal = COMSIG_KB_HUMAN_PICK_UP - -/datum/keybinding/human/pick_up/down(client/user) - . = ..() - if(.) - return - - var/mob/living/carbon/human/human_user = user.mob - human_user.pickup_recent() + var/mob/living/carbon/human/human_mob = user.mob + human_mob.spec_activation_two() return TRUE /datum/keybinding/human/rotate_chair @@ -209,7 +108,23 @@ shown_item.showoff(human_user) return TRUE -#undef QUICK_EQUIP_PRIMARY -#undef QUICK_EQUIP_SECONDARY -#undef QUICK_EQUIP_TERTIARY -#undef QUICK_EQUIP_QUATERNARY +/datum/keybinding/human/cycle_helmet_hud + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "cycle_helmet_hud" + full_name = "Cycle Helmet HUD" + keybind_signal = COMSIG_KB_HUMAN_CYCLE_HELMET_HUD + +/datum/keybinding/human/cycle_helmet_hud/down(client/user) + . = ..() + if(.) + return + + var/mob/living/carbon/human/human_user = user.mob + var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user?.head + var/cycled_hud = marine_helmet?.cycle_huds(human_user) + + var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in marine_helmet.actions + cycle_action.set_action_overlay(cycled_hud) + + return TRUE diff --git a/code/datums/keybinding/human_combat.dm b/code/datums/keybinding/human_combat.dm index 70d78437ae03..5517f42c41ea 100644 --- a/code/datums/keybinding/human_combat.dm +++ b/code/datums/keybinding/human_combat.dm @@ -1,6 +1,5 @@ /datum/keybinding/human/combat category = CATEGORY_HUMAN_COMBAT - weight = WEIGHT_MOB /datum/keybinding/human/combat/can_use(client/user) . = ..() @@ -191,3 +190,20 @@ var/obj/item/weapon/gun/rifle/m46c/COgun = held_item COgun.toggle_iff(human) return TRUE + +/datum/keybinding/human/combat/toggle_shotgun_tube + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "toggle_shotgun_tube" + full_name = "Toggle Shotgun Tube" + keybind_signal = COMSIG_KB_HUMAN_WEAPON_SHOTGUN_TUBE + +/datum/keybinding/human/combat/toggle_shotgun_tube/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human = user.mob + var/obj/item/weapon/gun/shotgun/pump/dual_tube/held_item = human.get_held_item() + if(istype(held_item)) + held_item.toggle_tube() + return TRUE diff --git a/code/datums/keybinding/human_inventory.dm b/code/datums/keybinding/human_inventory.dm new file mode 100644 index 000000000000..163cbccdd5c0 --- /dev/null +++ b/code/datums/keybinding/human_inventory.dm @@ -0,0 +1,244 @@ +/datum/keybinding/human/inventory + category = CATEGORY_HUMAN_INVENTORY + +#define QUICK_EQUIP_PRIMARY 1 +#define QUICK_EQUIP_SECONDARY 2 +#define QUICK_EQUIP_TERTIARY 3 +#define QUICK_EQUIP_QUATERNARY 4 + +/datum/keybinding/human/inventory/quick_equip + hotkey_keys = list("E") + classic_keys = list("E") + name = "quick_equip" + full_name = "Unholster" + description = "Take out an available weapon" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUICKEQUIP_DOWN + +/datum/keybinding/human/inventory/quick_equip/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human_mob = user.mob + human_mob.holster_verb(QUICK_EQUIP_PRIMARY) + return TRUE + +/datum/keybinding/human/inventory/quick_equip_secondary + hotkey_keys = list("Shift+E") + classic_keys = list("Shift+E") + name = "quick_equip_secondary" + full_name = "Unholster secondary" + description = "Take out your secondary weapon" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SECONDARY_DOWN + +/datum/keybinding/human/inventory/quick_equip_secondary/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human_mob = user.mob + human_mob.holster_verb(QUICK_EQUIP_SECONDARY) + return TRUE + +/datum/keybinding/human/inventory/quick_equip_tertiary + hotkey_keys = list("Ctrl+E", "Alt+E") + classic_keys = list("Ctrl+E", "Alt+E") + name = "quick_equip_tertiary" + full_name = "Unholster tertiary" + description = "Take out your tertiary item." + keybind_signal = COMSIG_KB_HUMAN_INTERACT_TERTIARY_DOWN + +/datum/keybinding/human/inventory/quick_equip_tertiary/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human_mob = user.mob + human_mob.holster_verb(QUICK_EQUIP_TERTIARY) + return TRUE + +/datum/keybinding/human/inventory/quick_equip_quaternary + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "quick_equip_quaternary" + full_name = "Unholster quaternary" + description = "Take out your quaternary item." + keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUATERNARY_DOWN + +/datum/keybinding/human/inventory/quick_equip_quaternary/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human_mob = user.mob + human_mob.holster_verb(QUICK_EQUIP_QUATERNARY) + return TRUE + +#undef QUICK_EQUIP_PRIMARY +#undef QUICK_EQUIP_SECONDARY +#undef QUICK_EQUIP_TERTIARY +#undef QUICK_EQUIP_QUATERNARY + +/datum/keybinding/human/inventory/quick_equip_inventory + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "quick_equip_inventory" + full_name = "Quick equip inventory" + description = "Quickly puts an item in the best slot available" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_QUICK_EQUIP_DOWN + +/datum/keybinding/human/inventory/quick_equip_inventory/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human_mob = user.mob + human_mob.quick_equip() + return TRUE + +/datum/keybinding/human/inventory/pick_up + hotkey_keys = list("F") + classic_keys = list("Unbound") + name = "pick_up" + full_name = "Pick Up Dropped Items" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_PICK_UP + +/datum/keybinding/human/inventory/pick_up/down(client/user) + . = ..() + if(.) + return + + var/mob/living/carbon/human/human_user = user.mob + human_user.pickup_recent() + return TRUE + +/datum/keybinding/human/inventory/interact_other_hand + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "interact_other_hand" + full_name = "Interact With Other Hand" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_OTHER_HAND + +/datum/keybinding/human/inventory/interact_other_hand/down(client/user) + . = ..() + if(.) + return + + var/mob/living/carbon/human/human_user = user.mob + + var/active_hand = human_user.get_active_hand() + var/inactive_hand = human_user.get_inactive_hand() + + if(!inactive_hand) + return + human_user.click_adjacent(inactive_hand, active_hand) + return TRUE + +#define INTERACT_KEYBIND_COOLDOWN_TIME (0.2 SECONDS) +#define COOLDOWN_SLOT_INTERACT_KEYBIND "slot_interact_keybind_cooldown" + +/datum/keybinding/human/inventory/interact_slot + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + var/storage_slot + +/datum/keybinding/human/inventory/interact_slot/proc/check_slot(mob/living/carbon/human/user) + return + +/datum/keybinding/human/inventory/interact_slot/down(client/user) + . = ..() + if(.) + return + if(!storage_slot) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_SLOT_INTERACT_KEYBIND)) + return + + TIMER_COOLDOWN_START(src, COOLDOWN_SLOT_INTERACT_KEYBIND, INTERACT_KEYBIND_COOLDOWN_TIME) + var/mob/living/carbon/human/human_user = user.mob + var/obj/item/current_item = check_slot(human_user) + var/obj/item/in_hand_item = human_user.get_active_hand() + + if(in_hand_item) + if(!current_item) + if(!human_user.equip_to_slot_if_possible(in_hand_item, storage_slot, FALSE, FALSE)) + return + return TRUE + + current_item.attackby(in_hand_item, human_user) + return TRUE + + if(!current_item) + return + current_item.attack_hand(human_user) + return TRUE + +/datum/keybinding/human/inventory/interact_slot/back + name = "interact_storage_back" + full_name = "Interact With Back Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_BACK + storage_slot = WEAR_BACK + +/datum/keybinding/human/inventory/interact_slot/back/check_slot(mob/living/carbon/human/user) + return user.back + +/datum/keybinding/human/inventory/interact_slot/belt + name = "interact_storage_belt" + full_name = "Interact With Belt Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_BELT + storage_slot = WEAR_WAIST + +/datum/keybinding/human/inventory/interact_slot/belt/check_slot(mob/living/carbon/human/user) + return user.belt + +/datum/keybinding/human/inventory/interact_slot/pouch_left + name = "interact_storage_pouch_left" + full_name = "Interact With Left Pouch Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_LEFT_POUCH + storage_slot = WEAR_L_STORE + +/datum/keybinding/human/inventory/interact_slot/pouch_left/check_slot(mob/living/carbon/human/user) + return user.l_store + +/datum/keybinding/human/inventory/interact_slot/pouch_right + name = "interact_storage_pouch_right" + full_name = "Interact With Right Pouch Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_RIGHT_POUCH + storage_slot = WEAR_R_STORE + +/datum/keybinding/human/inventory/interact_slot/pouch_right/check_slot(mob/living/carbon/human/user) + return user.r_store + +/datum/keybinding/human/inventory/interact_slot/uniform + name = "interact_storage_uniform" + full_name = "Interact With Uniform Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_UNIFORM + storage_slot = WEAR_BODY + +/datum/keybinding/human/inventory/interact_slot/uniform/check_slot(mob/living/carbon/human/user) + return user.w_uniform + +/datum/keybinding/human/inventory/interact_slot/suit + name = "interact_storage_suit" + full_name = "Interact With Suit Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_SUIT + storage_slot = WEAR_JACKET + +/datum/keybinding/human/inventory/interact_slot/suit/check_slot(mob/living/carbon/human/user) + return user.wear_suit + +/datum/keybinding/human/inventory/interact_slot/helmet + name = "interact_storage_helmet" + full_name = "Interact With Head Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SLOT_HELMET + storage_slot = WEAR_HEAD + +/datum/keybinding/human/inventory/interact_slot/helmet/check_slot(mob/living/carbon/human/user) + return user.head + +/datum/keybinding/human/inventory/interact_slot/suit_storage + name = "interact_storage_suit_store" + full_name = "Interact With Suit Storage Slot" + keybind_signal = COMSIG_KB_HUMAN_INTERACT_SUIT_S_STORE + storage_slot = WEAR_J_STORE + +/datum/keybinding/human/inventory/interact_slot/suit_storage/check_slot(mob/living/carbon/human/user) + return user.s_store + +#undef INTERACT_KEYBIND_COOLDOWN_TIME +#undef COOLDOWN_SLOT_INTERACT_KEYBIND diff --git a/code/datums/keybinding/xenomorph.dm b/code/datums/keybinding/xenomorph.dm index 431b0a1e987f..cef04d01a75c 100644 --- a/code/datums/keybinding/xenomorph.dm +++ b/code/datums/keybinding/xenomorph.dm @@ -196,11 +196,11 @@ return if((!current_xeno.hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !current_xeno.hive.allow_no_queen_actions) //No Hive status on WO - to_chat(current_xeno, SPAN_WARNING("There is no Queen. You are alone.")) + to_chat(current_xeno, SPAN_WARNING("There is no Queen. We are alone.")) return if(current_xeno.interference) - to_chat(current_xeno, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) + to_chat(current_xeno, SPAN_WARNING("A headhunter temporarily cut off our psychic connection!")) return current_xeno.hive.hive_ui.open_hive_status(current_xeno) diff --git a/code/datums/keybinding/yautja.dm b/code/datums/keybinding/yautja.dm index 4729db004582..c79788df49a3 100644 --- a/code/datums/keybinding/yautja.dm +++ b/code/datums/keybinding/yautja.dm @@ -30,16 +30,7 @@ classic_keys = list("Unbound") name = "pred_buy" full_name = "Claim equipment" - keybind_signal = COMSIG_KB_YAUTJA_BUTCHER - -/datum/keybinding/yautja/pred_buy/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.pred_buy() + keybind_signal = COMSIG_KB_YAUTJA_PRED_BUY /datum/keybinding/yautja/mark_panel hotkey_keys = list("Unbound") @@ -48,46 +39,12 @@ full_name = "Mark panel" keybind_signal = COMSIG_KB_YAUTJA_MARK_PANEL -/datum/keybinding/yautja/mark_panel/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.mark_panel() - /datum/keybinding/yautja/mark_for_hunt hotkey_keys = list("Unbound") classic_keys = list("Unbound") name = "mark_for_hunt" - full_name = "Mark for hunt" - keybind_signal = COMSIG_KB_YAUTJA_MARK_FOR_HUNT - -/datum/keybinding/yautja/mark_for_hunt/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.mark_for_hunt() - -/datum/keybinding/yautja/remove_from_hunt - hotkey_keys = list("Unbound") - classic_keys = list("Unbound") - name = "remove_from_hunt" - full_name = "Remove from hunt" - keybind_signal = COMSIG_KB_YAUTJA_REMOVE_FROM_HUNT - -/datum/keybinding/yautja/remove_from_hunt/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - if(!isyautja(H)) - return - H.remove_from_hunt() + full_name = "Toggle mark for hunt" + keybind_signal = COMSIG_KB_YAUTJA_TOGGLE_MARK_FOR_HUNT // BRACER SPECIFIC \\ @@ -168,22 +125,6 @@ full_name = "Toggle wristblades" keybind_signal = COMSIG_KB_YAUTJA_WRISTBLADES -/datum/keybinding/yautja/bracer_hunter/wristblades/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.wristblades() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.wristblades() - return TRUE - /datum/keybinding/yautja/bracer_hunter/track_gear hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -214,22 +155,6 @@ full_name = "Toggle cloak" keybind_signal = COMSIG_KB_YAUTJA_CLOAKER -/datum/keybinding/yautja/bracer_hunter/cloaker/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.cloaker() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.cloaker() - return TRUE - /datum/keybinding/yautja/bracer_hunter/caster hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -237,22 +162,6 @@ full_name = "Toggle plasma caster" keybind_signal = COMSIG_KB_YAUTJA_CASTER -/datum/keybinding/yautja/bracer_hunter/caster/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.caster() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.caster() - return TRUE - /datum/keybinding/yautja/bracer_hunter/change_explosion_type hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -283,22 +192,6 @@ full_name = "Self-destruct" keybind_signal = COMSIG_KB_YAUTJA_ACTIVATE_SUICIDE -/datum/keybinding/yautja/bracer_hunter/activate_suicide/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.activate_suicide() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.activate_suicide() - return TRUE - /datum/keybinding/yautja/bracer_hunter/injectors hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -306,21 +199,6 @@ full_name = "Create Stabilising Crystal" keybind_signal = COMSIG_KB_YAUTJA_INJECTORS -/datum/keybinding/yautja/bracer_hunter/injectors/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.injectors() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.injectors() - return TRUE /datum/keybinding/yautja/bracer_hunter/healing_capsule hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -328,22 +206,6 @@ full_name = "Create Healing Capsule" keybind_signal = COMSIG_KB_YAUTJA_CAPSULE -/datum/keybinding/yautja/bracer_hunter/healing_capsule/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.healing_capsule() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.healing_capsule() - return TRUE - /datum/keybinding/yautja/bracer_hunter/call_disc hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -351,22 +213,6 @@ full_name = "Call smart-disc" keybind_signal = COMSIG_KB_YAUTJA_CALL_DISC -/datum/keybinding/yautja/bracer_hunter/call_disc/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.call_disc() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.call_disc() - return TRUE - /datum/keybinding/yautja/bracer_hunter/remove_tracked_item hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -420,22 +266,6 @@ full_name = "Yank combi-stick" keybind_signal = COMSIG_KB_YAUTJA_CALL_COMBI -/datum/keybinding/yautja/bracer_hunter/call_combi/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.call_combi() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.call_combi() - return TRUE - /datum/keybinding/yautja/bracer_hunter/translate hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -443,22 +273,6 @@ full_name = "Translator" keybind_signal = COMSIG_KB_YAUTJA_TRANSLATE -/datum/keybinding/yautja/bracer_hunter/translate/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - - var/obj/item/clothing/gloves/yautja/hunter/gloves = H.gloves - if(istype(gloves)) - gloves.translate() - return TRUE - - var/obj/item/clothing/gloves/yautja/hunter/held = H.get_held_item() - if(istype(held)) - held.translate() - return TRUE - /datum/keybinding/yautja/bracer_hunter/bracername hotkey_keys = list("Unbound") classic_keys = list("Unbound") @@ -528,6 +342,13 @@ held.link_bracer() return TRUE +/datum/keybinding/yautja/bracer_hunter/control_falcon_drone + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "control_falcon" + full_name = "Control falcon drone" + keybind_signal = COMSIG_KB_YAUTJA_CONTROL_FALCON + // Misc stuff - mask, teleporter \\ // mask @@ -545,32 +366,14 @@ classic_keys = list("Unbound") name = "toggle_zoom" full_name = "Toggle mask zoom" - keybind_signal = COMSIG_KB_YAUTJA_LINK_BRACER - -/datum/keybinding/yautja/mask/toggle_zoom/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - var/obj/item/clothing/mask/gas/yautja/mask = H.wear_mask - mask.toggle_zoom() - return TRUE + keybind_signal = COMSIG_KB_YAUTJA_MASK_TOGGLE_ZOOM /datum/keybinding/yautja/mask/togglesight hotkey_keys = list("Unbound") classic_keys = list("Unbound") name = "togglesight" full_name = "Toggle mask visors" - keybind_signal = COMSIG_KB_YAUTJA_LINK_BRACER - -/datum/keybinding/yautja/mask/togglesight/down(client/user) - . = ..() - if(.) - return - var/mob/living/carbon/human/H = user.mob - var/obj/item/clothing/mask/gas/yautja/mask = H.wear_mask - mask.togglesight() - return TRUE + keybind_signal = COMSIG_KB_YAUTJA_MASK_TOGGLESIGHT // teleporter diff --git a/code/datums/langchat/langchat.dm b/code/datums/langchat/langchat.dm index d1a6adafa2f3..83b9be0ac053 100644 --- a/code/datums/langchat/langchat.dm +++ b/code/datums/langchat/langchat.dm @@ -13,7 +13,6 @@ #define LANGCHAT_LONGEST_TEXT 64 #define LANGCHAT_WIDTH 96 -#define LANGCHAT_X_OFFSET -32 #define LANGCHAT_MAX_ALPHA 196 //pop defines @@ -48,6 +47,13 @@ M.client.images -= langchat_image langchat_listeners = null +/atom/proc/langchat_set_x_offset() + langchat_image.maptext_x = world.icon_size / 2 - langchat_image.maptext_width / 2 +/atom/movable/langchat_set_x_offset() + langchat_image.maptext_x = bound_width / 2 - langchat_image.maptext_width / 2 +/mob/langchat_set_x_offset() + langchat_image.maptext_x = icon_size / 2 - langchat_image.maptext_width / 2 + ///Creates the image if one does not exist, resets settings that are modified by speech procs. /atom/proc/langchat_make_image(override_color = null) if(!langchat_image) @@ -57,8 +63,8 @@ langchat_image.appearance_flags = NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR|RESET_TRANSFORM langchat_image.maptext_y = langchat_height langchat_image.maptext_height = 64 - langchat_image.maptext_x = LANGCHAT_X_OFFSET langchat_image.maptext_y -= LANGCHAT_MESSAGE_POP_Y_SINK + langchat_set_x_offset() langchat_image.pixel_y = 0 langchat_image.alpha = 0 @@ -103,6 +109,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH + langchat_set_x_offset() langchat_listeners = listeners for(var/mob/M in langchat_listeners) @@ -149,6 +156,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH * 2 + langchat_set_x_offset() langchat_listeners = listeners for(var/mob/M in langchat_listeners) diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index c6fc23c68eba..11ba15146430 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -37,6 +37,15 @@ /// Has the looping started yet? var/loop_started = FALSE + /** + * Let's you make a "loud" sound that "projects." IE you can hear this sound from a further distance away. + * Think of like an air raid siren. They're loud if you're close yeah... but you can hear them from mad far away, bruv + * with a longer "falloff distance." Fixes the extra_range stuff + */ + var/is_sound_projecting = FALSE + ///only applicable to is_sound_projecting: max range till sound volume starts dropping as distance increases + var/falloff_distance = 50 + /* // as of yet unused varen \\ /// How much the sound will be affected by falloff per tile. @@ -130,19 +139,18 @@ sound_to_play.channel = get_free_channel() sound_to_play.volume = volume_override || volume //Use volume as fallback if theres no override SEND_SOUND(parent, sound_to_play) - else - playsound( - parent, - sound_to_play, - volume, - vary, - extra_range//, - // falloff_exponent = falloff_exponent, - // pressure_affected = pressure_affected, - // ignore_walls = ignore_walls, - // falloff_distance = falloff_distance, - // use_reverb = use_reverb - ) + return + if (is_sound_projecting) + playsound(parent, sound_to_play, volume, vary, extra_range, VOLUME_SFX, 0, 0, falloff_distance) + return + + playsound( + parent, + sound_to_play, + volume, + vary, + extra_range + ) /// Returns the sound we should now be playing. /datum/looping_sound/proc/get_sound(_mid_sounds) diff --git a/code/datums/looping_sounds/misc_sounds.dm b/code/datums/looping_sounds/misc_sounds.dm new file mode 100644 index 000000000000..6411b3f51f4a --- /dev/null +++ b/code/datums/looping_sounds/misc_sounds.dm @@ -0,0 +1,3 @@ +/datum/looping_sound/looping_launch_announcement_alarm + mid_sounds = list('sound/vehicles/Dropships/single_alarm_brr_dropship_1.ogg' = 1) + start_sound = list('sound/vehicles/Dropships/single_alarm_brr_dropship_1.ogg' = 1) diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 1f3c265ead76..3bf5c601cec9 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -87,12 +87,14 @@ /datum/equipment_preset/synth/survivor/janitor_synth, /datum/equipment_preset/synth/survivor/chef_synth, /datum/equipment_preset/synth/survivor/teacher_synth, + /datum/equipment_preset/synth/survivor/freelancer_synth, + /datum/equipment_preset/synth/survivor/trucker_synth, /datum/equipment_preset/synth/survivor/bartender_synth, /datum/equipment_preset/synth/survivor/detective_synth, /datum/equipment_preset/synth/survivor/cmb_synth, - /datum/equipment_preset/synth/survivor/security_synth, - /datum/equipment_preset/synth/survivor/protection_synth, - /datum/equipment_preset/synth/survivor/corporate_synth, + /datum/equipment_preset/synth/survivor/wy/security_synth, + /datum/equipment_preset/synth/survivor/wy/protection_synth, + /datum/equipment_preset/synth/survivor/wy/corporate_synth, /datum/equipment_preset/synth/survivor/radiation_synth, ) diff --git a/code/datums/medal_awards.dm b/code/datums/medal_awards.dm index 54af48fd3345..ba8847c03661 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -35,6 +35,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) giver_mob = list() giver_ckey = list() +GLOBAL_LIST_INIT(human_medals, list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL)) /proc/give_medal_award(medal_location, as_admin = FALSE) if(as_admin && !check_rights(R_ADMIN)) @@ -52,7 +53,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) return FALSE // Pick a medal - var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL)) + var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", GLOB.human_medals) if(!medal_type) return FALSE @@ -173,15 +174,15 @@ GLOBAL_LIST_EMPTY(jelly_awards) user.visible_message("ERROR: ID card not registered in USCM registry. Potential medal fraud detected.") return - var/real_owner_ref = card.registered_ref - - if(real_owner_ref != WEAKREF(user)) + if(!card.check_biometrics(user)) user.visible_message("ERROR: ID card not registered for [user.real_name] in USCM registry. Potential medal fraud detected.") return if(give_medal_award(get_turf(printer))) user.visible_message(SPAN_NOTICE("[printer] prints a medal.")) +GLOBAL_LIST_INIT(xeno_medals, list(XENO_SLAUGHTER_MEDAL, XENO_RESILIENCE_MEDAL, XENO_SABOTAGE_MEDAL, XENO_PROLIFERATION_MEDAL, XENO_REJUVENATION_MEDAL)) + /proc/give_jelly_award(datum/hive_status/hive, as_admin = FALSE) if(!hive) return FALSE @@ -220,7 +221,7 @@ GLOBAL_LIST_EMPTY(jelly_awards) return FALSE // Pick a jelly - var/medal_type = tgui_input_list(usr, "What type of jelly do you want to award?", "Jelly Type", list(XENO_SLAUGHTER_MEDAL, XENO_RESILIENCE_MEDAL, XENO_SABOTAGE_MEDAL, XENO_PROLIFERATION_MEDAL, XENO_REJUVENATION_MEDAL), theme="hive_status") + var/medal_type = tgui_input_list(usr, "What type of jelly do you want to award?", "Jelly Type", GLOB.xeno_medals, theme="hive_status") if(!medal_type) return FALSE diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2e56b963e88f..74f445f21597 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -29,9 +29,14 @@ research_objective_interface = new() /datum/mind/Destroy() + QDEL_NULL(initial_account) QDEL_NULL(objective_memory) QDEL_NULL(objective_interface) QDEL_NULL(research_objective_interface) + current = null + original = null + ghost_mob = null + player_entity = null return ..() /datum/mind/proc/transfer_to(mob/living/new_character, force = FALSE) @@ -39,11 +44,9 @@ msg_admin_niche("[key]/[ckey] has tried to transfer to deleted [new_character].") return - SEND_SIGNAL(current.client, COMSIG_CLIENT_MIND_TRANSFER, new_character) - if(current) current.mind = null //remove ourself from our old body's mind variable - nanomanager.user_transferred(current, new_character) // transfer active NanoUI instances to new user + SSnano.nanomanager.user_transferred(current, new_character) // transfer active NanoUI instances to new user if(key) if(new_character.key != key) @@ -63,7 +66,7 @@ SSround_recording.recorder.update_key(new_character) if(new_character.client) new_character.client.init_verbs() - new_character.client.change_view(world_view_size) //reset view range to default. + new_character.client.change_view(GLOB.world_view_size) //reset view range to default. new_character.client.pixel_x = 0 new_character.client.pixel_y = 0 if(usr && usr.open_uis) diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 65c5a47896fa..778ec2b75a36 100644 --- a/code/datums/mob_hud.dm +++ b/code/datums/mob_hud.dm @@ -1,7 +1,7 @@ /* HUD DATUMS */ //GLOBAL HUD LIST -var/list/datum/mob_hud/huds = list( +GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( MOB_HUD_SECURITY_BASIC = new /datum/mob_hud/security/basic(), MOB_HUD_SECURITY_ADVANCED = new /datum/mob_hud/security/advanced(), MOB_HUD_MEDICAL_BASIC = new /datum/mob_hud/medical/basic(), @@ -19,7 +19,7 @@ var/list/datum/mob_hud/huds = list( MOB_HUD_FACTION_PMC = new /datum/mob_hud/faction/pmc(), MOB_HUD_HUNTER = new /datum/mob_hud/hunter_hud(), MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan() - ) + )) /datum/mob_hud var/list/mob/hudmobs = list() //list of all mobs which display this hud @@ -33,10 +33,8 @@ var/list/datum/mob_hud/huds = list( /datum/mob_hud/proc/remove_hud_from(mob/user, source) if(length(hudusers[user]) && (source in hudusers[user])) hudusers[user] -= source - if(length(hudusers[user])) return FALSE - for(var/mob/target in hudmobs) remove_from_single_hud(user, target) @@ -220,17 +218,17 @@ var/list/datum/mob_hud/huds = list( return /mob/hologram/queen/add_to_all_mob_huds() - var/datum/mob_hud/hud = huds[MOB_HUD_XENO_STATUS] + var/datum/mob_hud/hud = GLOB.huds[MOB_HUD_XENO_STATUS] hud.add_to_hud(src) /mob/living/carbon/human/add_to_all_mob_huds() - for(var/datum/mob_hud/hud in huds) + for(var/datum/mob_hud/hud in GLOB.huds) if(istype(hud, /datum/mob_hud/xeno)) //this one is xeno only continue hud.add_to_hud(src) /mob/living/carbon/xenomorph/add_to_all_mob_huds() - for(var/datum/mob_hud/hud in huds) + for(var/datum/mob_hud/hud in GLOB.huds) if(!istype(hud, /datum/mob_hud/xeno)) continue hud.add_to_hud(src) @@ -240,17 +238,17 @@ var/list/datum/mob_hud/huds = list( return /mob/hologram/queen/remove_from_all_mob_huds() - var/datum/mob_hud/hud = huds[MOB_HUD_XENO_STATUS] + var/datum/mob_hud/hud = GLOB.huds[MOB_HUD_XENO_STATUS] hud.remove_from_hud(src) /mob/living/carbon/human/remove_from_all_mob_huds() - for(var/datum/mob_hud/hud in huds) + for(var/datum/mob_hud/hud in GLOB.huds) if(istype(hud, /datum/mob_hud/xeno)) continue hud.remove_from_hud(src) /mob/living/carbon/xenomorph/remove_from_all_mob_huds() - for(var/datum/mob_hud/hud in huds) + for(var/datum/mob_hud/hud in GLOB.huds) if(istype(hud, /datum/mob_hud/xeno)) hud.remove_from_hud(src) hud.remove_hud_from(src, src) @@ -258,14 +256,14 @@ var/list/datum/mob_hud/huds = list( hud.remove_hud_from(src, src) if (xeno_hostile_hud) xeno_hostile_hud = FALSE - var/datum/mob_hud/hostile_hud = huds[MOB_HUD_XENO_HOSTILE] + var/datum/mob_hud/hostile_hud = GLOB.huds[MOB_HUD_XENO_HOSTILE] hostile_hud.remove_hud_from(src, src) /mob/proc/refresh_huds(mob/source_mob) var/mob/M = source_mob ? source_mob : src - for(var/datum/mob_hud/hud in huds) + for(var/datum/mob_hud/hud in GLOB.huds) if(M in hud.hudusers) hud.refresh_hud(src, hud.hudusers[M]) @@ -273,7 +271,7 @@ var/list/datum/mob_hud/huds = list( //called when a human changes suit sensors /mob/living/carbon/human/proc/update_suit_sensors() - var/datum/mob_hud/medical/basic/B = huds[MOB_HUD_MEDICAL_BASIC] + var/datum/mob_hud/medical/basic/B = GLOB.huds[MOB_HUD_MEDICAL_BASIC] B.update_suit_sensors(src) //called when a human changes health @@ -283,6 +281,12 @@ var/list/datum/mob_hud/huds = list( return /mob/living/carbon/xenomorph/med_hud_set_health() + if(QDELETED(src)) + return + + if(!(HEALTH_HUD_XENO in hud_list)) + CRASH("hud_list lacks HEALTH_HUD_XENO despite not being deleted in med_hud_set_health()") + var/image/holder = hud_list[HEALTH_HUD_XENO] var/health_hud_type = "xenohealth" @@ -666,11 +670,11 @@ var/list/datum/mob_hud/huds = list( /mob/proc/hud_set_hunter() return -var/global/image/hud_icon_hunter_gear -var/global/image/hud_icon_hunter_hunted -var/global/image/hud_icon_hunter_dishonored -var/global/image/hud_icon_hunter_honored -var/global/image/hud_icon_hunter_thralled +GLOBAL_DATUM(hud_icon_hunter_gear, /image) +GLOBAL_DATUM(hud_icon_hunter_hunted, /image) +GLOBAL_DATUM(hud_icon_hunter_dishonored, /image) +GLOBAL_DATUM(hud_icon_hunter_honored, /image) +GLOBAL_DATUM(hud_icon_hunter_thralled, /image) /mob/living/carbon/hud_set_hunter() @@ -678,27 +682,27 @@ var/global/image/hud_icon_hunter_thralled holder.icon_state = "hudblank" holder.overlays.Cut() if(hunter_data.hunted) - if(!hud_icon_hunter_hunted) - hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted") - holder.overlays += hud_icon_hunter_hunted + if(!GLOB.hud_icon_hunter_hunted) + GLOB.hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted") + holder.overlays += GLOB.hud_icon_hunter_hunted if(hunter_data.dishonored) - if(!hud_icon_hunter_dishonored) - hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored") - holder.overlays += hud_icon_hunter_dishonored + if(!GLOB.hud_icon_hunter_dishonored) + GLOB.hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored") + holder.overlays += GLOB.hud_icon_hunter_dishonored else if(hunter_data.honored) - if(!hud_icon_hunter_honored) - hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored") - holder.overlays += hud_icon_hunter_honored + if(!GLOB.hud_icon_hunter_honored) + GLOB.hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored") + holder.overlays += GLOB.hud_icon_hunter_honored if(hunter_data.thralled) - if(!hud_icon_hunter_thralled) - hud_icon_hunter_thralled = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_thralled") - holder.overlays += hud_icon_hunter_thralled + if(!GLOB.hud_icon_hunter_thralled) + GLOB.hud_icon_hunter_thralled = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_thralled") + holder.overlays += GLOB.hud_icon_hunter_thralled else if(hunter_data.gear) - if(!hud_icon_hunter_gear) - hud_icon_hunter_gear = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_gear") - holder.overlays += hud_icon_hunter_gear + if(!GLOB.hud_icon_hunter_gear) + GLOB.hud_icon_hunter_gear = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_gear") + holder.overlays += GLOB.hud_icon_hunter_gear hud_list[HUNTER_HUD] = holder @@ -708,18 +712,18 @@ var/global/image/hud_icon_hunter_thralled holder.overlays.Cut() holder.pixel_x = -18 if(hunter_data.hunted) - if(!hud_icon_hunter_hunted) - hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted") - holder.overlays += hud_icon_hunter_hunted + if(!GLOB.hud_icon_hunter_hunted) + GLOB.hud_icon_hunter_hunted = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_hunted") + holder.overlays += GLOB.hud_icon_hunter_hunted if(hunter_data.dishonored) - if(!hud_icon_hunter_dishonored) - hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored") - holder.overlays += hud_icon_hunter_dishonored + if(!GLOB.hud_icon_hunter_dishonored) + GLOB.hud_icon_hunter_dishonored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_dishonored") + holder.overlays += GLOB.hud_icon_hunter_dishonored else if(hunter_data.honored) - if(!hud_icon_hunter_honored) - hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored") - holder.overlays += hud_icon_hunter_honored + if(!GLOB.hud_icon_hunter_honored) + GLOB.hud_icon_hunter_honored = image('icons/mob/hud/hud_yautja.dmi', src, "hunter_honored") + holder.overlays += GLOB.hud_icon_hunter_honored hud_list[HUNTER_HUD] = holder @@ -727,26 +731,26 @@ var/global/image/hud_icon_hunter_thralled /mob/proc/hud_set_order() return -var/global/image/hud_icon_hudmove -var/global/image/hud_icon_hudhold -var/global/image/hud_icon_hudfocus +GLOBAL_DATUM(hud_icon_hudmove, /image) +GLOBAL_DATUM(hud_icon_hudhold, /image) +GLOBAL_DATUM(hud_icon_hudfocus, /image) // ORDER HUD /mob/living/carbon/human/hud_set_order() var/image/holder = hud_list[ORDER_HUD] holder.icon_state = "hudblank" holder.overlays.Cut() if(mobility_aura) - if(!hud_icon_hudmove) - hud_icon_hudmove = image('icons/mob/hud/marine_hud.dmi', src, "hudmove") - holder.overlays += hud_icon_hudmove + if(!GLOB.hud_icon_hudmove) + GLOB.hud_icon_hudmove = image('icons/mob/hud/marine_hud.dmi', src, "hudmove") + holder.overlays += GLOB.hud_icon_hudmove if(protection_aura) - if(!hud_icon_hudhold) - hud_icon_hudhold = image('icons/mob/hud/marine_hud.dmi', src, "hudhold") - holder.overlays += hud_icon_hudhold + if(!GLOB.hud_icon_hudhold) + GLOB.hud_icon_hudhold = image('icons/mob/hud/marine_hud.dmi', src, "hudhold") + holder.overlays += GLOB.hud_icon_hudhold if(marksman_aura) - if(!hud_icon_hudfocus) - hud_icon_hudfocus = image('icons/mob/hud/marine_hud.dmi', src, "hudfocus") - holder.overlays += hud_icon_hudfocus + if(!GLOB.hud_icon_hudfocus) + GLOB.hud_icon_hudfocus = image('icons/mob/hud/marine_hud.dmi', src, "hudfocus") + holder.overlays += GLOB.hud_icon_hudfocus hud_list[ORDER_HUD] = holder @@ -797,8 +801,6 @@ var/global/image/hud_icon_hudfocus if (tag_found) tag_holder.overlays += image('icons/mob/hud/hud.dmi', src, "prae_tag") - // Hacky, but works. Currently effects are hard to make with precise timings - var/freeze_found = frozen - + var/freeze_found = HAS_TRAIT(src, TRAIT_IMMOBILIZED) && body_position == STANDING_UP && !buckled // Eligible targets are unable to move but can stand and aren't buckled (eg nested) - This is to convey that they are temporarily unable to move if (freeze_found) freeze_holder.overlays += image('icons/mob/hud/hud.dmi', src, "xeno_freeze") diff --git a/code/datums/modules.dm b/code/datums/modules.dm deleted file mode 100644 index 4dd47497ffcc..000000000000 --- a/code/datums/modules.dm +++ /dev/null @@ -1,62 +0,0 @@ -// module datum. -// this is per-object instance, and shows the condition of the modules in the object -// actual modules needed is referenced through modulestypes and the object type - -/datum/module - var/status // bits set if working, 0 if broken - var/installed // bits set if installed, 0 if missing - -// moduletypes datum -// this is per-object type, and shows the modules needed for a type of object - -/datum/moduletypes - var/list/modcount = list() // assoc list of the count of modules for a type - - -var/list/modules = list( // global associative list - /obj/structure/machinery/power/apc = "card_reader,power_control,id_auth,cell_power,cell_charge") - - -/datum/module/New(obj/O) - - var/type = O.type // the type of the creating object - - var/mneed = mods.inmodlist(type) // find if this type has modules defined - - if(!mneed) // not found in module list? - qdel(src) // delete self, thus ending proc - - var/needed = mods.getbitmask(type) // get a bitmask for the number of modules in this object - status = needed - installed = needed - -/datum/moduletypes/proc/addmod(type, modtextlist) - modules += type // index by type text - modules[type] = modtextlist - -/datum/moduletypes/proc/inmodlist(type) - return type in modules - -/datum/moduletypes/proc/getbitmask(type) - var/count = modcount[type] - if(count) - return 2**count-1 - - var/modtext = modules[type] - var/num = 1 - var/pos = 1 - - while(1) - pos = findtext(modtext, ",", pos, 0) - if(!pos) - break - else - pos++ - num++ - - modcount += type - modcount[type] = num - - return 2**num-1 - - diff --git a/code/datums/origin/origin.dm b/code/datums/origin/origin.dm index 4bbd8b6505b5..46027a49941a 100644 --- a/code/datums/origin/origin.dm +++ b/code/datums/origin/origin.dm @@ -3,7 +3,7 @@ var/desc = "You were born somewhere, someplace. The area is known for doing things, you think." /datum/origin/proc/generate_human_name(gender = MALE) - return pick(gender == MALE ? first_names_male : first_names_female) + " " + pick(last_names) + return pick(gender == MALE ? GLOB.first_names_male : GLOB.first_names_female) + " " + pick(GLOB.last_names) /// Return null if the name is correct, otherwise return a string containing the error message /datum/origin/proc/validate_name(name_to_check) diff --git a/code/datums/origin/upp.dm b/code/datums/origin/upp.dm index f684410d59bf..8346657c5020 100644 --- a/code/datums/origin/upp.dm +++ b/code/datums/origin/upp.dm @@ -10,16 +10,16 @@ if(prob(40)) first_name = "[capitalize(randomly_generate_chinese_word(1))]" else - first_name = "[pick(first_names_male_upp)]" + first_name = "[pick(GLOB.first_names_male_upp)]" else if(prob(40)) first_name = "[capitalize(randomly_generate_chinese_word(1))]" else - first_name = "[pick(first_names_female_upp)]" + first_name = "[pick(GLOB.first_names_female_upp)]" if(prob(35)) last_name = "[capitalize(randomly_generate_chinese_word(pick(20;1, 80;2)))]" else - last_name = "[pick(last_names_upp)]" + last_name = "[pick(GLOB.last_names_upp)]" return first_name + " " + last_name diff --git a/code/datums/origin/uscm.dm b/code/datums/origin/uscm.dm index 8021ed3fd3a8..9608537bdf3f 100644 --- a/code/datums/origin/uscm.dm +++ b/code/datums/origin/uscm.dm @@ -28,7 +28,7 @@ desc = "You were a product of an experimental military programme that sought to breed the perfect supersoldier. In some aspects, they've succeeded." /datum/origin/uscm/aw/generate_human_name(gender = MALE) - return pick(gender == MALE ? first_names_male : first_names_female) + " A.W. " + pick(weapon_surnames) + return pick(gender == MALE ? GLOB.first_names_male : GLOB.first_names_female) + " A.W. " + pick(GLOB.weapon_surnames) /datum/origin/uscm/aw/validate_name(name_to_check) if(!findtext(name_to_check, "A.W. ")) diff --git a/code/datums/paygrades/factions/civillian/civilian.dm b/code/datums/paygrades/factions/civillian/civilian.dm deleted file mode 100644 index 2c2aa5feac1c..000000000000 --- a/code/datums/paygrades/factions/civillian/civilian.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/paygrade/civilian - name = "Civilian Paygrade" - pay_multiplier = 0.5 // civvies are poor - -/datum/paygrade/civilian/civilian - paygrade = "C" - name = "Civilian" - -/datum/paygrade/civilian/nurse - paygrade = "CN" - name = "Nurse" - prefix = "Nrs." - -/datum/paygrade/civilian/doctor - paygrade = "CD" - name = "Doctor" - prefix = "Dr." - pay_multiplier = 0.75 - -/datum/paygrade/civilian/professor - paygrade = "CCMO" - name = "Professor" - prefix = "Prof." - pay_multiplier = 1 - -/datum/paygrade/civillian/representative - paygrade = "CR" - name = "Representative" - prefix = "Rep." - pay_multiplier = 1 diff --git a/code/datums/paygrades/factions/other/civilian.dm b/code/datums/paygrades/factions/other/civilian.dm new file mode 100644 index 000000000000..6587a82a54d6 --- /dev/null +++ b/code/datums/paygrades/factions/other/civilian.dm @@ -0,0 +1,52 @@ +/datum/paygrade/civilian + name = "Civilian Paygrade" + pay_multiplier = 0.5 // civvies are poor + +/datum/paygrade/civilian/civilian + paygrade = PAY_SHORT_CIV + name = "Civilian" + prefix = "C" + +/datum/paygrade/civilian/nurse + paygrade = PAY_SHORT_CNUR + name = "Nurse" + prefix = "Nrs." + +/datum/paygrade/civilian/doctor + paygrade = PAY_SHORT_CDOC + name = "Doctor" + prefix = "Dr." + pay_multiplier = 0.75 + +/datum/paygrade/civilian/professor + paygrade = PAY_SHORT_CCMO + name = "Professor" + prefix = "Prof." + pay_multiplier = 1 + +/datum/paygrade/civillian/representative + paygrade = PAY_SHORT_CREP + name = "Representative" + prefix = "Rep." + pay_multiplier = 1 + +/datum/paygrade/civillian/officer + paygrade = PAY_SHORT_CPO + name = "Officer" + prefix = "Off." + pay_multiplier = 0.66 + +/datum/paygrade/civillian/officer/senior + paygrade = PAY_SHORT_CSPO + name = "Senior Officer" + prefix = "Sr. Off." + pay_multiplier = 0.8 + +/datum/paygrade/civilian/rebel + paygrade = PAY_SHORT_REB + name = "Rebel" + +/datum/paygrade/civilian/rebel/leader + paygrade = PAY_SHORT_REBC + name = "Rebel Commander" + prefix = "CMDR." diff --git a/code/datums/paygrades/factions/other/cmb.dm b/code/datums/paygrades/factions/other/cmb.dm index a4b656d8692d..eeeb061ea335 100644 --- a/code/datums/paygrades/factions/other/cmb.dm +++ b/code/datums/paygrades/factions/other/cmb.dm @@ -3,78 +3,29 @@ pay_multiplier = 1.4 // Government work. Nice benefits. /datum/paygrade/cmb/standard - paygrade = "GS-9" + paygrade = PAY_SHORT_CMBD name = "CMB Deputy" prefix = "Dep." /datum/paygrade/cmb/leader - paygrade = "GS-13" + paygrade = PAY_SHORT_CMBM name = "CMB Marshal" prefix = "Marshal" /datum/paygrade/cmb/syn - paygrade = "GS-C.9" + paygrade = PAY_SHORT_CMBS name = "CMB Investigative Synthetic" -/datum/paygrade/cmb/liaison - paygrade = "GS-6" +/datum/paygrade/cmb/icc + paygrade = PAY_SHORT_ICCA + name = "Interstellar Commerce Commission Agent" + prefix = "Agent" + +/datum/paygrade/cmb/icc/liaison + paygrade = PAY_SHORT_ICCL name = "Interstellar Commerce Commission Corporate Liaison" prefix = "Exec." /datum/paygrade/cmb/observer - paygrade = "GS-3" + paygrade = PAY_SHORT_IHRO name = "Interstellar Human Rights Observer" -/datum/paygrade/marine - name = "Marine Paygrade" - rank_pin = /obj/item/clothing/accessory/ranks/marine - pay_multiplier = 1 - -// ENLISTED PAYGRADES - -/datum/paygrade/marine/e1 - paygrade = "ME1" - name = "Private" - prefix = "PVT" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e1 - ranking = 0 - pay_multiplier = 0.8 - -/datum/paygrade/marine/e2 - paygrade = "ME2" - name = "Private First Class" - prefix = "PFC" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e2 - ranking = 1 - pay_multiplier = 1 // the default. - -/datum/paygrade/marine/e3 - paygrade = "ME3" - name = "Lance Corporal" - prefix = "LCpl" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e3 - ranking = 2 - pay_multiplier = 1.4 - -/datum/paygrade/marine/e4 - paygrade = "ME4" - name = "Corporal" - prefix = "Cpl" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e4 - ranking = 3 - pay_multiplier = 1.6 - -/datum/paygrade/marine/e5 - paygrade = "ME5" - name = "Sergeant" - prefix = "Sgt" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e5 - ranking = 4 - pay_multiplier = 1.8 - -/datum/paygrade/marine/e6 - paygrade = "ME6" - name = "Staff Sergeant" - prefix = "SSgt" - rank_pin = /obj/item/clothing/accessory/ranks/marine/e6 - ranking = 5 - pay_multiplier = 2 diff --git a/code/datums/paygrades/factions/other/dutch_dozen.dm b/code/datums/paygrades/factions/other/dutch_dozen.dm index 9b8bd7e4f8c4..8877bd11afbb 100644 --- a/code/datums/paygrades/factions/other/dutch_dozen.dm +++ b/code/datums/paygrades/factions/other/dutch_dozen.dm @@ -1,33 +1,33 @@ /datum/paygrade/dutch name = "Dutch Paygrade" pay_multiplier = 5 + fprefix = "DTC." /datum/paygrade/dutch/standard - paygrade = "DTC" + paygrade = PAY_SHORT_DTC name = "Dutch's Dozen Standard Mercenary" - prefix = "DTC." /datum/paygrade/dutch/medic - paygrade = "DTCM" + paygrade = PAY_SHORT_DTCM name = "Dutch's Dozen Medic" - prefix = "DTC MED." + prefix = "MED." pay_multiplier = 6 /datum/paygrade/dutch/specialist_flamer - paygrade = "DTCF" + paygrade = PAY_SHORT_DTCF name = "Dutch's Dozen Flamethrower Specialist" - prefix = "DTC SPC." + prefix = "SPC." pay_multiplier = 6 /datum/paygrade/dutch/specialist_minigunner - paygrade = "DTCMG" - name = "Dutch's Dozen Medic" - prefix = "DTC SPC." + paygrade = PAY_SHORT_DTCMG + name = "Dutch's Dozen Machinegunner" + prefix = "SPC." pay_multiplier = 6 /datum/paygrade/dutch/arnold - paygrade = "ARN" - name = "Arnold" - prefix = "DTC LDR." + paygrade = PAY_SHORT_DTCA + name = "Major" + prefix = "LDR." pay_multiplier = 9 diff --git a/code/datums/paygrades/factions/other/misc.dm b/code/datums/paygrades/factions/other/misc.dm index 30865228d3af..04e522580b50 100644 --- a/code/datums/paygrades/factions/other/misc.dm +++ b/code/datums/paygrades/factions/other/misc.dm @@ -1,9 +1,9 @@ -/datum/paygrade/misc/operator +/datum/paygrade/misc/operative name = "Operative" - paygrade = "O" + paygrade = PAY_SHORT_OPR pay_multiplier = 1 //???? /datum/paygrade/misc/synth name = "Synthetic" - paygrade = "SYN" + paygrade = PAY_SHORT_SYN pay_multiplier = 1 diff --git a/code/datums/paygrades/factions/upp/upp.dm b/code/datums/paygrades/factions/upp/upp.dm index a1363383ad55..8670f99269dc 100644 --- a/code/datums/paygrades/factions/upp/upp.dm +++ b/code/datums/paygrades/factions/upp/upp.dm @@ -5,115 +5,115 @@ //UPP Enlisted /datum/paygrade/upp/ue0 - paygrade = "UE0" + paygrade = PAY_SHORT_UEC name = "Conscript" pay_multiplier = 0.05 /datum/paygrade/upp/ue1 - paygrade = "UE1" + paygrade = PAY_SHORT_UE1 name = "Private" prefix = "PVT." /datum/paygrade/upp/ue2 - paygrade = "UE2" + paygrade = PAY_SHORT_UE2 name = "Private First Class" prefix = "PFC." pay_multiplier = 0.2 /datum/paygrade/upp/ue3 - paygrade = "UE3" + paygrade = PAY_SHORT_UE3 name = "Korporal" prefix = "Kpl." pay_multiplier = 0.3 /datum/paygrade/upp/ue4 - paygrade = "UE4" + paygrade = PAY_SHORT_UE4 name = "Junior Serzhant" prefix = "JrSzh." pay_multiplier = 0.5 /datum/paygrade/upp/ue5 - paygrade = "UE5" + paygrade = PAY_SHORT_UE5 name = "Serzhant" prefix = "Szh." pay_multiplier = 0.7 /datum/paygrade/upp/ue6 - paygrade = "UE6" + paygrade = PAY_SHORT_UE6 name = "Master Serzhant" prefix = "MSzh." pay_multiplier = 0.9 //UPP Commandos /datum/paygrade/upp/uc1 - paygrade = "UC1" + paygrade = PAY_SHORT_UC1 name = "Junior Kommando" prefix = "JKdo." pay_multiplier = 1.5 /datum/paygrade/upp/uc2 - paygrade = "UC2" + paygrade = PAY_SHORT_UC2 name = "2nd Kommando" prefix = "2ndKdo." pay_multiplier = 2 /datum/paygrade/upp/uc3 - paygrade = "UC3" + paygrade = PAY_SHORT_UC3 name = "1st Kommando" prefix = "1stKdo." pay_multiplier = 2.5 //UPP Officers /datum/paygrade/upp/uo1 - paygrade = "UO1" + paygrade = PAY_SHORT_UO1 name = "Leytenant" prefix = "Lt." pay_multiplier = 1.25 /datum/paygrade/upp/uo2 - paygrade = "UO2" + paygrade = PAY_SHORT_UO2 name = "Senior Leytenant" prefix = "Sr. LT." pay_multiplier = 1.5 /datum/paygrade/upp/uo3 - paygrade = "UO3" + paygrade = PAY_SHORT_UO3 name = "Kapitan" prefix = "Kpt." pay_multiplier = 2 /datum/paygrade/upp/uo4 - paygrade = "UO4" - name = "Mayjor." + paygrade = PAY_SHORT_UO4 + name = "Mayjor" prefix = "May." pay_multiplier = 2.5 /datum/paygrade/upp/uo5 - paygrade = "UO5" + paygrade = PAY_SHORT_UO5 name = "Leytenant Kolonel" prefix = "Lt. Kol." pay_multiplier = 3 /datum/paygrade/upp/uo6 - paygrade = "UO6" + paygrade = PAY_SHORT_UO6 name = "Kolonel" prefix = "Kol." pay_multiplier = 4 /datum/paygrade/upp/uo7 - paygrade = "UO7" + paygrade = PAY_SHORT_UO7 name = "Mayjor General" prefix = "May. Gen." pay_multiplier = 5 /datum/paygrade/upp/uo8 - paygrade = "UO8" + paygrade = PAY_SHORT_UO8 name = "Leytenant General" prefix = "Lt. Gen." pay_multiplier = 6 /datum/paygrade/upp/uo9 - paygrade = "UO9" + paygrade = PAY_SHORT_UO9 name = "Army General" prefix = "Gen." pay_multiplier = 7 diff --git a/code/datums/paygrades/factions/uscm/marine.dm b/code/datums/paygrades/factions/uscm/marine.dm index e351311e65ee..7d315f364025 100644 --- a/code/datums/paygrades/factions/uscm/marine.dm +++ b/code/datums/paygrades/factions/uscm/marine.dm @@ -6,7 +6,7 @@ // ENLISTED PAYGRADES /datum/paygrade/marine/e1 - paygrade = "ME1" + paygrade = PAY_SHORT_ME1 name = "Private" prefix = "PVT" rank_pin = /obj/item/clothing/accessory/ranks/marine/e1 @@ -14,7 +14,7 @@ pay_multiplier = 1.6 /datum/paygrade/marine/e2 - paygrade = "ME2" + paygrade = PAY_SHORT_ME2 name = "Private First Class" prefix = "PFC" rank_pin = /obj/item/clothing/accessory/ranks/marine/e2 @@ -22,7 +22,7 @@ pay_multiplier = 1.7 /datum/paygrade/marine/e3 - paygrade = "ME3" + paygrade = PAY_SHORT_ME3 name = "Lance Corporal" prefix = "LCpl" rank_pin = /obj/item/clothing/accessory/ranks/marine/e3 @@ -30,7 +30,7 @@ pay_multiplier = 1.9 /datum/paygrade/marine/e4 - paygrade = "ME4" + paygrade = PAY_SHORT_ME4 name = "Corporal" prefix = "Cpl" rank_pin = /obj/item/clothing/accessory/ranks/marine/e4 @@ -38,7 +38,7 @@ pay_multiplier = 2.1 /datum/paygrade/marine/e5 - paygrade = "ME5" + paygrade = PAY_SHORT_ME5 name = "Sergeant" prefix = "Sgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e5 @@ -46,7 +46,7 @@ pay_multiplier = 2.2 /datum/paygrade/marine/e6 - paygrade = "ME6" + paygrade = PAY_SHORT_ME6 name = "Staff Sergeant" prefix = "SSgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e6 @@ -54,7 +54,7 @@ pay_multiplier = 2.4 /datum/paygrade/marine/e7 - paygrade = "ME7" + paygrade = PAY_SHORT_ME7 name = "Gunnery Sergeant" prefix = "GySgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e7 @@ -62,7 +62,7 @@ pay_multiplier = 2.75 /datum/paygrade/marine/e8 - paygrade = "ME8" + paygrade = PAY_SHORT_ME8 name = "Master Sergeant" prefix = "MSgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e8 @@ -70,7 +70,7 @@ pay_multiplier = 2.75 /datum/paygrade/marine/e8e - paygrade = "ME8E" + paygrade = PAY_SHORT_ME8E name = "First Sergeant" prefix = "1Sgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e8e @@ -78,7 +78,7 @@ pay_multiplier = 2.75 /datum/paygrade/marine/e9 - paygrade = "ME9" + paygrade = PAY_SHORT_ME9 name = "Master Gunnery Sergeant" prefix = "MGySgt" rank_pin = /obj/item/clothing/accessory/ranks/marine/e9 @@ -86,7 +86,7 @@ pay_multiplier = 3 /datum/paygrade/marine/e9e - paygrade = "ME9E" + paygrade = PAY_SHORT_ME9E name = "Sergeant Major" prefix = "SgtMaj" rank_pin = /obj/item/clothing/accessory/ranks/marine/e9e @@ -94,7 +94,7 @@ pay_multiplier = 3 /datum/paygrade/marine/e9c - paygrade = "ME9C" + paygrade = PAY_SHORT_ME9C name = "Sergeant Major of the Colonial Marine Corps" prefix = "SMCMC" rank_pin = /obj/item/clothing/accessory/ranks/marine/e9c @@ -104,7 +104,7 @@ // COMMISSIONED PAYGRADES /datum/paygrade/marine/o1 - paygrade = "MO1" + paygrade = PAY_SHORT_MO1 name = "Second Lieutenant" prefix = "2ndLt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o1 @@ -112,7 +112,7 @@ pay_multiplier = 3 /datum/paygrade/marine/o2 - paygrade = "MO2" + paygrade = PAY_SHORT_MO2 name = "First Lieutenant" prefix = "1stLt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o2 @@ -120,7 +120,7 @@ pay_multiplier = 3.2 /datum/paygrade/marine/o3 - paygrade = "MO3" + paygrade = PAY_SHORT_MO3 name = "Captain" prefix = "Capt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o3 @@ -128,7 +128,7 @@ pay_multiplier = 4 /datum/paygrade/marine/o4 - paygrade = "MO4" + paygrade = PAY_SHORT_MO4 name = "Major" prefix = "Maj" rank_pin = /obj/item/clothing/accessory/ranks/marine/o4 @@ -136,7 +136,7 @@ pay_multiplier = 4 /datum/paygrade/marine/o5 - paygrade = "MO5" + paygrade = PAY_SHORT_MO5 name = "Lieutenant Colonel" prefix = "LtCol" rank_pin = /obj/item/clothing/accessory/ranks/marine/o5 @@ -145,7 +145,7 @@ //Platoon Commander /datum/paygrade/marine/o6 - paygrade = "MO6" + paygrade = PAY_SHORT_MO6 name = "Colonel" prefix = "Col" rank_pin = /obj/item/clothing/accessory/ranks/marine/o6 @@ -153,7 +153,7 @@ pay_multiplier = 4.4 /datum/paygrade/marine/o6e - paygrade = "MO6E" + paygrade = PAY_SHORT_MO6E name = "Senior Colonel" prefix = "Snr Col." rank_pin = /obj/item/clothing/accessory/ranks/marine/o6e @@ -161,7 +161,7 @@ pay_multiplier = 4.6 /datum/paygrade/marine/o6c - paygrade = "MO6C" + paygrade = PAY_SHORT_MO6C name = "Division Colonel" prefix = "Div Col." rank_pin = /obj/item/clothing/accessory/ranks/marine/o6c @@ -170,7 +170,7 @@ //High Command /datum/paygrade/marine/o7 - paygrade = "MO7" + paygrade = PAY_SHORT_MO7 name = "Brigadier General" prefix = "BGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o7 @@ -178,7 +178,7 @@ pay_multiplier = 6 /datum/paygrade/marine/o8 - paygrade = "MO8" + paygrade = PAY_SHORT_MO8 name = "Major General" prefix = "MajGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o8 @@ -186,7 +186,7 @@ pay_multiplier = 6.2 /datum/paygrade/marine/o9 - paygrade = "MO9" + paygrade = PAY_SHORT_MO9 name = "Lieutenant General" prefix = "LtGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o9 @@ -194,7 +194,7 @@ pay_multiplier = 6.4 /datum/paygrade/marine/o10 - paygrade = "MO10" + paygrade = PAY_SHORT_MO10 name = "General" prefix = "Gen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10 @@ -202,7 +202,7 @@ pay_multiplier = 6.6 /datum/paygrade/marine/o10c - paygrade = "MO10C" + paygrade = PAY_SHORT_MO10C name = "Assistant Commandant of the Marine Corps" prefix = "ACMC" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c @@ -210,7 +210,7 @@ pay_multiplier = 6.8 /datum/paygrade/marine/o10s - paygrade = "MO10S" + paygrade = PAY_SHORT_MO10S name = "Commandant of the Marine Corps" prefix = "CMC" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c diff --git a/code/datums/paygrades/factions/uscm/navy.dm b/code/datums/paygrades/factions/uscm/navy.dm index 7e648a75bac2..9e22c72fe566 100644 --- a/code/datums/paygrades/factions/uscm/navy.dm +++ b/code/datums/paygrades/factions/uscm/navy.dm @@ -6,77 +6,77 @@ // ENLISTED PAYGRADES /datum/paygrade/navy/e1 - paygrade = "NE1" + paygrade = PAY_SHORT_NE1 name = "Seaman Recruit" prefix = "SR." rank_pin = /obj/item/clothing/accessory/ranks/navy/e1 ranking = 0 /datum/paygrade/navy/e2 - paygrade = "NE2" + paygrade = PAY_SHORT_NE2 name = "Seaman Apprentice" prefix = "SA." rank_pin = /obj/item/clothing/accessory/ranks/navy/e2 ranking = 1 /datum/paygrade/navy/e3 - paygrade = "NE3" + paygrade = PAY_SHORT_NE3 name = "Seaman" prefix = "SN." rank_pin = /obj/item/clothing/accessory/ranks/navy/e3 ranking = 2 /datum/paygrade/navy/e4 - paygrade = "NE4" + paygrade = PAY_SHORT_NE4 name = "Petty Officer 3rd Class" prefix = "PO1." rank_pin = /obj/item/clothing/accessory/ranks/navy/e4 ranking = 3 /datum/paygrade/navy/e5 - paygrade = "NE5" + paygrade = PAY_SHORT_NE5 name = "Petty Officer 2nd Class" prefix = "PO2." rank_pin = /obj/item/clothing/accessory/ranks/navy/e5 ranking = 4 /datum/paygrade/navy/e6 - paygrade = "NE6" + paygrade = PAY_SHORT_NE6 name = "Petty Officer 1st Class" prefix = "PO1." rank_pin = /obj/item/clothing/accessory/ranks/navy/e6 ranking = 5 /datum/paygrade/navy/e7 - paygrade = "NE7" + paygrade = PAY_SHORT_NE7 name = "Chief Petty Officer" prefix = "CPO." rank_pin = /obj/item/clothing/accessory/ranks/navy/e7 ranking = 6 /datum/paygrade/navy/e8 - paygrade = "NE8" + paygrade = PAY_SHORT_NE8 name = "Senior Chief Petty Officer" prefix = "SCPO." rank_pin = /obj/item/clothing/accessory/ranks/navy/e8 ranking = 7 /datum/paygrade/navy/e8c - paygrade = "NE8C" + paygrade = PAY_SHORT_NE8C name = "Command Senior Chief Petty Officer" prefix = "CSCPO." rank_pin = /obj/item/clothing/accessory/ranks/navy/e8c ranking = 8 /datum/paygrade/navy/e9 - paygrade = "NE9" + paygrade = PAY_SHORT_NE9 name = "Master Chief Petty Officer" prefix = "MCPO." rank_pin = /obj/item/clothing/accessory/ranks/navy/e9 ranking = 9 /datum/paygrade/navy/e9c - paygrade = "NE9C" + paygrade = PAY_SHORT_NE9C name = "Command Master Chief Petty Officer" prefix = "CMCPO." rank_pin = /obj/item/clothing/accessory/ranks/navy/e9c @@ -85,91 +85,91 @@ // COMMISSIONED PAYGRADES /datum/paygrade/navy/o1 - paygrade = "NO1" + paygrade = PAY_SHORT_NO1 name = "Ensign" prefix = "ENS." rank_pin = /obj/item/clothing/accessory/ranks/navy/o1 ranking = 11 /datum/paygrade/navy/o2 - paygrade = "NO2" + paygrade = PAY_SHORT_NO2 name = "Lieutenant Junior Grade" prefix = "LTJG." rank_pin = /obj/item/clothing/accessory/ranks/navy/o2 ranking = 12 /datum/paygrade/navy/o3 - paygrade = "NO3" + paygrade = PAY_SHORT_NO3 name = "Lieutenant" prefix = "LT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o3 ranking = 13 /datum/paygrade/navy/o4 - paygrade = "NO4" + paygrade = PAY_SHORT_NO4 name = "Lieutenant Commander" prefix = "LCDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o4 ranking = 14 /datum/paygrade/navy/o5 - paygrade = "NO5" + paygrade = PAY_SHORT_NO5 name = "Commander" prefix = "CDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o5 ranking = 15 /datum/paygrade/navy/o6 - paygrade = "NO6" + paygrade = PAY_SHORT_NO6 name = "Captain" prefix = "CAPT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6 ranking = 16 /datum/paygrade/navy/o6e - paygrade = "NO6E" + paygrade = PAY_SHORT_NO6E name = "Commodore" prefix = "CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 17 /datum/paygrade/navy/o6c - paygrade = "NO6C" + paygrade = PAY_SHORT_NO6C name = "Senior Commodore" prefix = "Snr CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 18 /datum/paygrade/navy/o7 - paygrade = "NO7" + paygrade = PAY_SHORT_NO7 name = "Rear Admiral (Lower Half)" prefix = "RDML." rank_pin = /obj/item/clothing/accessory/ranks/navy/o7 ranking = 19 /datum/paygrade/navy/o8 - paygrade = "NO8" + paygrade = PAY_SHORT_NO8 name = "Rear Admiral (Upper Half)" prefix = "RADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o8 ranking = 20 /datum/paygrade/navy/o9 - paygrade = "NO9" + paygrade = PAY_SHORT_NO9 name = "Vice Admiral" prefix = "VADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o9 ranking = 21 /datum/paygrade/navy/o10 - paygrade = "NO10" + paygrade = PAY_SHORT_NO10 name = "Admiral" prefix = "ADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10 ranking = 22 /datum/paygrade/navy/o10c - paygrade = "NO10C" + paygrade = PAY_SHORT_NO10C name = "Chief of Naval Operations" prefix = "CNO." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10c diff --git a/code/datums/paygrades/factions/uscm/provost.dm b/code/datums/paygrades/factions/uscm/provost.dm index b27c8f7f721f..e378bd7beb61 100644 --- a/code/datums/paygrades/factions/uscm/provost.dm +++ b/code/datums/paygrades/factions/uscm/provost.dm @@ -2,44 +2,23 @@ name = "Provost Paygrade" pay_multiplier = 2 -/datum/paygrade/provost/officer - paygrade = "PvE7" - name = "Chief Petty Officer" - prefix = "CPO." - rank_pin = /obj/item/clothing/accessory/ranks/navy/e7/pvst - -/datum/paygrade/provost/enforcer - paygrade = "PvE8" - name = "Senior Chief Petty Officer" - prefix = "SCPO." - rank_pin = /obj/item/clothing/accessory/ranks/navy/e8/pvst - -/datum/paygrade/provost/tml - paygrade = "PvE9" - name = "Master Chief Petty Officer" - prefix = "MCPO." - rank_pin = /obj/item/clothing/accessory/ranks/navy/e9/pvst - /datum/paygrade/provost/inspector - paygrade = "PvI" - name = "Inspector" + paygrade = PAY_SHORT_PVI + name = "Provost Inspector" prefix = "Insp." rank_pin = /obj/item/clothing/accessory/ranks/special/insp /datum/paygrade/provost/marshal - paygrade = "PvO8" - name = "Rear Admiral" - prefix = "RADM." - rank_pin = /obj/item/clothing/accessory/ranks/navy/o8/pvst + paygrade = PAY_SHORT_PVM + name = "Provost Marshal" + prefix = "Marshal" /datum/paygrade/provost/sectormarshal - paygrade = "PvO9" - name = "Vice Admiral" - prefix = "VADM." - rank_pin = /obj/item/clothing/accessory/ranks/navy/o9/pvst + paygrade = PAY_SHORT_PVSM + name = "Provost Sector Marshal" + prefix = "S. Marshal" /datum/paygrade/provost/chiefmarshal - paygrade = "PvCM" + paygrade = PAY_SHORT_PVCM name = "Provost Chief Marshal" - prefix = "PCM." - rank_pin = /obj/item/clothing/accessory/ranks/navy/o10c/pvst + prefix = "Chief Marshal" diff --git a/code/datums/paygrades/factions/wy/goons.dm b/code/datums/paygrades/factions/wy/goons.dm deleted file mode 100644 index 679bb42e7f76..000000000000 --- a/code/datums/paygrades/factions/wy/goons.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/paygrade/goon - name = "WY Goon Paygrade" - pay_multiplier = 0.66 // better than colonists. barely. - -//Standard PMCs -/datum/paygrade/goon/standard - paygrade = "WEY-GOON" - name = "Officer" - prefix = "Off." - -/datum/paygrade/goon/lead - paygrade = "WEY-GOON-L" - name = "Senior Officer" - prefix = "Sr. Off." - pay_multiplier = 0.8 diff --git a/code/datums/paygrades/factions/wy/wy.dm b/code/datums/paygrades/factions/wy/wy.dm index 03d54cbd3cda..58ec9eb3f197 100644 --- a/code/datums/paygrades/factions/wy/wy.dm +++ b/code/datums/paygrades/factions/wy/wy.dm @@ -3,69 +3,69 @@ pay_multiplier = 1 /datum/paygrade/wy_ranks/wyc1 - paygrade = "WYC1" + paygrade = PAY_SHORT_WYC1 name = "Trainee" prefix = "Trn." ranking = 0 /datum/paygrade/wy_ranks/wyc2 - paygrade = "WYC2" + paygrade = PAY_SHORT_WYC2 name = "Junior Executive" prefix = "Jr. Exec." ranking = 1 pay_multiplier = 2 /datum/paygrade/wy_ranks/wyc3 - paygrade = "WYC3" + paygrade = PAY_SHORT_WYC3 name = "Executive" prefix = "Exec." ranking = 2 pay_multiplier = 3 /datum/paygrade/wy_ranks/wyc4 - paygrade = "WYC4" + paygrade = PAY_SHORT_WYC4 name = "Senior Executive" prefix = "Sr. Exec." ranking = 3 pay_multiplier = 4 /datum/paygrade/wy_ranks/wyc5 - paygrade = "WYC5" + paygrade = PAY_SHORT_WYC5 name = "Executive Specialist" prefix = "Exec. Spc." ranking = 4 pay_multiplier = 5 /datum/paygrade/wy_ranks/wyc6 - paygrade = "WYC6" + paygrade = PAY_SHORT_WYC6 name = "Executive Supervisor" prefix = "Exec. Suvp." ranking = 5 pay_multiplier = 6 /datum/paygrade/wy_ranks/wyc7 - paygrade = "WYC7" + paygrade = PAY_SHORT_WYC7 name = "Assistant Manager" prefix = "Assis. Mng." ranking = 6 pay_multiplier = 7 /datum/paygrade/wy_ranks/wyc8 - paygrade = "WYC8" + paygrade = PAY_SHORT_WYC8 name = "Division Manager" prefix = "Div. Mng." ranking = 7 pay_multiplier = 8 /datum/paygrade/wy_ranks/wyc9 - paygrade = "WYC9" + paygrade = PAY_SHORT_WYC9 name = "Chief Executive" prefix = "Chief. Exec." ranking = 8 pay_multiplier = 9 /datum/paygrade/wy_ranks/wyc10 - paygrade = "WYC10" + paygrade = PAY_SHORT_WYC10 name = "Director" prefix = "Director" ranking = 9 diff --git a/code/datums/paygrades/paygrade.dm b/code/datums/paygrades/paygrade.dm index bb0a3aa84bfa..cc336319278a 100644 --- a/code/datums/paygrades/paygrade.dm +++ b/code/datums/paygrades/paygrade.dm @@ -26,36 +26,36 @@ GLOBAL_LIST_INIT_TYPED(paygrades, /datum/paygrade, setup_paygrades()) GLOBAL_LIST_INIT(highcom_paygrades, list( "PvI", - "NO7", - "MO7", - "NO8", - "MO8", - "NO9", - "MO9", - "NO10", - "MO10", - "NO10C", - "MO10C", + PAY_SHORT_NO7, + PAY_SHORT_MO7, + PAY_SHORT_NO8, + PAY_SHORT_MO8, + PAY_SHORT_NO9, + PAY_SHORT_MO9, + PAY_SHORT_NO10, + PAY_SHORT_MO10, + PAY_SHORT_NO10C, + PAY_SHORT_MO10C, "PvO8", "PvO9", "PvCM" )) GLOBAL_LIST_INIT(co_paygrades, list( - "NO6", - "NO6E", - "NO6C", - "NO5", - "NO4", - "MO6", - "MO6E", - "MO6C", - "MO5", - "MO4" + PAY_SHORT_NO6, + PAY_SHORT_NO6E, + PAY_SHORT_NO6C, + PAY_SHORT_NO5, + PAY_SHORT_NO4, + PAY_SHORT_MO6, + PAY_SHORT_MO6E, + PAY_SHORT_MO6C, + PAY_SHORT_MO5, + PAY_SHORT_MO4 )) GLOBAL_LIST_INIT(wy_paygrades, list( - "WYC8", - "WYC9", - "WYC10" + PAY_SHORT_WYC8, + PAY_SHORT_WYC9, + PAY_SHORT_WYC10 )) diff --git a/code/datums/quadtree.dm b/code/datums/quadtree.dm index d00f202cc15c..2b0360152997 100644 --- a/code/datums/quadtree.dm +++ b/code/datums/quadtree.dm @@ -10,14 +10,14 @@ var/z_level /// Don't divide further when truthy - var/final + var/final_divide = FALSE /datum/quadtree/New(datum/shape/rectangle/rect, z) . = ..() boundary = rect z_level = z if(boundary.width <= QUADTREE_BOUNDARY_MINIMUM_WIDTH || boundary.height <= QUADTREE_BOUNDARY_MINIMUM_HEIGHT) - final = TRUE + final_divide = TRUE // By design i guess, discarding branch discards rest with BYOND soft-GCing // There should never be anything else but SSquadtree referencing quadtrees, @@ -103,7 +103,7 @@ player_coords = list(p_coords) return TRUE - else if(!final && player_coords.len >= QUADTREE_CAPACITY) + else if(!final_divide && player_coords.len >= QUADTREE_CAPACITY) if(!is_divided) subdivide() if(nw_branch.insert_player(p_coords)) diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index eb1fd2341920..98bcf296755b 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -100,6 +100,18 @@ if(movement_force) M.movement_force = movement_force.Copy() + /datum/map_template/shuttle/vehicle shuttle_id = MOBILE_SHUTTLE_VEHICLE_ELEVATOR name = "Vehicle Elevator" + +/datum/map_template/shuttle/trijent_elevator + name = "Trijent Elevator" + shuttle_id = MOBILE_TRIJENT_ELEVATOR + var/elevator_network + +/datum/map_template/shuttle/trijent_elevator/A + elevator_network = "A" + +/datum/map_template/shuttle/trijent_elevator/B + elevator_network = "B" diff --git a/code/datums/skills.dm b/code/datums/skills.dm deleted file mode 100644 index 9178e6f7a1b1..000000000000 --- a/code/datums/skills.dm +++ /dev/null @@ -1,2199 +0,0 @@ -// Individual skill -/datum/skill - /// Name of the skill - var/skill_name = null - /// used for the view UI - var/readable_skill_name = null - /// Level of skill in this... skill - var/skill_level = 0 - /// the max level this skill can be, used for tgui - var/max_skill_level = 0 - -/datum/skill/proc/get_skill_level() - return skill_level - -/datum/skill/proc/set_skill(new_level, mob/owner) - skill_level = new_level - -/datum/skill/proc/is_skilled(req_level, is_explicit = FALSE) - if(is_explicit) - return (skill_level == req_level) - return (skill_level >= req_level) - -// Lots of defines here. See #define/skills.dm - -/datum/skill/cqc - skill_name = SKILL_CQC - readable_skill_name = "CQC" - skill_level = SKILL_CQC_DEFAULT - max_skill_level = SKILL_CQC_MAX - -/datum/skill/melee_weapons - skill_name = SKILL_MELEE_WEAPONS - readable_skill_name = "melee weapons" - skill_level = SKILL_MELEE_DEFAULT - max_skill_level = SKILL_MELEE_MAX - -/datum/skill/firearms - skill_name = SKILL_FIREARMS - skill_level = SKILL_FIREARMS_TRAINED - max_skill_level = SKILL_FIREARMS_MAX - -/datum/skill/spec_weapons - skill_name = SKILL_SPEC_WEAPONS - readable_skill_name = "specialist weapons" - skill_level = SKILL_SPEC_DEFAULT - max_skill_level = SKILL_SPEC_ALL - -/datum/skill/endurance - skill_name = SKILL_ENDURANCE - skill_level = SKILL_ENDURANCE_WEAK - max_skill_level = SKILL_ENDURANCE_MAX - -/datum/skill/engineer - skill_name = SKILL_ENGINEER - skill_level = SKILL_ENGINEER_DEFAULT - max_skill_level = SKILL_ENGINEER_MAX - -/datum/skill/construction - skill_name = SKILL_CONSTRUCTION - skill_level = SKILL_CONSTRUCTION_DEFAULT - max_skill_level = SKILL_CONSTRUCTION_MAX - -/datum/skill/leadership - skill_name = SKILL_LEADERSHIP - skill_level = SKILL_LEAD_NOVICE - max_skill_level = SKILL_LEAD_MAX - -/datum/skill/leadership/set_skill(new_level, mob/living/owner) - ..() - if(!owner) - return - - if(!ishuman(owner)) - return - - // Give/remove issue order actions - if(is_skilled(SKILL_LEAD_TRAINED)) - ADD_TRAIT(owner, TRAIT_LEADERSHIP, TRAIT_SOURCE_SKILL(skill_name)) - else - REMOVE_TRAIT(owner, TRAIT_LEADERSHIP, TRAIT_SOURCE_SKILL(skill_name)) - -/datum/skill/overwatch - skill_name = SKILL_OVERWATCH - skill_level = SKILL_OVERWATCH_DEFAULT - max_skill_level = SKILL_OVERWATCH_MAX - -/datum/skill/medical - skill_name = SKILL_MEDICAL - skill_level = SKILL_MEDICAL_DEFAULT - max_skill_level = SKILL_MEDICAL_MAX - -/datum/skill/surgery - skill_name = SKILL_SURGERY - skill_level = SKILL_SURGERY_DEFAULT - max_skill_level = SKILL_SURGERY_MAX - -/datum/skill/surgery/set_skill(new_level, mob/living/owner) - ..() - if(!owner) - return - - if(!ishuman(owner)) - return - - // Give/remove surgery toggle action - var/datum/action/surgery_toggle/surgery_action = locate() in owner.actions - if(is_skilled(SKILL_SURGERY_NOVICE)) - if(!surgery_action) - give_action(owner, /datum/action/surgery_toggle) - else - surgery_action.update_surgery_skill() - else - if(surgery_action) - surgery_action.remove_from(owner) - -/datum/skill/research - skill_name = SKILL_RESEARCH - skill_level = SKILL_RESEARCH_DEFAULT - max_skill_level = SKILL_RESEARCH_MAX - -/datum/skill/antag - skill_name = SKILL_ANTAG - readable_skill_name = "illegal technology" - skill_level = SKILL_ANTAG_DEFAULT - max_skill_level = SKILL_ANTAG_MAX - -/datum/skill/pilot - skill_name = SKILL_PILOT - skill_level = SKILL_PILOT_DEFAULT - max_skill_level = SKILL_PILOT_MAX - -/datum/skill/navigations - skill_name = SKILL_NAVIGATIONS - skill_level = SKILL_NAVIGATIONS_DEFAULT - max_skill_level = SKILL_NAVIGATIONS_MAX - -/datum/skill/police - skill_name = SKILL_POLICE - skill_level = SKILL_POLICE_DEFAULT - max_skill_level = SKILL_POLICE_MAX - -/datum/skill/powerloader - skill_name = SKILL_POWERLOADER - skill_level = SKILL_POWERLOADER_DEFAULT - max_skill_level = SKILL_POWERLOADER_MAX - -/datum/skill/vehicles - skill_name = SKILL_VEHICLE - skill_level = SKILL_VEHICLE_DEFAULT - max_skill_level = SKILL_VEHICLE_MAX - -/datum/skill/jtac - skill_name = SKILL_JTAC - readable_skill_name = "JTAC" - skill_level = SKILL_JTAC_NOVICE - max_skill_level = SKILL_JTAC_MAX - -/datum/skill/execution - skill_name = SKILL_EXECUTION - skill_level = SKILL_EXECUTION_DEFAULT - max_skill_level = SKILL_EXECUTION_MAX - -/datum/skill/intel - skill_name = SKILL_INTEL - skill_level = SKILL_INTEL_NOVICE - max_skill_level = SKILL_INTEL_MAX - -/datum/skill/domestic - skill_name = SKILL_DOMESTIC - skill_level = SKILL_DOMESTIC_NONE - max_skill_level = SKILL_DOMESTIC_MAX - -/datum/skill/fireman - skill_name = SKILL_FIREMAN - readable_skill_name = "fireman carrying" - skill_level = SKILL_FIREMAN_DEFAULT - max_skill_level = SKILL_FIREMAN_MAX - -/// Skill with an extra S at the end is a collection of multiple skills. Basically a skillSET -/// This is to organize and provide a common interface to the huge heap of skills there are -/datum/skills - /// The name of the skillset - var/name - // The mob that has this skillset - var/mob/owner - - // List of skill datums. - // Also, if this is populated when the datum is created, it will set the skill levels automagically - var/list/skills = list() - // Same as above, but for children of parents that just add a lil something else - var/list/additional_skills = list() - -/datum/skills/New(mob/skillset_owner) - owner = skillset_owner - - // Setup every single skill - for(var/skill_type in subtypesof(/datum/skill)) - var/datum/skill/S = new skill_type() - - // Fancy hack to convert a list of desired skill levels in each named skill into a skill level in the actual skill datum - // Lets the skills list be used multipurposely for both storing skill datums and choosing skill levels for different skillsets - var/predetermined_skill_level = additional_skills[S.skill_name] ? additional_skills[S.skill_name] : skills[S.skill_name] - skills[S.skill_name] = S - - if(!isnull(predetermined_skill_level)) - S.set_skill(predetermined_skill_level, owner) - -/datum/skills/Destroy() - owner = null - skills = null // Don't need to delete, /datum/skill should softdel - SStgui.close_uis(src) - return ..() - -// Checks if the given skill is contained in this skillset at all -/datum/skills/proc/has_skill(skill) - return isnull(skills[skill]) - -// Returns the skill DATUM for the given skill -/datum/skills/proc/get_skill(skill) - if(!skills) - return null - return skills[skill] - -// Returns the skill level for the given skill -/datum/skills/proc/get_skill_level(skill) - var/datum/skill/S = get_skill(skill) - if(!S) - return -1 - if(QDELETED(S)) - return -1 - return S.get_skill_level() - -// Sets the skill LEVEL for a given skill -/datum/skills/proc/set_skill(skill, new_level) - var/datum/skill/S = skills[skill] - if(!S) - return - return S.set_skill(new_level, owner) - -/datum/skills/proc/increment_skill(skill, increment, cap) - var/datum/skill/S = skills[skill] - if(!S || skillcheck(owner, skill, cap)) - return - return S.set_skill(min(cap,S.skill_level+increment), owner) - -/datum/skills/proc/decrement_skill(skill, increment) - var/datum/skill/S = skills[skill] - if(!S) - return - return S.set_skill(max(0,S.skill_level-increment), owner) - -// Checks if the skillset is AT LEAST skilled enough to pass a skillcheck for the given skill level -/datum/skills/proc/is_skilled(skill, req_level, is_explicit = FALSE) - var/datum/skill/S = get_skill(skill) - if(QDELETED(S)) - return FALSE - return S.is_skilled(req_level, is_explicit) - -// Adjusts the full skillset to a new type of skillset. Pass the datum type path for the desired skillset -/datum/skills/proc/set_skillset(skillset_type) - var/datum/skills/skillset = new skillset_type() - var/list/skill_levels = initial(skillset.skills) - - name = skillset.name - for(var/skill in skill_levels) - set_skill(skill, skill_levels[skill]) - qdel(skillset) - -/* ---------------------- -CIVILIAN ---------------------- -*/ - -/datum/skills/civilian - name = "Civilian" - skills = list( - SKILL_CQC = SKILL_CQC_DEFAULT, - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_ENDURANCE = SKILL_ENDURANCE_NONE, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/manager - name = "Weyland-Yutani Manager" // Semi-competent leader with basic knowledge in most things. - skills = list( - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_INTEL = SKILL_INTEL_EXPERT, - ) - -/datum/skills/civilian/icc_investigation - name = "ICC CL - Black Market ERT" - skills = list( - SKILL_CQC = SKILL_CQC_DEFAULT, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //The ASRS consoles - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_POLICE = SKILL_POLICE_SKILLED, //The CMB Tradeband Compliance Device - ) - -/datum/skills/civilian/manager/director - name = "Weyland-Yutani Director" - skills = list( - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, - SKILL_INTEL = SKILL_INTEL_EXPERT, - ) - -/datum/skills/civilian/survivor - name = "Survivor" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - ) - -/datum/skills/civilian/survivor/manager - name = "Weyland-Yutani Manager" - skills = list( - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_INTEL = SKILL_INTEL_EXPERT, - ) - -/datum/skills/civilian/survivor/goon - name = "Survivor Goon" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/pmc - name = "Survivor PMC" - additional_skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/pmc/medic - name = "Survivor PMC Medic" - additional_skills = list( - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/pmc/engineer - name = "Survivor PMC Engineer" - additional_skills = list( - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - ) - -/datum/skills/civilian/survivor/doctor - name = "Survivor Doctor" - additional_skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - ) - -/datum/skills/civilian/survivor/clf - name = "Survivor CLF" - additional_skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - ) - -/datum/skills/civilian/survivor/scientist - name = "Survivor Scientist" - additional_skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - ) - -/datum/skills/civilian/survivor/chef - name = "Survivor Chef" - additional_skills = list( - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, - ) - -/datum/skills/civilian/survivor/miner - name = "Survivor Miner" - additional_skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/trucker - name = "Survivor Trucker" - additional_skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, - ) - -/datum/skills/civilian/survivor/engineer - name = "Survivor Engineer" - additional_skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/chaplain - name = "Survivor Chaplain" - additional_skills = list( - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - ) - -/datum/skills/civilian/survivor/marshal - name = "Survivor Marshal" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - ) - -/datum/skills/civilian/survivor/prisoner - name = "Survivor Prisoner" - additional_skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/civilian/survivor/gangleader - name = "Survivor Gang Leader" - additional_skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - ) - -/* ---------------------- -MILITARY SURVIVORS ---------------------- -*/ -//Hardcore survivors with poor equipment and skills, prove you're the best of the best. - -/datum/skills/military/survivor/forecon_standard - name = "Reconnaissance Rifleman" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/forecon_techician - name = "Reconnaissance Support Technician" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/forecon_marksman - name = "Reconnaissance Designated Marksman" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SCOUT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/forecon_smartgunner - name = "Reconnaissance Smartgunner" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/forecon_sniper - name = "Reconnaissance Sniper" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SNIPER, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/forecon_squad_leader - name = "Reconnaissance Squad Leader" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/* ---------------------- -COMMAND STAFF ---------------------- -*/ - -/datum/skills/general - name = "General" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people - SKILL_INTEL = SKILL_INTEL_EXPERT - ) - -/datum/skills/commander - name = "Commanding Officer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED //can change ship alt - ) - -/datum/skills/XO - name = "Executive Officer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //to fix CIC apc. - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, - ) - -/datum/skills/SO - name = "Staff Officer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/SEA - name = "Senior Enlisted Advisor" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - ) - -/datum/skills/SEA/New(mob/skillset_owner) - ..() - give_action(skillset_owner, /datum/action/looc_toggle) - -/datum/skills/SEA/Destroy() - remove_action(owner, /datum/action/looc_toggle) - return ..() - -/datum/skills/CMO - name = "CMO" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/CMP - name = "Chief MP" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/auxiliary_officer - name = "Auxiliary Support Officer" - skills = list( - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - ) - -/datum/skills/CE - name = "Chief Engineer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_INTEL = SKILL_INTEL_TRAINED, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, - ) - -/datum/skills/RO - name = "Requisition Officer" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/* ---------------------- -MILITARY NONCOMBATANT ---------------------- -*/ - -/datum/skills/doctor - name = "Doctor" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - ) - -/datum/skills/nurse - name = "Nurse" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - ) - -/datum/skills/researcher - name = "Researcher" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/pilot - name = "Pilot Officer" - skills = list( - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/crew_chief - name = "Dropship Crew Chief" - skills = list( - SKILL_PILOT = SKILL_PILOT_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - ) - -/datum/skills/MP - name = "Military Police" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - ) - -/datum/skills/MW - name = "Military Warden" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - ) - -/datum/skills/provost - name = "Provost" - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - ) - -/datum/skills/OT - name = "Ordnance Technician" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - ) - -/datum/skills/MT - name = "Maintenance Technician" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, - ) - -/datum/skills/mess_technician - name = "Mess Technician" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, // need to hunt food somehow - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER - ) - -/datum/skills/CT - name = "Cargo Technician" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - ) - -/* ---------------------- -SYNTHETIC ---------------------- -*/ - -/datum/skills/synthetic - name = "Synthetic" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MASTER, - SKILL_SURGERY = SKILL_SURGERY_EXPERT, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_MAX, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, - SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, - ) - -/datum/skills/colonial_synthetic - name = SYNTH_COLONY - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_INTEL = SKILL_INTEL_TRAINED, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, - ) - -/datum/skills/working_joe - name = SYNTH_WORKING_JOE - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, //So they can fully use the Maintenance Jack - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, - ) - -/datum/skills/infiltrator_synthetic - name = SYNTH_INFILTRATOR - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MASTER, - SKILL_SURGERY = SKILL_SURGERY_EXPERT, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_PILOT = SKILL_PILOT_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_MAX, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, - SKILL_ANTAG = SKILL_ANTAG_AGENT, - ) - -/* ------------------------------- -United States Colonial Marines ------------------------------- -*/ - -/datum/skills/pfc - name = "Private" - //same as default - -/datum/skills/pfc/crafty - name = "Crafty Private" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - ) - -/datum/skills/combat_medic - name = "Combat Medic" - skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/combat_medic/crafty - name = "Crafty Combat Medic" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - ) - -/datum/skills/combat_engineer - name = "Combat Engineer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/smartgunner - name = "Squad Smartgunner" - skills = list( - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/specialist - name = "Squad Weapons Specialist" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set. - SKILL_SPEC_WEAPONS = SKILL_SPEC_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER - ) - -/datum/skills/tl - name = "Fireteam Leader" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/SL - name = "Squad Leader" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_INTEL = SKILL_INTEL_TRAINED, - ) - -/datum/skills/intel - name = "Intelligence Officer" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_INTEL = SKILL_INTEL_EXPERT, - ) - -/* -------------------------- -COLONIAL LIBERATION FRONT -------------------------- -*/ - -/datum/skills/clf - name = "CLF Soldier" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/clf/combat_engineer - name = "CLF Engineer" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/clf/combat_medic - name = "CLF Medic" - skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/clf/specialist - name = "CLF Specialist" - skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set. - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED - ) - -/datum/skills/clf/leader - name = "CLF Leader" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, // to use their C4 - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI - ) - -/datum/skills/clf/commander - name = "CLF Cell Commander" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, - ) - -/* ------------ -FREELANCERS ------------ -*/ - -//NOTE: Freelancer training is similar to the USCM's, but with additional construction skills - -/datum/skills/freelancer - name = "Freelancer Private" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - ) - -/datum/skills/freelancer/combat_medic - name = "Freelancer Medic" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - ) - -/datum/skills/freelancer/SL - name = "Freelancer Leader" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/* --------------------------- -UNITED PROGRESSIVE PEOPLES --------------------------- -*/ - -//NOTE: UPP make up for their subpar gear with extreme training. - -/datum/skills/upp - name = "UPP Private" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_DEFAULT, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - ) - -/datum/skills/upp/combat_engineer - name = "UPP Sapper" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_DEFAULT, - SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - ) - -/datum/skills/upp/combat_medic - name = "UPP Medic" - skills = list( - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_DEFAULT, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - ) - -/datum/skills/upp/specialist - name = "UPP Specialist" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - ) - -/datum/skills/upp/SL - name = "UPP Squad Leader" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/upp/military_police - name = "UPP Military Police" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - ) - -/datum/skills/upp/officer - name = "UPP Officer" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_POLICE = SKILL_POLICE_FLASH, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/upp/kapitan - name = "UPP Kapitan" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/upp/commander - name = "UPP Command Officer" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, - ) -/datum/skills/upp/conscript - name = "UPP Conscript" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - ) - -/* ----------------------------- -Private Military Contractors ----------------------------- -*/ - -//NOTE: Compared to the USCM, PMCs have additional firearms training, construction skills and policing skills - -/datum/skills/pmc - name = "PMC Private" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - ) - -/datum/skills/pmc/medic - name = "PMC Medic" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - ) - -/datum/skills/pmc/medic/chem - name = "PMC Medical Investigator" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - ) - -/datum/skills/pmc/smartgunner - name = "PMC Smartgunner" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/pmc/specialist - name = "PMC Specialist" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/pmc/SL - name = "PMC Leader" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/pmc/SL/chem - name = "PMC Lead Investigator" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/pmc/tank_crew - name = "Vehicle Crewman" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - ) - -/datum/skills/pmc/doctor - name = "PMC Triage Doctor" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_EXPERT, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, //trained in medicine more than combat - SKILL_CQC = SKILL_CQC_TRAINED - ) - -/datum/skills/pmc/engineer - name = "PMC Corporate Technician" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - ) - -/datum/skills/pmc/director - name = "PMC Site Director" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, - ) - -/* ---------------------- -CONTRACTORS ---------------------- -*/ -/datum/skills/contractor - name = "Contractor Standard" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - ) - -/datum/skills/contractor/leader - name = "Contractor Leader" - skills = list( - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, - SKILL_JTAC = SKILL_JTAC_MASTER, - ) - -/datum/skills/contractor/medic - name = "Contractor Medic" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/contractor/engi - name = "Contractor Engi" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_MAX, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MAX, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, - ) - -/datum/skills/contractor/heavy - name = "Contractor Machinegunner" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - ) - -/* ---------------------- -COLONIAL MARSHALS ---------------------- -*/ -/datum/skills/cmb - name = "CMB Deputy" - skills = list( - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - ) - -/datum/skills/cmb/leader - name = "CMB Marshal" - skills = list( - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_FIREMAN = SKILL_FIREMAN_MASTER, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/synthetic/cmb - name = "CMB Investigative Synthetic" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, // incase the synth needs to use consoles for investigations or tracking - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, // Not a medical Synthetic, but operate if absolutely needed. - SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_PILOT = SKILL_PILOT_TRAINED, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_MAX, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_INTEL = SKILL_INTEL_EXPERT, - SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER - ) - -/datum/skills/military/survivor/upp_private - name = "UPP Private" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/upp_sapper - name = "UPP Sapper" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/upp_medic - name = "UPP Medic" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/military/survivor/upp_spec - name = "UPP Specialist" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - ) - -/datum/skills/military/survivor/upp_sl - name = "UPP Squad Leader" - skills = list( - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, - SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_VEHICLE = SKILL_VEHICLE_LARGE, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/* ---------------------- -SPEC-OPS ---------------------- -*/ - -/datum/skills/commando - name = "Commando" - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/commando/medic - name = "Commando Medic" - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/commando/leader - name = "Commando Leader" - skills = list( - SKILL_CQC = SKILL_CQC_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/commando/deathsquad - name = "Deathsquad" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/commando/deathsquad/leader - name = "Deathsquad Leader" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/commando/deathsquad/officer - name = "Deathsquad Officer" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/spy - name = "Spy" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/ninja - name = "Ninja" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/* ---------------------- -MISCELLANEOUS ---------------------- -*/ - -/datum/skills/mercenary - name = "Mercenary" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/mercenary/elite - name = "Elite Mercenary" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - ) - -/datum/skills/mercenary/elite/medic - name = "Elite Mercenary Medic" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_MEDICAL = SKILL_MEDICAL_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_SURGERY = SKILL_SURGERY_TRAINED, - ) - -/datum/skills/mercenary/elite/engineer - name = "Elite Mercenary Engineer" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_PILOT = SKILL_PILOT_EXPERT, - ) - -/datum/skills/mercenary/elite/heavy - name = "Elite Mercenary Heavy" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_VEHICLE = SKILL_VEHICLE_SMALL, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - ) - -/datum/skills/mercenary/elite/leader - name = "Elite Mercenary Leader" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_MASTER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_PILOT = SKILL_PILOT_EXPERT, - ) - -/datum/skills/dutchmerc - name = "Dutch's Dozen Mercenary" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, - ) - -/datum/skills/dutchmedic - name = "Dutch's Dozen Medic" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, - ) - -/datum/skills/tank_crew - name = "Vehicle Crewman" - skills = list( - SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, - SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_JTAC = SKILL_JTAC_EXPERT, - ) - -/datum/skills/gladiator - name = "Gladiator" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - ) - -/datum/skills/gladiator/champion - name = "Gladiator Champion" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_TRAINED, - ) - -/datum/skills/gladiator/champion/leader - name = "Gladiator Leader" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, //Spartacus! - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_MASTER, - ) - -/datum/skills/yautja/warrior - name = "Yautja Warrior" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_MAX, - SKILL_ANTAG = SKILL_ANTAG_HUNTER, - ) - -/datum/skills/dutch - name = "Dutch" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_MAX, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_EXPERT, - SKILL_ANTAG = SKILL_ANTAG_HUNTER, - ) - -/datum/skills/cultist_leader - name = "Cultist Leader" - skills = list( - SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_LEADERSHIP = SKILL_LEAD_MASTER, - SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_JTAC = SKILL_JTAC_MASTER, - ) - -/datum/skills/souto - name = "Souto Man" - skills = list( - SKILL_CQC = SKILL_CQC_MASTER, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - ) - -/datum/skills/everything //max it out - name = "Ultra" - skills = list( - SKILL_CQC = SKILL_CQC_MAX, - SKILL_MELEE_WEAPONS = SKILL_MELEE_MAX, - SKILL_FIREARMS = SKILL_FIREARMS_MAX, - SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, - SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, - SKILL_ENGINEER = SKILL_ENGINEER_MAX, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MAX, - SKILL_LEADERSHIP = SKILL_LEAD_MAX, - SKILL_OVERWATCH = SKILL_OVERWATCH_MAX, - SKILL_MEDICAL = SKILL_MEDICAL_MAX, - SKILL_SURGERY = SKILL_SURGERY_MAX, - SKILL_RESEARCH = SKILL_RESEARCH_MAX, - SKILL_ANTAG = SKILL_ANTAG_MAX, - SKILL_PILOT = SKILL_PILOT_MAX, - SKILL_POLICE = SKILL_POLICE_MAX, - SKILL_FIREMAN = SKILL_FIREMAN_MAX, - SKILL_POWERLOADER = SKILL_POWERLOADER_MAX, - SKILL_VEHICLE = SKILL_VEHICLE_MAX, - SKILL_JTAC = SKILL_JTAC_MAX, - SKILL_EXECUTION = SKILL_EXECUTION_MAX, - SKILL_INTEL = SKILL_INTEL_MAX, - ) - -/* ----------------------------- -Royal Marines Commando ----------------------------- -*/ - -//NOTE: Skills take heavy from PMCs - -/datum/skills/rmc - name = "Royal Marines Commando" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - ) - -/datum/skills/rmc/specialist - name = "Royal Marines Commando Specialist" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - ) - -/datum/skills/rmc/smartgun - name = "Royal Marines Commando Smartgunner" - skills = list( - SKILL_CQC = SKILL_CQC_TRAINED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_BEGINNER, - SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, - ) - -/datum/skills/rmc/leader - name = "Royal Marines Commando Leader" - skills = list( - SKILL_CQC = SKILL_CQC_SKILLED, - SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, - SKILL_POLICE = SKILL_POLICE_SKILLED, - SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, - SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, - SKILL_ENGINEER = SKILL_ENGINEER_ENGI, - SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, - SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, - SKILL_SURGERY = SKILL_SURGERY_NOVICE, - SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, - SKILL_JTAC = SKILL_JTAC_TRAINED, - SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, - ) diff --git a/code/datums/skills/civilian.dm b/code/datums/skills/civilian.dm new file mode 100644 index 000000000000..9dc4afd78826 --- /dev/null +++ b/code/datums/skills/civilian.dm @@ -0,0 +1,214 @@ +/* +--------------------- +CIVILIAN +--------------------- +*/ + +/datum/skills/civilian + name = "Civilian" + skills = list( + SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_ENDURANCE = SKILL_ENDURANCE_NONE, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/manager + name = "Weyland-Yutani Manager" // Semi-competent leader with basic knowledge in most things. + skills = list( + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_INTEL = SKILL_INTEL_EXPERT, + ) + +/datum/skills/civilian/icc_investigation + name = "ICC CL - Black Market ERT" + skills = list( + SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //The ASRS consoles + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_POLICE = SKILL_POLICE_SKILLED, //The CMB Tradeband Compliance Device + ) + +/datum/skills/civilian/manager/director + name = "Weyland-Yutani Director" + skills = list( + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, + SKILL_INTEL = SKILL_INTEL_EXPERT, + ) + +//civilian that are survivor could be in is own file maybe + +/datum/skills/civilian/survivor + name = "Survivor" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + ) + +/datum/skills/civilian/survivor/manager + name = "Weyland-Yutani Manager" + skills = list( + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_INTEL = SKILL_INTEL_EXPERT, + ) + +/datum/skills/civilian/survivor/goon + name = "Survivor Goon" + additional_skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/pmc + name = "Survivor PMC" + additional_skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/pmc/medic + name = "Survivor PMC Medic" + additional_skills = list( + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/pmc/engineer + name = "Survivor PMC Engineer" + additional_skills = list( + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/datum/skills/civilian/survivor/doctor + name = "Survivor Doctor" + additional_skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + ) + +/datum/skills/civilian/survivor/clf + name = "Survivor CLF" + additional_skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + ) + +/datum/skills/civilian/survivor/scientist + name = "Survivor Scientist" + additional_skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + ) + +/datum/skills/civilian/survivor/chef + name = "Survivor Chef" + additional_skills = list( + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, + ) + +/datum/skills/civilian/survivor/miner + name = "Survivor Miner" + additional_skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/trucker + name = "Survivor Trucker" + additional_skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, + ) + +/datum/skills/civilian/survivor/engineer + name = "Survivor Engineer" + additional_skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/chaplain + name = "Survivor Chaplain" + additional_skills = list( + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + ) + +/datum/skills/civilian/survivor/marshal + name = "Survivor Marshal" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + ) + +/datum/skills/civilian/survivor/prisoner + name = "Survivor Prisoner" + additional_skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/civilian/survivor/gangleader + name = "Survivor Gang Leader" + additional_skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + ) diff --git a/code/datums/skills/clf.dm b/code/datums/skills/clf.dm new file mode 100644 index 000000000000..6042febb6b48 --- /dev/null +++ b/code/datums/skills/clf.dm @@ -0,0 +1,92 @@ +/* +------------------------- +COLONIAL LIBERATION FRONT +------------------------- +*/ + +/datum/skills/clf + name = "CLF Soldier" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/clf/combat_engineer + name = "CLF Engineer" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/clf/combat_medic + name = "CLF Medic" + skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_WEAK, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/clf/specialist + name = "CLF Specialist" + skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set. + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED + ) + +/datum/skills/clf/leader + name = "CLF Leader" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, // to use their C4 + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI + ) + +/datum/skills/clf/commander + name = "CLF Cell Commander" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, + ) diff --git a/code/datums/skills/cmb.dm b/code/datums/skills/cmb.dm new file mode 100644 index 000000000000..b29a4c314567 --- /dev/null +++ b/code/datums/skills/cmb.dm @@ -0,0 +1,60 @@ +/* +--------------------- +COLONIAL MARSHALS +--------------------- +*/ +/datum/skills/cmb + name = "CMB Deputy" + skills = list( + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + ) + +/datum/skills/cmb/leader + name = "CMB Marshal" + skills = list( + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_FIREMAN = SKILL_FIREMAN_MASTER, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/synthetic/cmb + name = "CMB Investigative Synthetic" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, // incase the synth needs to use consoles for investigations or tracking + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, // Not a medical Synthetic, but operate if absolutely needed. + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_PILOT = SKILL_PILOT_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER + ) diff --git a/code/datums/skills/commando.dm b/code/datums/skills/commando.dm new file mode 100644 index 000000000000..dabae682bd0b --- /dev/null +++ b/code/datums/skills/commando.dm @@ -0,0 +1,116 @@ +/* +--------------------- +SPEC-OPS +--------------------- +*/ + +/datum/skills/commando + name = "Commando" + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/commando/medic + name = "Commando Medic" + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/commando/leader + name = "Commando Leader" + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/commando/deathsquad + name = "Deathsquad" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/commando/deathsquad/leader + name = "Deathsquad Leader" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/commando/deathsquad/officer + name = "Deathsquad Officer" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/spy + name = "Spy" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/ninja + name = "Ninja" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) diff --git a/code/datums/skills/contractor.dm b/code/datums/skills/contractor.dm new file mode 100644 index 000000000000..183e95c941f5 --- /dev/null +++ b/code/datums/skills/contractor.dm @@ -0,0 +1,90 @@ +/* +--------------------- +CONTRACTORS +--------------------- +*/ +/datum/skills/contractor + name = "Contractor Standard" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/contractor/leader + name = "Contractor Leader" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, + SKILL_JTAC = SKILL_JTAC_MASTER, + ) + +/datum/skills/contractor/medic + name = "Contractor Medic" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/contractor/engi + name = "Contractor Engi" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_MAX, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MAX, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + ) + +/datum/skills/contractor/heavy + name = "Contractor Machinegunner" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) diff --git a/code/datums/skills/dutch.dm b/code/datums/skills/dutch.dm new file mode 100644 index 000000000000..5c2c63a8c463 --- /dev/null +++ b/code/datums/skills/dutch.dm @@ -0,0 +1,46 @@ +/datum/skills/dutch + name = "Dutch" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_MAX, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_ANTAG = SKILL_ANTAG_HUNTER, + ) + +/datum/skills/dutchmerc + name = "Dutch's Dozen Mercenary" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, + ) + +/datum/skills/dutchmedic + name = "Dutch's Dozen Medic" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_EXPERT, + ) diff --git a/code/datums/skills/forecon.dm b/code/datums/skills/forecon.dm new file mode 100644 index 000000000000..4799dd68d617 --- /dev/null +++ b/code/datums/skills/forecon.dm @@ -0,0 +1,102 @@ +/* +--------------------- +MILITARY SURVIVORS +--------------------- +*/ +//Hardcore survivors with poor equipment and skills, prove you're the best of the best. + +/datum/skills/military/survivor/forecon_standard + name = "Reconnaissance Rifleman" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/forecon_techician + name = "Reconnaissance Support Technician" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/forecon_marksman + name = "Reconnaissance Designated Marksman" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SCOUT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/forecon_smartgunner + name = "Reconnaissance Smartgunner" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/forecon_sniper + name = "Reconnaissance Sniper" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SNIPER, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/forecon_squad_leader + name = "Reconnaissance Squad Leader" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_DEFAULT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) diff --git a/code/datums/skills/freelancer.dm b/code/datums/skills/freelancer.dm new file mode 100644 index 000000000000..7f7256318edb --- /dev/null +++ b/code/datums/skills/freelancer.dm @@ -0,0 +1,40 @@ +/* +----------- +FREELANCERS +----------- +*/ + +//NOTE: Freelancer training is similar to the USCM's, but with additional construction skills + +/datum/skills/freelancer + name = "Freelancer Private" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/freelancer/combat_medic + name = "Freelancer Medic" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + ) + +/datum/skills/freelancer/SL + name = "Freelancer Leader" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + + diff --git a/code/datums/skills/gladiator.dm b/code/datums/skills/gladiator.dm new file mode 100644 index 000000000000..7ba2c9eff455 --- /dev/null +++ b/code/datums/skills/gladiator.dm @@ -0,0 +1,33 @@ +/datum/skills/gladiator + name = "Gladiator" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_LEADERSHIP = SKILL_LEAD_NOVICE, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + ) + +/datum/skills/gladiator/champion + name = "Gladiator Champion" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/gladiator/champion/leader + name = "Gladiator Leader" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, //Spartacus! + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_MASTER, + ) diff --git a/code/datums/skills/mercenary.dm b/code/datums/skills/mercenary.dm new file mode 100644 index 000000000000..8d842ea30dd2 --- /dev/null +++ b/code/datums/skills/mercenary.dm @@ -0,0 +1,85 @@ +/datum/skills/mercenary + name = "Mercenary" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/mercenary/elite + name = "Elite Mercenary" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + ) + +/datum/skills/mercenary/elite/medic + name = "Elite Mercenary Medic" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_MEDICAL = SKILL_MEDICAL_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + ) + +/datum/skills/mercenary/elite/engineer + name = "Elite Mercenary Engineer" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_PILOT = SKILL_PILOT_EXPERT, + ) + +/datum/skills/mercenary/elite/heavy + name = "Elite Mercenary Heavy" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + ) + +/datum/skills/mercenary/elite/leader + name = "Elite Mercenary Leader" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_PILOT = SKILL_PILOT_EXPERT, + ) diff --git a/code/datums/skills/misc.dm b/code/datums/skills/misc.dm new file mode 100644 index 000000000000..e4f78219b5c6 --- /dev/null +++ b/code/datums/skills/misc.dm @@ -0,0 +1,86 @@ +/* +--------------------- +MISCELLANEOUS +--------------------- +*/ + +/datum/skills/tank_crew + name = "Vehicle Crewman" + skills = list( + SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/yautja/warrior + name = "Yautja Warrior" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, + SKILL_ANTAG = SKILL_ANTAG_HUNTER, + ) + +/datum/skills/cultist_leader + name = "Cultist Leader" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_MASTER, + ) + +/datum/skills/souto + name = "Souto Man" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + ) + +/datum/skills/everything //max it out + name = "Ultra" + skills = list( + SKILL_CQC = SKILL_CQC_MAX, + SKILL_MELEE_WEAPONS = SKILL_MELEE_MAX, + SKILL_FIREARMS = SKILL_FIREARMS_MAX, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_ENGINEER = SKILL_ENGINEER_MAX, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MAX, + SKILL_LEADERSHIP = SKILL_LEAD_MAX, + SKILL_OVERWATCH = SKILL_OVERWATCH_MAX, + SKILL_MEDICAL = SKILL_MEDICAL_MAX, + SKILL_SURGERY = SKILL_SURGERY_MAX, + SKILL_RESEARCH = SKILL_RESEARCH_MAX, + SKILL_ANTAG = SKILL_ANTAG_MAX, + SKILL_PILOT = SKILL_PILOT_MAX, + SKILL_POLICE = SKILL_POLICE_MAX, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, + SKILL_POWERLOADER = SKILL_POWERLOADER_MAX, + SKILL_VEHICLE = SKILL_VEHICLE_MAX, + SKILL_JTAC = SKILL_JTAC_MAX, + SKILL_EXECUTION = SKILL_EXECUTION_MAX, + SKILL_INTEL = SKILL_INTEL_MAX, + ) diff --git a/code/datums/skills/pmc.dm b/code/datums/skills/pmc.dm new file mode 100644 index 000000000000..df7027e2a7ab --- /dev/null +++ b/code/datums/skills/pmc.dm @@ -0,0 +1,171 @@ +/* +---------------------------- +Private Military Contractors +---------------------------- +*/ + +//NOTE: Compared to the USCM, PMCs have additional firearms training, construction skills and policing skills + +/datum/skills/pmc + name = "PMC Private" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + ) + +/datum/skills/pmc/medic + name = "PMC Medic" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + ) + +/datum/skills/pmc/medic/chem + name = "PMC Medical Investigator" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + ) + +/datum/skills/pmc/smartgunner + name = "PMC Smartgunner" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/pmc/specialist + name = "PMC Specialist" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/pmc/SL + name = "PMC Leader" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/pmc/SL/chem + name = "PMC Lead Investigator" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/pmc/tank_crew + name = "Vehicle Crewman" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/datum/skills/pmc/doctor + name = "PMC Triage Doctor" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_EXPERT, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, //trained in medicine more than combat + SKILL_CQC = SKILL_CQC_TRAINED + ) + +/datum/skills/pmc/engineer + name = "PMC Corporate Technician" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/datum/skills/pmc/director + name = "PMC Site Director" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, + ) diff --git a/code/datums/skills/rmc.dm b/code/datums/skills/rmc.dm new file mode 100644 index 000000000000..89aa39b154ad --- /dev/null +++ b/code/datums/skills/rmc.dm @@ -0,0 +1,71 @@ +/* +---------------------------- +Royal Marines Commando +---------------------------- +*/ + +//NOTE: Skills take heavy from PMCs + +/datum/skills/rmc + name = "Royal Marines Commando" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + ) + +/datum/skills/rmc/specialist + name = "Royal Marines Commando Specialist" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/rmc/smartgun + name = "Royal Marines Commando Smartgunner" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + ) + +/datum/skills/rmc/leader + name = "Royal Marines Commando Leader" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + ) diff --git a/code/datums/skills/skills.dm b/code/datums/skills/skills.dm new file mode 100644 index 000000000000..5d1a69e174ed --- /dev/null +++ b/code/datums/skills/skills.dm @@ -0,0 +1,267 @@ +// Individual skill +/datum/skill + /// Name of the skill + var/skill_name = null + /// used for the view UI + var/readable_skill_name = null + /// Level of skill in this... skill + var/skill_level = 0 + /// the max level this skill can be, used for tgui + var/max_skill_level = 0 + +/datum/skill/proc/get_skill_level() + return skill_level + +/datum/skill/proc/set_skill(new_level, mob/owner) + skill_level = new_level + +/datum/skill/proc/is_skilled(req_level, is_explicit = FALSE) + if(is_explicit) + return (skill_level == req_level) + return (skill_level >= req_level) + +// Lots of defines here. See #define/skills.dm + +/datum/skill/cqc + skill_name = SKILL_CQC + readable_skill_name = "CQC" + skill_level = SKILL_CQC_DEFAULT + max_skill_level = SKILL_CQC_MAX + +/datum/skill/melee_weapons + skill_name = SKILL_MELEE_WEAPONS + readable_skill_name = "melee weapons" + skill_level = SKILL_MELEE_DEFAULT + max_skill_level = SKILL_MELEE_MAX + +/datum/skill/firearms + skill_name = SKILL_FIREARMS + skill_level = SKILL_FIREARMS_TRAINED + max_skill_level = SKILL_FIREARMS_MAX + +/datum/skill/spec_weapons + skill_name = SKILL_SPEC_WEAPONS + readable_skill_name = "specialist weapons" + skill_level = SKILL_SPEC_DEFAULT + max_skill_level = SKILL_SPEC_ALL + +/datum/skill/endurance + skill_name = SKILL_ENDURANCE + skill_level = SKILL_ENDURANCE_WEAK + max_skill_level = SKILL_ENDURANCE_MAX + +/datum/skill/engineer + skill_name = SKILL_ENGINEER + skill_level = SKILL_ENGINEER_DEFAULT + max_skill_level = SKILL_ENGINEER_MAX + +/datum/skill/construction + skill_name = SKILL_CONSTRUCTION + skill_level = SKILL_CONSTRUCTION_DEFAULT + max_skill_level = SKILL_CONSTRUCTION_MAX + +/datum/skill/leadership + skill_name = SKILL_LEADERSHIP + skill_level = SKILL_LEAD_NOVICE + max_skill_level = SKILL_LEAD_MAX + +/datum/skill/leadership/set_skill(new_level, mob/living/owner) + ..() + if(!owner) + return + + if(!ishuman(owner)) + return + + // Give/remove issue order actions + if(is_skilled(SKILL_LEAD_TRAINED)) + ADD_TRAIT(owner, TRAIT_LEADERSHIP, TRAIT_SOURCE_SKILL(skill_name)) + else + REMOVE_TRAIT(owner, TRAIT_LEADERSHIP, TRAIT_SOURCE_SKILL(skill_name)) + +/datum/skill/overwatch + skill_name = SKILL_OVERWATCH + skill_level = SKILL_OVERWATCH_DEFAULT + max_skill_level = SKILL_OVERWATCH_MAX + +/datum/skill/medical + skill_name = SKILL_MEDICAL + skill_level = SKILL_MEDICAL_DEFAULT + max_skill_level = SKILL_MEDICAL_MAX + +/datum/skill/surgery + skill_name = SKILL_SURGERY + skill_level = SKILL_SURGERY_DEFAULT + max_skill_level = SKILL_SURGERY_MAX + +/datum/skill/surgery/set_skill(new_level, mob/living/owner) + ..() + if(!owner) + return + + if(!ishuman(owner)) + return + + // Give/remove surgery toggle action + var/datum/action/surgery_toggle/surgery_action = locate() in owner.actions + if(is_skilled(SKILL_SURGERY_NOVICE)) + if(!surgery_action) + give_action(owner, /datum/action/surgery_toggle) + else + surgery_action.update_surgery_skill() + else + if(surgery_action) + surgery_action.remove_from(owner) + +/datum/skill/research + skill_name = SKILL_RESEARCH + skill_level = SKILL_RESEARCH_DEFAULT + max_skill_level = SKILL_RESEARCH_MAX + +/datum/skill/antag + skill_name = SKILL_ANTAG + readable_skill_name = "illegal technology" + skill_level = SKILL_ANTAG_DEFAULT + max_skill_level = SKILL_ANTAG_MAX + +/datum/skill/pilot + skill_name = SKILL_PILOT + skill_level = SKILL_PILOT_DEFAULT + max_skill_level = SKILL_PILOT_MAX + +/datum/skill/navigations + skill_name = SKILL_NAVIGATIONS + skill_level = SKILL_NAVIGATIONS_DEFAULT + max_skill_level = SKILL_NAVIGATIONS_MAX + +/datum/skill/police + skill_name = SKILL_POLICE + skill_level = SKILL_POLICE_DEFAULT + max_skill_level = SKILL_POLICE_MAX + +/datum/skill/powerloader + skill_name = SKILL_POWERLOADER + skill_level = SKILL_POWERLOADER_DEFAULT + max_skill_level = SKILL_POWERLOADER_MAX + +/datum/skill/vehicles + skill_name = SKILL_VEHICLE + skill_level = SKILL_VEHICLE_DEFAULT + max_skill_level = SKILL_VEHICLE_MAX + +/datum/skill/jtac + skill_name = SKILL_JTAC + readable_skill_name = "JTAC" + skill_level = SKILL_JTAC_NOVICE + max_skill_level = SKILL_JTAC_MAX + +/datum/skill/execution + skill_name = SKILL_EXECUTION + skill_level = SKILL_EXECUTION_DEFAULT + max_skill_level = SKILL_EXECUTION_MAX + +/datum/skill/intel + skill_name = SKILL_INTEL + skill_level = SKILL_INTEL_NOVICE + max_skill_level = SKILL_INTEL_MAX + +/datum/skill/domestic + skill_name = SKILL_DOMESTIC + skill_level = SKILL_DOMESTIC_NONE + max_skill_level = SKILL_DOMESTIC_MAX + +/datum/skill/fireman + skill_name = SKILL_FIREMAN + readable_skill_name = "fireman carrying" + skill_level = SKILL_FIREMAN_DEFAULT + max_skill_level = SKILL_FIREMAN_MAX + +/// Skill with an extra S at the end is a collection of multiple skills. Basically a skillSET +/// This is to organize and provide a common interface to the huge heap of skills there are +/datum/skills + /// The name of the skillset + var/name + // The mob that has this skillset + var/mob/owner + + // List of skill datums. + // Also, if this is populated when the datum is created, it will set the skill levels automagically + var/list/skills = list() + // Same as above, but for children of parents that just add a lil something else + var/list/additional_skills = list() + +/datum/skills/New(mob/skillset_owner) + owner = skillset_owner + + // Setup every single skill + for(var/skill_type in subtypesof(/datum/skill)) + var/datum/skill/S = new skill_type() + + // Fancy hack to convert a list of desired skill levels in each named skill into a skill level in the actual skill datum + // Lets the skills list be used multipurposely for both storing skill datums and choosing skill levels for different skillsets + var/predetermined_skill_level = additional_skills[S.skill_name] ? additional_skills[S.skill_name] : skills[S.skill_name] + skills[S.skill_name] = S + + if(!isnull(predetermined_skill_level)) + S.set_skill(predetermined_skill_level, owner) + +/datum/skills/Destroy() + owner = null + skills = null // Don't need to delete, /datum/skill should softdel + SStgui.close_uis(src) + return ..() + +// Checks if the given skill is contained in this skillset at all +/datum/skills/proc/has_skill(skill) + return isnull(skills[skill]) + +// Returns the skill DATUM for the given skill +/datum/skills/proc/get_skill(skill) + if(!skills) + return null + return skills[skill] + +// Returns the skill level for the given skill +/datum/skills/proc/get_skill_level(skill) + var/datum/skill/S = get_skill(skill) + if(!S) + return -1 + if(QDELETED(S)) + return -1 + return S.get_skill_level() + +// Sets the skill LEVEL for a given skill +/datum/skills/proc/set_skill(skill, new_level) + var/datum/skill/S = skills[skill] + if(!S) + return + return S.set_skill(new_level, owner) + +/datum/skills/proc/increment_skill(skill, increment, cap) + var/datum/skill/S = skills[skill] + if(!S || skillcheck(owner, skill, cap)) + return + return S.set_skill(min(cap,S.skill_level+increment), owner) + +/datum/skills/proc/decrement_skill(skill, increment) + var/datum/skill/S = skills[skill] + if(!S) + return + return S.set_skill(max(0,S.skill_level-increment), owner) + +// Checks if the skillset is AT LEAST skilled enough to pass a skillcheck for the given skill level +/datum/skills/proc/is_skilled(skill, req_level, is_explicit = FALSE) + var/datum/skill/S = get_skill(skill) + if(QDELETED(S)) + return FALSE + return S.is_skilled(req_level, is_explicit) + +// Adjusts the full skillset to a new type of skillset. Pass the datum type path for the desired skillset +/datum/skills/proc/set_skillset(skillset_type) + var/datum/skills/skillset = new skillset_type() + var/list/skill_levels = initial(skillset.skills) + + name = skillset.name + for(var/skill in skill_levels) + set_skill(skill, skill_levels[skill]) + qdel(skillset) diff --git a/code/datums/skills/synthetic.dm b/code/datums/skills/synthetic.dm new file mode 100644 index 000000000000..3925dd9605b3 --- /dev/null +++ b/code/datums/skills/synthetic.dm @@ -0,0 +1,90 @@ +/* +--------------------- +SYNTHETIC +--------------------- +*/ + +/datum/skills/synthetic + name = "Synthetic" + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MASTER, + SKILL_SURGERY = SKILL_SURGERY_EXPERT, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + ) + +/datum/skills/colonial_synthetic + name = SYNTH_COLONY + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, + ) + +/datum/skills/working_joe + name = SYNTH_WORKING_JOE + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, //So they can fully use the Maintenance Jack + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, + ) + +/datum/skills/infiltrator_synthetic + name = SYNTH_INFILTRATOR + skills = list( + SKILL_CQC = SKILL_CQC_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MASTER, + SKILL_SURGERY = SKILL_SURGERY_EXPERT, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_SUPER, + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_MAX, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_CREWMAN, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, + SKILL_ANTAG = SKILL_ANTAG_AGENT, + ) diff --git a/code/datums/skills/upp.dm b/code/datums/skills/upp.dm new file mode 100644 index 000000000000..77401ab62878 --- /dev/null +++ b/code/datums/skills/upp.dm @@ -0,0 +1,218 @@ +/* +-------------------------- +UNITED PROGRESSIVE PEOPLES +-------------------------- +*/ + +//NOTE: UPP make up for their subpar gear with extreme training. + +/datum/skills/upp + name = "UPP Private" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + ) + +/datum/skills/upp/combat_engineer + name = "UPP Sapper" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + ) + +/datum/skills/upp/combat_medic + name = "UPP Medic" + skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_DEFAULT, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + ) + +/datum/skills/upp/specialist + name = "UPP Specialist" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + ) + +/datum/skills/upp/SL + name = "UPP Squad Leader" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/upp/military_police + name = "UPP Military Police" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + ) + +/datum/skills/upp/officer + name = "UPP Officer" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/upp/kapitan + name = "UPP Kapitan" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/upp/commander + name = "UPP Command Officer" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, + ) +/datum/skills/upp/conscript + name = "UPP Conscript" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + ) + + +//Survivor + +/datum/skills/military/survivor/upp_private + name = "UPP Private" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/upp_sapper + name = "UPP Sapper" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/upp_medic + name = "UPP Medic" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/military/survivor/upp_spec + name = "UPP Specialist" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + ) + +/datum/skills/military/survivor/upp_sl + name = "UPP Squad Leader" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_UPP, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) diff --git a/code/datums/skills/uscm.dm b/code/datums/skills/uscm.dm new file mode 100644 index 000000000000..8a6d2fd2c8c2 --- /dev/null +++ b/code/datums/skills/uscm.dm @@ -0,0 +1,410 @@ +/* +------------------------------ +United States Colonial Marines +------------------------------ +*/ + +/datum/skills/pfc + name = "Private" + //same as default + +/datum/skills/pfc/crafty + name = "Crafty Private" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + ) + +/datum/skills/combat_medic + name = "Combat Medic" + skills = list( + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/combat_medic/crafty + name = "Crafty Combat Medic" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + ) + +/datum/skills/combat_engineer + name = "Combat Engineer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/smartgunner + name = "Squad Smartgunner" + skills = list( + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + ) + +/datum/skills/specialist + name = "Squad Weapons Specialist" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set. + SKILL_SPEC_WEAPONS = SKILL_SPEC_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER + ) + +/datum/skills/tl + name = "Fireteam Leader" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/SL + name = "Squad Leader" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/intel + name = "Intelligence Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_INTEL = SKILL_INTEL_EXPERT, + ) + +/* +--------------------- +MILITARY NONCOMBATANT +--------------------- +*/ + +/datum/skills/doctor + name = "Doctor" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + ) + +/datum/skills/nurse + name = "Nurse" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + ) + +/datum/skills/researcher + name = "Researcher" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/pilot + name = "Pilot Officer" + skills = list( + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/crew_chief + name = "Dropship Crew Chief" + skills = list( + SKILL_PILOT = SKILL_PILOT_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + ) + +/datum/skills/MP + name = "Military Police" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/MW + name = "Military Warden" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + ) + +/datum/skills/provost + name = "Provost" + skills = list( + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + ) + +/datum/skills/OT + name = "Ordnance Technician" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/datum/skills/MT + name = "Maintenance Technician" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, + ) + +/datum/skills/mess_technician + name = "Mess Technician" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, // need to hunt food somehow + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER + ) + +/datum/skills/CT + name = "Cargo Technician" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/* +--------------------- +COMMAND STAFF +--------------------- +*/ + +/datum/skills/general + name = "General" + skills = list( + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MAX, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people + SKILL_INTEL = SKILL_INTEL_EXPERT + ) + +/datum/skills/commander + name = "Commanding Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_SPEC_WEAPONS = SKILL_SPEC_SMARTGUN, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_EXECUTION = SKILL_EXECUTION_TRAINED, //can BE people + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED //can change ship alt + ) + +/datum/skills/XO + name = "Executive Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, //to fix CIC apc. + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + ) + +/datum/skills/SO + name = "Staff Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/SEA + name = "Senior Enlisted Advisor" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_FIREARMS = SKILL_FIREARMS_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/SEA/New(mob/skillset_owner) + ..() + give_action(skillset_owner, /datum/action/looc_toggle) + +/datum/skills/SEA/Destroy() + remove_action(owner, /datum/action/looc_toggle) + return ..() + +/datum/skills/CMO + name = "CMO" + skills = list( + SKILL_FIREARMS = SKILL_FIREARMS_CIVILIAN, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_RESEARCH = SKILL_RESEARCH_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/CMP + name = "Chief MP" + skills = list( + SKILL_CQC = SKILL_CQC_SKILLED, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) + +/datum/skills/auxiliary_officer + name = "Auxiliary Support Officer" + skills = list( + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + ) + +/datum/skills/CE + name = "Chief Engineer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + ) + +/datum/skills/RO + name = "Requisition Officer" + skills = list( + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_TRAINED, + ) diff --git a/code/datums/soundOutput.dm b/code/datums/soundOutput.dm index bc5ffd8efcfb..1f4512b28d59 100644 --- a/code/datums/soundOutput.dm +++ b/code/datums/soundOutput.dm @@ -152,11 +152,6 @@ adjust_volume_prefs(VOLUME_AMB, "Set the volume for ambience and soundscapes", 0) soundOutput.update_ambience(null, null, TRUE) -/client/verb/adjust_volume_admin_music() - set name = "Adjust Volume Admin MIDIs" - set category = "Preferences.Sound" - adjust_volume_prefs(VOLUME_ADM, "Set the volume for admin MIDIs", SOUND_CHANNEL_ADMIN_MIDI) - /client/verb/adjust_volume_lobby_music() set name = "Adjust Volume LobbyMusic" set category = "Preferences.Sound" diff --git a/code/datums/stamina/_stamina.dm b/code/datums/stamina/_stamina.dm index 36705e3be300..e233aaa81676 100644 --- a/code/datums/stamina/_stamina.dm +++ b/code/datums/stamina/_stamina.dm @@ -37,13 +37,11 @@ current_stamina = Clamp(current_stamina - amount, 0, max_stamina) if(current_stamina < max_stamina) - if(!(src in active_staminas)) - active_staminas.Add(src) - + START_PROCESSING(SSobj, src) if(amount > 0) apply_rest_period(STAMINA_REST_PERIOD) else - active_staminas.Remove(src) + STOP_PROCESSING(SSobj, src) update_stamina_level() diff --git a/code/datums/statistics/entities/caste_stats.dm b/code/datums/statistics/entities/caste_stats.dm index 639e1b4a05f5..6bfc18d124b7 100644 --- a/code/datums/statistics/entities/caste_stats.dm +++ b/code/datums/statistics/entities/caste_stats.dm @@ -3,6 +3,10 @@ var/total_hits = 0 var/list/abilities_used = list() // types of /datum/entity/statistic, "tail sweep" = 10, "screech" = 2 +/datum/entity/player_stats/caste/Destroy(force) + . = ..() + QDEL_LIST_ASSOC_VAL(abilities_used) + /datum/entity/player_stats/caste/proc/setup_ability(ability) if(!ability) return diff --git a/code/datums/statistics/entities/death_stats.dm b/code/datums/statistics/entities/death_stats.dm index 4a01e4e9d72b..76e3605c157f 100644 --- a/code/datums/statistics/entities/death_stats.dm +++ b/code/datums/statistics/entities/death_stats.dm @@ -84,6 +84,10 @@ if(!mind || statistic_exempt) return + var/area/area = get_area(death_loc) + handle_observer_message(cause_data, cause_mob, death_loc, area) + + // Perform logging above before get_player_from_key to avoid delays var/datum/entity/statistic/death/new_death = DB_ENTITY(/datum/entity/statistic/death) var/datum/entity/player/player_entity = get_player_from_key(mind.ckey) if(player_entity) @@ -95,11 +99,8 @@ new_death.role_name = get_role_name() new_death.mob_name = real_name new_death.faction_name = faction - new_death.is_xeno = FALSE - - var/area/A = get_area(death_loc) - new_death.area_name = A.name + new_death.area_name = area.name new_death.cause_name = cause_data?.cause_name var/datum/entity/player/cause_player = get_player_from_key(cause_data?.ckey) @@ -132,25 +133,23 @@ new_death.total_damage_taken = life_damage_taken_total new_death.total_revives_done = life_revives_total - handle_observer_message(cause_data, cause_mob, death_loc, A) - - if(round_statistics) - round_statistics.track_death(new_death) + if(GLOB.round_statistics) + GLOB.round_statistics.track_death(new_death) new_death.save() new_death.detach() return new_death -/mob/living/carbon/human/track_mob_death(cause, cause_mob) - . = ..(cause, cause_mob, job) +/mob/living/carbon/human/track_mob_death(datum/cause_data/cause_data, turf/death_loc) + . = ..() if(statistic_exempt || !mind) return var/datum/entity/player_stats/human/human_stats = mind.setup_human_stats() if(human_stats && human_stats.death_list) human_stats.death_list.Insert(1, .) -/mob/living/carbon/xenomorph/track_mob_death(cause, cause_mob) - var/datum/entity/statistic/death/new_death = ..(cause, cause_mob, caste_type) +/mob/living/carbon/xenomorph/track_mob_death(datum/cause_data/cause_data, turf/death_loc) + var/datum/entity/statistic/death/new_death = ..() if(!new_death) return new_death.is_xeno = TRUE // this was placed beneath the if below, which meant gibbing as a xeno wouldn't track properly in stats diff --git a/code/datums/statistics/entities/human_stats.dm b/code/datums/statistics/entities/human_stats.dm index 51b07867dfd3..20d5a284becd 100644 --- a/code/datums/statistics/entities/human_stats.dm +++ b/code/datums/statistics/entities/human_stats.dm @@ -5,17 +5,24 @@ var/total_shots = 0 var/total_shots_hit = 0 var/total_screams = 0 - var/datum/entity/weapon_stats/top_weapon = null // reference to /datum/entity/weapon_stats (like tac-shotty) - var/list/weapon_stats_list = list() // list of types /datum/entity/weapon_stats - var/list/job_stats_list = list() // list of types /datum/entity/job_stats - var/list/datum/entity/statistic/medal/medal_list = list() // list of all medals earned + var/list/weapon_stats_list = list() //! indexed list of types /datum/entity/weapon_stats + var/list/job_stats_list = list() //! indexed list of types /datum/entity/job_stats + var/datum/entity/weapon_stats/top_weapon //! reference to /datum/entity/weapon_stats (like tac-shotty) + var/list/datum/entity/statistic/medal/medal_list = list() //! list of all medals earned + +/datum/entity/player_stats/human/Destroy(force) + . = ..() + QDEL_LIST_ASSOC_VAL(weapon_stats_list) + QDEL_LIST_ASSOC_VAL(job_stats_list) + QDEL_NULL(top_weapon) + QDEL_LIST(medal_list) /datum/entity/player_stats/human/get_playtime(type) if(!type) return ..() if(type == "Squad Roles") var/total_squad_time = 0 - for(var/squad_type in job_squad_roles) + for(var/squad_type in GLOB.job_squad_roles) var/datum/entity/player_stats/job/squad_stat = job_stats_list["[squad_type]"] if(!squad_stat) // Have not played the squad role yet continue @@ -23,7 +30,7 @@ return total_squad_time else if(type == "CIC Roles") var/total_command_time = 0 - for(var/command_type in job_command_roles) + for(var/command_type in GLOB.job_command_roles) var/datum/entity/player_stats/job/command_stat = job_stats_list["[command_type]"] if(!command_stat) // Have not played the command role yet continue @@ -115,15 +122,15 @@ S.total_rounds_played++ S.round_played = TRUE S.total_playtime += time - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_playtime += time /datum/entity/player_stats/human/count_personal_death(job) var/datum/entity/player_stats/job/S = setup_job_stats(job) S.total_deaths++ - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_deaths++ //****************** @@ -133,27 +140,27 @@ /datum/entity/player_stats/human/count_personal_human_kill(job_name, cause, job) var/datum/entity/player_stats/job/S = setup_job_stats(job) S.count_human_kill(job_name, cause) - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.count_human_kill(job_name, cause) if(cause) var/datum/entity/weapon_stats/W = setup_weapon_stats(cause) W.count_human_kill(job_name) - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(cause) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(cause) R.count_human_kill(job_name) /datum/entity/player_stats/human/count_personal_xeno_kill(caste_type, cause, job) var/datum/entity/player_stats/job/S = setup_job_stats(job) S.count_xeno_kill(caste_type, cause) - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.count_xeno_kill(caste_type, cause) if(cause) var/datum/entity/weapon_stats/W = setup_weapon_stats(cause) W.count_xeno_kill(caste_type) - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(cause) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(cause) R.count_xeno_kill(caste_type) /datum/entity/player_stats/human/count_human_kill(job_name, cause, job) @@ -162,8 +169,8 @@ if(cause) var/datum/entity/weapon_stats/W = setup_weapon_stats(cause) W.total_kills++ - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(cause) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(cause) R.total_kills++ recalculate_top_weapon() ..() @@ -174,8 +181,8 @@ if(cause) var/datum/entity/weapon_stats/W = setup_weapon_stats(cause) W.total_kills++ - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(cause) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(cause) R.total_kills++ recalculate_top_weapon() ..() @@ -187,8 +194,8 @@ /datum/entity/player_stats/human/count_personal_niche_stat(niche_name, amount = 1, job) var/datum/entity/player_stats/job/S = setup_job_stats(job) S.count_niche_stat(niche_name, amount) - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.count_niche_stat(niche_name, amount) /datum/entity/player_stats/human/count_niche_stat(niche_name, amount = 1, job, weapon) @@ -197,8 +204,8 @@ if(weapon) var/datum/entity/weapon_stats/W = setup_weapon_stats(weapon) W.count_niche_stat(niche_name, amount) - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(weapon) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(weapon) R.count_niche_stat(niche_name, amount) recalculate_top_weapon() ..() @@ -208,8 +215,8 @@ return var/datum/entity/player_stats/job/S = setup_job_stats(job, FALSE) S.steps_walked += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job, FALSE) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job, FALSE) R.steps_walked += amount /mob/living/carbon/human/track_steps_walked(amount = 1) @@ -230,8 +237,8 @@ if(isnull(S.total_hits)) S.total_hits = 0 S.total_hits += amount - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(weapon) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(weapon) R.total_hits +=amount /mob/proc/track_hit(weapon, amount = 1) @@ -249,8 +256,8 @@ if(isnull(S.total_shots)) S.total_shots = 0 S.total_shots += amount - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(weapon) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(weapon) R.total_shots +=amount /datum/entity/player_stats/human/proc/count_personal_shot(job, amount = 1) @@ -260,8 +267,8 @@ if(isnull(S.total_shots)) S.total_shots = 0 S.total_shots += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_shots += amount /mob/proc/track_shot(weapon, amount = 1) @@ -281,8 +288,8 @@ if(isnull(S.total_shots_hit)) S.total_shots_hit = 0 S.total_shots_hit += amount - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(weapon) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(weapon) R.total_shots_hit += amount /datum/entity/player_stats/human/proc/count_personal_shot_hit(job, amount = 1) @@ -292,8 +299,8 @@ if(isnull(S.total_shots_hit)) S.total_shots_hit = 0 S.total_shots_hit += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_shots_hit += amount /mob/proc/track_shot_hit(weapon, shot_mob, amount = 1) @@ -305,13 +312,13 @@ human_stats.total_shots_hit += amount human_stats.count_weapon_shot_hit(weapon, amount) human_stats.count_personal_shot_hit(job, amount) - if(round_statistics) - round_statistics.total_projectiles_hit += amount + if(GLOB.round_statistics) + GLOB.round_statistics.total_projectiles_hit += amount if(shot_mob) if(ishuman(shot_mob)) - round_statistics.total_projectiles_hit_human += amount + GLOB.round_statistics.total_projectiles_hit_human += amount else if(isxeno(shot_mob)) - round_statistics.total_projectiles_hit_xeno += amount + GLOB.round_statistics.total_projectiles_hit_xeno += amount /datum/entity/player_stats/human/proc/count_weapon_friendly_fire(weapon, amount = 1) if(!weapon) @@ -320,8 +327,8 @@ if(isnull(S.total_friendly_fire)) S.total_friendly_fire = 0 S.total_friendly_fire += amount - if(round_statistics) - var/datum/entity/weapon_stats/R = round_statistics.setup_weapon_stats(weapon) + if(GLOB.round_statistics) + var/datum/entity/weapon_stats/R = GLOB.round_statistics.setup_weapon_stats(weapon) R.total_friendly_fire += amount /datum/entity/player_stats/human/proc/count_personal_friendly_fire(job, amount = 1) @@ -331,8 +338,8 @@ if(isnull(S.total_friendly_fire)) S.total_friendly_fire = 0 S.total_friendly_fire += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_friendly_fire += amount /mob/proc/track_friendly_fire(weapon, amount = 1) @@ -352,8 +359,8 @@ if(isnull(S.total_revives)) S.total_revives = 0 S.total_revives += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_revives += amount /mob/proc/track_revive(job, amount = 1) @@ -372,8 +379,8 @@ if(isnull(S.total_lives_saved)) S.total_lives_saved = 0 S.total_lives_saved += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_lives_saved += amount /mob/proc/track_life_saved(job, amount = 1) @@ -392,8 +399,8 @@ if(isnull(S.total_screams)) S.total_screams = 0 S.total_screams += amount - if(round_statistics) - var/datum/entity/player_stats/job/R = round_statistics.setup_job_stats(job) + if(GLOB.round_statistics) + var/datum/entity/player_stats/job/R = GLOB.round_statistics.setup_job_stats(job) R.total_screams += amount /mob/proc/track_scream(job, amount = 1) diff --git a/code/datums/statistics/entities/job_stats.dm b/code/datums/statistics/entities/job_stats.dm index ecde1c942082..199c2adb3160 100644 --- a/code/datums/statistics/entities/job_stats.dm +++ b/code/datums/statistics/entities/job_stats.dm @@ -1,8 +1,8 @@ /datum/entity/player_stats/job - var/name = null - var/total_friendly_fire = null - var/total_revives = null - var/total_lives_saved = null - var/total_shots = null - var/total_shots_hit = null - var/total_screams = null + var/name + var/total_friendly_fire + var/total_revives + var/total_lives_saved + var/total_shots + var/total_shots_hit + var/total_screams diff --git a/code/datums/statistics/entities/panel_stats.dm b/code/datums/statistics/entities/panel_stats.dm index d6e391e1731f..5cfb888b8ea1 100644 --- a/code/datums/statistics/entities/panel_stats.dm +++ b/code/datums/statistics/entities/panel_stats.dm @@ -3,17 +3,17 @@ //******************************************************* -/datum/entity/player_entity/proc/show_statistics(mob/user, datum/entity/statistic/round/viewing_round = round_statistics, update_data = FALSE) +/datum/entity/player_entity/proc/show_statistics(mob/user, datum/entity/statistic/round/viewing_round = GLOB.round_statistics, update_data = FALSE) if(update_data) - update_panel_data(round_statistics) + update_panel_data(GLOB.round_statistics) ui_interact(user) -/datum/entity/player_entity/proc/ui_interact(mob/user, ui_key = "statistics", datum/nanoui/ui = null, force_open = 1) +/datum/entity/player_entity/proc/ui_interact(mob/user, ui_key = "statistics", datum/nanoui/ui, force_open = 1) data["menu"] = menu data["subMenu"] = subMenu data["dataMenu"] = dataMenu - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui = SSnano.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if(!ui) ui = new(user, src, ui_key, "cm_stat_panel.tmpl", "Statistics", 450, 700, null, -1) @@ -31,7 +31,7 @@ if(href_list["dataMenu"]) dataMenu = href_list["dataMenu"] - nanomanager.update_uis(src) + SSnano.nanomanager.update_uis(src) /datum/entity/player_entity/proc/check_eye() return @@ -68,7 +68,7 @@ //*******************PLAYER DATA************************* //******************************************************* -/datum/entity/player_entity/proc/update_panel_data(datum/entity/statistic/round/viewing_round = round_statistics) +/datum/entity/player_entity/proc/update_panel_data(datum/entity/statistic/round/viewing_round = GLOB.round_statistics) data["current_time"] = worldtime2text() if(viewing_round) diff --git a/code/datums/statistics/entities/player_entity.dm b/code/datums/statistics/entities/player_entity.dm index 72f4d95d7aa3..f0b3d37ede7e 100644 --- a/code/datums/statistics/entities/player_entity.dm +++ b/code/datums/statistics/entities/player_entity.dm @@ -8,8 +8,8 @@ /datum/entity/player_entity var/name var/ckey // "cakey" - var/list/datum/entity/player_stats = list() - var/list/datum/entity/statistic/death/death_stats = list() + var/list/player_stats = list() //! Indeed list of /datum/entity/player_stats + var/list/death_stats = list() //! Indexed list of /datum/entity/statistic/death var/menu = 0 var/subMenu = 0 var/dataMenu = 0 @@ -18,6 +18,11 @@ var/savefile_version var/save_loaded = FALSE +/datum/entity/player_entity/Destroy(force) + QDEL_LIST_ASSOC_VAL(player_stats) + QDEL_LIST_ASSOC_VAL(death_stats) + return ..() + /datum/entity/player_entity/proc/get_playtime(branch, type) var/playtime = 0 if(player_stats["[branch]"]) diff --git a/code/datums/statistics/entities/player_stats.dm b/code/datums/statistics/entities/player_stats.dm index b378d7c2ea24..a8444c1a5894 100644 --- a/code/datums/statistics/entities/player_stats.dm +++ b/code/datums/statistics/entities/player_stats.dm @@ -6,13 +6,21 @@ var/total_rounds_played = 0 var/steps_walked = 0 var/round_played = FALSE - var/datum/entity/statistic/nemesis = null // "runner" = 3 + var/datum/entity/statistic/nemesis // "runner" = 3 var/list/niche_stats = list() // list of type /datum/entity/statistic, "Total Executions" = number var/list/humans_killed = list() // list of type /datum/entity/statistic, "jobname2" = number var/list/xenos_killed = list() // list of type /datum/entity/statistic, "caste" = number var/list/death_list = list() // list of type /datum/entity/death_stats var/display_stat = TRUE +/datum/entity/player_stats/Destroy(force) + QDEL_NULL(nemesis) + QDEL_LIST_ASSOC_VAL(niche_stats) + QDEL_LIST_ASSOC_VAL(humans_killed) + QDEL_LIST_ASSOC_VAL(xenos_killed) + QDEL_LIST_ASSOC_VAL(death_list) + return ..() + /datum/entity/player_stats/proc/get_playtime() return total_playtime @@ -73,10 +81,10 @@ /mob/proc/track_death_calculations() if(statistic_exempt || statistic_tracked) return - if(round_statistics) - round_statistics.recalculate_nemesis() + if(GLOB.round_statistics) + GLOB.round_statistics.recalculate_nemesis() if(mind && mind.player_entity) - mind.player_entity.update_panel_data(round_statistics) + mind.player_entity.update_panel_data(GLOB.round_statistics) statistic_tracked = TRUE //***************** diff --git a/code/datums/statistics/entities/round_stats.dm b/code/datums/statistics/entities/round_stats.dm index 0e1fb6e387db..25543dff22b1 100644 --- a/code/datums/statistics/entities/round_stats.dm +++ b/code/datums/statistics/entities/round_stats.dm @@ -23,7 +23,7 @@ var/total_slashes = 0 // untracked data - var/datum/entity/statistic/map/current_map = null // reference to current map + var/datum/entity/statistic/map/current_map // reference to current map var/list/datum/entity/statistic/death/death_stats_list = list() var/list/abilities_used = list() // types of /datum/entity/statistic, "tail sweep" = 10, "screech" = 2 @@ -37,8 +37,20 @@ var/list/job_stats_list = list() // list of types /datum/entity/job_stats // nanoui data - var/round_data[0] - var/death_data[0] + var/list/round_data = list() + var/list/death_data = list() + +/datum/entity/statistic/round/Destroy(force) + . = ..() + QDEL_NULL(current_map) + QDEL_LIST(death_stats_list) + QDEL_LIST_ASSOC_VAL(abilities_used) + QDEL_LIST_ASSOC_VAL(final_participants) + QDEL_LIST_ASSOC_VAL(hijack_participants) + QDEL_LIST_ASSOC_VAL(total_deaths) + QDEL_LIST_ASSOC_VAL(caste_stats_list) + QDEL_LIST_ASSOC_VAL(weapon_stats_list) + QDEL_LIST_ASSOC_VAL(job_stats_list) /datum/entity_meta/statistic_round entity_type = /datum/entity/statistic/round @@ -72,9 +84,9 @@ if(!round_stats) var/datum/entity/mc_round/mc_round = SSentity_manager.select(/datum/entity/mc_round) var/operation_name - operation_name = "[pick(operation_titles)]" - operation_name += " [pick(operation_prefixes)]" - operation_name += "-[pick(operation_postfixes)]" + operation_name = "[pick(GLOB.operation_titles)]" + operation_name += " [pick(GLOB.operation_prefixes)]" + operation_name += "-[pick(GLOB.operation_postfixes)]" // Round stats round_stats = DB_ENTITY(/datum/entity/statistic/round) @@ -86,7 +98,7 @@ round_stats.save() // Setup the global reference - round_statistics = round_stats + GLOB.round_statistics = round_stats // Map stats var/datum/entity/statistic/map/new_map = DB_EKEY(/datum/entity/statistic/map, SSmapping.configs[GROUND_MAP].map_name) @@ -364,7 +376,7 @@ stats += "Xenos remaining: [end_of_round_xenos]\n" stats += "Hijack time: [duration2text(round_hijack_time)]\n" - stats += "[log_end]" + stats += "[GLOB.log_end]" WRITE_LOG(GLOB.round_stats, stats) @@ -384,4 +396,4 @@ if(!can_use_action()) return - owner.client.player_entity.show_statistics(owner, round_statistics, TRUE) + owner.client.player_entity.show_statistics(owner, GLOB.round_statistics, TRUE) diff --git a/code/datums/statistics/entities/weapon_stats.dm b/code/datums/statistics/entities/weapon_stats.dm index 0d8458c20de2..9fff5c514458 100644 --- a/code/datums/statistics/entities/weapon_stats.dm +++ b/code/datums/statistics/entities/weapon_stats.dm @@ -1,16 +1,23 @@ /datum/entity/weapon_stats - var/datum/entity/player = null // "deanthelis" - var/list/niche_stats = list() // list of type /datum/entity/statistic, "Total Reloads" = number - var/list/humans_killed = list() // list of type /datum/entity/statistic, "jobname2" = number - var/list/xenos_killed = list() // list of type /datum/entity/statistic, "caste" = number - var/name = null + var/datum/entity/player + var/list/niche_stats = list() //! Indexed list of /datum/entity/statistic, "Total Reloads" = number + var/list/humans_killed = list() //! Indexed list of /datum/entity/statistic, "jobname2" = number + var/list/xenos_killed = list() //! Indexed list of /datum/entity/statistic, "caste" = number + var/name var/total_kills = 0 - var/total_hits = null - var/total_shots = null - var/total_shots_hit = null - var/total_friendly_fire = null + var/total_hits + var/total_shots + var/total_shots_hit + var/total_friendly_fire var/display_stat = TRUE +/datum/entity/weapon_stats/Destroy(force) + player = null + QDEL_LIST_ASSOC_VAL(niche_stats) + QDEL_LIST_ASSOC_VAL(humans_killed) + QDEL_LIST_ASSOC_VAL(xenos_killed) + return ..() + /datum/entity/weapon_stats/proc/count_human_kill(job_name) if(!job_name) return diff --git a/code/datums/statistics/entities/xeno_stats.dm b/code/datums/statistics/entities/xeno_stats.dm index 9ed327258258..9703c8c5e397 100644 --- a/code/datums/statistics/entities/xeno_stats.dm +++ b/code/datums/statistics/entities/xeno_stats.dm @@ -4,6 +4,12 @@ var/list/caste_stats_list = list() // list of types /datum/entity/player_stats/caste var/list/datum/entity/statistic/medal/medal_list = list() // list of all royal jelly earned +/datum/entity/player_stats/xeno/Destroy(force) + . = ..() + QDEL_NULL(top_caste) + QDEL_LIST_ASSOC_VAL(caste_stats_list) + QDEL_LIST(medal_list) + /datum/entity/player_stats/xeno/get_playtime(type) if(!type || type == FACTION_XENOMORPH) return ..() @@ -72,15 +78,15 @@ S.total_rounds_played++ S.round_played = TRUE S.total_playtime += time - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.total_playtime += time /datum/entity/player_stats/xeno/count_personal_death(caste) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.total_deaths++ - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.total_deaths++ //****************** @@ -90,16 +96,16 @@ /datum/entity/player_stats/xeno/count_personal_human_kill(job_name, cause, caste) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.count_human_kill(job_name, cause) - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.count_human_kill(job_name, cause) recalculate_top_caste() /datum/entity/player_stats/xeno/count_personal_xeno_kill(caste_type, cause, caste) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.count_xeno_kill(caste_type, cause) - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.count_xeno_kill(caste_type, cause) recalculate_top_caste() @@ -110,15 +116,15 @@ /datum/entity/player_stats/xeno/count_personal_niche_stat(niche_name, amount = 1, caste) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.count_niche_stat(niche_name, amount) - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.count_niche_stat(niche_name, amount) /datum/entity/player_stats/xeno/proc/track_personal_abilities_used(caste, ability, amount = 1) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.track_personal_abilities_used(ability, amount) - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.track_personal_abilities_used(ability, amount) /mob/living/carbon/xenomorph/proc/track_ability_usage(ability, caste, amount = 1) @@ -131,8 +137,8 @@ /datum/entity/player_stats/xeno/count_personal_steps_walked(caste, amount = 1) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.steps_walked += amount - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.steps_walked += amount /mob/living/carbon/xenomorph/track_steps_walked(amount = 1) @@ -148,8 +154,8 @@ /datum/entity/player_stats/xeno/proc/count_personal_slashes(caste, amount = 1) var/datum/entity/player_stats/caste/S = setup_caste_stats(caste) S.total_hits += amount - if(round_statistics) - var/datum/entity/player_stats/caste/R = round_statistics.setup_caste_stats(caste) + if(GLOB.round_statistics) + var/datum/entity/player_stats/caste/R = GLOB.round_statistics.setup_caste_stats(caste) R.total_hits += amount /mob/living/carbon/xenomorph/proc/track_slashes(caste, amount = 1) @@ -161,5 +167,5 @@ xeno_stats.total_hits += amount if(caste_type) xeno_stats.count_personal_slashes(caste_type, amount) - if(round_statistics) - round_statistics.total_slashes += amount + if(GLOB.round_statistics) + GLOB.round_statistics.total_slashes += amount diff --git a/code/datums/statistics/random_facts/random_fact.dm b/code/datums/statistics/random_facts/random_fact.dm index 76c6e82f776d..d327bd36f4f6 100644 --- a/code/datums/statistics/random_facts/random_fact.dm +++ b/code/datums/statistics/random_facts/random_fact.dm @@ -24,8 +24,8 @@ var/datum/entity/statistic/death/death_to_report = null var/mob/mob_to_report = null - if(round_statistics && length(round_statistics.death_stats_list)) - for(var/datum/entity/statistic/death/death in round_statistics.death_stats_list) + if(GLOB.round_statistics && length(GLOB.round_statistics.death_stats_list)) + for(var/datum/entity/statistic/death/death in GLOB.round_statistics.death_stats_list) if(!check_human && !death.is_xeno) continue if(!check_xeno && death.is_xeno) diff --git a/code/datums/status_effects/_status_effect.dm b/code/datums/status_effects/_status_effect.dm new file mode 100644 index 000000000000..ddbd6366d98c --- /dev/null +++ b/code/datums/status_effects/_status_effect.dm @@ -0,0 +1,277 @@ +/// Status effects are used to apply temporary or permanent effects to mobs. +/// This file contains their code, plus code for applying and removing them. +/datum/status_effect + /// The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things. + var/id = "effect" + /// When set initially / in on_creation, this is how long the status effect lasts in deciseconds. + /// While processing, this becomes the world.time when the status effect will expire. + /// -1 = infinite duration. + VAR_PROTECTED/duration = -1 + /// Truthy once duration is initialized + VAR_PRIVATE/duration_set = FALSE + /// When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. + /// Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) + /// While processing, this becomes the world.time when the next tick will occur. + /// -1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale. + var/tick_interval = 1 SECONDS + /// The mob affected by the status effect. + var/mob/living/owner + /// How many of the effect can be on one mob, and/or what happens when you try to add a duplicate. + var/status_type = STATUS_EFFECT_UNIQUE + /// If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced]. + var/on_remove_on_mob_delete = FALSE + /// The typepath to the alert thrown by the status effect when created. + /// Status effect "name"s and "description"s are shown to the owner here. + var/alert_type = /atom/movable/screen/alert/status_effect + /// The alert itself, created in [proc/on_creation] (if alert_type is specified). + var/atom/movable/screen/alert/status_effect/linked_alert + /// Used to define if the status effect should be using SSfasteffects or SSeffects + var/processing_speed = STATUS_EFFECT_FAST_PROCESS + /// Do we self-terminate when a fullheal is called? // CM note: this is rejuvenate + var/remove_on_fullheal = FALSE + + /* Unimplemented feature: Our Rejuv needs refactoring to work with this + /// If remove_on_fullheal is TRUE, what flag do we need to be removed? + var/heal_flag_necessary = HEAL_STATUS + */ + + /* Particle effects feature was cut due to lacking backend, feel free to add when we have backend */ + + /// Timer ID for triggering the effect end precisely + var/timerid + +/datum/status_effect/New(list/arguments) + on_creation(arglist(arguments)) + +/// Called from New() with any supplied status effect arguments. +/// Not guaranteed to exist by the end. +/// Returning FALSE from on_apply will stop on_creation and self-delete the effect. +/datum/status_effect/proc/on_creation(mob/living/new_owner, ...) + SHOULD_NOT_SLEEP(TRUE) // Don't sleep between duration_set and update_timer + if(new_owner) + owner = new_owner + if(QDELETED(owner) || !on_apply()) + qdel(src) + return + if(owner) + LAZYADD(owner.status_effects, src) + RegisterSignal(owner, COMSIG_LIVING_REJUVENATED, PROC_REF(remove_effect_on_heal)) + + if(duration != -1) + duration = world.time + duration + duration_set = TRUE + if(tick_interval != -1) + tick_interval = world.time + tick_interval + + if(alert_type) + var/atom/movable/screen/alert/status_effect/new_alert = owner.throw_alert(id, alert_type) + new_alert.attached_effect = src //so the alert can reference us, if it needs to + linked_alert = new_alert //so we can reference the alert, if we need to + + if(duration > world.time || tick_interval > world.time) //don't process if we don't care + switch(processing_speed) + if(STATUS_EFFECT_FAST_PROCESS) + START_PROCESSING(SSfasteffects, src) + if(STATUS_EFFECT_NORMAL_PROCESS) + START_PROCESSING(SSeffects, src) + update_timer() + + update_particles() + + return TRUE + +/datum/status_effect/Destroy() + if(timerid) + deltimer(timerid) + switch(processing_speed) + if(STATUS_EFFECT_FAST_PROCESS) + STOP_PROCESSING(SSfasteffects, src) + if(STATUS_EFFECT_NORMAL_PROCESS) + STOP_PROCESSING(SSeffects, src) + if(owner) + linked_alert = null + owner.clear_alert(id) + LAZYREMOVE(owner.status_effects, src) + on_remove() + UnregisterSignal(owner, COMSIG_LIVING_REJUVENATED) + owner = null + return ..() + +// Status effect process. Handles adjusting its duration and ticks. +// If you're adding processed effects, put them in [proc/tick] +// instead of extending / overriding the process() proc. +/datum/status_effect/process(seconds_per_tick) + SHOULD_NOT_OVERRIDE(TRUE) + if(QDELETED(owner)) + qdel(src) + return + if(tick_interval != -1 && tick_interval < world.time) + var/tick_length = initial(tick_interval) + tick(tick_length / (1 SECONDS)) + tick_interval = world.time + tick_length + if(QDELING(src)) + // tick deleted us, no need to continue + return + + // Timer and update procs should basically always handle this, it's a safety net + if(!timerid && duration != -1 && duration < world.time) + qdel(src) + else + update_timer() // Attempt to start up end timer + +/// Updates the timer used for precisely ending the effect +/// We force_refresh if the duration changed otherwise than ticking down +/datum/status_effect/proc/update_timer(force_refresh = FALSE) + if(duration == -1 || duration <= world.time) // infinite or expired + return + else if(duration - world.time <= STATUS_EFFECT_TIME_THRESHOLD) + if(!timerid || force_refresh) + timerid = addtimer(CALLBACK(src, PROC_REF(timer_callback)), duration - world.time, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_NO_HASH_WAIT) + else if(timerid) + deltimer(timerid) + timerid = null + +/// Timer invocation callback to end the effect +/datum/status_effect/proc/timer_callback() + if(timerid) + timerid = null + qdel(src) // shrimple as that + +/// Called when the effect is applied in on_created +/// Returning FALSE will cause it to delete itself during creation instead. +/datum/status_effect/proc/on_apply() + return TRUE + +/// Gets and formats examine text associated with our status effect. +/// Return 'null' to have no examine text appear (default behavior). +/datum/status_effect/proc/get_examine_text() + return null + +/** + * Called every tick from process(). + * This is only called of tick_interval is not -1. + * + * Note that every tick =/= every processing cycle. + * + * * seconds_between_ticks = This is how many SECONDS that elapse between ticks. + * This is a constant value based upon the initial tick interval set on the status effect. + * It is similar to seconds_per_tick, from processing itself, but adjusted to the status effect's tick interval. + */ +/datum/status_effect/proc/tick(seconds_between_ticks) + return + +/// Called whenever the buff expires or is removed (qdeleted) +/// Note that at the point this is called, it is out of the +/// owner's status_effects list, but owner is not yet null +/datum/status_effect/proc/on_remove() + return + +/// Called instead of on_remove when a status effect +/// of status_type STATUS_EFFECT_REPLACE is replaced by itself, +/// or when a status effect with on_remove_on_mob_delete +/// set to FALSE has its mob deleted +/datum/status_effect/proc/be_replaced() + linked_alert = null + owner.clear_alert(id) + LAZYREMOVE(owner.status_effects, src) + owner = null + qdel(src) + +/// Called before being fully removed (before on_remove) +/// Returning FALSE will cancel removal +/datum/status_effect/proc/before_remove() + return TRUE + +/// Called when a status effect of status_type STATUS_EFFECT_REFRESH +/// has its duration refreshed in apply_status_effect - is passed New() args +/datum/status_effect/proc/refresh(effect, ...) + var/original_duration = initial(duration) + if(original_duration == -1) + return + duration = world.time + original_duration + update_timer(force_refresh = TRUE) + +/// Adds nextmove modifier multiplicatively to the owner while applied +/datum/status_effect/proc/nextmove_modifier() + return 1 + +/// Adds nextmove adjustment additiviely to the owner while applied +/datum/status_effect/proc/nextmove_adjust() + return 0 + +/// Signal proc for [COMSIG_LIVING_REJUVENATED] to remove us on fullheal +/datum/status_effect/proc/remove_effect_on_heal(datum/source, heal_flags) + SIGNAL_HANDLER + + if(!remove_on_fullheal) + return + +// if(!heal_flag_necessary || (heal_flags & heal_flag_necessary)) +// qdel(src) + qdel(src) + +/// Updates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time. +/// If increment is truthy, we only update if the resulting amount is higher. +/datum/status_effect/proc/update_duration(amount, increment = FALSE) + if(!duration_set) // Barebones setter for before we start everything up + if(increment) + duration = max(duration, amount) + else + duration = amount + return FALSE + if(duration == -1) // Infinite duration + return FALSE + var/new_duration = world.time + amount + if(increment && duration >= new_duration) + return FALSE + duration = new_duration + if(duration <= world.time) + qdel(src) + return TRUE + update_timer(force_refresh = TRUE) + return FALSE + +/// Updates the duration of the status effect to the given [amount] of deciseconds from its current set ending +/datum/status_effect/proc/adjust_duration(amount) + if(!duration_set) + duration += amount + return FALSE + if(duration == -1) + return FALSE + var/remaining = duration - world.time + remaining += amount + return update_duration(remaining) + +/// Remove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/. +/datum/status_effect/proc/remove_duration(amount) + adjust_duration(-amount) + +/// Get duration left on the effect +/datum/status_effect/proc/get_duration_left() + if(!duration_set) + return -1 + var/remaining = duration - world.time + if(remaining < 0) + return -1 + return remaining + + +/** + * Updates the particles for the status effects + * Should be handled by subtypes! + */ + +/datum/status_effect/proc/update_particles() + SHOULD_CALL_PARENT(FALSE) + +/// Alert base type for status effect alerts +/atom/movable/screen/alert/status_effect + name = "Curse of Mundanity" + desc = "You don't feel any different..." + /// The status effect we're linked to + var/datum/status_effect/attached_effect + +/atom/movable/screen/alert/status_effect/Destroy() + attached_effect = null //Don't keep a ref now + return ..() + diff --git a/code/datums/status_effects/_status_effect_helpers.dm b/code/datums/status_effects/_status_effect_helpers.dm new file mode 100644 index 000000000000..02a4f9a5ccea --- /dev/null +++ b/code/datums/status_effects/_status_effect_helpers.dm @@ -0,0 +1,137 @@ + +// Status effect helpers for living mobs + +/** + * Applies a given status effect to this mob. + * + * new_effect - TYPEPATH of a status effect to apply. + * Additional status effect arguments can be passed. + * + * Returns the instance of the created effected, if successful. + * Returns 'null' if unsuccessful. + */ +/mob/living/proc/apply_status_effect(datum/status_effect/new_effect, ...) + RETURN_TYPE(/datum/status_effect) + + // The arguments we pass to the start effect. The 1st argument is this mob. + var/list/arguments = args.Copy() + arguments[1] = src + + // If the status effect we're applying doesn't allow multiple effects, we need to handle it + if(initial(new_effect.status_type) != STATUS_EFFECT_MULTIPLE) + for(var/datum/status_effect/existing_effect as anything in status_effects) + if(existing_effect.id != initial(new_effect.id)) + continue + + switch(existing_effect.status_type) + // Multiple are allowed, continue as normal. (Not normally reachable) + if(STATUS_EFFECT_MULTIPLE) + break + // Only one is allowed of this type - early return + if(STATUS_EFFECT_UNIQUE) + return + // Replace the existing instance (deletes it). + if(STATUS_EFFECT_REPLACE) + existing_effect.be_replaced() + // Refresh the existing type, then early return + if(STATUS_EFFECT_REFRESH) + existing_effect.refresh(arglist(arguments)) + return + + // Create the status effect with our mob + our arguments + var/datum/status_effect/new_instance = new new_effect(arguments) + SEND_SIGNAL(src, COMSIG_LIVING_APPLY_EFFECT, new_instance) + if(!QDELETED(new_instance)) + return new_instance + +/** + * Removes all instances of a given status effect from this mob + * + * removed_effect - TYPEPATH of a status effect to remove. + * Additional status effect arguments can be passed - these are passed into before_remove. + * + * Returns TRUE if at least one was removed. + */ +/mob/living/proc/remove_status_effect(datum/status_effect/removed_effect, ...) + var/list/arguments = args.Copy(2) + + . = FALSE + for(var/datum/status_effect/existing_effect as anything in status_effects) + if(existing_effect.id == initial(removed_effect.id) && existing_effect.before_remove(arguments)) + qdel(existing_effect) + . = TRUE + + return . + +/** + * Checks if this mob has a status effect that shares the passed effect's ID + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns an instance of a status effect, or NULL if none were found. + */ +/mob/proc/has_status_effect(datum/status_effect/checked_effect) + // Yes I'm being cringe and putting this on the mob level even though status effects only apply to the living level + // There's quite a few places (namely examine and, bleh, cult code) where it's easier to not need to cast to living before checking + // for an effect such as blindness + return null + +/mob/living/has_status_effect(datum/status_effect/checked_effect) + RETURN_TYPE(/datum/status_effect) + + for(var/datum/status_effect/present_effect as anything in status_effects) + if(present_effect.id == initial(checked_effect.id)) + return present_effect + + return null + +/** + * Checks if this mob has a status effect that shares the passed effect's ID + * and has the passed sources are in its list of sources (ONLY works for grouped efects!) + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns an instance of a status effect, or NULL if none were found. + */ +/mob/proc/has_status_effect_from_source(datum/status_effect/grouped/checked_effect, sources) + // See [/mob/proc/has_status_effect] for reason behind having this on the mob level + return null + +/mob/living/has_status_effect_from_source(datum/status_effect/grouped/checked_effect, sources) + RETURN_TYPE(/datum/status_effect) + + if(!ispath(checked_effect)) + CRASH("has_status_effect_from_source passed with an improper status effect path.") + + if(!islist(sources)) + sources = list(sources) + + for(var/datum/status_effect/grouped/present_effect in status_effects) + if(present_effect.id != initial(checked_effect.id)) + continue + var/list/matching_sources = present_effect.sources & sources + if(length(matching_sources)) + return present_effect + + return null + +/** + * Returns a list of all status effects that share the passed effect type's ID + * + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * + * Returns a list + */ +/mob/proc/has_status_effect_list(datum/status_effect/checked_effect) + // See [/mob/proc/has_status_effect] for reason behind having this on the mob level + return null + +/mob/living/has_status_effect_list(datum/status_effect/checked_effect) + RETURN_TYPE(/list) + + var/list/effects_found = list() + for(var/datum/status_effect/present_effect as anything in status_effects) + if(present_effect.id == initial(checked_effect.id)) + effects_found += present_effect + + return effects_found diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm new file mode 100644 index 000000000000..0ecfead05615 --- /dev/null +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -0,0 +1,120 @@ +//Largely negative status effects go here, even if they have small benificial effects +//STUN EFFECTS +/datum/status_effect/incapacitating + tick_interval = -1 + status_type = STATUS_EFFECT_REPLACE + alert_type = null + remove_on_fullheal = TRUE +// heal_flag_necessary = HEAL_CC_STATUS + var/needs_update_stat = FALSE + +/datum/status_effect/incapacitating/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + update_duration(set_duration) + . = ..() + if(. && needs_update_stat) + owner.update_stat() + + +/datum/status_effect/incapacitating/on_remove() + if(needs_update_stat ) //silicons need stat updates in addition to normal canmove updates + owner.update_stat() + return ..() + +//STUN +/datum/status_effect/incapacitating/stun + id = "stun" +// alert_type = /atom/movable/screen/alert/status_effect/stun + +/datum/status_effect/incapacitating/stun/on_apply() + . = ..() + if(!.) + return + owner.add_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED /*, TRAIT_HANDS_BLOCKED*/), TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/stun/on_remove() + owner.remove_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED /*, TRAIT_HANDS_BLOCKED*/), TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/stun + name = "Stunned" + desc = "You are incapacitated. You may not move or act." + icon_state = ALERT_INCAPACITATED + + +//KNOCKDOWN +/datum/status_effect/incapacitating/knockdown + id = "knockdown" +// alert_type = /atom/movable/screen/alert/status_effect/knockdown + +/datum/status_effect/incapacitating/knockdown/on_apply() + . = ..() + if(!.) + return + owner.add_traits(list(TRAIT_FLOORED, TRAIT_IMMOBILIZED), TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/knockdown/on_remove() + owner.remove_traits(list(TRAIT_FLOORED, TRAIT_IMMOBILIZED), TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/knockdown + name = "Floored" + desc = "You can't stand up!" + icon_state = ALERT_FLOORED + +//IMMOBILIZED +/datum/status_effect/incapacitating/immobilized + id = "immobilized" +// alert_type = /atom/movable/screen/alert/status_effect/immobilized + +/datum/status_effect/incapacitating/immobilized/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/immobilized/on_remove() + REMOVE_TRAIT(owner, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/immobilized + name = "Immobilized" + desc = "You can't move." + icon_state = ALERT_IMMOBILIZED + +//UNCONSCIOUS +/datum/status_effect/incapacitating/unconscious + id = "unconscious" + needs_update_stat = TRUE +// alert_type = /atom/movable/screen/alert/status_effect/unconscious + +/datum/status_effect/incapacitating/unconscious/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_KNOCKEDOUT, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/unconscious/on_remove() + REMOVE_TRAIT(owner, TRAIT_KNOCKEDOUT, TRAIT_STATUS_EFFECT(id)) + return ..() + +/atom/movable/screen/alert/status_effect/unconscious + name = "Unconscious" + desc = "You've been knocked out." + icon_state = ALERT_KNOCKEDOUT + +/// DAZED: +/// This prevents talking as human or using abilities as Xenos, mainly +/datum/status_effect/incapacitating/dazed + id = "dazed" + needs_update_stat = TRUE + +/datum/status_effect/incapacitating/dazed/on_apply() + . = ..() + if(!.) + return + ADD_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/incapacitating/dazed/on_remove() + REMOVE_TRAIT(owner, TRAIT_DAZED, TRAIT_STATUS_EFFECT(id)) + return ..() diff --git a/code/datums/status_effects/grouped_effect.dm b/code/datums/status_effects/grouped_effect.dm new file mode 100644 index 000000000000..ade0a187e0db --- /dev/null +++ b/code/datums/status_effects/grouped_effect.dm @@ -0,0 +1,20 @@ +/// Status effect from multiple sources, when all sources are removed, so is the effect +/datum/status_effect/grouped + // Grouped effects adds itself to [var/sources] and destroys itself if one exists already, there are never actually multiple + status_type = STATUS_EFFECT_MULTIPLE + /// A list of all sources applying this status effect. Sources are a list of keys + var/list/sources = list() + +/datum/status_effect/grouped/on_creation(mob/living/new_owner, source) + var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type) + if(existing) + existing.sources |= source + qdel(src) + return FALSE + + sources |= source + return ..() + +/datum/status_effect/grouped/before_remove(source) + sources -= source + return !length(sources) diff --git a/code/datums/status_effects/limited_effect.dm b/code/datums/status_effects/limited_effect.dm new file mode 100644 index 000000000000..0f56e72da52f --- /dev/null +++ b/code/datums/status_effects/limited_effect.dm @@ -0,0 +1,20 @@ +/// These effects reapply their on_apply() effect when refreshed while stacks < max_stacks. +/datum/status_effect/limited_buff + id = "limited_buff" + duration = -1 + status_type = STATUS_EFFECT_REFRESH + ///How many stacks we currently have + var/stacks = 1 + ///How many stacks we can have maximum + var/max_stacks = 3 + +/datum/status_effect/limited_buff/refresh(effect) + if(stacks < max_stacks) + on_apply() + stacks++ + else + maxed_out() + +/// Called whenever the buff is refreshed when there are more stacks than max_stacks. +/datum/status_effect/limited_buff/proc/maxed_out() + return diff --git a/code/datums/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm new file mode 100644 index 000000000000..3ef5855938f7 --- /dev/null +++ b/code/datums/status_effects/stacking_effect.dm @@ -0,0 +1,101 @@ +/// Status effects that can stack. +/datum/status_effect/stacking + id = "stacking_base" + duration = -1 // Only removed under specific conditions. + tick_interval = 1 SECONDS // Deciseconds between decays, once decay starts + alert_type = null + /// How many stacks are currently accumulated. + /// Also, the default stacks number given on application. + var/stacks = 0 + // Deciseconds until ticks start occuring, which removes stacks + /// (first stack will be removed at this time plus tick_interval) + var/delay_before_decay + /// How many stacks are lost per tick (decay trigger) + var/stack_decay = 1 + /// The threshold for having special effects occur when a certain stack number is reached + var/stack_threshold + /// The maximum number of stacks that can be applied + var/max_stacks + /// If TRUE, the status effect is consumed / removed when stack_threshold is met + var/consumed_on_threshold = TRUE + /// Set to true once the stack_threshold is crossed, and false once it falls back below + var/threshold_crossed = FALSE + +/* This implementation is missing effects overlays because we did not have + /tg/ overlays backend available at the time. Feel free to add them when we do! */ + +/// Effects that occur when the stack count crosses stack_threshold +/datum/status_effect/stacking/proc/threshold_cross_effect() + return + +/// Effects that occur if the status effect is removed due to the stack_threshold being crossed +/datum/status_effect/stacking/proc/stacks_consumed_effect() + return + +/// Effects that occur if the status is removed due to being under 1 remaining stack +/datum/status_effect/stacking/proc/fadeout_effect() + return + +/// Runs every time tick(), causes stacks to decay over time +/datum/status_effect/stacking/proc/stack_decay_effect() + return + +/// Called when the stack_threshold is crossed (stacks go over the threshold) +/datum/status_effect/stacking/proc/on_threshold_cross() + threshold_cross_effect() + if(consumed_on_threshold) + stacks_consumed_effect() + qdel(src) + +/// Called when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it) +/datum/status_effect/stacking/proc/on_threshold_drop() + return + +/// Whether the owner can have the status effect. +/// Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise +/datum/status_effect/stacking/proc/can_have_status() + return owner.stat != DEAD + +/// Whether the owner can currently gain stacks or not +/// Return FALSE if the owner is not in a valid state, or TRUE otherwise +/datum/status_effect/stacking/proc/can_gain_stacks() + return owner.stat != DEAD + +/datum/status_effect/stacking/tick(seconds_between_ticks) + if(!can_have_status()) + qdel(src) + else + add_stacks(-stack_decay) + stack_decay_effect() + +/// Add (or remove) [stacks_added] stacks to our current stack count. +/datum/status_effect/stacking/proc/add_stacks(stacks_added) + if(stacks_added > 0 && !can_gain_stacks()) + return FALSE + stacks += stacks_added + if(stacks > 0) + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold + threshold_crossed = TRUE + on_threshold_cross() + if(consumed_on_threshold) + return + else if(stacks < stack_threshold && threshold_crossed) + threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again + on_threshold_drop() + if(stacks_added > 0) + tick_interval += delay_before_decay //refreshes time until decay + stacks = min(stacks, max_stacks) + else + fadeout_effect() + qdel(src) //deletes status if stacks fall under one + +/datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply) + . = ..() + if(.) + add_stacks(stacks_to_apply) + +/datum/status_effect/stacking/on_apply() + if(!can_have_status()) + return FALSE + return ..() + diff --git a/code/datums/supply_packs/_supply_packs.dm b/code/datums/supply_packs/_supply_packs.dm index 061779d9e5ce..5bcd6937f623 100644 --- a/code/datums/supply_packs/_supply_packs.dm +++ b/code/datums/supply_packs/_supply_packs.dm @@ -20,7 +20,6 @@ var/group = null var/buyable = 1 ///Can this pack be bought? These packs don't show up at all - they have to be spawned externally (fe: DEFCON ASRS) var/randomised_num_contained = 0 //Randomly picks X of items out of the contains list instead of using all. - var/iteration_needed = 0 /// How many W-Y dollars are deducted from the supply controller. Only use for contraband. var/dollar_cost = 0 /// How much "heat" this crate adds, too much heat will send an investigation. Only use for contraband. diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm index 5f8fae824312..43e0358a96f9 100644 --- a/code/datums/supply_packs/black_market.dm +++ b/code/datums/supply_packs/black_market.dm @@ -101,7 +101,7 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related. new /obj/item/clothing/head/helmet/marine/veteran/UPP(src) new /obj/item/clothing/under/marine/veteran/UPP(src) new /obj/item/clothing/suit/storage/marine/faction/UPP(src) - new /obj/item/clothing/shoes/marine/upp(src) + new /obj/item/clothing/shoes/marine/upp/knife(src) new /obj/item/clothing/gloves/marine/veteran(src) new /obj/item/storage/backpack/lightpack/five_slot(src) if(5) //freelancer @@ -127,70 +127,42 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related. spawn_guns() //the crate gives 2 guns /obj/structure/largecrate/black_market/confiscated_weaponry/proc/spawn_guns() - switch(rand(1,6)) + switch(rand(1, 5)) if(1) //pmc - if(prob(50)) - new /obj/item/weapon/gun/rifle/nsg23/no_lock(src) - new /obj/item/ammo_magazine/rifle/nsg23(src) - new /obj/item/ammo_magazine/rifle/nsg23(src) - new /obj/item/ammo_magazine/rifle/nsg23/ap(src) - new /obj/item/ammo_magazine/rifle/nsg23/extended(src) - else - new /obj/item/weapon/gun/smg/fp9000(src) - new /obj/item/ammo_magazine/smg/fp9000(src) - new /obj/item/ammo_magazine/smg/fp9000(src) - new /obj/item/ammo_magazine/smg/fp9000(src) - new /obj/item/ammo_magazine/smg/fp9000(src) + new /obj/item/weapon/gun/smg/fp9000(src) + new /obj/item/ammo_magazine/smg/fp9000(src) + new /obj/item/ammo_magazine/smg/fp9000(src) + new /obj/item/ammo_magazine/smg/fp9000(src) + new /obj/item/ammo_magazine/smg/fp9000(src) if(2) //pizza new /obj/item/weapon/gun/pistol/holdout(src) new /obj/item/ammo_magazine/pistol/holdout(src) if(3) //clf - switch(rand(1, 3)) + switch(rand(1, 2)) if(1) - new /obj/item/weapon/twohanded/lungemine/damaged(src) - if(2) new /obj/item/weapon/gun/smg/uzi(src) new /obj/item/ammo_magazine/smg/uzi/extended(src) new /obj/item/ammo_magazine/smg/uzi(src) new /obj/item/ammo_magazine/smg/uzi(src) - if(3) + if(2) new /obj/item/weapon/gun/smg/mac15(src) new /obj/item/ammo_magazine/smg/mac15/extended(src) new /obj/item/ammo_magazine/smg/mac15(src) new /obj/item/ammo_magazine/smg/mac15(src) if(4) //upp - if(prob(50)) - new /obj/item/weapon/gun/rifle/type71(src) - new /obj/item/ammo_magazine/rifle/type71/ap(src) - new /obj/item/ammo_magazine/rifle/type71(src) - new /obj/item/ammo_magazine/rifle/type71(src) - else - new /obj/item/weapon/gun/shotgun/type23/riot_control(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) - new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) //NO buckshot! + new /obj/item/weapon/gun/shotgun/type23/riot_control(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) + new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) //NO buckshot! if(5) //freelancer - if(prob(80)) - new /obj/item/weapon/gun/rifle/mar40(src) - new /obj/item/ammo_magazine/rifle/mar40/extended(src) - new /obj/item/ammo_magazine/rifle/mar40(src) - new /obj/item/ammo_magazine/rifle/mar40(src) - else - new /obj/item/weapon/gun/rifle/mar40/lmg(src) - new /obj/item/ammo_magazine/rifle/mar40/lmg(src) - if(6) //VAIPO - if(prob(50)) - new /obj/item/weapon/gun/rifle/mar40/tactical(src) - new /obj/item/ammo_magazine/rifle/mar40/extended(src) - new /obj/item/ammo_magazine/rifle/mar40/extended(src) - new /obj/item/ammo_magazine/rifle/mar40(src) - else - new /obj/item/weapon/gun/rifle/mar40/lmg(src) - new /obj/item/ammo_magazine/rifle/mar40/lmg(src) - new /obj/item/ammo_magazine/rifle/mar40/lmg(src) + new /obj/item/weapon/gun/rifle/mar40(src) + new /obj/item/ammo_magazine/rifle/mar40/extended(src) + new /obj/item/ammo_magazine/rifle/mar40(src) + new /obj/item/ammo_magazine/rifle/mar40(src) + /* Misc. Individual Guns */ @@ -561,10 +533,6 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat /obj/item/reagent_container/food/snacks/egg/random, /obj/item/reagent_container/food/snacks/egg/random, //not a dupe /obj/item/reagent_container/food/snacks/xemeatpie, - /obj/item/reagent_container/food/snacks/monkeycube, - /obj/item/reagent_container/food/snacks/monkeycube/farwacube, - /obj/item/reagent_container/food/snacks/monkeycube/stokcube, - /obj/item/reagent_container/food/snacks/monkeycube/yirencube, /obj/item/reagent_container/food/snacks/upp, /obj/item/reagent_container/food/snacks/mre_pack/xmas1, /obj/item/reagent_container/food/snacks/mre_pack/xmas2, @@ -617,7 +585,7 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat /obj/item/storage/box/packet/hefa/toy, /obj/item/toy/inflatable_duck, /obj/item/toy/beach_ball, - /obj/item/toy/farwadoll, + /obj/item/toy/plush/farwa, /obj/item/toy/waterflower, /obj/item/toy/spinningtoy, /obj/item/storage/box/snappops, @@ -722,13 +690,6 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted dollar_cost = 50 containertype = /obj/structure/largecrate/black_market -/datum/supply_packs/contraband/surplus/surplus_m4ra_extended - name = "surplus magazine box (Ext M4RA x 12)" - contains = list(/obj/item/ammo_box/magazine/m4ra/ext) - dollar_cost = 45 - crate_heat = 3 - containertype = /obj/structure/largecrate/black_market - /* - Misc. USCM weaponry - */ /datum/supply_packs/contraband/surplus/mk45_automag @@ -788,8 +749,8 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t dollar_cost = 10 containertype = /obj/structure/largecrate/black_market -/datum/supply_packs/contraband/deep_storage/xm42b_pipe - name = "10x99mm XM42B casing" +/datum/supply_packs/contraband/deep_storage/xm43e1_pipe + name = "10x99mm XM43E1 casing" contains = list(/obj/item/prop/helmetgarb/bullet_pipe) dollar_cost = 10 containertype = /obj/structure/largecrate/black_market @@ -1108,7 +1069,7 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro new /obj/item/ammo_magazine/smg/mac15/extended(loc) new /obj/item/ammo_magazine/smg/mac15/extended(loc) loot_message = SPAN_NOTICE("It's some CLF SMG armaments.") - if(21 to 25) + if(21 to 29) // Discovered Yautja ruins.. (None of these will trigger any alarms. They are far too old, degraded, and useless for any Yautja to care.) new /obj/item/clothing/mask/yautja_flavor(loc) new /obj/item/clothing/suit/armor/yautja_flavor(loc) @@ -1116,13 +1077,7 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro new /obj/item/weapon/twohanded/yautja/glaive/damaged(loc) new /obj/item/stack/yautja_rope(loc) loot_message = SPAN_NOTICE("It's some strange ancient gear...?") - if(26 to 30) - // Damaged lunge mines, don't let the marines near these. Not even *close* to effective against even a runner. - new /obj/item/weapon/twohanded/lungemine/damaged(loc) - new /obj/item/weapon/twohanded/lungemine/damaged(loc) - new /obj/item/weapon/twohanded/lungemine/damaged(loc) - loot_message = SPAN_NOTICE("It's a bunch of lunge mines..?") - if(31 to 35) + if(30 to 35) // CLF nades! loot_message = SPAN_NOTICE("It's a package of assorted CLF grenades!") var/list/nades_to_pick = list( diff --git a/code/datums/supply_packs/food.dm b/code/datums/supply_packs/food.dm index 9e0527aed6cf..f74567c78a89 100644 --- a/code/datums/supply_packs/food.dm +++ b/code/datums/supply_packs/food.dm @@ -1,144 +1,47 @@ //Food.Regrouping all the ASRS crate related to food here. - -//All the ingredients that you can grown. - -/datum/supply_packs/potato - name = "Potatoes(x20)" - contains = list( - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper Potato crate" - group = "Food" - -/datum/supply_packs/tomato - name = "tomato (x20)" - contains = list( - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper Tomato crate" - group = "Food" - -/datum/supply_packs/wheat - name = "wheat (x20)" - contains = list( - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - /obj/item/reagent_container/food/snacks/grown/wheat, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper Wheat crate" - group = "Food" - -//All the meats - -/datum/supply_packs/meat - name = "meat(x5)" - contains = list( - /obj/item/reagent_container/food/snacks/meat, - /obj/item/reagent_container/food/snacks/meat, - /obj/item/reagent_container/food/snacks/meat, - /obj/item/reagent_container/food/snacks/meat, - /obj/item/reagent_container/food/snacks/meat, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper meat crate" - group = "Food" - -/datum/supply_packs/carp_fillet - name = "carp fillet (x5)" - contains = list( - /obj/item/reagent_container/food/snacks/carpmeat, - /obj/item/reagent_container/food/snacks/carpmeat, - /obj/item/reagent_container/food/snacks/carpmeat, - /obj/item/reagent_container/food/snacks/carpmeat, - /obj/item/reagent_container/food/snacks/carpmeat, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper carp filet crate" - group = "Food" - -//all the condiment type items - -/datum/supply_packs/condiment - name = "crate of condiments" +// crate of random ingredient that you can buy in vendor in kitchen +/datum/supply_packs/ingredient + name = "surplus boxes of ingredients(x6 boxes)" + randomised_num_contained = 6 contains = list( - /obj/item/reagent_container/food/condiment/enzyme, - /obj/item/reagent_container/food/condiment/sugar, - /obj/item/reagent_container/food/condiment/saltshaker, - /obj/item/reagent_container/food/condiment/peppermill, + /obj/item/storage/fancy/egg_box, + /obj/item/storage/box/fish, + /obj/item/storage/box/meat, + /obj/item/storage/box/milk, + /obj/item/storage/box/soymilk, + /obj/item/storage/box/enzyme, + /obj/item/storage/box/flour, + /obj/item/storage/box/sugar, + /obj/item/storage/box/apple, + /obj/item/storage/box/banana, + /obj/item/storage/box/chanterelle, + /obj/item/storage/box/cherries, + /obj/item/storage/box/chili, + /obj/item/storage/box/cabbage, + /obj/item/storage/box/carrot, + /obj/item/storage/box/corn, + /obj/item/storage/box/eggplant, + /obj/item/storage/box/lemon, + /obj/item/storage/box/lime, + /obj/item/storage/box/orange, + /obj/item/storage/box/potato, + /obj/item/storage/box/tomato, + /obj/item/storage/box/whitebeet, /obj/item/reagent_container/food/condiment/hotsauce/cholula, /obj/item/reagent_container/food/condiment/hotsauce/franks, /obj/item/reagent_container/food/condiment/hotsauce/sriracha, /obj/item/reagent_container/food/condiment/hotsauce/tabasco, + /obj/item/reagent_container/food/drinks/bottle/whiskey, + /obj/item/reagent_container/food/drinks/bottle/tequila, + /obj/item/reagent_container/food/drinks/bottle/rum, + /obj/item/reagent_container/food/drinks/bottle/wine, ) cost = 10 containertype = /obj/structure/closet/crate/freezer - containername = "\improper crate of condiment" + containername = "\improper surplus of ingredients crate" group = "Food" - //all the finish snacks. +//all the finish snacks. /datum/supply_packs/donuts name = "box of donuts (x5)" @@ -165,47 +68,6 @@ containername = "\improper USCM MRE crate(x2)" group = "Food" -/datum/supply_packs/funfood - name = "special ingredients crate (x6)" - randomised_num_contained = 6 - contains = list( - /obj/item/reagent_container/food/condiment/enzyme, - /obj/item/reagent_container/food/condiment/saltshaker, - /obj/item/reagent_container/food/condiment/saltshaker, - /obj/item/reagent_container/food/condiment/saltshaker, - /obj/item/reagent_container/food/condiment/peppermill, - /obj/item/reagent_container/food/condiment/peppermill, - /obj/item/reagent_container/food/condiment/peppermill, - /obj/item/reagent_container/food/condiment/sugar, - /obj/item/reagent_container/food/condiment/sugar, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/grown/potato, - /obj/item/reagent_container/food/snacks/mint, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/tomato, - /obj/item/reagent_container/food/snacks/grown/carrot, - /obj/item/reagent_container/food/snacks/grown/carrot, - /obj/item/reagent_container/food/snacks/grown/lemon, - /obj/item/reagent_container/food/snacks/grown/lemon, - /obj/item/reagent_container/food/snacks/grown/orange, - /obj/item/reagent_container/food/snacks/grown/orange, - /obj/item/reagent_container/food/snacks/grown/lime, - /obj/item/reagent_container/food/snacks/grown/lime, - /obj/item/reagent_container/food/drinks/bottle/whiskey, - /obj/item/reagent_container/food/drinks/bottle/tequila, - /obj/item/reagent_container/food/drinks/bottle/rum, - /obj/item/reagent_container/food/drinks/bottle/wine, - /obj/item/reagent_container/food/drinks/bottle/wine, - /obj/item/reagent_container/food/drinks/bottle/wine, - ) - cost = 10 - containertype = /obj/structure/closet/crate/freezer - containername = "\improper Special ingredients crate" - group = "Food" - /datum/supply_packs/pizzas name = "pizza ready-to-eat (x3)" contains = list( diff --git a/code/datums/supply_packs/gear.dm b/code/datums/supply_packs/gear.dm index b67f8f134c25..54a2ae221c9d 100644 --- a/code/datums/supply_packs/gear.dm +++ b/code/datums/supply_packs/gear.dm @@ -63,15 +63,3 @@ containertype = /obj/structure/closet/crate/ammo containername = "fulton recovery device crate" group = "Gear" - -/datum/supply_packs/nvg - name = "M2 Night Vision Goggles Crate (x3)" - contains = list( - /obj/item/prop/helmetgarb/helmet_nvg, - /obj/item/prop/helmetgarb/helmet_nvg, - /obj/item/prop/helmetgarb/helmet_nvg, - ) - cost = 60 - containertype = /obj/structure/closet/crate/supply - containername = "M2 Night Vission Goggles Crate" - group = "Gear" diff --git a/code/datums/supply_packs/operations.dm b/code/datums/supply_packs/operations.dm index 6d5e5d14756c..e5525504716a 100644 --- a/code/datums/supply_packs/operations.dm +++ b/code/datums/supply_packs/operations.dm @@ -24,7 +24,6 @@ containername = "OB Ammo Crate (Incendiary x2)" buyable = 0 group = "Operations" - iteration_needed = null /datum/supply_packs/ob_explosive contains = list( @@ -48,7 +47,6 @@ containername = "OB Ammo Crate (HE x2)" buyable = 0 group = "Operations" - iteration_needed = null /datum/supply_packs/ob_cluster contains = list( @@ -72,7 +70,6 @@ containername = "OB Ammo Crate (Cluster x2)" buyable = 0 group = "Operations" - iteration_needed = null /datum/supply_packs/telecommsparts name = "Replacement Telecommunications Parts" @@ -99,7 +96,6 @@ containertype = /obj/structure/machinery/nuclearbomb buyable = 0 group = "Operations" - iteration_needed = null /datum/supply_packs/technuclearbomb name = "Encrypted Operational Nuke" @@ -107,19 +103,17 @@ containertype = /obj/structure/machinery/nuclearbomb/tech buyable = 0 group = "Operations" - iteration_needed = null /datum/supply_packs/spec_kits name = "Weapons Specialist Kits" contains = list( - /obj/item/spec_kit/asrs, - /obj/item/spec_kit/asrs, - /obj/item/spec_kit/asrs, - /obj/item/spec_kit/asrs, + /obj/item/spec_kit/rifleman, + /obj/item/spec_kit/rifleman, + /obj/item/spec_kit/rifleman, + /obj/item/spec_kit/rifleman, ) cost = 0 containertype = /obj/structure/closet/crate/supply containername = "weapons specialist kits crate" buyable = 0 group = "Operations" - iteration_needed = null diff --git a/code/datums/supply_packs/restricted_equipment.dm b/code/datums/supply_packs/restricted_equipment.dm index 452ef313908a..7979d21f9743 100644 --- a/code/datums/supply_packs/restricted_equipment.dm +++ b/code/datums/supply_packs/restricted_equipment.dm @@ -4,7 +4,7 @@ name = "B12 pattern marine armor crate (x1 helmet, x1 armor)" contains = list( /obj/item/clothing/head/helmet/marine/leader, - /obj/item/clothing/suit/storage/marine/leader, + /obj/item/clothing/suit/storage/marine/medium/leader, ) cost = 20 containertype = /obj/structure/closet/crate @@ -15,7 +15,7 @@ name = "M4 pattern marine armor crate (x1 helmet, x1 armor)" contains = list( /obj/item/clothing/head/helmet/marine/rto, - /obj/item/clothing/suit/storage/marine/rto, + /obj/item/clothing/suit/storage/marine/medium/rto, ) cost = 20 containertype = /obj/structure/closet/crate diff --git a/code/datums/supply_packs/spec_ammo.dm b/code/datums/supply_packs/spec_ammo.dm index 7931a4d40204..e20a5de865a3 100644 --- a/code/datums/supply_packs/spec_ammo.dm +++ b/code/datums/supply_packs/spec_ammo.dm @@ -109,10 +109,10 @@ containername = "M42A Incendiary Magazine Crate" group = "Weapons Specialist Ammo" -//XM42B - Disabled during testing per request. +//XM43E1 - Disabled during testing per request. /* /datum/supply_packs/ammo_amr_marksman - name = "XM42B anti-materiel rifle marksman magazines crate (x5)" + name = "XM43E1 anti-materiel rifle marksman magazines crate (x5)" contains = list( /obj/item/ammo_magazine/sniper/anti_materiel, /obj/item/ammo_magazine/sniper/anti_materiel, @@ -122,7 +122,7 @@ ) cost = 30 containertype = /obj/structure/closet/crate/ammo - containername = "XM42B Anti-Materiel Magazine Crate" + containername = "XM43E1 Anti-Materiel Magazine Crate" group = "Specialist Ammo" */ //M4RA diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm index a47d1e95af00..072a0f4d605c 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -14,21 +14,13 @@ message_admins("TGS: Instance renamed to from [world.TgsInstanceName()] to [args[2]]") if(TGS_EVENT_COMPILE_START) message_admins("TGS: Deployment started, new game version incoming...") - if(world.system_type == UNIX && SSredis.connected) - SSredis.disconnect(TGS_COMPILE) if(TGS_EVENT_COMPILE_CANCELLED) message_admins("TGS: Deployment cancelled!") - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_COMPILE_FAILURE) message_admins("TGS: Deployment failed!") - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_DEPLOYMENT_COMPLETE) message_admins("TGS: Deployment complete!") to_chat(world, SPAN_BOLDANNOUNCE("Server updated, changes will be applied on the next round...")) - if(world.system_type == UNIX && CONFIG_GET(flag/redis_enabled) && !SSredis.connected) - SSredis.reconnect() if(TGS_EVENT_WATCHDOG_DETACH) message_admins("TGS restarting...") reattach_timer = addtimer(CALLBACK(src, PROC_REF(LateOnReattach)), 1 MINUTES, TIMER_STOPPABLE) diff --git a/code/datums/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm new file mode 100644 index 000000000000..5423453bbdb9 --- /dev/null +++ b/code/datums/tutorial/_tutorial.dm @@ -0,0 +1,259 @@ +GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) + +/// A tutorial datum contains a set of instructions for a player tutorial, such as what to spawn, what's scripted to occur, and so on. +/datum/tutorial + /// What the tutorial is called, is player facing + var/name = "Base" + /// Internal ID of the tutorial, kept for save files + var/tutorial_id = "base" + /// A short 1-2 sentence description of the tutorial itself + var/desc = "" + /// What the tutorial's icon in the UI should look like + var/icon_state = "" + /// What category the tutorial should be under + var/category = TUTORIAL_CATEGORY_BASE + /// Ref to the bottom-left corner tile of the tutorial room + var/turf/bottom_left_corner + /// Ref to the turf reservation for this tutorial + var/datum/turf_reservation/reservation + /// Ref to the player who is doing the tutorial + var/mob/tutorial_mob + /// If the tutorial will be ending soon + var/tutorial_ending = FALSE + /// A dict of type:atom ref for some important junk that should be trackable + var/list/tracking_atoms = list() + /// What map template should be used for the tutorial + var/datum/map_template/tutorial/tutorial_template = /datum/map_template/tutorial/s12x12 + /// What is the parent path of this, to exclude from the tutorial menu + var/parent_path = /datum/tutorial + /// A dictionary of "bind_name" : "keybind_button". The inverse of `key_bindings` on a client's prefs + var/list/player_bind_dict = list() + +/datum/tutorial/Destroy(force, ...) + GLOB.ongoing_tutorials -= src + QDEL_NULL(reservation) // Its Destroy() handles releasing reserved turfs + + tutorial_mob = null // We don't delete it because the turf reservation will typically clean it up + + QDEL_LIST_ASSOC_VAL(tracking_atoms) + + return ..() + +/// The proc to begin doing everything related to the tutorial +/datum/tutorial/proc/start_tutorial(mob/starting_mob) + SHOULD_CALL_PARENT(TRUE) + + if(!starting_mob?.client) + return FALSE + + ADD_TRAIT(starting_mob, TRAIT_IN_TUTORIAL, TRAIT_SOURCE_TUTORIAL) + + tutorial_mob = starting_mob + + reservation = SSmapping.RequestBlockReservation(initial(tutorial_template.width), initial(tutorial_template.height)) + if(!reservation) + return FALSE + + var/turf/bottom_left_corner_reservation = locate(reservation.bottom_left_coords[1], reservation.bottom_left_coords[2], reservation.bottom_left_coords[3]) + var/datum/map_template/tutorial/template = new tutorial_template + template.load(bottom_left_corner_reservation, FALSE, TRUE) + var/obj/landmark = locate(/obj/effect/landmark/tutorial_bottom_left) in GLOB.landmarks_list + bottom_left_corner = get_turf(landmark) + qdel(landmark) + + if(!verify_template_loaded()) + abort_tutorial() + return FALSE + + generate_binds() + + GLOB.ongoing_tutorials |= src + var/area/tutorial_area = get_area(bottom_left_corner) + tutorial_area.update_base_lighting() // this will be entirely dark otherwise + init_map() + if(!tutorial_mob) + end_tutorial() + + return TRUE + +/// The proc used to end and clean up the tutorial +/datum/tutorial/proc/end_tutorial(completed = FALSE) + SHOULD_CALL_PARENT(TRUE) + + if(tutorial_mob) + remove_action(tutorial_mob, /datum/action/tutorial_end) // Just in case to make sure the client can't try and leave the tutorial while it's mid-cleanup + if(tutorial_mob.client?.prefs && completed) + tutorial_mob.client.prefs.completed_tutorials |= tutorial_id + tutorial_mob.client.prefs.save_character() + var/mob/new_player/new_player = new + if(!tutorial_mob.mind) + tutorial_mob.mind_initialize() + + tutorial_mob.mind.transfer_to(new_player) + + if(!QDELETED(src)) + qdel(src) + +/// Verify the template loaded fully and without error. +/datum/tutorial/proc/verify_template_loaded() + // We subtract 1 from x and y because the bottom left corner doesn't start at the walls. + var/turf/true_bottom_left_corner = locate( + reservation.bottom_left_coords[1], + reservation.bottom_left_coords[2], + reservation.bottom_left_coords[3], + ) + // We subtract 1 from x and y here because the bottom left corner counts as the first tile + var/turf/top_right_corner = locate( + true_bottom_left_corner.x + initial(tutorial_template.width) - 1, + true_bottom_left_corner.y + initial(tutorial_template.height) - 1, + true_bottom_left_corner.z + ) + for(var/turf/tile as anything in block(true_bottom_left_corner, top_right_corner)) + // For some reason I'm unsure of, the template will not always fully load, leaving some tiles to be space tiles. So, we check all tiles in the (small) tutorial area + // and tell start_tutorial to abort if there's any space tiles. + if(istype(tile, /turf/open/space)) + return FALSE + + return TRUE + +/// Something went very, very wrong during load so let's abort +/datum/tutorial/proc/abort_tutorial() + to_chat(tutorial_mob, SPAN_BOLDWARNING("Something went wrong during tutorial load, please try again!")) + end_tutorial(FALSE) + +/datum/tutorial/proc/add_highlight(atom/target, color = "#d19a02") + target.add_filter("tutorial_highlight", 2, list("type" = "outline", "color" = color, "size" = 1)) + +/datum/tutorial/proc/remove_highlight(atom/target) + target.remove_filter("tutorial_highlight") + +/datum/tutorial/proc/add_to_tracking_atoms(atom/reference) + tracking_atoms[reference.type] = reference + +/datum/tutorial/proc/remove_from_tracking_atoms(atom/reference) + tracking_atoms -= reference.type + +/// Broadcast a message to the player's screen +/datum/tutorial/proc/message_to_player(message) + playsound_client(tutorial_mob.client, 'sound/effects/radiostatic.ogg', tutorial_mob.loc, 25, FALSE) + tutorial_mob.play_screen_text(message, /atom/movable/screen/text/screen_text/command_order/tutorial, rgb(103, 214, 146)) + to_chat(tutorial_mob, SPAN_NOTICE(message)) + +/// Updates a player's objective in their status tab +/datum/tutorial/proc/update_objective(message) + SEND_SIGNAL(tutorial_mob, COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE, message) + +/// Initialize the tutorial mob. +/datum/tutorial/proc/init_mob() + tutorial_mob.AddComponent(/datum/component/tutorial_status) + give_action(tutorial_mob, /datum/action/tutorial_end, null, null, src) + ADD_TRAIT(tutorial_mob, TRAIT_IN_TUTORIAL, TRAIT_SOURCE_TUTORIAL) + +/// Ends the tutorial after a certain amount of time. +/datum/tutorial/proc/tutorial_end_in(time = 5 SECONDS, completed = TRUE) + tutorial_ending = TRUE + addtimer(CALLBACK(src, PROC_REF(end_tutorial), completed), time) + +/// Initialize any objects that need to be in the tutorial area from the beginning. +/datum/tutorial/proc/init_map() + return + +/// Returns a turf offset by offset_x (left-to-right) and offset_y (up-to-down) +/datum/tutorial/proc/loc_from_corner(offset_x = 0, offset_y = 0) + RETURN_TYPE(/turf) + return locate(bottom_left_corner.x + offset_x, bottom_left_corner.y + offset_y, bottom_left_corner.z) + +/// Handle the player ghosting out +/datum/tutorial/proc/on_ghost(datum/source, mob/dead/observer/ghost) + SIGNAL_HANDLER + + var/mob/new_player/new_player = new + if(!ghost.mind) + ghost.mind_initialize() + + ghost.mind.transfer_to(new_player) + + end_tutorial(FALSE) + +/// A wrapper for signals to call end_tutorial() +/datum/tutorial/proc/signal_end_tutorial(datum/source) + SIGNAL_HANDLER + + end_tutorial(FALSE) + +/// Called whenever the tutorial_mob logs out +/datum/tutorial/proc/on_logout(datum/source) + SIGNAL_HANDLER + + if(tutorial_mob.aghosted) + return + + end_tutorial(FALSE) + +/// Generate a dictionary of button : action for use of referencing what keys to press +/datum/tutorial/proc/generate_binds() + if(!tutorial_mob.client?.prefs) + return + + for(var/bind in tutorial_mob.client.prefs.key_bindings) + var/action = tutorial_mob.client.prefs.key_bindings[bind] + // We presume the first action under a certain binding is the one we want. + if(action[1] in player_bind_dict) + player_bind_dict[action[1]] += bind + else + player_bind_dict[action[1]] = list(bind) + +/// Getter for player_bind_dict. Provide an action name like "North" or "quick_equip" +/datum/tutorial/proc/retrieve_bind(action_name) + if(!action_name) + return + + if(!(action_name in player_bind_dict)) + return "Undefined" + + return player_bind_dict[action_name][1] + +/datum/action/tutorial_end + name = "Stop Tutorial" + action_icon_state = "hologram_exit" + /// Weakref to the tutorial this is related to + var/datum/weakref/tutorial + +/datum/action/tutorial_end/New(Target, override_icon_state, datum/tutorial/selected_tutorial) + . = ..() + tutorial = WEAKREF(selected_tutorial) + +/datum/action/tutorial_end/action_activate() + if(!tutorial) + return + + var/datum/tutorial/selected_tutorial = tutorial.resolve() + if(selected_tutorial.tutorial_ending) + return + + selected_tutorial.end_tutorial() + + +/datum/map_template/tutorial + name = "Tutorial Zone (12x12)" + mappath = "maps/tutorial/tutorial_12x12.dmm" + width = 12 + height = 12 + +/datum/map_template/tutorial/s12x12 + +/datum/map_template/tutorial/s8x9 + name = "Tutorial Zone (8x9)" + mappath = "maps/tutorial/tutorial_8x9.dmm" + width = 8 + height = 9 + +/datum/map_template/tutorial/s8x9/no_baselight + name = "Tutorial Zone (8x9) (No Baselight)" + mappath = "maps/tutorial/tutorial_8x9_nb.dmm" + +/datum/map_template/tutorial/s7x7 + name = "Tutorial Zone (7x7)" + mappath = "maps/tutorial/tutorial_7x7.dmm" + width = 7 + height = 7 diff --git a/code/datums/tutorial/_tutorial_menu.dm b/code/datums/tutorial/_tutorial_menu.dm new file mode 100644 index 000000000000..42eb3f6aabfa --- /dev/null +++ b/code/datums/tutorial/_tutorial_menu.dm @@ -0,0 +1,83 @@ +/datum/tutorial_menu + /// List of ["name" = name, "tutorials" = ["name" = name, "path" = "path", "id" = tutorial_id]] + var/static/list/categories = list() + + +/datum/tutorial_menu/New() + if(!length(categories)) + var/list/categories_2 = list() + for(var/datum/tutorial/tutorial as anything in subtypesof(/datum/tutorial)) + if(initial(tutorial.parent_path) == tutorial) + continue + + if(!(initial(tutorial.category) in categories_2)) + categories_2[initial(tutorial.category)] = list() + + categories_2[initial(tutorial.category)] += list(list( + "name" = initial(tutorial.name), + "path" = "[tutorial]", + "id" = initial(tutorial.tutorial_id), + "description" = initial(tutorial.desc), + "image" = initial(tutorial.icon_state), + )) + + for(var/category in categories_2) + categories += list(list( + "name" = category, + "tutorials" = categories_2[category], + )) + + +/datum/tutorial_menu/proc/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TutorialMenu") + ui.open() + +/datum/tutorial_menu/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/tutorial), + ) + +/datum/tutorial_menu/ui_state(mob/user) + if(istype(get_area(user), /area/misc/tutorial)) + return GLOB.never_state + + return GLOB.new_player_state + + +/datum/tutorial_menu/ui_static_data(mob/user) + var/list/data = list() + + data["tutorial_categories"] = categories + if(user.client?.prefs) + data["completed_tutorials"] = user.client.prefs.completed_tutorials + else + data["completed_tutorials"] = list() + + return data + + +/datum/tutorial_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("select_tutorial") + var/datum/tutorial/path + if(!params["tutorial_path"]) + return + + path = text2path(params["tutorial_path"]) + + if(!path || !isnewplayer(usr)) + return + + if(HAS_TRAIT(usr, TRAIT_IN_TUTORIAL) || istype(get_area(usr), /area/misc/tutorial)) + to_chat(usr, SPAN_NOTICE("You are currently in a tutorial, or one is loading. Please be patient.")) + return + + path = new path + path.start_tutorial(usr) + return TRUE diff --git a/code/datums/tutorial/creating_a_tutorial.md b/code/datums/tutorial/creating_a_tutorial.md new file mode 100644 index 000000000000..96a7cb886820 --- /dev/null +++ b/code/datums/tutorial/creating_a_tutorial.md @@ -0,0 +1,96 @@ +# Tutorial Creation + +[ToC] + +## Step 1: Identifying the Goal + +Your first objective when making a tutorial should be to have a clear and concise vision of what you want the tutorial to convey to the user. People absorb information better in smaller chunks, so you should ideally keep a tutorial to one section of information at a time. + +For example, if you are making a tutorial for new CM players, it should be split into multiple parts like: + +- Basics +- Medical +- Weaponry +- Requisitions/Communication + +## Step 2: Coding + +For an example of the current code standards for tutorials, see [this](https://github.com/cmss13-devs/cmss13/pull/4442/files#diff-843b2f84360b9b932dfc960027992f2b5117667962bfa8da14f9a35f0179a926) file. + +The API for tutorials is designed to be very simple, so I'll go over all the base `/datum/tutorial` procs and some vars here: + +### Variables +- `name` + - This is the player-facing name of the tutorial. +- `tutorial_id` + - This is the back-end ID of the tutorial, used for save files. Try not to change a tutorial's ID after it's on the live server. +- `category` + - This is what category the tutorial should be under. Use the `TUTORIAL_CATEGORY_XXXX` macros. +- `tutorial_template` + - This is what type the map template of the tutorial should be. The default space is 12x12; ideally make it so it fits the given scale of the tutorial with some wiggle room for the player to move around. +- `parent_path` + - This is the top-most parent `/datum/tutorial` path, used to exclude abstract parents from the tutorial menu. For example, `/datum/tutorial/marine/basic` would have a `parent_path` of `/datum/tutorial/marine`, since that path is the top-most abstract path. + +### Procs +- `start_tutorial(mob/starting_mob)` + - This proc starts the tutorial, setting up the map template and player. This should be overridden with a parent call before any overridden code. +- `end_tutorial(completed = FALSE)` + - This proc ends the tutorial, sending the player back to the lobby and deleting the tutorial itself. A parent call on any subtypes should be at the end of the overridden segment. If `completed` is `TRUE`, then the tutorial will save as a completed one for the user. +- `add_highlight(atom/target, color = "#d19a02")` + - This proc adds a highlight filter around an atom, by default this color. Successive calls of highlight on the same atom will override the last. +- `remove_highlight(atom/target)` + - This proc removes the tutorial highlight from a target. +- `add_to_tracking_atoms(atom/reference)` + - This proc will add a reference to the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `remove_from_tracking_atoms(atom/reference)` + - This proc will remove a reference from the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `message_to_player(message)` + - This proc is the ideal way to communicate to a player. It is visually similar to overwatch messages or weather alerts, but appears and disappears much faster. The messages sent should be consise, but can have a degree of dialogue to them. +- `update_objective(message)` + - This proc is used to update the player's objective in their status panel. This should be only what is required and how to do it without any dialogue or extra text. +- `init_mob()` + - This proc is used to initialize the mob and set them up correctly. +- `init_map()` + - This proc does nothing by default, but can be overriden to spawn any atoms necessary for the tutorial from the very start. +- `tutorial_end_in(time = 5 SECONDS, completed = TRUE)` + - This proc will end the tutorial in the given time, defaulting to 5 seconds. Once the proc is called, the player will be booted back to the menu screen after the time is up. Will mark the tutorial as completed if `completed` is `TRUE` +- `loc_from_corner(offset_x = 0, offset_y = 0)` + - This proc will return a turf offset from the bottom left corner of the tutorial zone. Keep in mind, the bottom left corner is NOT on a wall, it is on the first floor on the bottom left corner. `offset_x` and `offset_y` are used to offset what turf you want to get, and should never be negative. + +## Step 2.1: Tracking Atoms +Naturally, you will need to keep track of certain objects or mobs for signal purposes, so the tracking system exists to fill that purpose. When you add a reference to the tracking atom list with `add_to_tracking_atoms()`, it gets put into a dictionary of `{path : reference}`. Because of this limitation, you should not track more than 1 object of the same type. To get a tracked atom, use of the `TUTORIAL_ATOM_FROM_TRACKING(path, varname)` macro is recommended. `path` should be replaced with the precise typepath of the tracked atom, and `varname` should be replaced with the variable name you wish to use. If an object is going to be deleted, remove it with `remove_from_tracking_atoms()` first. + +## Step 2.2: Scripting Format +Any proc whose main purpose is to advance the tutorial will be hereon referred to as a "script proc", as part of the entire "script". In the vast majority of cases, a script proc should hand off to the next using signals. Here is an example from `basic_marine.dm`: + +```javascript +/datum/tutorial/marine/basic/proc/on_cryopod_exit() + SIGNAL_HANDLER + + UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT) + message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined Food Vendor and vend the USCM Protein Bar.") + update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + add_highlight(food_vendor) + food_vendor.req_access = list() + RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend)) + +``` + +Line-by-line: + - `SIGNAL_HANDLER` is necessary as this proc was called via signal. + - Here we are unregistering the signal we registered in the previous proc to call this one, which in this case was waiting for the player to leave the tracked cryopod. + - Now, we tell the user the next step in the script, which is sent to their screen. + - Here we update the player's status panel with similar info to the above line, but far more condensed. + - Since we need to access the food vendor, we use the `TUTORIAL_ATOM_FROM_TRACKING()` macro to get a ref to it. + - We add a yellow outline to the food vendor to make it more clear what is wanted of the player + - The tutorial food vendors are locked to `ACCESS_TUTORIAL_LOCKED` by default, so here we remove that access requirement + - And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor. + + +## Step 2.3: Quirks & Tips +- Generally speaking, you will want to create `/tutorial` subtypes of anything you add in the tutorial, should it need any special functions or similar. +- Restrict access from players as much as possible. As seen in the example above, restricting access to vendors and similar machines is recommended to prevent sequence breaking. Additionally, avoid adding anything that detracts from the tutorial itself. +- Attempt to avoid softlocks when possible. If someone could reasonably do something (e.g. firing every bullet they have at a ranged target and missing, now unable to kill them and progress) that could softlock them, then there should be a fallback of some sort. However, accomodations don't need to be made for people who purposefully cause a softlock; there's a "stop tutorial" button for a reason. +- When calling `message_to_player()` or `update_objective()`, **bold** the names of objects, items, and keybinds. +- Attempt to bind as many scripting signals to the `tutorial_mob` as possible. The nature of SS13 means something as sequence-heavy as this will always be fragile, so keeping the fragility we can affect to a minimum is imperative. diff --git a/code/datums/tutorial/marine/_marine.dm b/code/datums/tutorial/marine/_marine.dm new file mode 100644 index 000000000000..ceb0ba8ab550 --- /dev/null +++ b/code/datums/tutorial/marine/_marine.dm @@ -0,0 +1,21 @@ +/datum/tutorial/marine + category = TUTORIAL_CATEGORY_MARINE + parent_path = /datum/tutorial/marine + icon_state = "marine" + +/datum/tutorial/marine/init_mob() + var/mob/living/carbon/human/new_character = new(bottom_left_corner) + new_character.lastarea = get_area(bottom_left_corner) + + setup_human(new_character, tutorial_mob) + + //SSround_recording.recorder.track_player(new_character) //zonenote: check if necessary + + new_character.marine_snowflake_points = MARINE_TOTAL_SNOWFLAKE_POINTS + new_character.marine_buyable_categories = MARINE_CAN_BUY_ALL + + tutorial_mob = new_character + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + return ..() diff --git a/code/datums/tutorial/marine/basic_marine.dm b/code/datums/tutorial/marine/basic_marine.dm new file mode 100644 index 000000000000..af9d2eaf18dd --- /dev/null +++ b/code/datums/tutorial/marine/basic_marine.dm @@ -0,0 +1,208 @@ +/datum/tutorial/marine/basic + name = "Marine - Basic" + desc = "A tutorial to get you acquainted with the very basics of how to play a groundside marine role." + tutorial_id = "marine_basic_1" + tutorial_template = /datum/map_template/tutorial/s8x9/no_baselight + /// How many items need to be vended from the clothing vendor for the script to continue, if something vends 2 items (for example), increase this number by 2. + var/clothing_items_to_vend = 8 + /// How many items need to be vended from the gun vendor to continue + var/gun_items_to_vend = 2 + +// START OF SCRIPTING + +/datum/tutorial/marine/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + var/obj/item/device/flashlight/flashlight = new(loc_from_corner(2, 3)) + flashlight.anchored = TRUE + flashlight.set_light_power(4) + flashlight.set_light_range(12) + flashlight.icon = null + flashlight.set_light_on(TRUE) + add_to_tracking_atoms(flashlight) + + init_mob() + message_to_player("This is the tutorial for marine rifleman. Leave the cryopod by pressing [retrieve_bind("North")] or [retrieve_bind("East")] to continue.") + update_objective("Exit the cryopod by pressing [retrieve_bind("North")] or [retrieve_bind("East")].") + RegisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT, PROC_REF(on_cryopod_exit)) + +/datum/tutorial/marine/basic/proc/on_cryopod_exit() + SIGNAL_HANDLER + + UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT) + message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined Food Vendor and vend the USCM Protein Bar.") + update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + add_highlight(food_vendor) + food_vendor.req_access = list() + RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend)) + +/datum/tutorial/marine/basic/proc/on_food_vend(datum/source, obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + UnregisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + remove_highlight(food_vendor) + food_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + message_to_player("Now click on your character with the USCM Protein Bar in-hand until it is fully eaten. If you accidentally switched hands, switch back with [retrieve_bind("swap_hands")].") + update_objective("Eat the USCM Protein Bar by clicking on yourself while holding it, until it is gone.") + RegisterSignal(tutorial_mob, COMSIG_MOB_EATEN_SNACK, PROC_REF(on_foodbar_eaten)) + +/datum/tutorial/marine/basic/proc/on_foodbar_eaten(datum/source, obj/item/reagent_container/food/snacks/eaten_food) + SIGNAL_HANDLER + + if(!istype(eaten_food, /obj/item/reagent_container/food/snacks/protein_pack) || eaten_food.reagents.total_volume) + return + + UnregisterSignal(source, COMSIG_MOB_EATEN_SNACK) + message_to_player("Good. Now move to the outlined vendor and vend everything inside.") + update_objective("Vend everything inside the ColMarTech Automated Closet.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/clothing/tutorial, clothing_vendor) + add_highlight(clothing_vendor) + clothing_vendor.req_access = list() + RegisterSignal(clothing_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_clothing_vend)) + +/datum/tutorial/marine/basic/proc/on_clothing_vend(datum/source) + SIGNAL_HANDLER + + clothing_items_to_vend-- + if(clothing_items_to_vend <= 0) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/clothing/tutorial, clothing_vendor) + UnregisterSignal(clothing_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + clothing_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + remove_highlight(clothing_vendor) + message_to_player("Now, the room will darken. Take a flare out of your flare pouch by clicking on it with an empty hand, and then light it by using it in-hand with [retrieve_bind("activate_inhand")].") + update_objective("Click on your flare pouch to remove a flare before using it in-hand.") + var/obj/item/storage/pouch/flare/flare_pouch = locate(/obj/item/storage/pouch/flare) in tutorial_mob.contents + if(flare_pouch) + add_highlight(flare_pouch) + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF, PROC_REF(on_flare_light)) + addtimer(CALLBACK(src, PROC_REF(dim_room)), 2.5 SECONDS) + +/datum/tutorial/marine/basic/proc/on_flare_light(datum/source, obj/item/used) + SIGNAL_HANDLER + + if(!istype(used, /obj/item/device/flashlight/flare)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF) + var/obj/item/storage/pouch/flare/flare_pouch = locate(/obj/item/storage/pouch/flare) in tutorial_mob.contents + if(flare_pouch) + remove_highlight(flare_pouch) + + message_to_player("Now throw the flare by clicking on a nearby tile, or dropping it with [retrieve_bind("drop_item")].") + update_objective("Throw the flare by clicking on a nearby tile, or dropping it with [retrieve_bind("drop_item")].") + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_DROPPED, PROC_REF(on_flare_throw)) + +/datum/tutorial/marine/basic/proc/on_flare_throw(datum/source, obj/item/thrown) + SIGNAL_HANDLER + + if(!istype(thrown, /obj/item/device/flashlight/flare)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_DROPPED) + message_to_player("Good. Now, the room will brighten again. Proceed to the highlighted vendor and vend a M41A Pulse Rifle MK2, along with a magazine.") + update_objective("Vend everything from the ColMarTech Automated Weapons Rack.") + addtimer(CALLBACK(src, PROC_REF(brighten_room)), 1.5 SECONDS) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list() + add_highlight(gun_vendor) + RegisterSignal(gun_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_gun_vend)) + +/datum/tutorial/marine/basic/proc/on_gun_vend(datum/source) + SIGNAL_HANDLER + + gun_items_to_vend-- + if(gun_items_to_vend <= 0) + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list(ACCESS_TUTORIAL_LOCKED) + remove_highlight(gun_vendor) + UnregisterSignal(gun_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND) + message_to_player("Now insert the magazine into the M41A Pulse Rifle by having the magazine in your active hand and hitting the Pulse Rifle with it. If it is in the off-hand, switch with [retrieve_bind("swap_hands")].") + update_objective("Insert the M41A magazine by hitting the M41A Pulse Rifle with it.") + RegisterSignal(tutorial_mob, COMSIG_MOB_RELOADED_GUN, PROC_REF(on_magazine_insert)) + +/datum/tutorial/marine/basic/proc/on_magazine_insert(datum/source, atom/attacked, obj/item/attacked_with) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_RELOADED_GUN) + message_to_player("Good. Now wield your gun by using it in-hand with [retrieve_bind("activate_inhand")].") + update_objective("Wield your gun with two hands by pressing [retrieve_bind("activate_inhand")] with the gun in your main hand.") + RegisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF, PROC_REF(on_gun_wield)) + +/datum/tutorial/marine/basic/proc/on_gun_wield(datum/source, obj/item/used) + SIGNAL_HANDLER + + if(!istype(used, /obj/item/weapon/gun/rifle/m41a)) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_ITEM_ATTACK_SELF) + message_to_player("Now, shoot at the highlighted Xenomorph until it dies.") + update_objective("Shoot at the Xenomorph until it dies.") + var/mob/living/carbon/xenomorph/drone/tutorial/xeno_dummy = new(loc_from_corner(4, 5)) + add_to_tracking_atoms(xeno_dummy) + add_highlight(xeno_dummy, COLOR_VIVID_RED) + RegisterSignal(xeno_dummy, COMSIG_MOB_DEATH, PROC_REF(on_xeno_death)) + RegisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY, PROC_REF(on_magazine_empty)) // I'd like to prevent unwilling softlocks as much as I can + +/// Non-contiguous part of the script, called if the user manages to run out of ammo in the gun without the xeno dying +/datum/tutorial/marine/basic/proc/on_magazine_empty(obj/item/weapon/gun/empty_gun) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY) + message_to_player("Your gun's out of ammo. Go grab some more from the Weaponry Vendor and kill the Xenomorph.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial, gun_vendor) + gun_vendor.req_access = list() + gun_vendor.load_ammo() // 99 magazines, to make sure that the xeno dies + +/datum/tutorial/marine/basic/proc/on_xeno_death(datum/source) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/xenomorph/drone/tutorial, xeno_dummy) + UnregisterSignal(xeno_dummy, COMSIG_MOB_DEATH) + UnregisterSignal(tutorial_mob, COMSIG_MOB_GUN_EMPTY) + remove_highlight(xeno_dummy) + addtimer(CALLBACK(src, PROC_REF(disappear_xeno)), 2.5 SECONDS) + message_to_player("Very good. This is the end of the tutorial, proceed to the next one to learn the basics of Medical. You will be sent back to the lobby screen momentarily.") + update_objective("") + tutorial_end_in(7.5 SECONDS, TRUE) + + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +/datum/tutorial/marine/basic/proc/dim_room() + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/device/flashlight, flashlight) + flashlight.set_light_on(FALSE) + +/datum/tutorial/marine/basic/proc/brighten_room() + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/device/flashlight, flashlight) + flashlight.set_light_on(TRUE) + +/datum/tutorial/marine/basic/proc/disappear_xeno() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/xenomorph/drone/tutorial, xeno_dummy) + animate(xeno_dummy, time = 5 SECONDS, alpha = 0) + remove_from_tracking_atoms(xeno_dummy) + QDEL_IN(xeno_dummy, 5.5 SECONDS) + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/basic/init_mob() + . = ..() + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial) + + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cryopod/tutorial, tutorial_pod) + tutorial_pod.go_in_cryopod(tutorial_mob, TRUE, FALSE) + + +/datum/tutorial/marine/basic/init_map() + var/obj/structure/machinery/cryopod/tutorial/tutorial_pod = new(bottom_left_corner) + add_to_tracking_atoms(tutorial_pod) + var/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial/food_vendor = new(loc_from_corner(0, 2)) + add_to_tracking_atoms(food_vendor) + var/obj/structure/machinery/cm_vending/clothing/tutorial/clothing_vendor = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(clothing_vendor) + var/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/gun_vendor = new(loc_from_corner(0, 5)) + add_to_tracking_atoms(gun_vendor) diff --git a/code/datums/tutorial/marine/medical_basic.dm b/code/datums/tutorial/marine/medical_basic.dm new file mode 100644 index 000000000000..3a42a6d2ecc2 --- /dev/null +++ b/code/datums/tutorial/marine/medical_basic.dm @@ -0,0 +1,174 @@ +/datum/tutorial/marine/medical_basic + name = "Marine - Medical (Basic)" + desc = "Learn how to treat common injuries you may face as a marine." + tutorial_id = "marine_medical_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/marine/medical_basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the basics of medical that you will need to know for playing a marine role.") + addtimer(CALLBACK(src, PROC_REF(brute_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/brute_tutorial() + message_to_player("The first kind of damage is Brute, the most common kind. It represents physical trauma from things like punches, weapons, or guns.") + var/mob/living/living_mob = tutorial_mob + living_mob.adjustBruteLoss(10) + addtimer(CALLBACK(src, PROC_REF(brute_tutorial_2)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/brute_tutorial_2() + message_to_player("You can observe if you have Brute or Burn damage by clicking on yourself with an empty hand on help intent.") + update_objective("Click on yourself with an empty hand.") + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_health_examine)) + +/datum/tutorial/marine/medical_basic/proc/on_health_examine(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if(attacked_mob != tutorial_mob) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + message_to_player("Good. Now, you have taken some brute damage. Bicaridine is used to fix brute over time. Pick up the bicaridine EZ autoinjector and use it in-hand.") + update_objective("Inject yourself with the bicaridine injector.") + var/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use/brute_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(brute_injector) + add_highlight(brute_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_brute_inject)) + +/datum/tutorial/marine/medical_basic/proc/on_brute_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use, brute_injector) + remove_highlight(brute_injector) + message_to_player("All medicines take time to work after injection. Next is Burn damage. It is obtained from things like acid or being set on fire.") + update_objective("") + var/mob/living/living_mob = tutorial_mob + living_mob.adjustFireLoss(10) + addtimer(CALLBACK(src, PROC_REF(burn_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/burn_tutorial() + message_to_player("Kelotane is used to fix burn over time. Inject yourself with the kelotane EZ autoinjector.") + update_objective("Inject yourself with the kelotane injector.") + var/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use/burn_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(burn_injector) + add_highlight(burn_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_burn_inject)) + + +/datum/tutorial/marine/medical_basic/proc/on_burn_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use, burn_injector) + remove_highlight(burn_injector) + message_to_player("Good. Now, when you normally take damage, you will also feel pain. Pain slows you down and can knock you out if left unchecked.") + update_objective("") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.apply_pain(PAIN_CHESTBURST_STRONG) + addtimer(CALLBACK(src, PROC_REF(pain_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/pain_tutorial() + message_to_player("Tramadol is used to reduce your pain. Inject yourself with the tramadol EZ autoinjector.") + update_objective("Inject yourself with the tramadol injector.") + var/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use/pain_injector = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(pain_injector) + add_highlight(pain_injector) + RegisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED, PROC_REF(on_pain_inject)) + +/datum/tutorial/marine/medical_basic/proc/on_pain_inject(datum/source, obj/item/reagent_container/hypospray/injector) + SIGNAL_HANDLER + + if(!istype(injector, /obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_HYPOSPRAY_INJECTED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use, pain_injector) + remove_highlight(pain_injector) + message_to_player("Good. Keep in mind that you can overdose on chemicals, so don't inject yourself with the same chemical too much too often. In the field, injectors have 3 uses.") + update_objective("Don't overdose! Generally, 3 injections of a chemical will overdose you.") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.apply_pain(-PAIN_CHESTBURST_STRONG) // just to make sure + addtimer(CALLBACK(src, PROC_REF(bleed_tutorial)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/bleed_tutorial() + message_to_player("You can sometimes start bleeding from things like bullets or slashes. Losing blood will accumulate oxygen damage, eventually causing death.") + update_objective("") + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + mob_chest.add_bleeding(damage_amount = 15) + addtimer(CALLBACK(src, PROC_REF(bleed_tutorial_2)), 4 SECONDS) + +/datum/tutorial/marine/medical_basic/proc/bleed_tutorial_2() + message_to_player("Bleeding wounds can clot themselves over time, or you can fix it quickly with gauze. Pick up the gauze and click on yourself while targeting your chest.") + update_objective("Gauze your chest, or let it clot on its own.") + var/obj/item/stack/medical/bruise_pack/two/bandage = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(bandage) + add_highlight(bandage) + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + RegisterSignal(mob_chest, COMSIG_LIMB_STOP_BLEEDING, PROC_REF(on_chest_bleed_stop)) + +/datum/tutorial/marine/medical_basic/proc/on_chest_bleed_stop(datum/source, external, internal) + SIGNAL_HANDLER + + // If you exit on this step, your limbs get deleted, which stops the bleeding, which progresses the tutorial despite it ending + if(!tutorial_mob || QDELETED(src)) + return + + var/mob/living/carbon/human/human_mob = tutorial_mob + var/obj/limb/chest/mob_chest = locate(/obj/limb/chest) in human_mob.limbs + UnregisterSignal(mob_chest, COMSIG_LIMB_STOP_BLEEDING) + + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/stack/medical/bruise_pack/two, bandage) + remove_from_tracking_atoms(bandage) + remove_highlight(bandage) + qdel(bandage) + + message_to_player("Good. Sometimes, a bullet or bone shard can result in you getting shrapnel, dealing damage over time. Pick up the knife and use it in-hand to remove the shrapnel.") + update_objective("Remove your shrapnel by using the knife in-hand.") + var/mob/living/living_mob = tutorial_mob + living_mob.pain.feels_pain = FALSE + + var/obj/item/attachable/bayonet/knife = new(loc_from_corner(0, 4)) + add_to_tracking_atoms(knife) + add_highlight(knife) + + var/obj/item/shard/shrapnel/tutorial/shrapnel = new + shrapnel.on_embed(tutorial_mob, mob_chest, TRUE) + + RegisterSignal(tutorial_mob, COMSIG_HUMAN_SHRAPNEL_REMOVED, PROC_REF(on_shrapnel_removed)) + +/datum/tutorial/marine/medical_basic/proc/on_shrapnel_removed() + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_HUMAN_SHRAPNEL_REMOVED) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/attachable/bayonet, knife) + remove_highlight(knife) + message_to_player("Good. This is the end of the basic marine medical tutorial. The tutorial will end shortly.") + update_objective("Tutorial completed.") + tutorial_end_in(5 SECONDS) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/medical_basic/init_mob() + . = ..() + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial/fed) + + +/datum/tutorial/marine/medical_basic/init_map() + new /obj/structure/surface/table/almayer(loc_from_corner(0, 4)) diff --git a/code/datums/tutorial/ss13/_ss13.dm b/code/datums/tutorial/ss13/_ss13.dm new file mode 100644 index 000000000000..53cf5c918ee9 --- /dev/null +++ b/code/datums/tutorial/ss13/_ss13.dm @@ -0,0 +1,41 @@ +/datum/tutorial/ss13 + category = TUTORIAL_CATEGORY_SS13 + parent_path = /datum/tutorial/ss13 + icon_state = "ss13" + +/datum/tutorial/ss13/init_mob() + tutorial_mob.close_spawn_windows() + + var/mob/living/carbon/human/new_character = new(bottom_left_corner) + new_character.lastarea = get_area(bottom_left_corner) + + tutorial_mob.client.prefs.copy_all_to(new_character) + + if(tutorial_mob.client.prefs.be_random_body) + var/datum/preferences/rand_prefs = new() + rand_prefs.randomize_appearance(new_character) + + new_character.job = tutorial_mob.job + new_character.name = tutorial_mob.real_name + new_character.voice = tutorial_mob.real_name + + new_character.sec_hud_set_ID() + new_character.hud_set_squad() + + SSround_recording.recorder.track_player(new_character) + + if(tutorial_mob.mind) + tutorial_mob.mind_initialize() + tutorial_mob.mind.transfer_to(new_character, TRUE) + tutorial_mob.mind.setup_human_stats() + + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) + INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + + tutorial_mob = new_character + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial/fed) + return ..() diff --git a/code/datums/tutorial/ss13/basic_ss13.dm b/code/datums/tutorial/ss13/basic_ss13.dm new file mode 100644 index 000000000000..65bb0cac94f4 --- /dev/null +++ b/code/datums/tutorial/ss13/basic_ss13.dm @@ -0,0 +1,84 @@ +/datum/tutorial/ss13/basic + name = "Space Station 13 - Basic" + desc = "Learn the very basics of Space Station 13. Recommended if you haven't played before." + tutorial_id = "ss13_basic_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/ss13/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the basics of Space Station 13. Any current instructions can be found in the top-right corner, in the status panel.") + update_objective("Here's where it'll be!") + + addtimer(CALLBACK(src, PROC_REF(require_move)), 4 SECONDS) // check if this is a good amount of time + +/datum/tutorial/ss13/basic/proc/require_move() + message_to_player("Now, move in any direction using [retrieve_bind("North")], [retrieve_bind("West")], [retrieve_bind("South")], or [retrieve_bind("East")].") + update_objective("Move in any direction using the [retrieve_bind("North")][retrieve_bind("West")][retrieve_bind("South")][retrieve_bind("East")] keys.") + + RegisterSignal(tutorial_mob, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(on_move)) + +/datum/tutorial/ss13/basic/proc/on_move(datum/source, actually_moving, direction, specific_direction) + SIGNAL_HANDLER + + if(!actually_moving) // The mob just looked in a different dir instead of moving + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_MOVE_OR_LOOK) + + message_to_player("Good. Now, switch hands with [retrieve_bind("swap_hands")].") + update_objective("Switch hands with [retrieve_bind("swap_hands")].") + + RegisterSignal(tutorial_mob, COMSIG_MOB_SWAPPED_HAND, PROC_REF(on_hand_swap)) + +/datum/tutorial/ss13/basic/proc/on_hand_swap(datum/source) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_MOB_SWAPPED_HAND) + + message_to_player("Good. Now, pick up the satchel that just spawned and equip it with [retrieve_bind("quick_equip")].") + update_objective("Pick up the satchel and equip it with [retrieve_bind("quick_equip")].") + + var/obj/item/storage/backpack/marine/satchel/satchel = new(loc_from_corner(2, 2)) + add_to_tracking_atoms(satchel) + add_highlight(satchel) + + RegisterSignal(tutorial_mob, COMSIG_HUMAN_EQUIPPED_ITEM, PROC_REF(on_satchel_equip)) + +/datum/tutorial/ss13/basic/proc/on_satchel_equip(datum/source, obj/item/equipped, slot) + SIGNAL_HANDLER + + if(!istype(equipped, /obj/item/storage/backpack/marine/satchel) || (slot != WEAR_BACK)) + return + + UnregisterSignal(tutorial_mob, COMSIG_HUMAN_EQUIPPED_ITEM) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/storage/backpack/marine/satchel, satchel) + remove_highlight(satchel) + message_to_player("Now, say anything by pressing [retrieve_bind("Say")].") + update_objective("Speak using [retrieve_bind("Say")].") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_SPEAK, PROC_REF(on_speak)) + +/datum/tutorial/ss13/basic/proc/on_speak(datum/source) + SIGNAL_HANDLER + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_SPEAK) + message_to_player("Excellent. The next tutorial will cover intents. The tutorial will end shortly.") + update_objective("") + tutorial_end_in(5 SECONDS, TRUE) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + + + +// END OF SCRIPT HELPERS + +/datum/tutorial/ss13/basic/init_mob() + . = ..() + tutorial_mob.forceMove(loc_from_corner(2, 1)) diff --git a/code/datums/tutorial/ss13/intents.dm b/code/datums/tutorial/ss13/intents.dm new file mode 100644 index 000000000000..d67b2ac1b4a1 --- /dev/null +++ b/code/datums/tutorial/ss13/intents.dm @@ -0,0 +1,113 @@ +/datum/tutorial/ss13/intents + name = "Space Station 13 - Intents" + desc = "Learn how the intent interaction system works." + icon_state = "intents" + tutorial_id = "ss13_intents_1" + tutorial_template = /datum/map_template/tutorial/s7x7 + +// START OF SCRIPTING + +/datum/tutorial/ss13/intents/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + message_to_player("This is the tutorial for the intents system of Space Station 13. The highlighted UI element in the bottom-right corner is your current intent.") + var/datum/hud/human/human_hud = tutorial_mob.hud_used + add_highlight(human_hud.action_intent) + + addtimer(CALLBACK(src, PROC_REF(require_help)), 4.5 SECONDS) + +/datum/tutorial/ss13/intents/proc/require_help() + tutorial_mob.a_intent_change(INTENT_DISARM) + message_to_player("Your intent has been changed off of help. Change back to it by pressing [retrieve_bind("select_help_intent")].") + update_objective("Change to help intent by pressing [retrieve_bind("select_help_intent")].") + + RegisterSignal(tutorial_mob, COMSIG_MOB_INTENT_CHANGE, PROC_REF(on_help_intent)) + +/datum/tutorial/ss13/intents/proc/on_help_intent(datum/source, new_intent) + SIGNAL_HANDLER + + if(new_intent != INTENT_HELP) + return + + UnregisterSignal(tutorial_mob, COMSIG_MOB_INTENT_CHANGE) + + var/mob/living/carbon/human/dummy/tutorial/tutorial_dummy = new(loc_from_corner(2, 3)) + add_to_tracking_atoms(tutorial_dummy) + + message_to_player("The first of the intents is help intent. It is used to harmlessly touch others, put out fire, give CPR, and similar. Click on the Test Dummy to give them a pat on the back.") + update_objective("Click on the dummy on help intent.") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_help_attack)) + +/datum/tutorial/ss13/intents/proc/on_help_attack(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if((attacked_mob == src) || (tutorial_mob.a_intent != INTENT_HELP)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + tutorial_dummy.status_flags = DEFAULT_MOB_STATUS_FLAGS + REMOVE_TRAIT(tutorial_dummy, TRAIT_IMMOBILIZED, TRAIT_SOURCE_TUTORIAL) + tutorial_dummy.anchored = FALSE + + message_to_player("The second intent is disarm, selectable with [retrieve_bind("select_disarm_intent")]. Disarm is used to shove people, which can make them drop items or fall to the ground. Shove the Test Dummy until it falls over.") + update_objective("Switch to disarm intent by pressing [retrieve_bind("select_disarm_intent")] and shove the dummy to the ground.") + + RegisterSignal(tutorial_dummy, COMSIG_LIVING_APPLY_EFFECT, PROC_REF(on_shove_down)) + +/datum/tutorial/ss13/intents/proc/on_shove_down(datum/source, datum/status_effect/new_effect) + SIGNAL_HANDLER + + if(!istype(new_effect, /datum/status_effect/incapacitating/knockdown)) + return + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + UnregisterSignal(tutorial_dummy, COMSIG_LIVING_APPLY_EFFECT) + tutorial_dummy.rejuvenate() + + message_to_player("The third intent is grab. Grab is used to grab people in either a passive, aggressive, or chokehold grab. Grab successively to \"upgrade\" your grab. Aggressively grab the Test Dummy.") + update_objective("Aggressively grab the dummy by grabbing them twice.") + + + RegisterSignal(tutorial_dummy, COMSIG_MOB_AGGRESSIVELY_GRABBED, PROC_REF(on_aggrograb)) + +/datum/tutorial/ss13/intents/proc/on_aggrograb(datum/source, mob/living/carbon/human/choker) + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + UnregisterSignal(tutorial_dummy, COMSIG_MOB_AGGRESSIVELY_GRABBED) + + message_to_player("The final intent is harm. Harm is used to injure people with your fists or a melee weapon. Punch the Test Dummy with an empty hand.") + update_objective("Attack the dummy with an empty hand.") + + RegisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN, PROC_REF(on_harm_attack)) + +/datum/tutorial/ss13/intents/proc/on_harm_attack(datum/source, mob/living/carbon/human/attacked_mob) + SIGNAL_HANDLER + + if((attacked_mob == src) || (tutorial_mob.a_intent != INTENT_HARM)) + return + + UnregisterSignal(tutorial_mob, COMSIG_LIVING_ATTACKHAND_HUMAN) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human/dummy/tutorial, tutorial_dummy) + tutorial_dummy.status_flags = GODMODE + + message_to_player("Excellent. Those are the basics of the intent system. The tutorial will end shortly.") + update_objective("") + + tutorial_end_in(5 SECONDS, TRUE) + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + + + +// END OF SCRIPT HELPERS + +/datum/tutorial/ss13/intents/init_mob() + . = ..() + tutorial_mob.forceMove(loc_from_corner(2, 0)) diff --git a/code/datums/tutorial/tutorial_example.dm b/code/datums/tutorial/tutorial_example.dm new file mode 100644 index 000000000000..9042346f8d39 --- /dev/null +++ b/code/datums/tutorial/tutorial_example.dm @@ -0,0 +1,74 @@ +/datum/tutorial/marine/example + name = "Example Tutorial" + tutorial_id = "example" // This won't show up in the list, so this'll be irrelevant anyway. + category = TUTORIAL_CATEGORY_BASE + parent_path = /datum/tutorial/marine/example + +// START OF SCRIPTING + +/datum/tutorial/marine/example/start_tutorial(mob/starting_mob) + // Here, we're calling parent and checking its return value. If it has a falsey one (as done by !.), then something went wrong and we should abort + // There isn't really a reason that you _shouldn't_ have this + . = ..() + if(!.) + return + + // Init_mob() isn't called by default, so we call it here + init_mob() + // As is standard, we give a message to the player and update their status panel with what we want done. + message_to_player("This is an example tutorial. Perform any emote to continue.") + update_objective("Do any emote.") + // This makes the player (tutorial_mob) listen for the COMSIG_MOB_EMOTE event, which will then call on_emote() when it hears it. + RegisterSignal(tutorial_mob, COMSIG_MOB_EMOTE, PROC_REF(on_emote)) + +/datum/tutorial/marine/example/proc/on_emote(datum/source) + // With any proc called via signal (see the RegisterSignal line above for details), we add SIGNAL_HANDLER to it. + SIGNAL_HANDLER + + // Now that we've gotten the signal and started the script, we want to immediately stop listening for it. + UnregisterSignal(tutorial_mob, COMSIG_MOB_EMOTE) + message_to_player("Good. Now, pick up that can of Weyland-Yutani Aspen Beer.") + update_objective("Pick up that can.") + // This macro takes a specific type path (the same used in init_map()) and a variable name to retrieve an object from the tracked object list + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/food/drinks/cans/aspen, beer_can) + // Now we're adding a yellow highlight around the can to make sure people know what we're talking about + add_highlight(beer_can) + // Now, we always prefer to register signals on the tutorial_mob (as opposed to the beer_can) whenever possible + RegisterSignal(tutorial_mob, COMSIG_MOB_PICKUP_ITEM, PROC_REF(on_can_pickup)) + +/// We get these arguments from the signal's definition. If you have VSC, ctrl+click on COMSIG_MOB_PICKUP_ITEM above. When dealing with a signal proc, `datum/source` is always the first argument, then any added ones +/datum/tutorial/marine/example/proc/on_can_pickup(datum/source, obj/item/picked_up) + SIGNAL_HANDLER + + // Since we're just listening for the mob picking anything up, we want to confirm that the picked up item is the can before continuing. If it's not, then we return and keep listening. + if(!istype(picked_up, /obj/item/reagent_container/food/drinks/cans/aspen)) + // If we hit this return here, then the picked up item wasn't the can, so we abort and keep listening. + return + + // Since we passed the above if statement, stop listening for item pickups. + UnregisterSignal(tutorial_mob, COMSIG_MOB_PICKUP_ITEM) + // Let's get the tracked beer can again. + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/reagent_container/food/drinks/cans/aspen, beer_can) + // And remove the highlight now that it's picked up + remove_highlight(beer_can) + message_to_player("Very good. This is the end of the example tutorial. You will be sent back to the lobby screen momentarily.") + // 7.5 seconds after the above message is sent, kick the player out and end the tutorial. + tutorial_end_in(7.5 SECONDS, TRUE) + + +// END OF SCRIPTING +// START OF SCRIPT HELPERS + +// END OF SCRIPT HELPERS + +/datum/tutorial/marine/example/init_mob() + . = ..() + // We give the tutorial mob a basic ID so they can use general vendors and etc. This is here because not all marine tutorials may want to use a naked equipment preset. + arm_equipment(tutorial_mob, /datum/equipment_preset/tutorial) + + +/datum/tutorial/marine/example/init_map() + // Here we're initializing a new can that we want to track, so we spawn it 2 tiles to the left and up from the bottom left corner of the tutorial zone + var/obj/item/reagent_container/food/drinks/cans/aspen/the_can = new(loc_from_corner(2, 2)) + // Now we start tracking it + add_to_tracking_atoms(the_can) diff --git a/code/datums/weather/weather_map_holders/new_varadero.dm b/code/datums/weather/weather_map_holders/new_varadero.dm index 8222001f4739..6dae09711e47 100644 --- a/code/datums/weather/weather_map_holders/new_varadero.dm +++ b/code/datums/weather/weather_map_holders/new_varadero.dm @@ -16,5 +16,5 @@ return prob(PROB_WEATHER_NEW_VARADERO) /datum/weather_ss_map_holder/new_varadero/weather_warning() - for (var/obj/structure/machinery/storm_siren/WS in weather_notify_objects) + for (var/obj/structure/machinery/storm_siren/WS in GLOB.weather_notify_objects) WS.weather_warning() diff --git a/code/datums/weather/weather_map_holders/sorokyne.dm b/code/datums/weather/weather_map_holders/sorokyne.dm index db55d12cdfbe..3c27a43ce1b3 100644 --- a/code/datums/weather/weather_map_holders/sorokyne.dm +++ b/code/datums/weather/weather_map_holders/sorokyne.dm @@ -21,5 +21,5 @@ return FALSE /datum/weather_ss_map_holder/sorokyne/weather_warning() - for (var/obj/structure/machinery/weather_siren/WS in weather_notify_objects) + for (var/obj/structure/machinery/weather_siren/WS in GLOB.weather_notify_objects) WS.weather_warning() diff --git a/code/defines/procs/announcement.dm b/code/defines/procs/announcement.dm index 5223d63b8e59..3dd918abbc6b 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -45,13 +45,11 @@ if((H.faction != faction_to_display && !add_PMCs) || (H.faction != faction_to_display && add_PMCs && !(H.faction in FACTION_LIST_WY)) && !(faction_to_display in H.faction_group)) //faction checks targets.Remove(H) - var/datum/ares_link/link = GLOB.ares_link - if(ares_can_log()) - switch(logging) - if(ARES_LOG_MAIN) - link.log_ares_announcement(title, message) - if(ARES_LOG_SECURITY) - link.log_ares_security(title, message) + switch(logging) + if(ARES_LOG_MAIN) + log_ares_announcement(title, message) + if(ARES_LOG_SECURITY) + log_ares_security(title, message) else if(faction_to_display == "Everyone (-Yautja)") for(var/mob/M in targets) @@ -95,22 +93,20 @@ if(isobserver(M) || ishuman(M) && is_mainship_level(M.z)) playsound_client(M.client, sound_to_play, M, vol = 45) - for(var/mob/living/silicon/decoy/ship_ai/AI in ai_mob_list) + for(var/mob/living/silicon/decoy/ship_ai/AI in GLOB.ai_mob_list) INVOKE_ASYNC(AI, TYPE_PROC_REF(/mob/living/silicon/decoy/ship_ai, say), message) - var/datum/ares_link/link = GLOB.ares_link - if(ares_can_log()) - switch(logging) - if(ARES_LOG_MAIN) - link.log_ares_announcement("[MAIN_AI_SYSTEM] Comms Update", message) - if(ARES_LOG_SECURITY) - link.log_ares_security("[MAIN_AI_SYSTEM] Security Update", message) + switch(logging) + if(ARES_LOG_MAIN) + log_ares_announcement("[MAIN_AI_SYSTEM] Comms Update", message) + if(ARES_LOG_SECURITY) + log_ares_security("[MAIN_AI_SYSTEM] Security Update", message) /proc/ai_silent_announcement(message, channel_prefix, bypass_cooldown = FALSE) if(!message) return - for(var/mob/living/silicon/decoy/ship_ai/AI in ai_mob_list) + for(var/mob/living/silicon/decoy/ship_ai/AI in GLOB.ai_mob_list) if(channel_prefix) message = "[channel_prefix][message]" INVOKE_ASYNC(AI, TYPE_PROC_REF(/mob/living/silicon/decoy/ship_ai, say), message) @@ -125,7 +121,7 @@ //AI shipside announcement, that uses announcement mechanic instead of talking into comms //to ensure that all humans on ship hear it regardless of comms and power -/proc/shipwide_ai_announcement(message, title = MAIN_AI_SYSTEM, sound_to_play = sound('sound/misc/interference.ogg'), signature) +/proc/shipwide_ai_announcement(message, title = MAIN_AI_SYSTEM, sound_to_play = sound('sound/misc/interference.ogg'), signature, ares_logging = ARES_LOG_MAIN) var/list/targets = GLOB.human_mob_list + GLOB.dead_mob_list for(var/mob/T in targets) if(isobserver(T)) @@ -135,9 +131,11 @@ if(!isnull(signature)) message += "

Signed by,
[signature]
" - var/datum/ares_link/link = GLOB.ares_link - if(link.interface && !(link.interface.inoperable())) - link.log_ares_announcement(title, message) + switch(ares_logging) + if(ARES_LOG_MAIN) + log_ares_announcement(title, message) + if(ARES_LOG_SECURITY) + log_ares_security(title, message) announcement_helper(message, title, targets, sound_to_play) @@ -150,9 +148,7 @@ if(!ishuman(T) || isyautja(T) || !is_mainship_level(T.z)) targets.Remove(T) - var/datum/ares_link/link = GLOB.ares_link - if(ares_can_log()) - link.log_ares_announcement("[title] Shipwide Update", message) + log_ares_announcement("[title] Shipwide Update", message) announcement_helper(message, title, targets, sound_to_play) diff --git a/code/defines/procs/radio.dm b/code/defines/procs/radio.dm index b4914d049fc9..d99d99b24726 100644 --- a/code/defines/procs/radio.dm +++ b/code/defines/procs/radio.dm @@ -2,8 +2,8 @@ var/freq_text // the name of the channel - for(var/channel in radiochannels) - if(radiochannels[channel] == display_freq) + for(var/channel in GLOB.radiochannels) + if(GLOB.radiochannels[channel] == display_freq) freq_text = channel break diff --git a/code/defines/procs/records.dm b/code/defines/procs/records.dm index a1e2ade2b709..a9d40f993629 100644 --- a/code/defines/procs/records.dm +++ b/code/defines/procs/records.dm @@ -1,48 +1,50 @@ /proc/CreateGeneralRecord() - var/datum/data/record/G = new /datum/data/record() - G.fields["name"] = "New Record" - G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) - G.fields["rank"] = "Unassigned" - G.fields["real_rank"] = "Unassigned" - G.fields["sex"] = "Male" - G.fields["age"] = "Unknown" - G.fields["ethnicity"] = "Unknown" - G.fields["p_stat"] = "Active" - G.fields["m_stat"] = "Stable" - G.fields["species"] = "Human" - G.fields["origin"] = "Unknown" - G.fields["faction"] = "Unknown" - G.fields["mob_faction"] = "Unknown" - G.fields["religion"] = "Unknown" - GLOB.data_core.general += G - return G + var/datum/data/record/general_record = new /datum/data/record() + general_record.fields["name"] = "New Record" + general_record.name = "New Record" + general_record.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) + general_record.fields["rank"] = "Unassigned" + general_record.fields["real_rank"] = "Unassigned" + general_record.fields["sex"] = "Male" + general_record.fields["age"] = "Unknown" + general_record.fields["ethnicity"] = "Unknown" + general_record.fields["p_stat"] = "Active" + general_record.fields["m_stat"] = "Stable" + general_record.fields["species"] = "Human" + general_record.fields["origin"] = "Unknown" + general_record.fields["faction"] = "Unknown" + general_record.fields["mob_faction"] = "Unknown" + general_record.fields["religion"] = "Unknown" + GLOB.data_core.general += general_record + return general_record /proc/CreateSecurityRecord(name as text, id as text) - var/datum/data/record/R = new /datum/data/record() - R.fields["name"] = name - R.fields["id"] = id - R.name = text("Security Record #[id]") - R.fields["incidents"] = "None" - GLOB.data_core.security += R - return R + var/datum/data/record/security_record = new /datum/data/record() + security_record.fields["name"] = name + security_record.fields["id"] = id + security_record.name = text("Security Record #[id]") + security_record.fields["incidents"] = "None" + GLOB.data_core.security += security_record + return security_record -/proc/create_medical_record(mob/living/carbon/human/H) - var/datum/data/record/M = new /datum/data/record() - M.fields["id"] = null - M.fields["name"] = H.real_name - M.fields["b_type"] = H.b_type - M.fields["mi_dis"] = "None" - M.fields["mi_dis_d"] = "No minor disabilities have been declared." - M.fields["ma_dis"] = "None" - M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." - M.fields["alg"] = "None" - M.fields["alg_d"] = "No allergies have been detected in this patient." - M.fields["cdi"] = "None" - M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." - M.fields["last_scan_time"] = null - M.fields["last_scan_result"] = "No scan data on record" - M.fields["autodoc_data"] = list() - M.fields["autodoc_manual"] = list() - M.fields["ref"] = WEAKREF(H) - GLOB.data_core.medical += M - return M +/proc/create_medical_record(mob/living/carbon/human/person) + var/datum/data/record/medical_record = new /datum/data/record() + medical_record.fields["id"] = null + medical_record.fields["name"] = person.real_name + medical_record.name = person.real_name + medical_record.fields["b_type"] = person.b_type + medical_record.fields["mi_dis"] = "None" + medical_record.fields["mi_dis_d"] = "No minor disabilities have been declared." + medical_record.fields["ma_dis"] = "None" + medical_record.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + medical_record.fields["alg"] = "None" + medical_record.fields["alg_d"] = "No allergies have been detected in this patient." + medical_record.fields["cdi"] = "None" + medical_record.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + medical_record.fields["last_scan_time"] = null + medical_record.fields["last_scan_result"] = "No scan data on record" + medical_record.fields["autodoc_data"] = list() + medical_record.fields["autodoc_manual"] = list() + medical_record.fields["ref"] = WEAKREF(person) + GLOB.data_core.medical += medical_record + return medical_record diff --git a/code/game/area/LV624.dm b/code/game/area/LV624.dm index 505387f8e52b..613703a0be6e 100644 --- a/code/game/area/LV624.dm +++ b/code/game/area/LV624.dm @@ -382,10 +382,12 @@ /area/lv624/lazarus/engineering name = "\improper Engineering" icon_state = "engine_smes" + minimap_color = MINIMAP_AREA_ENGI /area/lv624/lazarus/comms name = "\improper Communications Relay" icon_state = "tcomsatcham" + minimap_color = MINIMAP_AREA_ENGI /area/lv624/lazarus/secure_storage name = "\improper Secure Storage" @@ -400,6 +402,7 @@ /area/lv624/lazarus/research name = "\improper Research Lab" icon_state = "toxlab" + minimap_color = MINIMAP_AREA_RESEARCH /area/lv624/lazarus/fitness name = "\improper Fitness Room" diff --git a/code/game/area/WhiskeyOutpost.dm b/code/game/area/WhiskeyOutpost.dm index 02d94dc942da..aef72d1a9941 100644 --- a/code/game/area/WhiskeyOutpost.dm +++ b/code/game/area/WhiskeyOutpost.dm @@ -65,7 +65,7 @@ icon_state = "livingspace" /area/whiskey_outpost/inside/supply - name = "\improper Supply Depo" + name = "\improper Supply Depot" icon_state = "req" /* diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm index 00b408c04adf..bfca1481155e 100644 --- a/code/game/area/admin_level.dm +++ b/code/game/area/admin_level.dm @@ -144,3 +144,22 @@ /area/misc/testroom requires_power = FALSE name = "Test Room" + +/area/misc/tutorial + name = "Tutorial Zone" + icon_state = "tutorial" + requires_power = FALSE + flags_area = AREA_NOTUNNEL|AREA_AVOID_BIOSCAN + statistic_exempt = TRUE + ceiling = CEILING_METAL + block_game_interaction = TRUE + unique = TRUE + + base_lighting_alpha = 255 + +/area/misc/tutorial/Initialize(mapload, ...) + . = ..() + update_base_lighting() + +/area/misc/tutorial/no_baselight + base_lighting_alpha = 0 diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm index 6ced81a22b15..5267798cfe3b 100644 --- a/code/game/area/almayer.dm +++ b/code/game/area/almayer.dm @@ -13,13 +13,28 @@ ambience_exterior = AMBIENCE_ALMAYER ceiling_muffle = FALSE + ///Whether this area is used for hijack evacuation progress + var/hijack_evacuation_area = FALSE + + ///The weight this area gives towards hijack evacuation progress + var/hijack_evacuation_weight = 0 + + ///Whether this area is additive or multiplicative towards evacuation progress + var/hijack_evacuation_type = EVACUATION_TYPE_NONE + +/area/almayer/Initialize(mapload, ...) + . = ..() + + if(hijack_evacuation_area) + SShijack.progress_areas[src] = power_equip + /area/shuttle/almayer/elevator_maintenance/upperdeck - name = "\improper Maintenance Elevator" + name = "\improper Upper Deck Maintenance Elevator" icon_state = "shuttle" fake_zlevel = 1 /area/shuttle/almayer/elevator_maintenance/lowerdeck - name = "\improper Maintenance Elevator" + name = "\improper Lower Deck Maintenance Elevator" icon_state = "shuttle" fake_zlevel = 2 @@ -83,96 +98,102 @@ resin_construction_allowed = FALSE /area/almayer/command/securestorage - name = "\improper Secure Storage" + name = "\improper Upper Deck Secure Storage" icon_state = "corporatespace" - fake_zlevel = 2 // lowerdeck + fake_zlevel = 1 // upperdeck /area/almayer/command/computerlab - name = "\improper Computer Lab" + name = "\improper Upper Deck Computer Lab" icon_state = "ceroom" - fake_zlevel = 2 // lowerdeck + fake_zlevel = 1 // upperdeck /area/almayer/command/telecomms - name = "\improper Telecommunications" + name = "\improper Upper Deck Telecommunications" icon_state = "tcomms" fake_zlevel = 1 // upperdeck flags_area = AREA_NOTUNNEL /area/almayer/command/self_destruct - name = "\improper Self-Destruct Core Room" + name = "\improper Upper Deck Self-Destruct Core Room" icon_state = "selfdestruct" fake_zlevel = 1 // upperdeck flags_area = AREA_NOTUNNEL -/area/almayer/command/corporateliason +/area/almayer/command/corporateliaison name = "\improper Corporate Liaison Office" icon_state = "corporatespace" fake_zlevel = 1 // upperdeck /area/almayer/command/combat_correspondent - name = "\improper Combat Correspondent Office" + name = "\improper Upper Deck Combat Correspondent Office" icon_state = "selfdestruct" fake_zlevel = 1 // upperdeck +// engineering + /area/almayer/engineering minimap_color = MINIMAP_AREA_ENGI +// lower deck + +/area/almayer/engineering/lower + name = "\improper Lower Deck Engineering" + icon_state = "lowerengineering" + fake_zlevel = 2 // lowerdeck + +/area/almayer/engineering/lower/engine_monitoring//this is not used so could be remove? + name = "\improper Lower Deck Engine Reactor Monitoring" + icon_state = "lowermonitoring" + +/area/almayer/engineering/lower/workshop + name = "\improper Lower Deck Engineering Workshop" + icon_state = "workshop" + +/area/almayer/engineering/lower/workshop/hangar + name = "\improper Ordnance workshop" + +/area/almayer/engineering/lower/engine_core + name = "\improper Engine Reactor Core Room" + icon_state = "coreroom" + soundscape_playlist = SCAPE_PL_ENG + soundscape_interval = 15 + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 0.2 + hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE + +// upper deck + /area/almayer/engineering/upper_engineering - name = "\improper Upper Engineering" + name = "\improper Upper Deck Engineering" icon_state = "upperengineering" fake_zlevel = 1 // upperdeck /area/almayer/engineering/upper_engineering/starboard - name = "\improper Starboard Upper Engineering" + name = "\improper Upper Deck Starboard Engineering" /area/almayer/engineering/upper_engineering/port - name = "\improper Port Upper Engineering" + name = "\improper Upper Deck Port Engineering" /area/almayer/engineering/upper_engineering/notunnel flags_area = AREA_NOTUNNEL /area/almayer/engineering/ce_room - name = "\improper Chief Engineer Office" + name = "\improper Upper Deck Chief Engineer Office" icon_state = "ceroom" fake_zlevel = 1 // upperdeck -/area/almayer/engineering/lower_engine_monitoring - name = "\improper Engine Reactor Monitoring" - icon_state = "lowermonitoring" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/lower_engineering - name = "\improper Engineering Lower" - icon_state = "lowerengineering" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/engineering_workshop - name = "\improper Engineering Workshop" - icon_state = "workshop" - fake_zlevel = 2 // lowerdeck - -/area/almayer/engineering/engineering_workshop/hangar - name = "\improper Ordnance workshop" - -/area/almayer/engineering/engine_core - name = "\improper Engine Reactor Core Room" - icon_state = "coreroom" - fake_zlevel = 2 // lowerdeck - soundscape_playlist = SCAPE_PL_ENG - soundscape_interval = 15 - /area/almayer/engineering/starboard_atmos - name = "\improper Atmospherics Starboard" + name = "\improper Upper Deck Starboard Atmospherics" icon_state = "starboardatmos" fake_zlevel = 1 // upperdeck /area/almayer/engineering/port_atmos - name = "\improper Atmospherics Port" + name = "\improper Upper Deck Port Atmospherics" icon_state = "portatmos" fake_zlevel = 1 // upperdeck /area/almayer/engineering/laundry - name = "\improper Laundry Room" + name = "\improper Upper Deck Laundry Room" icon_state = "laundry" fake_zlevel = 1 // upperdeck @@ -183,6 +204,9 @@ name = "\improper Astronavigational Deck" icon_state = "astronavigation" fake_zlevel = 2 // lowerdeck + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 1.1 + hijack_evacuation_type = EVACUATION_TYPE_MULTIPLICATIVE /area/almayer/shipboard/panic name = "\improper Hangar Panic Room" @@ -190,17 +214,17 @@ fake_zlevel = 2 // lowerdeck /area/almayer/shipboard/starboard_missiles - name = "\improper Missile Tubes Starboard" + name = "\improper Upper Deck Starboard Missile Tubes" icon_state = "starboardmissile" fake_zlevel = 1 // upperdeck /area/almayer/shipboard/port_missiles - name = "\improper Missile Tubes Port" + name = "\improper Upper Deck Port Missile Tubes" icon_state = "portmissile" fake_zlevel = 1 // upperdeck /area/almayer/shipboard/weapon_room - name = "\improper Weapon Control Room" + name = "\improper Lower Deck Weapon Control" icon_state = "weaponroom" fake_zlevel = 2 // lowerdeck @@ -208,15 +232,22 @@ flags_area = AREA_NOTUNNEL /area/almayer/shipboard/starboard_point_defense - name = "\improper Point Defense Starboard" + name = "\improper Lower Deck Starboard Point Defense" icon_state = "starboardpd" fake_zlevel = 2 // lowerdeck /area/almayer/shipboard/port_point_defense - name = "\improper Point Defense Port" + name = "\improper Lower Deck Port Point Defense" icon_state = "portpd" fake_zlevel = 2 // lowerdeck +/area/almayer/shipboard/stern_point_defense + name = "\improper Lower Deck Stern Point Defense" + icon_state = "portpd" + fake_zlevel = 2 // lowerdeck + +// brig + /area/almayer/shipboard/brig name = "\improper Brig" icon_state = "brig" @@ -224,51 +255,38 @@ /area/almayer/shipboard/brig/lobby name = "\improper Brig Lobby" - icon_state = "brig" /area/almayer/shipboard/brig/armory name = "\improper Brig Armory" - icon_state = "brig" /area/almayer/shipboard/brig/main_office name = "\improper Brig Main Office" - icon_state = "brig" /area/almayer/shipboard/brig/perma name = "\improper Brig Perma Cells" - icon_state = "brig" /area/almayer/shipboard/brig/cryo name = "\improper Brig Cryo Pods" - icon_state = "brig" /area/almayer/shipboard/brig/surgery name = "\improper Brig Surgery" - icon_state = "brig" /area/almayer/shipboard/brig/general_equipment name = "\improper Brig General Equipment" - icon_state = "brig" /area/almayer/shipboard/brig/evidence_storage name = "\improper Brig Evidence Storage" - icon_state = "brig" /area/almayer/shipboard/brig/execution name = "\improper Brig Execution Room" - icon_state = "brig" /area/almayer/shipboard/brig/cic_hallway name = "\improper Brig CiC Hallway" - icon_state = "brig" /area/almayer/shipboard/brig/dress name = "\improper CIC Dress Uniform Room" - icon_state = "brig" - /area/almayer/shipboard/brig/processing name = "\improper Brig Processing and Holding" - icon_state = "brig" /area/almayer/shipboard/brig/cells name = "\improper Brig Cells" @@ -279,7 +297,7 @@ icon_state = "chiefmpoffice" /area/almayer/shipboard/sea_office - name = "\improper Senior Enlisted Advisor Office" + name = "\improper Lower Deck Senior Enlisted Advisor Office" icon_state = "chiefmpoffice" fake_zlevel = 2 // lowerdeck @@ -305,7 +323,7 @@ soundscape_interval = 50 /area/almayer/hallways/vehiclehangar - name = "\improper Vehicle Storage" + name = "\improper Lower Deck Vehicle Storage" icon_state = "exoarmor" fake_zlevel = 2 @@ -313,135 +331,146 @@ minimap_color = MINIMAP_AREA_COLONY /area/almayer/living/tankerbunks - name = "\improper Vehicle Crew Bunks" + name = "\improper Lower Deck Vehicle Crew Bunks" icon_state = "livingspace" fake_zlevel = 2 /area/almayer/living/auxiliary_officer_office - name = "\improper Auxiliary Support Officer office" + name = "\improper Lower Deck Auxiliary Support Officer office" icon_state = "livingspace" fake_zlevel = 2 /area/almayer/squads/tankdeliveries - name = "\improper Vehicle ASRS" + name = "\improper Lower Deck Vehicle ASRS" icon_state = "req" fake_zlevel = 2 /area/almayer/hallways/exoarmor - name = "\improper Vehicle Armor Storage" + name = "\improper Lower Deck Vehicle Armor Storage" icon_state = "exoarmor" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/repair_bay - name = "\improper Deployment Workshop" + name = "\improper Lower Deck Deployment Workshop" icon_state = "dropshiprepair" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/mission_planner - name = "\improper Dropship Central Computer Room" + name = "\improper Lower Deck Dropship Central Computer Room" icon_state = "missionplanner" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/starboard_umbilical - name = "\improper Umbilical Starboard" + name = "\improper Lower Deck Starboard Umbilical Hallway" icon_state = "starboardumbilical" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/port_umbilical - name = "\improper Umbilical Port" + name = "\improper Lower Deck Port Umbilical Hallway" icon_state = "portumbilical" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/aft_hallway - name = "\improper Hallway Aft" + name = "\improper Upper Deck Aft Hallway" icon_state = "aft" fake_zlevel = 1 // upperdeck /area/almayer/hallways/stern_hallway - name = "\improper Hallway Stern" + name = "\improper Upper Deck Stern Hallway" icon_state = "stern" fake_zlevel = 1 // upperdeck /area/almayer/hallways/port_hallway - name = "\improper Hallway Port" + name = "\improper Lower Deck Port Hallway" icon_state = "port" fake_zlevel = 2 // lowerdeck /area/almayer/hallways/starboard_hallway - name = "\improper Hallway Starboard" + name = "\improper Lower Deck Starboard Hallway" icon_state = "starboard" fake_zlevel = 2 // lowerdeck +//new hallways areas + +/area/almayer/hallways/upper + fake_zlevel = 1 // upperdeck + +/area/almayer/hallways/upper/port + name = "\improper Upper Deck Port Hallway" + icon_state = "port" + +/area/almayer/hallways/upper/starboard + name = "\improper Upper Deck Starboard Hallway" + icon_state = "starboard" + /area/almayer/stair_clone - name = "\improper Stairs" + name = "\improper Lower Deck Stairs" icon_state = "stairs_lowerdeck" fake_zlevel = 2 // lowerdeck resin_construction_allowed = FALSE /area/almayer/stair_clone/upper + name = "\improper Upper Deck Stairs" icon_state = "stairs_upperdeck" fake_zlevel = 1 // upperdeck +// hull areas. + +// lower deck hull areas + /area/almayer/hull/lower_hull - name = "\improper Hull Lower" + name = "\improper Lower Deck Hull" icon_state = "lowerhull" fake_zlevel = 2 // lowerdeck +/area/almayer/hull/lower_hull/stern + name = "\improper Lower Deck Stern Hull" + +/area/almayer/hull/lower_hull/l_f_s + name = "\improper Lower Deck Starboard-Fore Hull" + +/area/almayer/hull/lower_hull/l_m_s + name = "\improper Lower Deck Starboard-Midship Hull" + +/area/almayer/hull/lower_hull/l_a_s + name = "\improper Lower Deck Starboard Hull" + +/area/almayer/hull/lower_hull/l_f_p + name = "\improper Lower Deck Port-Fore Hull" + +/area/almayer/hull/lower_hull/l_m_p + name = "\improper Lower Deck Port-Midship Hull" + +/area/almayer/hull/lower_hull/l_a_p + name = "\improper Lower Deck Port-Aft Hull" + +// upper deck hull areas + /area/almayer/hull/upper_hull - name = "\improper Hull Upper" + name = "\improper Upper Deck Hull" icon_state = "upperhull" fake_zlevel = 1 // upperdeck /area/almayer/hull/upper_hull/u_f_s - name = "\improper Upper Fore-Starboard Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Fore-Starboard Hull" /area/almayer/hull/upper_hull/u_m_s - name = "\improper Upper Midship-Starboard Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Starboard-Midship Hull" /area/almayer/hull/upper_hull/u_a_s - name = "\improper Upper Aft-Starboard Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Starboard-Aft Hull" /area/almayer/hull/upper_hull/u_f_p - name = "\improper Upper Fore-Port Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Port-Fore Hull" /area/almayer/hull/upper_hull/u_m_p - name = "\improper Upper Midship-Port Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Port-Midship Hull" /area/almayer/hull/upper_hull/u_a_p - name = "\improper Upper Aft-Port Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_f_s - name = "\improper Lower Fore-Starboard Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_m_s - name = "\improper Lower Midship-Starboard Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_a_s - name = "\improper Lower Aft-Starboard Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_f_p - name = "\improper Lower Fore-Port Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_m_p - name = "\improper Lower Midship-Port Hull" - icon_state = "upperhull" - -/area/almayer/hull/lower_hull/l_a_p - name = "\improper Lower Aft-Port Hull" - icon_state = "upperhull" + name = "\improper Upper Deck Port-Aft Hull" /area/almayer/living/cryo_cells - name = "\improper Cryo Cells" + name = "\improper Lower Deck Cryo Cells" icon_state = "cryo" fake_zlevel = 2 // lowerdeck @@ -451,22 +480,22 @@ fake_zlevel = 2 // lowerdeck /area/almayer/living/port_emb - name = "\improper Extended Mission Bunks" + name = "\improper Lower Deck Port Extended Mission Bunks" icon_state = "portemb" fake_zlevel = 2 // lowerdeck /area/almayer/living/starboard_emb - name = "\improper Extended Mission Bunks" + name = "\improper Lower Deck Starboard Extended Mission Bunks" icon_state = "starboardemb" fake_zlevel = 2 // lowerdeck /area/almayer/living/port_garden - name = "\improper Garden" + name = "\improper Port Garden" icon_state = "portemb" fake_zlevel = 1 // upperdeck /area/almayer/living/starboard_garden - name = "\improper Garden" + name = "\improper Starboard Garden" icon_state = "starboardemb" fake_zlevel = 1 // upperdeck @@ -481,12 +510,12 @@ fake_zlevel = 2 // lowerdeck /area/almayer/living/officer_rnr - name = "\improper Officer's Lounge" + name = "\improper Upper Deck Officer's Lounge" icon_state = "officerrnr" fake_zlevel = 1 // upperdeck /area/almayer/living/officer_study - name = "\improper Officer's Study" + name = "\improper Upper Deck Officer's Study" icon_state = "officerstudy" fake_zlevel = 1 // upperdeck @@ -501,17 +530,17 @@ fake_zlevel = 2 // lowerdeck /area/almayer/living/gym - name = "\improper Gym" + name = "\improper Lower Deck Gym" icon_state = "officerrnr" fake_zlevel = 2 // lowerdeck /area/almayer/living/cafeteria_officer - name = "\improper Officer Cafeteria" + name = "\improper Upper Deck Officer Cafeteria" icon_state = "food" fake_zlevel = 1 // upperdeck /area/almayer/living/offices - name = "\improper Conference Office" + name = "\improper Lower Deck Conference Office" icon_state = "briefing" fake_zlevel = 2 // lowerdeck @@ -539,7 +568,7 @@ fake_zlevel = 1 // upperdeck /area/almayer/living/synthcloset - name = "\improper Synthetic Storage Closet" + name = "\improper Upper Deck Synthetic Storage Closet" icon_state = "livingspace" fake_zlevel = 1 // upperdeck @@ -712,18 +741,21 @@ icon_state = "lifeboat_pump" requires_power = 1 fake_zlevel = 1 + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 0.1 + hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE /area/almayer/lifeboat_pumps/north1 - name = "North West Lifeboat Fuel Pump" + name = "Starboard Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/north2 - name = "North East Lifeboat Fuel Pump" + name = "Starboard Aft Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south1 - name = "South West Lifeboat Fuel Pump" + name = "Port Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south2 - name = "South East Lifeboat Fuel Pump" + name = "Port Aft Lifeboat Fuel Pump" /area/almayer/command/lifeboat name = "\improper Lifeboat Docking Port" @@ -736,7 +768,7 @@ flags_area = AREA_NOTUNNEL /area/space/almayer/lifeboat_dock - name = "\improper Lifeboat Docking Port" + name = "\improper Port Lifeboat Docking" icon_state = "lifeboat" fake_zlevel = 1 // upperdeck flags_area = AREA_NOTUNNEL diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 826b2dc0585f..9699db527102 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -79,6 +79,10 @@ var/used_environ = 0 var/used_oneoff = 0 //one-off power usage + /// If this area is outside the game's normal interactivity and should be excluded from things like EOR reports and crew monitors. + /// Doesn't need to be set for areas/Z levels that are marked as admin-only + var/block_game_interaction = FALSE + /area/New() // This interacts with the map loader, so it needs to be set immediately @@ -90,12 +94,12 @@ initialize_power() /area/Initialize(mapload, ...) - icon_state = "" //Used to reset the icon overlay, I assume. + icon = null layer = AREAS_LAYER uid = ++global_uid . = ..() - active_areas += src - all_areas += src + GLOB.active_areas += src + GLOB.all_areas += src reg_in_areas_in_z() if(is_mainship_level(z)) GLOB.ship_areas += src @@ -138,13 +142,13 @@ C.network.Remove(CAMERA_NET_POWER_ALARMS) else C.network.Add(CAMERA_NET_POWER_ALARMS) - for (var/mob/living/silicon/aiPlayer in ai_mob_list) + for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) if(aiPlayer.z == source.z) if (state == 1) aiPlayer.cancelAlarm("Power", src, source) else aiPlayer.triggerAlarm("Power", src, cameras, source) - for(var/obj/structure/machinery/computer/station_alert/a in machines) + for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) if(a.z == source.z) if(state == 1) a.cancelAlarm("Power", src, source) @@ -169,9 +173,9 @@ if (danger_level < 2 && atmosalm >= 2) for(var/obj/structure/machinery/camera/C in src) C.network.Remove(CAMERA_NET_ATMOSPHERE_ALARMS) - for(var/mob/living/silicon/aiPlayer in ai_mob_list) + for(var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) aiPlayer.cancelAlarm("Atmosphere", src, src) - for(var/obj/structure/machinery/computer/station_alert/a in machines) + for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.cancelAlarm("Atmosphere", src, src) if (danger_level >= 2 && atmosalm < 2) @@ -180,9 +184,9 @@ for(var/obj/structure/machinery/camera/C in src) cameras += C C.network.Add(CAMERA_NET_ATMOSPHERE_ALARMS) - for(var/mob/living/silicon/aiPlayer in ai_mob_list) + for(var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) aiPlayer.triggerAlarm("Atmosphere", src, cameras, src) - for(var/obj/structure/machinery/computer/station_alert/a in machines) + for(var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.triggerAlarm("Atmosphere", src, cameras, src) air_doors_close() @@ -231,9 +235,9 @@ for (var/obj/structure/machinery/camera/C in src) cameras.Add(C) C.network.Add(CAMERA_NET_FIRE_ALARMS) - for (var/mob/living/silicon/ai/aiPlayer in ai_mob_list) + for (var/mob/living/silicon/ai/aiPlayer in GLOB.ai_mob_list) aiPlayer.triggerAlarm("Fire", src, cameras, src) - for (var/obj/structure/machinery/computer/station_alert/a in machines) + for (var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.triggerAlarm("Fire", src, cameras, src) /area/proc/firereset() @@ -249,9 +253,9 @@ INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/structure/machinery/door, open)) for (var/obj/structure/machinery/camera/C in src) C.network.Remove(CAMERA_NET_FIRE_ALARMS) - for (var/mob/living/silicon/ai/aiPlayer in ai_mob_list) + for (var/mob/living/silicon/ai/aiPlayer in GLOB.ai_mob_list) aiPlayer.cancelAlarm("Fire", src, src) - for (var/obj/structure/machinery/computer/station_alert/a in machines) + for (var/obj/structure/machinery/computer/station_alert/a in GLOB.machines) a.cancelAlarm("Fire", src, src) /area/proc/readyalert() diff --git a/code/game/area/kutjevo.dm b/code/game/area/kutjevo.dm index 422017c0a46b..a5a12cd5b999 100644 --- a/code/game/area/kutjevo.dm +++ b/code/game/area/kutjevo.dm @@ -67,6 +67,10 @@ name = "Kutjevo - Power Station River" icon_state = "lz_river" +/area/kutjevo/exterior/spring + name = "Kutjevo - Southern Spring" + icon_state = "lz_river" + /area/kutjevo/exterior/scrubland name = "Kutjevo - Scrubland" icon_state = "scrubland" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e1541f8368b8..5f36b3b8b390 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -33,8 +33,11 @@ var/list/filter_data //For handling persistent filters - // Base transform matrix - var/matrix/base_transform = null + /// Base transform matrix, edited by admin tooling and such + var/matrix/base_transform + /// Last transform used before being compound with base_transform + /// This allows us to re-create transform if only base_transform changes + var/matrix/raw_transform ///Chemistry. var/datum/reagents/reagents = null @@ -116,7 +119,14 @@ directive is properly returned. //=========================================================================== - +// TODO make all atoms use set_density, do not rely on it at present +///Setter for the `density` variable to append behavior related to its changing. +/atom/proc/set_density(new_value) + SHOULD_CALL_PARENT(TRUE) + if(density == new_value) + return + . = density + density = new_value //atmos procs @@ -141,15 +151,27 @@ directive is properly returned. if(loc) return loc.return_gas() -// Updates the atom's transform -/atom/proc/apply_transform(matrix/M) - if(!base_transform) - transform = M - return +/// Updates the atom's transform compounding it with [/atom/var/base_transform] +/atom/proc/apply_transform(matrix/new_transform, time = 0, easing = (EASE_IN|EASE_OUT)) + var/matrix/base_copy + if(base_transform) + base_copy = matrix(base_transform) + else + base_copy = matrix() + raw_transform = matrix(new_transform) // Keep a copy to replay if needed - var/matrix/base_copy = matrix(base_transform) // Compose the base and applied transform in that order - transform = base_copy.Multiply(M) + var/matrix/complete = base_copy.Multiply(raw_transform) + + if(!time) + transform = complete + return + animate(src, transform = complete, time = time, easing = easing, flags = ANIMATION_PARALLEL) + +/// Upates the base_transform which will be compounded with other transforms +/atom/proc/update_base_transform(matrix/new_transform, time = 0) + base_transform = matrix(new_transform) + apply_transform(raw_transform, time) /atom/proc/on_reagent_change() return @@ -183,7 +205,9 @@ directive is properly returned. return /atom/proc/emp_act(severity) - return + SHOULD_CALL_PARENT(TRUE) + + SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity) /atom/proc/in_contents_of(container)//can take class or object instance as argument if(ispath(container)) @@ -223,8 +247,8 @@ directive is properly returned. if(!examine_strings) log_debug("Attempted to create an examine block with no strings! Atom : [src], user : [user]") return - to_chat(user, examine_block(examine_strings.Join("\n"))) SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, examine_strings) + to_chat(user, examine_block(examine_strings.Join("\n"))) /atom/proc/get_examine_text(mob/user) . = list() @@ -363,11 +387,11 @@ Parameters are passed from New. var/turf/opaque_turf = loc opaque_turf.directional_opacity = ALL_CARDINALS // No need to recalculate it in this case, it's guaranteed to be on afterwards anyways. - pass_flags = pass_flags_cache[type] + pass_flags = GLOB.pass_flags_cache[type] if (isnull(pass_flags)) pass_flags = new() initialize_pass_flags(pass_flags) - pass_flags_cache[type] = pass_flags + GLOB.pass_flags_cache[type] = pass_flags else initialize_pass_flags() Decorate(mapload) @@ -394,7 +418,7 @@ Parameters are passed from New. T.appearance = src.appearance T.setDir(src.dir) - clones_t.Add(src) + GLOB.clones_t.Add(src) src.clone = T // EFFECTS @@ -699,10 +723,9 @@ Parameters are passed from New. usr.client.cmd_admin_emp(src) if(href_list[VV_HK_MODIFY_TRANSFORM] && check_rights(R_VAREDIT)) - var/result = tgui_input_list(usr, "Choose the transformation to apply","Transform Mod", list("Scale","Translate","Rotate")) + var/result = tgui_input_list(usr, "Choose the transformation to apply","Transform Mod", list("Scale","Translate","Rotate", "Reflect X Axis", "Reflect Y Axis")) if(!result) return - var/matrix/M = transform if(!result) return switch(result) @@ -711,19 +734,37 @@ Parameters are passed from New. var/y = tgui_input_real_number(usr, "Choose y mod","Transform Mod") if(isnull(x) || isnull(y)) return - transform = M.Scale(x,y) + var/matrix/base_matrix = matrix(base_transform) + update_base_transform(base_matrix.Scale(x,y)) if("Translate") var/x = tgui_input_real_number(usr, "Choose x mod (negative = left, positive = right)","Transform Mod") var/y = tgui_input_real_number(usr, "Choose y mod (negative = down, positive = up)","Transform Mod") if(isnull(x) || isnull(y)) return - transform = M.Translate(x,y) + var/matrix/base_matrix = matrix(base_transform) + update_base_transform(base_matrix.Translate(x,y)) if("Rotate") var/angle = tgui_input_real_number(usr, "Choose angle to rotate","Transform Mod") if(isnull(angle)) return - transform = M.Turn(angle) - + var/matrix/base_matrix = matrix(base_transform) + update_base_transform(base_matrix.Turn(angle)) + if("Reflect X Axis") + var/matrix/current = matrix(base_transform) + var/matrix/reflector = matrix() + reflector.a = -1 + reflector.d = 0 + reflector.b = 0 + reflector.e = 1 + update_base_transform(current * reflector) + if("Reflect Y Axis") + var/matrix/current = matrix(base_transform) + var/matrix/reflector = matrix() + reflector.a = 1 + reflector.d = 0 + reflector.b = 0 + reflector.e = -1 + update_base_transform(current * reflector) SEND_SIGNAL(src, COMSIG_ATOM_VV_MODIFY_TRANSFORM) if(href_list[VV_HK_AUTO_RENAME] && check_rights(R_VAREDIT)) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index b8a901ccf321..21f7b6b0a9be 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -281,7 +281,7 @@ C.proj_x = shift_x C.proj_y = shift_y - clones.Add(C) + GLOB.clones.Add(C) C.mstr = src //Link clone and master src.clone = C @@ -313,7 +313,7 @@ clone.set_light(0) //Kill clone light /atom/movable/proc/destroy_clone() - clones.Remove(src.clone) + GLOB.clones.Remove(src.clone) qdel(src.clone) src.clone = null diff --git a/code/game/bioscans.dm b/code/game/bioscans.dm index 62c801a02d29..5be3c9fbe3fd 100644 --- a/code/game/bioscans.dm +++ b/code/game/bioscans.dm @@ -109,25 +109,22 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new) to_chat(ghost, ghost_scan) -/// This will do something after Project ARES. /datum/bioscan_data/proc/ares_can_bioscan() var/datum/ares_link/link = GLOB.ares_link - if(!istype(link)) + if(!istype(link) || !ares_is_active()) return FALSE - if(link.p_bioscan && !link.p_bioscan.inoperable()) + if(link.processor_bioscan && !link.processor_bioscan.inoperable()) return TRUE return FALSE /// The announcement to all Humans. Slightly off for the planet and elsewhere, accurate for the ship. /datum/bioscan_data/proc/ares_bioscan(forced = FALSE, variance = 2) - var/datum/ares_link/link = GLOB.ares_link if(!forced && !ares_can_bioscan()) message_admins("An ARES Bioscan has failed.") var/name = "[MAIN_AI_SYSTEM] Bioscan Status" var/input = "Bioscan failed. \n\nInvestigation into Bioscan subsystem recommended." - if(ares_can_log()) - link.log_ares_bioscan(name, input) - if(ares_can_interface()) + log_ares_bioscan(name, input, forced) + if(ares_can_interface() || forced) marine_announcement(input, name, 'sound/misc/interference.ogg', logging = ARES_LOG_NONE) return //Adjust the randomness there so everyone gets the same thing @@ -137,8 +134,7 @@ GLOBAL_DATUM_INIT(bioscan_data, /datum/bioscan_data, new) log_game("BIOSCAN: ARES bioscan completed. [input]") - if(forced || ares_can_log()) - link.log_ares_bioscan(name, input) //if interface is down, bioscan still logged, just have to go read it. + log_ares_bioscan(name, input) //if interface is down, bioscan still logged, just have to go read it. if(forced || ares_can_interface()) marine_announcement(input, name, 'sound/AI/bioscan.ogg', logging = ARES_LOG_NONE) else diff --git a/code/game/camera_manager/camera_manager.dm b/code/game/camera_manager/camera_manager.dm new file mode 100644 index 000000000000..93d56aca443c --- /dev/null +++ b/code/game/camera_manager/camera_manager.dm @@ -0,0 +1,235 @@ +#define DEFAULT_MAP_SIZE 15 + +#define RENDER_MODE_TARGET 1 +#define RENDER_MODE_AREA 2 + +/datum/component/camera_manager + var/map_name + var/obj/structure/machinery/camera/current + var/datum/shape/rectangle/current_area + var/atom/movable/screen/map_view/cam_screen + var/atom/movable/screen/background/cam_background + var/list/range_turfs = list() + /// The turf where the camera was last updated. + var/turf/last_camera_turf + var/target_x + var/target_y + var/target_z + var/target_width + var/target_height + var/list/cam_plane_masters + var/isXRay = FALSE + var/render_mode = RENDER_MODE_TARGET + +/datum/component/camera_manager/Initialize() + . = ..() + map_name = "camera_manager_[REF(src)]_map" + cam_screen = new + cam_screen.name = "screen" + cam_screen.assigned_map = map_name + cam_screen.del_on_map_removal = FALSE + cam_screen.screen_loc = "[map_name]:1,1" + cam_background = new + cam_background.assigned_map = map_name + cam_background.del_on_map_removal = FALSE + + cam_plane_masters = list() + for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) + var/atom/movable/screen/plane_master/instance = new plane() + add_plane(instance) + +/datum/component/camera_manager/Destroy(force, ...) + . = ..() + range_turfs = null + current_area = null + cam_plane_masters = null + QDEL_NULL(cam_background) + QDEL_NULL(cam_screen) + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + +/datum/component/camera_manager/proc/add_plane(atom/movable/screen/plane_master/instance) + instance.assigned_map = map_name + instance.del_on_map_removal = FALSE + if(instance.blend_mode_override) + instance.blend_mode = instance.blend_mode_override + instance.screen_loc = "[map_name]:CENTER" + cam_plane_masters["[instance.plane]"] = instance + +/datum/component/camera_manager/proc/register(source, mob/user) + SIGNAL_HANDLER + var/client/user_client = user.client + if(!user_client) + return + user_client.register_map_obj(cam_background) + user_client.register_map_obj(cam_screen) + for(var/plane_id in cam_plane_masters) + user_client.register_map_obj(cam_plane_masters[plane_id]) + +/datum/component/camera_manager/proc/unregister(source, mob/user) + SIGNAL_HANDLER + var/client/user_client = user.client + if(!user_client) + return + user_client.clear_map(cam_background) + user_client.clear_map(cam_screen) + for(var/plane_id in cam_plane_masters) + user_client.clear_map(cam_plane_masters[plane_id]) + +/datum/component/camera_manager/RegisterWithParent() + . = ..() + START_PROCESSING(SSdcs, src) + SEND_SIGNAL(parent, COMSIG_CAMERA_MAPNAME_ASSIGNED, map_name) + RegisterSignal(parent, COMSIG_CAMERA_REGISTER_UI, PROC_REF(register)) + RegisterSignal(parent, COMSIG_CAMERA_UNREGISTER_UI, PROC_REF(unregister)) + RegisterSignal(parent, COMSIG_CAMERA_SET_NVG, PROC_REF(enable_nvg)) + RegisterSignal(parent, COMSIG_CAMERA_CLEAR_NVG, PROC_REF(disable_nvg)) + RegisterSignal(parent, COMSIG_CAMERA_SET_AREA, PROC_REF(set_camera_rect)) + RegisterSignal(parent, COMSIG_CAMERA_SET_TARGET, PROC_REF(set_camera)) + RegisterSignal(parent, COMSIG_CAMERA_CLEAR, PROC_REF(clear_camera)) + +/datum/component/camera_manager/UnregisterFromParent() + . = ..() + STOP_PROCESSING(SSdcs, src) + + UnregisterSignal(parent, COMSIG_CAMERA_REGISTER_UI) + UnregisterSignal(parent, COMSIG_CAMERA_UNREGISTER_UI) + UnregisterSignal(parent, COMSIG_CAMERA_SET_NVG) + UnregisterSignal(parent, COMSIG_CAMERA_CLEAR_NVG) + UnregisterSignal(parent, COMSIG_CAMERA_SET_AREA) + UnregisterSignal(parent, COMSIG_CAMERA_SET_TARGET) + UnregisterSignal(parent, COMSIG_CAMERA_CLEAR) + +/datum/component/camera_manager/proc/clear_camera() + SIGNAL_HANDLER + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current_area = null + current = null + target_x = null + target_y = null + target_z = null + target_width = null + target_height = null + show_camera_static() + +/datum/component/camera_manager/proc/set_camera(source, atom/target, w, h) + SIGNAL_HANDLER + render_mode = RENDER_MODE_TARGET + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current = target + target_width = w + target_height = h + RegisterSignal(current, COMSIG_PARENT_QDELETING, PROC_REF(show_camera_static)) + update_target_camera() + +/datum/component/camera_manager/proc/set_camera_rect(source, x, y, z, w, h) + SIGNAL_HANDLER + render_mode = RENDER_MODE_AREA + if(current) + UnregisterSignal(current, COMSIG_PARENT_QDELETING) + current = null + current_area = RECT(x, y, w, h) + target_x = x + target_y = y + target_z = z + update_area_camera() + +/datum/component/camera_manager/proc/enable_nvg(source, power, matrixcol) + SIGNAL_HANDLER + for(var/plane_id in cam_plane_masters) + var/atom/movable/screen/plane_master/plane = cam_plane_masters["[plane_id]"] + plane.add_filter("nvg", 1, color_matrix_filter(color_matrix_from_string(matrixcol))) + sync_lighting_plane_alpha(LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE) + +/datum/component/camera_manager/proc/disable_nvg() + SIGNAL_HANDLER + for(var/plane_id in cam_plane_masters) + var/atom/movable/screen/plane_master/plane = cam_plane_masters["[plane_id]"] + plane.remove_filter("nvg") + sync_lighting_plane_alpha(LIGHTING_PLANE_ALPHA_VISIBLE) + +/datum/component/camera_manager/proc/sync_lighting_plane_alpha(lighting_alpha) + var/atom/movable/screen/plane_master/lighting/lighting = cam_plane_masters["[LIGHTING_PLANE]"] + if (lighting) + lighting.alpha = lighting_alpha + var/atom/movable/screen/plane_master/lighting/exterior_lighting = cam_plane_masters["[EXTERIOR_LIGHTING_PLANE]"] + if (exterior_lighting) + exterior_lighting.alpha = min(GLOB.minimum_exterior_lighting_alpha, lighting_alpha) + +/** + * Set the displayed camera to the static not-connected. + */ +/datum/component/camera_manager/proc/show_camera_static() + cam_screen.vis_contents.Cut() + last_camera_turf = null + cam_background.icon_state = "scanline2" + cam_background.fill_rect(1, 1, DEFAULT_MAP_SIZE, DEFAULT_MAP_SIZE) + +/datum/component/camera_manager/proc/update_target_camera() + // Show static if can't use the camera + if(!current?.can_use()) + show_camera_static() + return + + // Is this camera located in or attached to a living thing, Vehicle or helmet? If so, assume the camera's loc is the living (or non) thing. + var/cam_location = current + if(isliving(current.loc) || isVehicle(current.loc)) + cam_location = current.loc + else if(istype(current.loc, /obj/item/clothing/head/helmet/marine)) + var/obj/item/clothing/head/helmet/marine/helmet = current.loc + cam_location = helmet.loc + + // If we're not forcing an update for some reason and the cameras are in the same location, + // we don't need to update anything. + // Most security cameras will end here as they're not moving. + var/newturf = get_turf(cam_location) + if(last_camera_turf == newturf) + return + + // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. + last_camera_turf = get_turf(cam_location) + + var/list/visible_things = current.isXRay() ? range(current.view_range, cam_location) : view(current.view_range, cam_location) + render_objects(visible_things) + +/datum/component/camera_manager/proc/update_area_camera() + // Show static if can't use the camera + if(!current_area || !target_z) + show_camera_static() + return + + // If we're not forcing an update for some reason and the cameras are in the same location, + // we don't need to update anything. + // Most security cameras will end here as they're not moving. + var/turf/new_location = locate(target_x, target_y, target_z) + if(last_camera_turf == new_location) + return + + // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. + last_camera_turf = new_location + + var/x_size = current_area.width + var/y_size = current_area.height + var/turf/target = locate(current_area.center_x, current_area.center_y, target_z) + + var/list/visible_things = isXRay ? range("[x_size]x[y_size]", target) : view("[x_size]x[y_size]", target) + src.render_objects(visible_things) + +/datum/component/camera_manager/proc/render_objects(list/visible_things) + var/list/visible_turfs = list() + for(var/turf/visible_turf in visible_things) + visible_turfs += visible_turf + + var/list/bbox = get_bbox_of_atoms(visible_turfs) + var/size_x = bbox[3] - bbox[1] + 1 + var/size_y = bbox[4] - bbox[2] + 1 + + cam_screen.vis_contents = visible_turfs + cam_background.icon_state = "clear" + cam_background.fill_rect(1, 1, size_x, size_y) + +#undef DEFAULT_MAP_SIZE +#undef RENDER_MODE_TARGET +#undef RENDER_MODE_AREA diff --git a/code/game/cas_manager/datums/cas_fire_envelope.dm b/code/game/cas_manager/datums/cas_fire_envelope.dm index d7c939b76e16..04cd688194dd 100644 --- a/code/game/cas_manager/datums/cas_fire_envelope.dm +++ b/code/game/cas_manager/datums/cas_fire_envelope.dm @@ -1,7 +1,6 @@ /datum/cas_fire_envelope var/obj/structure/machinery/computer/dropship_weapons/linked_console var/list/datum/cas_fire_mission/missions - var/max_mission_len = 5 var/fire_length var/grace_period //how much time you have after initiating fire mission and before you can't change firemissions var/flyto_period //how much time it takes from sound alarm start to first hit. CAS is vulnerable here @@ -30,35 +29,36 @@ linked_console = null return ..() +/datum/cas_fire_envelope/ui_data(mob/user) + . = list() + .["missions"] = list() + for(var/datum/cas_fire_mission/mission in missions) + .["missions"] += list(mission.ui_data(user)) + + /datum/cas_fire_envelope/proc/get_total_duration() return grace_period+flyto_period+flyoff_period +/datum/cas_fire_envelope/proc/update_weapons(list/obj/structure/dropship_equipment/weapon/weapons) + for(var/datum/cas_fire_mission/mission in missions) + mission.update_weapons(weapons, fire_length) + /datum/cas_fire_envelope/proc/generate_mission(firemission_name, length) - if(!missions || !linked_console || missions.len>max_mission_len || !fire_length) + if(!missions || !linked_console || !fire_length) return null - var/list/obj/structure/dropship_equipment/weapons = list() - for(var/X in linked_console.shuttle_equipments) - var/obj/structure/dropship_equipment/E = X - if(E.is_weapon) - weapons += E + var/shuttle_tag = linked_console.shuttle_tag + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if(equipment.is_weapon) + weapons += equipment var/datum/cas_fire_mission/fm = new() - - if(weapons.len==0) - return null //why bother? - for(var/obj/structure/dropship_equipment/weapon/wp in weapons) - var/datum/cas_fire_mission_record/record = new() - record.weapon = wp - record.offsets = new /list(fire_length) - for(var/idx = 1; idx<=fire_length; idx++) - record.offsets[idx] = "-" - fm.records += record + fm.build_new_record(wp, fire_length) fm.name = firemission_name fm.mission_length = length - missions += fm return fm @@ -67,67 +67,61 @@ mission_error = null if(stat > FIRE_MISSION_STATE_IN_TRANSIT && stat < FIRE_MISSION_STATE_COOLDOWN) mission_error = "Fire Mission is under way already." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(!missions[mission_id]) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE var/datum/cas_fire_mission/mission = missions[mission_id] if(!mission) - return -1 - if(!mission.records[weapon_id]) - return -1 - var/datum/cas_fire_mission_record/fmr = mission.records[weapon_id] + return FIRE_MISSION_NOT_EXECUTABLE + + var/datum/cas_fire_mission_record/fmr = mission.record_for_weapon(weapon_id) + if(!fmr) + return FIRE_MISSION_NOT_EXECUTABLE if(!fmr.offsets || isnull(fmr.offsets[offset_step])) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE var/old_offset = fmr.offsets[offset_step] + if(offset == null) + offset = "-" fmr.offsets[offset_step] = offset var/check_result = mission.check(linked_console) if(check_result == FIRE_MISSION_CODE_ERROR) - return -1 + return FIRE_MISSION_NOT_EXECUTABLE if(check_result == FIRE_MISSION_ALL_GOOD) - return 1 + return FIRE_MISSION_ALL_GOOD if(check_result == FIRE_MISSION_WEAPON_OUT_OF_AMMO) - return 1 + return FIRE_MISSION_ALL_GOOD mission_error = mission.error_message(check_result) if(skip_checks) - return 0 + return FIRE_MISSION_ALL_GOOD //we have mission error. Fill the thing and restore previous state fmr.offsets[offset_step] = old_offset - return 0 + return FIRE_MISSION_ALL_GOOD -/datum/cas_fire_envelope/proc/execute_firemission(datum/cas_signal/target_turf, offset, dir, mission_id) - if(!istype(target_turf)) - mission_error = "No target." - return 0 +/datum/cas_fire_envelope/proc/execute_firemission(datum/cas_signal/signal, target_turf,dir, mission_id) if(stat != FIRE_MISSION_STATE_IDLE) mission_error = "Fire Mission is under way already." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(!missions[mission_id]) - return -1 - if(offset<0) - mission_error = "Can't have negative offsets." - return 0 - if(offset>max_offset) - mission_error = "[max_offset] is the maximum possible offset." - return 0 + return FIRE_MISSION_NOT_EXECUTABLE if(dir!=NORTH && dir!=SOUTH && dir!=WEST && dir!=EAST) mission_error = "Incorrect direction." - return 0 + return FIRE_MISSION_BAD_DIRECTION mission_error = null var/datum/cas_fire_mission/mission = missions[mission_id] var/check_result = mission.check(linked_console) if(check_result == FIRE_MISSION_CODE_ERROR) - return -1 + return FIRE_MISSION_CODE_ERROR if(check_result != FIRE_MISSION_ALL_GOOD) mission_error = mission.error_message(check_result) - return 0 + return FIRE_MISSION_CODE_ERROR //actual firemission code - execute_firemission_unsafe(target_turf, offset, dir, mission) - return 1 + execute_firemission_unsafe(signal, target_turf, dir, mission) + return FIRE_MISSION_ALL_GOOD /datum/cas_fire_envelope/proc/firemission_status_message() switch(stat) @@ -167,6 +161,7 @@ if(!guidance) guidance = new /obj/effect/firemission_guidance() guidance.forceMove(location) + guidance.updateCameras(linked_console) /datum/cas_fire_envelope/proc/user_is_guided(user) return guidance && (user in guidance.users) @@ -181,8 +176,7 @@ apply_upgrade(user) if(!(user in guidance.users)) guidance.users += user - RegisterSignal(usr, COMSIG_MOB_RESISTED, PROC_REF(exit_cam_resist)) - + RegisterSignal(user, COMSIG_MOB_RESISTED, PROC_REF(exit_cam_resist)) /datum/cas_fire_envelope/proc/apply_upgrade(user) var/mob/M = user @@ -193,8 +187,6 @@ M.overlay_fullscreen("matrix", /atom/movable/screen/fullscreen/flash/noise/nvg) M.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE M.sync_lighting_plane_alpha() - else if (linked_console.upgraded == MATRIX_WIDE) - M.client?.change_view(linked_console.power + 5, M) /datum/cas_fire_envelope/proc/remove_upgrades(user) @@ -220,6 +212,8 @@ M.reset_view() remove_upgrades(user) guidance.users -= user + UnregisterSignal(user, COMSIG_MOB_RESISTED) + guidance.clearCameras(linked_console) /datum/cas_fire_envelope/proc/exit_cam_resist(mob/user) SIGNAL_HANDLER @@ -230,54 +224,36 @@ /datum/cas_fire_envelope/proc/check_firemission_loc(datum/cas_signal/target_turf) return TRUE //redefined in child class -/datum/cas_fire_envelope/proc/execute_firemission_unsafe(datum/cas_signal/target_turf, offset, dir, datum/cas_fire_mission/mission) - var/sx = 0 - var/sy = 0 - - recorded_dir = dir - recorded_offset = offset - +/** + * Execute firemission. + */ +/datum/cas_fire_envelope/proc/execute_firemission_unsafe(datum/cas_signal/signal, turf/target_turf, dir, datum/cas_fire_mission/mission) stat = FIRE_MISSION_STATE_IN_TRANSIT + to_chat(usr, SPAN_ALERT("Firemission underway!")) sleep(grace_period) stat = FIRE_MISSION_STATE_ON_TARGET - switch(recorded_dir) - if(NORTH) //default direction - sx = 0 - sy = 1 - if(SOUTH) - sx = 0 - sy = -1 - if(EAST) - sx = 1 - sy = 0 - if(WEST) - sx = -1 - sy = 0 if(!target_turf) stat = FIRE_MISSION_STATE_IDLE mission_error = "Target Lost." return - var/turf/tt_turf = get_turf(target_turf.signal_loc) - if(!tt_turf || !check_firemission_loc(target_turf)) + if(!target_turf || !check_firemission_loc(signal)) stat = FIRE_MISSION_STATE_IDLE mission_error = "Target is off bounds or obstructed." return - var/turf/shootloc = locate(tt_turf.x + sx*recorded_offset, tt_turf.y + sy*recorded_offset,tt_turf.z) - if(!shootloc || !istype(shootloc)) - stat = FIRE_MISSION_STATE_IDLE - mission_error = "Target is off bounds." - return - change_current_loc(shootloc) - playsound(shootloc, soundeffect, 70, TRUE, 50) + change_current_loc(target_turf) + playsound(target_turf, soundeffect, 70, TRUE, 50) sleep(flyto_period) stat = FIRE_MISSION_STATE_FIRING - mission.execute_firemission(linked_console, shootloc, recorded_dir, fire_length, step_delay, src) + mission.execute_firemission(linked_console, target_turf, dir, fire_length, step_delay, src) stat = FIRE_MISSION_STATE_OFF_TARGET sleep(flyoff_period) stat = FIRE_MISSION_STATE_COOLDOWN sleep(cooldown_period) stat = FIRE_MISSION_STATE_IDLE +/** + * Change attack vector for firemission + */ /datum/cas_fire_envelope/proc/change_direction(new_dir) if(stat > FIRE_MISSION_STATE_IN_TRANSIT) mission_error = "Fire Mission is under way already." @@ -345,13 +321,13 @@ /obj/structure/machinery/computer/dropship_weapons/proc/update_mission(mission_id, weapon_id, offset_step, offset) var/result = firemission_envelope.update_mission(mission_id, weapon_id, offset_step, offset) - if(result<1) + if(result != FIRE_MISSION_ALL_GOOD) return firemission_envelope.mission_error return "OK" // Used in the simulation room for firemission testing. /obj/structure/machinery/computer/dropship_weapons/proc/execute_firemission(obj/location, offset, dir, mission_id) var/result = firemission_envelope.execute_firemission(get_turf(location), offset, dir, mission_id) - if(result<1) + if(result != FIRE_MISSION_ALL_GOOD) return firemission_envelope.mission_error return "OK" diff --git a/code/game/cas_manager/datums/cas_fire_mission.dm b/code/game/cas_manager/datums/cas_fire_mission.dm index 0a04876414e7..ece78042ac25 100644 --- a/code/game/cas_manager/datums/cas_fire_mission.dm +++ b/code/game/cas_manager/datums/cas_fire_mission.dm @@ -1,17 +1,83 @@ /obj/effect/firemission_guidance invisibility = 101 - var/list/users + var/list/mob/users + var/camera_width = 11 + var/camera_height = 11 + var/view_range = 7 /obj/effect/firemission_guidance/New() ..() users = list() +/obj/effect/firemission_guidance/Destroy(force) + . = ..() + users = null + +/obj/effect/firemission_guidance/proc/can_use() + return TRUE + +/obj/effect/firemission_guidance/proc/isXRay() + return FALSE + +/obj/effect/firemission_guidance/proc/updateCameras(atom/target) + SEND_SIGNAL(target, COMSIG_CAMERA_SET_TARGET, src, camera_width, camera_height) + +/obj/effect/firemission_guidance/proc/clearCameras(atom/target) + SEND_SIGNAL(target, COMSIG_CAMERA_CLEAR) + /datum/cas_fire_mission var/mission_length = 3 //can be 3,4,6 or 12 var/list/datum/cas_fire_mission_record/records = list() var/obj/structure/dropship_equipment/weapon/error_weapon var/name = "Unnamed Firemission" +/datum/cas_fire_mission/ui_data(mob/user) + . = list() + .["name"] = sanitize(copytext(name, 1, MAX_MESSAGE_LEN)) + .["records"] = list() + for(var/datum/cas_fire_mission_record/record as anything in records) + .["records"] += list(record.ui_data(user)) + +/datum/cas_fire_mission/proc/build_new_record(obj/structure/dropship_equipment/weapon/weap, fire_length) + var/datum/cas_fire_mission_record/record = new() + record.weapon = weap + record.offsets = new /list(fire_length) + for(var/idx = 1; idx<=fire_length; idx++) + record.offsets[idx] = "-" + records += record + +/datum/cas_fire_mission/proc/update_weapons(list/obj/structure/dropship_equipment/weapon/weapons, fire_length) + var/list/datum/cas_fire_mission_record/bad_records = list() + var/list/obj/structure/dropship_equipment/weapon/missing_weapons = list() + for(var/datum/cas_fire_mission_record/record in records) + // if weapon appears in weapons list but not in record + // > add empty record for new weapon + var/found = FALSE + for(var/obj/structure/dropship_equipment/weapon/weap in weapons) + if(record.weapon == weap) + found=TRUE + break + if(!found) + bad_records.Add(record) + for(var/obj/structure/dropship_equipment/weapon/weap in weapons) + var/found = FALSE + for(var/datum/cas_fire_mission_record/record in records) + if(record.weapon == weap) + found=TRUE + break + if(!found) + missing_weapons.Add(weap) + for(var/datum/cas_fire_mission_record/record in bad_records) + records -= record + for(var/obj/structure/dropship_equipment/weapon/weap in missing_weapons) + build_new_record(weap, fire_length) + +/datum/cas_fire_mission/proc/record_for_weapon(weapon_id) + for(var/datum/cas_fire_mission_record/record as anything in records) + if(record.weapon.ship_base.attach_id == weapon_id) + return record + return null + /datum/cas_fire_mission/proc/check(obj/structure/machinery/computer/dropship_weapons/linked_console) error_weapon = null if(records.len == 0) @@ -114,7 +180,7 @@ if(get_turf(M) == initial_turf) relative_dir = 0 else - relative_dir = get_dir(M, initial_turf) + relative_dir = Get_Compass_Dir(M, initial_turf) var/ds_identifier = "LARGE BIRD" if (M.mob_flags & KNOWS_TECHNOLOGY) @@ -132,7 +198,7 @@ if(get_turf(M) == initial_turf) relative_dir = 0 else - relative_dir = get_dir(M, initial_turf) + relative_dir = Get_Compass_Dir(M, initial_turf) var/ds_identifier = "LARGE BIRD" if (M.mob_flags & KNOWS_TECHNOLOGY) @@ -165,7 +231,7 @@ var/step = 1 for(step = 1; step<=steps; step++) if(step > next_step) - current_turf = get_step(current_turf,direction) + current_turf = get_step(current_turf, direction) next_step += tally_step if(envelope) envelope.change_current_loc(current_turf) diff --git a/code/game/cas_manager/datums/cas_iff_group.dm b/code/game/cas_manager/datums/cas_iff_group.dm index f384115d7756..dc39b462c9f1 100644 --- a/code/game/cas_manager/datums/cas_iff_group.dm +++ b/code/game/cas_manager/datums/cas_iff_group.dm @@ -8,8 +8,7 @@ /datum/cas_iff_group/proc/remove_signal(datum/cas_signal/signal) cas_signals -= signal -var/global/datum/cas_iff_group/uscm_cas_group = new /datum/cas_iff_group() +GLOBAL_DATUM_INIT(uscm_cas_group, /datum/cas_iff_group, new()) +GLOBAL_DATUM_INIT(upp_cas_group, /datum/cas_iff_group, new()) -var/global/datum/cas_iff_group/upp_cas_group = new /datum/cas_iff_group() - -var/global/list/datum/cas_iff_group/cas_groups = list(FACTION_MARINE = uscm_cas_group, FACTION_UPP = upp_cas_group, FACTION_NEUTRAL = uscm_cas_group) +GLOBAL_LIST_INIT_TYPED(cas_groups, /datum/cas_iff_group, list(FACTION_MARINE = GLOB.uscm_cas_group, FACTION_UPP = GLOB.upp_cas_group, FACTION_NEUTRAL = GLOB.uscm_cas_group)) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index cc1e5449ca7a..c017733de7fd 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -75,6 +75,12 @@ Additional game mode variables. var/list/monkey_types = list() //What type of monkeys do we spawn var/latejoin_tally = 0 //How many people latejoined Marines var/latejoin_larva_drop = LATEJOIN_MARINES_PER_LATEJOIN_LARVA //A larva will spawn in once the tally reaches this level. If set to 0, no latejoin larva drop + /// Amount of latejoin_tally already awarded as larvas + var/latejoin_larva_used = 0 + /// Multiplier to the amount of marine gear, current value as calculated with modifiers + var/gear_scale = 1 + /// Multiplier to the amount of marine gear, maximum reached value for + var/gear_scale_max = 1 //Role Authority set up. /// List of role titles to override to different roles when starting game @@ -100,7 +106,7 @@ Additional game mode variables. /datum/game_mode/proc/get_roles_list() - return ROLES_USCM + return GLOB.ROLES_USCM //===================================================\\ @@ -109,16 +115,16 @@ Additional game mode variables. //===================================================\\ /datum/game_mode/proc/initialize_special_clamps() - xeno_starting_num = clamp((readied_players/CONFIG_GET(number/xeno_number_divider)), xeno_required_num, INFINITY) //(n, minimum, maximum) - surv_starting_num = clamp((readied_players/CONFIG_GET(number/surv_number_divider)), 2, 8) //this doesnt run + xeno_starting_num = clamp((GLOB.readied_players/CONFIG_GET(number/xeno_number_divider)), xeno_required_num, INFINITY) //(n, minimum, maximum) + surv_starting_num = clamp((GLOB.readied_players/CONFIG_GET(number/surv_number_divider)), 2, 8) //this doesnt run marine_starting_num = GLOB.player_list.len - xeno_starting_num - surv_starting_num - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_engineers = engi_slot_formula(marine_starting_num) sq.max_medics = medic_slot_formula(marine_starting_num) - for(var/i in RoleAuthority.roles_by_name) - var/datum/job/J = RoleAuthority.roles_by_name[i] + for(var/i in GLOB.RoleAuthority.roles_by_name) + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[i] if(J.scaled) J.set_spawn_positions(marine_starting_num) @@ -149,7 +155,7 @@ Additional game mode variables. else if(!istype(player,/mob/dead)) continue //Otherwise we just want to grab the ghosts. - if(RoleAuthority.roles_whitelist[player.ckey] & WHITELIST_PREDATOR) //Are they whitelisted? + if(GLOB.RoleAuthority.roles_whitelist[player.ckey] & WHITELIST_PREDATOR) //Are they whitelisted? if(!player.client.prefs) player.client.prefs = new /datum/preferences(player.client) //Somehow they don't have one. @@ -176,13 +182,13 @@ Additional game mode variables. if(!pred_candidate.client) return - var/datum/job/J = RoleAuthority.roles_by_name[JOB_PREDATOR] + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] if(!J) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Something went wrong!")) return - if(!(RoleAuthority.roles_whitelist[pred_candidate.ckey] & WHITELIST_PREDATOR)) + if(!(GLOB.RoleAuthority.roles_whitelist[pred_candidate.ckey] & WHITELIST_PREDATOR)) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a predator.")) return @@ -195,9 +201,9 @@ Additional game mode variables. to_chat(pred_candidate, SPAN_WARNING("You already were a Yautja! Give someone else a chance.")) return - if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(J.get_whitelist_status(RoleAuthority.roles_whitelist, pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") + if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") return - if(J.get_whitelist_status(RoleAuthority.roles_whitelist, pred_candidate.client) == WHITELIST_NORMAL) + if(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client) == WHITELIST_NORMAL) var/pred_max = calculate_pred_max if(pred_current_num >= pred_max) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Only [pred_max] predators may spawn this round, but Councillors and Ancients do not count.")) @@ -234,13 +240,13 @@ Additional game mode variables. pred_candidate.mind.transfer_to(new_predator, TRUE) new_predator.client = pred_candidate.client - var/datum/job/J = RoleAuthority.roles_by_name[JOB_PREDATOR] + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] if(!J) qdel(new_predator) return - RoleAuthority.equip_role(new_predator, J, new_predator.loc) + GLOB.RoleAuthority.equip_role(new_predator, J, new_predator.loc) return new_predator @@ -344,7 +350,7 @@ Additional game mode variables. if(cur_xeno.aghosted) continue //aghosted xenos don't count var/area/area = get_area(cur_xeno) - if(is_admin_level(cur_xeno.z) && (!area || !(area.flags_area & AREA_ALLOW_XENO_JOIN))) + if(should_block_game_interaction(cur_xeno) && (!area || !(area.flags_area & AREA_ALLOW_XENO_JOIN))) continue //xenos on admin z level don't count if(!istype(cur_xeno)) continue @@ -356,21 +362,27 @@ Additional game mode variables. else available_xenos_non_ssd += cur_xeno - // Only offer buried larva if there is no queue: - // This basically means this block of code will almost never execute, because we are instead relying on the hive cores/larva pops to handle their larva - // Technically this should be after a get_alien_candidates() call to be accurate, but we are intentionally trying to not call that proc as much as possible - if(GLOB.xeno_queue_candidate_count < 1) - var/datum/hive_status/hive - for(var/hivenumber in GLOB.hive_datum) - hive = GLOB.hive_datum[hivenumber] - if(!hive.hardcore && hive.stored_larva && (hive.hive_location || (world.time < XENO_BURIED_LARVA_TIME_LIMIT + SSticker.round_start_time))) - if(SSticker.mode && (SSticker.mode.flags_round_type & MODE_RANDOM_HIVE)) - available_xenos |= "any buried larva" - LAZYADD(available_xenos["any buried larva"], hive) - else - var/larva_option = "buried larva ([hive])" - available_xenos += larva_option - available_xenos[larva_option] = list(hive) + var/datum/hive_status/hive + for(var/hivenumber in GLOB.hive_datum) + hive = GLOB.hive_datum[hivenumber] + if(hive.hardcore) + continue + if(!hive.stored_larva) + continue + // Only offer buried larva if there is no queue because we are instead relying on the hive cores/larva pops to handle their larva: + // Technically this should be after a get_alien_candidates() call to be accurate, but we are intentionally trying to not call that proc as much as possible + if(hive.hive_location && GLOB.xeno_queue_candidate_count > 0) + continue + if(!hive.hive_location && (world.time > XENO_BURIED_LARVA_TIME_LIMIT + SSticker.round_start_time)) + continue + + if(SSticker.mode && (SSticker.mode.flags_round_type & MODE_RANDOM_HIVE)) + available_xenos |= "any buried larva" + LAZYADD(available_xenos["any buried larva"], hive) + else + var/larva_option = "buried larva ([hive])" + available_xenos += larva_option + available_xenos[larva_option] = list(hive) if(!available_xenos.len || (instant_join && !available_xenos_non_ssd.len)) if(!xeno_candidate.client || !xeno_candidate.client.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH)) @@ -382,7 +394,7 @@ Additional game mode variables. var/mob/dead/observer/candidate_observer = xeno_candidate if(istype(candidate_observer)) if(candidate_observer.larva_queue_cached_message) - to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message) + to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) return FALSE // No cache, lets check now then @@ -393,14 +405,14 @@ Additional game mode variables. cur_hive = GLOB.hive_datum[hive_num] for(var/mob_name in cur_hive.banished_ckeys) if(cur_hive.banished_ckeys[mob_name] == xeno_candidate.ckey) - candidate_observer.larva_queue_cached_message += "\n" + SPAN_WARNING("NOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from.") + candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from." break - to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message) + to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) return FALSE // We aren't in queue yet, lets teach them about the queue then - candidate_observer.larva_queue_cached_message = SPAN_XENONOTICE("You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome.") - to_chat(xeno_candidate, candidate_observer.larva_queue_cached_message) + candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome." + to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) return FALSE var/mob/living/carbon/xenomorph/new_xeno @@ -423,7 +435,7 @@ Additional game mode variables. for(var/mob_name in picked_hive.banished_ckeys) if(picked_hive.banished_ckeys[mob_name] == xeno_candidate.ckey) to_chat(xeno_candidate, SPAN_WARNING("You are banished from the [picked_hive], you may not rejoin unless the Queen re-admits you or dies.")) - return + return FALSE if(isnewplayer(xeno_candidate)) var/mob/new_player/noob = xeno_candidate noob.close_spawn_windows() @@ -443,9 +455,6 @@ Additional game mode variables. return FALSE new_xeno = userInput - if(!xeno_candidate) - return FALSE - if(!(new_xeno in GLOB.living_xeno_list) || new_xeno.stat == DEAD) to_chat(xeno_candidate, SPAN_WARNING("You cannot join if the xenomorph is dead.")) return FALSE @@ -479,14 +488,14 @@ Additional game mode variables. else new_xeno = pick(available_xenos_non_ssd) //Just picks something at random. if(istype(new_xeno) && xeno_candidate && xeno_candidate.client) if(isnewplayer(xeno_candidate)) - var/mob/new_player/N = xeno_candidate - N.close_spawn_windows() + var/mob/new_player/noob = xeno_candidate + noob.close_spawn_windows() for(var/mob_name in new_xeno.hive.banished_ckeys) if(new_xeno.hive.banished_ckeys[mob_name] == xeno_candidate.ckey) to_chat(xeno_candidate, SPAN_WARNING("You are banished from this hive, You may not rejoin unless the Queen re-admits you or dies.")) - return + return FALSE if(transfer_xeno(xeno_candidate, new_xeno)) - return 1 + return TRUE to_chat(xeno_candidate, "JAS01: Something went wrong, tell a coder.") /datum/game_mode/proc/attempt_to_join_as_facehugger(mob/xeno_candidate) @@ -594,7 +603,14 @@ Additional game mode variables. for(var/obj/effect/alien/resin/special/pylon/cycled_pylon as anything in hive.hive_structures[XENO_STRUCTURE_PYLON]) if(cycled_pylon.lesser_drone_spawns >= 1) - selection_list += "[cycled_pylon.name] at [get_area(cycled_pylon)]" + var/pylon_number = 1 + var/pylon_name = "[cycled_pylon.name] at [get_area(cycled_pylon)]" + //For renaming the pylon if we have duplicates + var/pylon_selection_name = pylon_name + while(pylon_selection_name in selection_list) + pylon_selection_name = "[pylon_name] ([pylon_number])" + pylon_number ++ + selection_list += pylon_selection_name selection_list_structure += cycled_pylon if(!length(selection_list)) @@ -614,20 +630,21 @@ Additional game mode variables. /datum/game_mode/proc/transfer_xeno(xeno_candidate, mob/living/new_xeno) if(!xeno_candidate || !isxeno(new_xeno) || QDELETED(new_xeno)) return FALSE + var/datum/mind/xeno_candidate_mind if(ismind(xeno_candidate)) xeno_candidate_mind = xeno_candidate else if(ismob(xeno_candidate)) - var/mob/M = xeno_candidate - if(M.mind) - xeno_candidate_mind = M.mind + var/mob/xeno_candidate_mob = xeno_candidate + if(xeno_candidate_mob.mind) + xeno_candidate_mind = xeno_candidate_mob.mind else - xeno_candidate_mind = new /datum/mind(M.key, M.ckey) + xeno_candidate_mind = new /datum/mind(xeno_candidate_mob.key, xeno_candidate_mob.ckey) xeno_candidate_mind.active = TRUE xeno_candidate_mind.current = new_xeno else if(isclient(xeno_candidate)) - var/client/C = xeno_candidate - xeno_candidate_mind = new /datum/mind(C.key, C.ckey) + var/client/xeno_candidate_client = xeno_candidate + xeno_candidate_mind = new /datum/mind(xeno_candidate_client.key, xeno_candidate_client.ckey) xeno_candidate_mind.active = TRUE xeno_candidate_mind.current = new_xeno else @@ -644,7 +661,7 @@ Additional game mode variables. // Let the round recorder know that the key has changed SSround_recording.recorder.update_key(new_xeno) if(new_xeno.client) - new_xeno.client.change_view(world_view_size) + new_xeno.client.change_view(GLOB.world_view_size) msg_admin_niche("[new_xeno.key] has joined as [new_xeno].") if(isxeno(new_xeno)) //Dear lord @@ -717,8 +734,6 @@ Additional game mode variables. to_chat(new_queen, "You should start by building a hive core.") to_chat(new_queen, "Talk in Hivemind using ; (e.g. ';Hello my children!')") - // Xeno ressource collection - //new_queen.crystal_stored = XENO_STARTING_CRYSTAL new_queen.update_icons() //===================================================\\ @@ -903,23 +918,49 @@ Additional game mode variables. //We do NOT want to initilialize the gear before everyone is properly spawned in /datum/game_mode/proc/initialize_post_marine_gear_list() - var/scale = get_scaling_value() + init_gear_scale() //Set up attachment vendor contents related to Marine count for(var/i in GLOB.cm_vending_vendors) var/obj/structure/machinery/cm_vending/sorted/CVS = i - CVS.populate_product_list_and_boxes(scale) + CVS.populate_product_list_and_boxes(gear_scale) //Scale the amount of cargo points through a direct multiplier - supply_controller.points = round(supply_controller.points * scale) + GLOB.supply_controller.points += round(GLOB.supply_controller.points_scale * gear_scale) -/datum/game_mode/proc/get_scaling_value() +///Returns a multiplier to the amount of gear that is to be distributed roundstart, stored in [/datum/game_mode/var/gear_scale] +/datum/game_mode/proc/init_gear_scale() //We take the number of marine players, deduced from other lists, and then get a scale multiplier from it, to be used in arbitrary manners to distribute equipment - //This might count players who ready up but get kicked back to the lobby - var/marine_pop_size = length(GLOB.alive_human_list) + var/marine_pop_size = 0 + var/uscm_personnel_count = 0 + for(var/mob/living/carbon/human/human as anything in GLOB.alive_human_list) + if(human.faction == FACTION_USCM) + uscm_personnel_count++ + var/datum/job/job = GET_MAPPED_ROLE(human.job) + marine_pop_size += GLOB.RoleAuthority.calculate_role_weight(job) //This gives a decimal value representing a scaling multiplier. Cannot go below 1 - return max(marine_pop_size / MARINE_GEAR_SCALING_NORMAL, 1) + gear_scale = max(marine_pop_size / MARINE_GEAR_SCALING_NORMAL, 1) + gear_scale_max = gear_scale + log_debug("SUPPLY: Game start detected [marine_pop_size] weighted marines (out of [uscm_personnel_count]/[length(GLOB.alive_human_list)] USCM humans), resulting in gear_scale = [gear_scale]") + return gear_scale + +///Updates the [/datum/game_mode/var/gear_scale] multiplier based on joining and cryoing marines +/datum/game_mode/proc/update_gear_scale(delta) + // Magic inverse function that guarantees marines still get good supplies for latejoins within first ~30 minutes but stalls starting 2 hours or so + gear_scale += delta * (0.25 + 0.75 / (1 + ROUND_TIME / 20000)) / MARINE_GEAR_SCALING_NORMAL + var/gear_delta = gear_scale - gear_scale_max + if(gear_delta > 0) + gear_scale_max = gear_scale + for(var/obj/structure/machinery/cm_vending/sorted/vendor as anything in GLOB.cm_vending_vendors) + vendor.update_dynamic_stock(gear_scale_max) + GLOB.supply_controller.points += round(gear_delta * GLOB.supply_controller.points_scale) + +/// Updates [var/latejoin_tally] and [var/gear_scale] based on role weights of latejoiners/cryoers. Delta is the amount of role positions added/removed +/datum/game_mode/proc/latejoin_update(role, delta = 1) + var/weight = GLOB.RoleAuthority.calculate_role_weight(role) + latejoin_tally += weight * delta + update_gear_scale(weight * delta) // for the toolbox /datum/game_mode/proc/end_round_message() @@ -953,14 +994,14 @@ Additional game mode variables. if(!joe_candidate.client) return - var/datum/job/joe_job = RoleAuthority.roles_by_name[JOB_WORKING_JOE] + var/datum/job/joe_job = GLOB.RoleAuthority.roles_by_name[JOB_WORKING_JOE] if(!joe_job) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("Something went wrong!")) return - if(!(RoleAuthority.roles_whitelist[joe_candidate.ckey] & WHITELIST_JOE)) + if(!(GLOB.RoleAuthority.roles_whitelist[joe_candidate.ckey] & WHITELIST_JOE)) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a synth.")) return @@ -971,14 +1012,14 @@ Additional game mode variables. return // council doesn't count towards this conditional. - if(joe_job.get_whitelist_status(RoleAuthority.roles_whitelist, joe_candidate.client) == WHITELIST_NORMAL) + if(joe_job.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, joe_candidate.client) == WHITELIST_NORMAL) var/joe_max = joe_job.total_positions if((joe_job.current_positions >= joe_max) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("Only [joe_max] Working Joes may spawn per round.")) return - if(!enter_allowed && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) + if(!GLOB.enter_allowed && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("There is an administrative lock from entering the game.")) return @@ -998,14 +1039,14 @@ Additional game mode variables. var/turf/spawn_point = get_turf(pick(GLOB.latejoin_by_job[JOB_WORKING_JOE])) var/mob/living/carbon/human/synthetic/new_joe = new(spawn_point) joe_candidate.mind.transfer_to(new_joe, TRUE) - var/datum/job/joe_job = RoleAuthority.roles_by_name[JOB_WORKING_JOE] + var/datum/job/joe_job = GLOB.RoleAuthority.roles_by_name[JOB_WORKING_JOE] if(!joe_job) qdel(new_joe) return // This is usually done in assign_role, a proc which is not executed in this case, since check_joe_late_join is running its own checks. joe_job.current_positions++ - RoleAuthority.equip_role(new_joe, joe_job, new_joe.loc) + GLOB.RoleAuthority.equip_role(new_joe, joe_job, new_joe.loc) GLOB.data_core.manifest_inject(new_joe) SSticker.minds += new_joe.mind return new_joe diff --git a/code/game/gamemodes/cm_process.dm b/code/game/gamemodes/cm_process.dm index 33377f7dc6fd..462f82e99cec 100644 --- a/code/game/gamemodes/cm_process.dm +++ b/code/game/gamemodes/cm_process.dm @@ -39,16 +39,16 @@ of predators), but can be added to include variant game modes (like humans vs. h /datum/game_mode/proc/declare_completion_announce_fallen_soldiers() set waitfor = 0 sleep(2 SECONDS) - fallen_list += fallen_list_cross - if(fallen_list.len) + GLOB.fallen_list += GLOB.fallen_list_cross + if(GLOB.fallen_list.len) var/dat = "
" dat += SPAN_ROUNDBODY("In Flanders fields...
") dat += SPAN_CENTERBOLD("In memoriam of our fallen soldiers:
") - for(var/i = 1 to fallen_list.len) - if(i != fallen_list.len) - dat += "[fallen_list[i]], " + for(var/i = 1 to GLOB.fallen_list.len) + if(i != GLOB.fallen_list.len) + dat += "[GLOB.fallen_list[i]], " else - dat += "[fallen_list[i]].
" + dat += "[GLOB.fallen_list[i]].
" to_world("[dat]") @@ -134,7 +134,7 @@ of predators), but can be added to include variant game modes (like humans vs. h // Open podlocks with the given ID if they aren't already opened. // DO NOT USE THIS WITH ID's CORRESPONDING TO SHUTTLES OR THEY WILL BREAK! /datum/game_mode/proc/open_podlocks(podlock_id) - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == podlock_id && M.density) M.open() diff --git a/code/game/gamemodes/cm_self_destruct.dm b/code/game/gamemodes/cm_self_destruct.dm deleted file mode 100644 index b86de24eed74..000000000000 --- a/code/game/gamemodes/cm_self_destruct.dm +++ /dev/null @@ -1,476 +0,0 @@ -/* -TODO -Look into animation screen not showing on self-destruct and other weirdness -Intergrate distress into this controller. -Finish nanoui conversion for comm console. -Make sure people who get nuked and wake up from SSD don't live. -Add flashing lights to evac. //DEFERRED TO BETTER LIGHTING -Finish the game mode announcement thing. -Fix escape doors to work properly. -*/ - -/* -How this works: - -First: All of the linking is done automatically on world start, so nothing needs to be done on that end other than making -sure that objects are actually placed in the game world. If not, the game will error and let you know about it. But you -don't need to modify variables or worry about area placement. It's all done for you. -The rods, for example, configure the time per activation based on their number. Shuttles link their own machines via area. -Nothing in this controller is linked to game mode, so it's stand alone, more or less, but it's best used during a game mode. -Admins have a lot of tools in their disposal via the check antagonist panel, and devs can access the VV of this controller -through that panel. - -Second: The communication console handles most of the IC triggers for activating these functions, the rest is handled elsewhere. -Check communications.dm for that. shuttle_controller.dm handles the set up for the escape pods. escape_pods.dm handles most of the -functions of the escape pods themselves. This file would likely need to be broken down into individual parts at some point in the -future. - -Evacuation takes place when sufficient alert level is reaised and a distress beacon was launched. All of the evac pods come online -and open their doors to allow entry inside. Characters may then get inside of the cryo units to before the shuttles automatically launch. -If wanted, a nearby controller object may launch each individual shuttle early. Only three people may ride on a shuttle to escape, -otherwise the launch will fail and the shuttle will become inoperable. -Any launched shuttles are taken out of the game. If the evacuation is canceled, any persons inside of the cryo tubes will be ejected. -They may temporarily open the door to exit if they are stuck inside after evac is canceled. - -When the self-destruct is enabled, the console comes online. This usually happens during an evacuation. Once the console is -interacted with, it fires up the self-destruct sequence. Several rods rise and must be interacted with in order to arm the system. -Once that happens, the console must be interacted with again to trigger the self-destruct. The self-destruct may also be -canceled from the console. - -The self-destruct may also happen if a nuke is detonated on the ship's zlevel; if it is detonated elsewhere, the ship will not blow up. -Regardless of where it's detonated, or how, a successful detonation will end the round or automatically restart the game. - -All of the necessary difines are stored under mode.dm in defines. -*/ - -var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initited elsewhere so that the world has a chance to load in. - -/datum/authority/branch/evacuation - var/name = "Evacuation Authority" - var/evac_time //Time the evacuation was initiated. - var/evac_status = EVACUATION_STATUS_STANDING_BY //What it's doing now? It can be standing by, getting ready to launch, or finished. - - var/obj/structure/machinery/self_destruct/console/dest_master //The main console that does the brunt of the work. - var/dest_rods[] //Slave devices to make the explosion work. - var/dest_cooldown //How long it takes between rods, determined by the amount of total rods present. - var/dest_index = 1 //What rod the thing is currently on. - var/dest_status = NUKE_EXPLOSION_INACTIVE - var/dest_started_at = 0 - - var/flags_scuttle = NO_FLAGS - -/datum/authority/branch/evacuation/New() - ..() - dest_master = locate() - if(!dest_master) - log_debug("ERROR CODE SD1: could not find master self-destruct console") - to_world(SPAN_DEBUG("ERROR CODE SD1: could not find master self-destruct console")) - return FALSE - dest_rods = new - for(var/obj/structure/machinery/self_destruct/rod/I in dest_master.loc.loc) dest_rods += I - if(!dest_rods.len) - log_debug("ERROR CODE SD2: could not find any self-destruct rods") - to_world(SPAN_DEBUG("ERROR CODE SD2: could not find any self-destruct rods")) - QDEL_NULL(dest_master) - return FALSE - dest_cooldown = SELF_DESTRUCT_ROD_STARTUP_TIME / dest_rods.len - dest_master.desc = "The main operating panel for a self-destruct system. It requires very little user input, but the final safety mechanism is manually unlocked.\nAfter the initial start-up sequence, [dest_rods.len] control rods must be armed, followed by manually flipping the detonation switch." - -/** - * This proc returns the ship's z level list (or whatever specified), - * when an evac/self-destruct happens. - */ -/datum/authority/branch/evacuation/proc/get_affected_zlevels() - //Nuke is not in progress, end the round on ship only. - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS && SSticker?.mode.is_in_endgame) - . = SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP)) - return - -//========================================================================================= -//========================================================================================= -//=====================================EVACUATION========================================== -//========================================================================================= -//========================================================================================= - - -/datum/authority/branch/evacuation/proc/initiate_evacuation(force=0) //Begins the evacuation procedure. - if(force || (evac_status == EVACUATION_STATUS_STANDING_BY && !(flags_scuttle & FLAGS_EVACUATION_DENY))) - evac_time = world.time - evac_status = EVACUATION_STATUS_INITIATING - ai_announcement("Attention. Emergency. All personnel must evacuate immediately. You have [round(EVACUATION_ESTIMATE_DEPARTURE/60,1)] minute\s until departure.", 'sound/AI/evacuate.ogg') - xeno_message_all("A wave of adrenaline ripples through the hive. The fleshy creatures are trying to escape!") - - for(var/obj/structure/machinery/status_display/SD in machines) - if(is_mainship_level(SD.z)) - SD.set_picture("evac") - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.prepare_evac() - activate_lifeboats() - process_evacuation() - return TRUE - -/datum/authority/branch/evacuation/proc/cancel_evacuation() //Cancels the evac procedure. Useful if admins do not want the marines leaving. - if(evac_status == EVACUATION_STATUS_INITIATING) - evac_time = null - evac_status = EVACUATION_STATUS_STANDING_BY - deactivate_lifeboats() - ai_announcement("Evacuation has been cancelled.", 'sound/AI/evacuate_cancelled.ogg') - - if(get_security_level() == "red") - for(var/obj/structure/machinery/status_display/SD in machines) - if(is_mainship_level(SD.z)) - SD.set_picture("redalert") - - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.cancel_evac() - return TRUE - -/datum/authority/branch/evacuation/proc/begin_launch() //Launches the pods. - if(evac_status == EVACUATION_STATUS_INITIATING) - evac_status = EVACUATION_STATUS_IN_PROGRESS //Cannot cancel at this point. All shuttles are off. - spawn() //One of the few times spawn() is appropriate. No need for a new proc. - ai_announcement("WARNING: Evacuation order confirmed. Launching escape pods.", 'sound/AI/evacuation_confirmed.ogg') - addtimer(CALLBACK(src, PROC_REF(launch_lifeboats)), 10 SECONDS) // giving some time to board lifeboats - - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.evac_launch() - sleep(50) - - sleep(300) //Sleep 30 more seconds to make sure everyone had a chance to leave. - var/lifesigns = 0 - // lifesigns += P.passengers - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat1 = SSshuttle.getShuttle(MOBILE_SHUTTLE_LIFEBOAT_PORT) - lifeboat1.check_for_survivors() - lifesigns += lifeboat1.survivors - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat2 = SSshuttle.getShuttle(MOBILE_SHUTTLE_LIFEBOAT_STARBOARD) - lifeboat2.check_for_survivors() - lifesigns += lifeboat2.survivors - ai_announcement("ATTENTION: Evacuation complete. Outbound lifesigns detected: [lifesigns ? lifesigns : "none"].", 'sound/AI/evacuation_complete.ogg') - evac_status = EVACUATION_STATUS_COMPLETE - return TRUE - -/datum/authority/branch/evacuation/proc/process_evacuation() //Process the timer. - set background = 1 - - spawn while(evac_status == EVACUATION_STATUS_INITIATING) //If it's not departing, no need to process. - if(world.time >= evac_time + EVACUATION_AUTOMATIC_DEPARTURE) begin_launch() - sleep(10) //One second. - -/datum/authority/branch/evacuation/proc/get_status_panel_eta() - switch(evac_status) - if(EVACUATION_STATUS_INITIATING) - var/eta = EVACUATION_ESTIMATE_DEPARTURE - . = "[(eta / 60) % 60]:[add_zero(num2text(eta % 60), 2)]" - if(EVACUATION_STATUS_IN_PROGRESS) . = "NOW" - -// LIFEBOATS CORNER -/datum/authority/branch/evacuation/proc/activate_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.status = LIFEBOAT_ACTIVE - lifeboat_dock.open_dock() - - -/datum/authority/branch/evacuation/proc/deactivate_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.status = LIFEBOAT_INACTIVE - -/datum/authority/branch/evacuation/proc/launch_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.evac_launch() - -//========================================================================================= -//========================================================================================= -//=====================================SELF DETRUCT======================================== -//========================================================================================= -//========================================================================================= - -/datum/authority/branch/evacuation/proc/enable_self_destruct(force=0) - if(force || (dest_status == NUKE_EXPLOSION_INACTIVE && !(flags_scuttle & FLAGS_SELF_DESTRUCT_DENY))) - dest_status = NUKE_EXPLOSION_ACTIVE - dest_master.lock_or_unlock() - dest_started_at = world.time - set_security_level(SEC_LEVEL_DELTA) //also activate Delta alert, to open the SD shutters. - spawn(0) - for(var/obj/structure/machinery/door/poddoor/shutters/almayer/D in machines) - if(D.id == "sd_lockdown") - D.open() - return TRUE - -//Override is for admins bypassing normal player restrictions. -/datum/authority/branch/evacuation/proc/cancel_self_destruct(override) - if(dest_status == NUKE_EXPLOSION_ACTIVE) - var/obj/structure/machinery/self_destruct/rod/I - var/i - for(i in EvacuationAuthority.dest_rods) - I = i - if(I.active_state == SELF_DESTRUCT_MACHINE_ARMED && !override) - dest_master.state(SPAN_WARNING("WARNING: Unable to cancel detonation. Please disarm all control rods.")) - return FALSE - - dest_status = NUKE_EXPLOSION_INACTIVE - dest_master.in_progress = 1 - dest_started_at = 0 - for(i in dest_rods) - I = i - if(I.active_state == SELF_DESTRUCT_MACHINE_ACTIVE || (I.active_state == SELF_DESTRUCT_MACHINE_ARMED && override)) I.lock_or_unlock(1) - dest_master.lock_or_unlock(1) - dest_index = 1 - ai_announcement("The emergency destruct system has been deactivated.", 'sound/AI/selfdestruct_deactivated.ogg') - if(evac_status == EVACUATION_STATUS_STANDING_BY) //the evac has also been cancelled or was never started. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. - return TRUE - -/datum/authority/branch/evacuation/proc/initiate_self_destruct(override) - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS) - var/obj/structure/machinery/self_destruct/rod/I - var/i - for(i in dest_rods) - I = i - if(I.active_state != SELF_DESTRUCT_MACHINE_ARMED && !override) - dest_master.state(SPAN_WARNING("WARNING: Unable to trigger detonation. Please arm all control rods.")) - return FALSE - dest_master.in_progress = !dest_master.in_progress - for(i in EvacuationAuthority.dest_rods) - I = i - I.in_progress = 1 - ai_announcement("DANGER. DANGER. Self-destruct system activated. DANGER. DANGER. Self-destruct in progress. DANGER. DANGER.") - trigger_self_destruct(,,override) - return TRUE - -/datum/authority/branch/evacuation/proc/trigger_self_destruct(list/z_levels = SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP), origin = dest_master, override = FALSE, end_type = NUKE_EXPLOSION_FINISHED, play_anim = TRUE, end_round = TRUE) - set waitfor = 0 - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS) //One more check for good measure, in case it's triggered through a bomb instead of the destruct mechanism/admin panel. - dest_status = NUKE_EXPLOSION_IN_PROGRESS - playsound(origin, 'sound/machines/Alarm.ogg', 75, 0, 30) - world << pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') - - var/ship_status = 1 - for(var/i in z_levels) - if(is_mainship_level(i)) - ship_status = 0 //Destroyed. - break - - var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). - var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. - for(var/mob/current_mob as anything in GLOB.mob_list) //This only does something cool for the people about to die, but should prove pretty interesting. - if(!current_mob || !current_mob.loc) - continue //In case something changes when we sleep(). - if(current_mob.stat == DEAD) - dead_mobs |= current_mob - continue - var/turf/current_turf = get_turf(current_mob) - if(current_turf.z in z_levels) - alive_mobs |= current_mob - shake_camera(current_mob, 110, 4) - - - sleep(100) - /*Hardcoded for now, since this was never really used for anything else. - Would ideally use a better system for showing cutscenes.*/ - var/atom/movable/screen/cinematic/explosion/C = new - - if(play_anim) - for(var/mob/current_mob as anything in alive_mobs + dead_mobs) - if(current_mob && current_mob.loc && current_mob.client) - current_mob.client.add_to_screen(C) //They may have disconnected in the mean time. - - sleep(15) //Extra 1.5 seconds to look at the ship. - flick(override ? "intro_override" : "intro_nuke", C) - sleep(35) - for(var/mob/current_mob in alive_mobs) - if(current_mob && current_mob.loc) //Who knows, maybe they escaped, or don't exist anymore. - var/turf/current_mob_turf = get_turf(current_mob) - if(current_mob_turf.z in z_levels) - if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) - continue - current_mob.death(create_cause_data("nuclear explosion")) - else - if(play_anim) - current_mob.client.remove_from_screen(C) //those who managed to escape the z level at last second shouldn't have their view obstructed. - if(play_anim) - flick(ship_status ? "ship_spared" : "ship_destroyed", C) - C.icon_state = ship_status ? "summary_spared" : "summary_destroyed" - world << sound('sound/effects/explosionfar.ogg') - - if(end_round) - dest_status = end_type - - sleep(5) - if(SSticker.mode) - SSticker.mode.check_win() - - if(!SSticker.mode) //Just a safety, just in case a mode isn't running, somehow. - to_world(SPAN_ROUNDBODY("Resetting in 30 seconds!")) - sleep(300) - log_game("Rebooting due to nuclear detonation.") - world.Reboot() - return TRUE - -/datum/authority/branch/evacuation/proc/process_self_destruct() - set background = 1 - - spawn while(dest_master && dest_master.loc && dest_master.active_state == SELF_DESTRUCT_MACHINE_ARMED && dest_status == NUKE_EXPLOSION_ACTIVE && dest_index <= dest_rods.len) - var/obj/structure/machinery/self_destruct/rod/I = dest_rods[dest_index] - if(world.time >= dest_cooldown + I.activate_time) - I.lock_or_unlock() //Unlock it. - if(++dest_index <= dest_rods.len) - I = dest_rods[dest_index]//Start the next sequence. - I.activate_time = world.time - sleep(10) //Checks every second. Could integrate into another controller for better tracking. - -//Generic parent base for the self_destruct items. -/obj/structure/machinery/self_destruct - icon = 'icons/obj/structures/machinery/self_destruct.dmi' - icon_state = "console_1" - var/base_icon_state = "console" - use_power = USE_POWER_NONE //Runs unpowered, may need to change later. - density = FALSE - anchored = TRUE //So it doesn't go anywhere. - unslashable = TRUE - unacidable = TRUE //Cannot C4 it either. - mouse_opacity = FALSE //No need to click or interact with this initially. - var/in_progress = 0 //Cannot interact with while it's doing something, like an animation. - var/active_state = SELF_DESTRUCT_MACHINE_INACTIVE //What step of the process it's on. - -/obj/structure/machinery/self_destruct/Initialize(mapload, ...) - . = ..() - icon_state = "[base_icon_state]_1" - -/obj/structure/machinery/self_destruct/Destroy() - . = ..() - machines -= src - operator = null - -/obj/structure/machinery/self_destruct/ex_act(severity) - return FALSE - -/obj/structure/machinery/self_destruct/attack_hand() - if(..() || in_progress) - return FALSE //This check is backward, ugh. - return TRUE - -//Add sounds. -/obj/structure/machinery/self_destruct/proc/lock_or_unlock(lock) - set waitfor = 0 - in_progress = 1 - flick("[base_icon_state]" + (lock? "_5" : "_2"),src) - sleep(9) - mouse_opacity = !mouse_opacity - icon_state = "[base_icon_state]" + (lock? "_1" : "_3") - in_progress = 0 - active_state = active_state > SELF_DESTRUCT_MACHINE_INACTIVE ? SELF_DESTRUCT_MACHINE_INACTIVE : SELF_DESTRUCT_MACHINE_ACTIVE - -/obj/structure/machinery/self_destruct/console - name = "self-destruct control panel" - icon_state = "console_1" - base_icon_state = "console" - req_one_access = list(ACCESS_MARINE_CO, ACCESS_MARINE_SENIOR) - -/obj/structure/machinery/self_destruct/console/Destroy() - . = ..() - EvacuationAuthority.dest_master = null - EvacuationAuthority.dest_rods = null - -/obj/structure/machinery/self_destruct/console/lock_or_unlock(lock) - playsound(src, 'sound/machines/hydraulics_1.ogg', 25, 1) - ..() - -//TODO: Add sounds. -/obj/structure/machinery/self_destruct/console/attack_hand(mob/user) - if(inoperable()) - return - - tgui_interact(user) - -/obj/structure/machinery/self_destruct/console/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "SelfDestructConsole", name) - ui.open() - -/obj/structure/machinery/sleep_console/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(inoperable()) - return UI_CLOSE - - -/obj/structure/machinery/self_destruct/console/ui_data(mob/user) - var/list/data = list() - - data["dest_status"] = active_state - - return data - -/obj/structure/machinery/self_destruct/console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - switch(action) - if("dest_start") - to_chat(usr, SPAN_NOTICE("You press a few keys on the panel.")) - to_chat(usr, SPAN_NOTICE("The system must be booting up the self-destruct sequence now.")) - playsound(src.loc, 'sound/items/rped.ogg', 25, TRUE) - sleep(2 SECONDS) - ai_announcement("Danger. The emergency destruct system is now activated. The ship will detonate in T-minus 20 minutes. Automatic detonation is unavailable. Manual detonation is required.", 'sound/AI/selfdestruct.ogg') - active_state = SELF_DESTRUCT_MACHINE_ARMED //Arm it here so the process can execute it later. - var/obj/structure/machinery/self_destruct/rod/I = EvacuationAuthority.dest_rods[EvacuationAuthority.dest_index] - I.activate_time = world.time - EvacuationAuthority.process_self_destruct() - . = TRUE - - if("dest_trigger") - EvacuationAuthority.initiate_self_destruct() - . = TRUE - - if("dest_cancel") - if(!allowed(usr)) - to_chat(usr, SPAN_WARNING("You don't have the necessary clearance to cancel the emergency destruct system!")) - return - EvacuationAuthority.cancel_self_destruct() - . = TRUE - -/obj/structure/machinery/self_destruct/rod - name = "self-destruct control rod" - desc = "It is part of a complicated self-destruct sequence, but relatively simple to operate. Twist to arm or disarm." - icon_state = "rod_1" - base_icon_state = "rod" - layer = BELOW_OBJ_LAYER - var/activate_time - -/obj/structure/machinery/self_destruct/rod/Destroy() - . = ..() - if(EvacuationAuthority && EvacuationAuthority.dest_rods) - EvacuationAuthority.dest_rods -= src - -/obj/structure/machinery/self_destruct/rod/lock_or_unlock(lock) - playsound(src, 'sound/machines/hydraulics_2.ogg', 25, 1) - ..() - if(lock) - activate_time = null - density = FALSE - layer = initial(layer) - else - density = TRUE - layer = ABOVE_OBJ_LAYER - -/obj/structure/machinery/self_destruct/rod/attack_hand(mob/user) - if(..()) - switch(active_state) - if(SELF_DESTRUCT_MACHINE_ACTIVE) - to_chat(user, SPAN_NOTICE("You twist and release the control rod, arming it.")) - playsound(src, 'sound/machines/switch.ogg', 25, 1) - icon_state = "rod_4" - active_state = SELF_DESTRUCT_MACHINE_ARMED - if(SELF_DESTRUCT_MACHINE_ARMED) - to_chat(user, SPAN_NOTICE("You twist and release the control rod, disarming it.")) - playsound(src, 'sound/machines/switch.ogg', 25, 1) - icon_state = "rod_3" - active_state = SELF_DESTRUCT_MACHINE_ACTIVE - else to_chat(user, SPAN_WARNING("The control rod is not ready.")) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index 258a1a962713..f64c2432486b 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -29,7 +29,7 @@ to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("The current map is - [SSmapping.configs[GROUND_MAP].map_name]!")) /datum/game_mode/colonialmarines/get_roles_list() - return ROLES_DISTRESS_SIGNAL + return GLOB.ROLES_DISTRESS_SIGNAL //////////////////////////////////////////////////////////////////////////////////////// //Temporary, until we sort this out properly. @@ -126,7 +126,7 @@ #define MONKEYS_TO_TOTAL_RATIO 1/32 /datum/game_mode/colonialmarines/proc/spawn_smallhosts() - if(!players_preassigned) + if(!GLOB.players_preassigned) return monkey_types = SSmapping.configs[GROUND_MAP].monkey_types @@ -134,7 +134,7 @@ if(!length(monkey_types)) return - var/amount_to_spawn = round(players_preassigned * MONKEYS_TO_TOTAL_RATIO) + var/amount_to_spawn = round(GLOB.players_preassigned * MONKEYS_TO_TOTAL_RATIO) for(var/i in 0 to min(amount_to_spawn, length(GLOB.monkey_spawns))) var/turf/T = get_turf(pick_n_take(GLOB.monkey_spawns)) @@ -167,7 +167,7 @@ check_ground_humans() if(next_research_allocation < world.time) - chemical_data.update_credits(chemical_data.research_allocation_amount) + GLOB.chemical_data.update_credits(GLOB.chemical_data.research_allocation_amount) next_research_allocation = world.time + research_allocation_interval if(!round_finished) @@ -205,7 +205,7 @@ to_chat(M, SPAN_XENOANNOUNCE("To my children and their Queen. I sense the large doors that trap us will open in 30 seconds.")) addtimer(CALLBACK(src, PROC_REF(open_podlocks), "map_lockdown"), 300) - if(round_should_check_for_win) + if(GLOB.round_should_check_for_win) check_win() round_checkwin = 0 @@ -265,7 +265,7 @@ continue if(groundside_humans > (groundside_xenos * GROUNDSIDE_XENO_MULTIPLIER)) - SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE, FALSE, announce_dispatch_message = FALSE) + SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE) TIMER_COOLDOWN_START(src, COOLDOWN_HIJACK_GROUND_CHECK, 1 MINUTES) @@ -297,29 +297,25 @@ if(SSticker.current_state != GAME_STATE_PLAYING) return - var/living_player_list[] = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/living_player_list[] = count_humans_and_xenos(get_affected_zlevels()) var/num_humans = living_player_list[1] var/num_xenos = living_player_list[2] if(force_end_at && world.time > force_end_at) round_finished = MODE_INFESTATION_X_MINOR - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - round_finished = MODE_GENERIC_DRAW_NUKE //Nuke went off, ending the round. - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_GROUND_FINISHED) - round_finished = MODE_INFESTATION_M_MINOR //Nuke went off, ending the round. - if(EvacuationAuthority.dest_status < NUKE_EXPLOSION_IN_PROGRESS) //If the nuke ISN'T in progress. We do not want to end the round before it detonates. - if(!num_humans && num_xenos) //No humans remain alive. - round_finished = MODE_INFESTATION_X_MAJOR //Evacuation did not take place. Everyone died. - else if(num_humans && !num_xenos) - if(SSticker.mode && SSticker.mode.is_in_endgame) - round_finished = MODE_INFESTATION_X_MINOR //Evacuation successfully took place. - else - SSticker.roundend_check_paused = TRUE - round_finished = MODE_INFESTATION_M_MAJOR //Humans destroyed the xenomorphs. - ares_conclude() - addtimer(VARSET_CALLBACK(SSticker, roundend_check_paused, FALSE), MARINE_MAJOR_ROUND_END_DELAY) - else if(!num_humans && !num_xenos) - round_finished = MODE_INFESTATION_DRAW_DEATH //Both were somehow destroyed. + + if(!num_humans && num_xenos) //No humans remain alive. + round_finished = MODE_INFESTATION_X_MAJOR //Evacuation did not take place. Everyone died. + else if(num_humans && !num_xenos) + if(SSticker.mode && SSticker.mode.is_in_endgame) + round_finished = MODE_INFESTATION_X_MINOR //Evacuation successfully took place. + else + SSticker.roundend_check_paused = TRUE + round_finished = MODE_INFESTATION_M_MAJOR //Humans destroyed the xenomorphs. + ares_conclude() + addtimer(VARSET_CALLBACK(SSticker, roundend_check_paused, FALSE), MARINE_MAJOR_ROUND_END_DELAY) + else if(!num_humans && !num_xenos) + round_finished = MODE_INFESTATION_DRAW_DEATH //Both were somehow destroyed. /datum/game_mode/colonialmarines/check_queen_status(hivenumber) set waitfor = 0 @@ -333,7 +329,7 @@ var/datum/hive_status/HS for(var/HN in GLOB.hive_datum) HS = GLOB.hive_datum[HN] - if(HS.living_xeno_queen && !is_admin_level(HS.living_xeno_queen.loc.z)) + if(HS.living_xeno_queen && !should_block_game_interaction(HS.living_xeno_queen.loc)) //Some Queen is alive, we shouldn't end the game yet return round_finished = MODE_INFESTATION_M_MINOR @@ -357,17 +353,17 @@ if(MODE_INFESTATION_X_MAJOR) musical_track = pick('sound/theme/sad_loss1.ogg','sound/theme/sad_loss2.ogg') end_icon = "xeno_major" - if(round_statistics && round_statistics.current_map) - round_statistics.current_map.total_xeno_victories++ - round_statistics.current_map.total_xeno_majors++ + if(GLOB.round_statistics && GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_xeno_victories++ + GLOB.round_statistics.current_map.total_xeno_majors++ if(MODE_INFESTATION_M_MAJOR) musical_track = pick('sound/theme/winning_triumph1.ogg','sound/theme/winning_triumph2.ogg') end_icon = "marine_major" - if(round_statistics && round_statistics.current_map) - round_statistics.current_map.total_marine_victories++ - round_statistics.current_map.total_marine_majors++ + if(GLOB.round_statistics && GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_marine_victories++ + GLOB.round_statistics.current_map.total_marine_majors++ if(MODE_INFESTATION_X_MINOR) - var/list/living_player_list = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/list/living_player_list = count_humans_and_xenos(get_affected_zlevels()) if(living_player_list[1] && !living_player_list[2]) // If Xeno Minor but Xenos are dead and Humans are alive, see which faction is the last standing var/headcount = count_per_faction() var/living = headcount["total_headcount"] @@ -382,28 +378,28 @@ else musical_track = pick('sound/theme/neutral_melancholy1.ogg') end_icon = "xeno_minor" - if(round_statistics && round_statistics.current_map) - round_statistics.current_map.total_xeno_victories++ + if(GLOB.round_statistics && GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_xeno_victories++ if(MODE_INFESTATION_M_MINOR) musical_track = pick('sound/theme/neutral_hopeful1.ogg','sound/theme/neutral_hopeful2.ogg') end_icon = "marine_minor" - if(round_statistics && round_statistics.current_map) - round_statistics.current_map.total_marine_victories++ + if(GLOB.round_statistics && GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_marine_victories++ if(MODE_INFESTATION_DRAW_DEATH) end_icon = "draw" musical_track = 'sound/theme/neutral_hopeful2.ogg' - if(round_statistics && round_statistics.current_map) - round_statistics.current_map.total_draws++ + if(GLOB.round_statistics && GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_draws++ var/sound/S = sound(musical_track, channel = SOUND_CHANNEL_LOBBY) S.status = SOUND_STREAM sound_to(world, S) - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.round_result = round_finished - round_statistics.end_round_player_population = GLOB.clients.len + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.round_result = round_finished + GLOB.round_statistics.end_round_player_population = GLOB.clients.len - round_statistics.log_round_statistics() + GLOB.round_statistics.log_round_statistics() calculate_end_statistics() show_end_statistics(end_icon) @@ -444,11 +440,11 @@ ) //organize our jobs in a readable and standard way - for(var/job in ROLES_MARINES) + for(var/job in GLOB.ROLES_MARINES) counted_humans["Squad Marines"][job] = 0 - for(var/job in ROLES_USCM - ROLES_MARINES) + for(var/job in GLOB.ROLES_USCM - GLOB.ROLES_MARINES) counted_humans["Auxiliary Marines"][job] = 0 - for(var/job in ROLES_SPECIAL) + for(var/job in GLOB.ROLES_SPECIAL) counted_humans["Non-Standard Humans"][job] = 0 var/list/counted_xenos = list() @@ -467,7 +463,7 @@ if(player_client.mob && player_client.mob.stat != DEAD) if(ishuman(player_client.mob)) if(player_client.mob.faction == FACTION_MARINE) - if(player_client.mob.job in (ROLES_MARINES)) + if(player_client.mob.job in (GLOB.ROLES_MARINES)) counted_humans["Squad Marines"][player_client.mob.job]++ else counted_humans["Auxiliary Marines"][player_client.mob.job]++ diff --git a/code/game/gamemodes/colonialmarines/huntergames.dm b/code/game/gamemodes/colonialmarines/huntergames.dm index c8c90fa51c0c..310785070458 100644 --- a/code/game/gamemodes/colonialmarines/huntergames.dm +++ b/code/game/gamemodes/colonialmarines/huntergames.dm @@ -11,11 +11,11 @@ #define HUNTER_GOOD_ITEM pick(\ 50; /obj/item/weapon/shield/riot, \ - 100; /obj/item/weapon/claymore, \ - 100; /obj/item/weapon/katana, \ + 100; /obj/item/weapon/sword, \ + 100; /obj/item/weapon/sword/katana, \ 100; /obj/item/weapon/harpoon/yautja, \ - 150; /obj/item/weapon/claymore/mercsword, \ - 200; /obj/item/weapon/claymore/mercsword/machete, \ + 150; /obj/item/weapon/sword, \ + 200; /obj/item/weapon/sword/machete, \ 125; /obj/item/weapon/twohanded/fireaxe, \ \ 100; /obj/item/device/binoculars, \ @@ -51,7 +51,7 @@ 300; /obj/item/tool/hatchet, \ 100; /obj/item/tool/scythe, \ 100; /obj/item/tool/kitchen/knife/butcher, \ - 50; /obj/item/weapon/katana/replica, \ + 50; /obj/item/weapon/sword/katana/replica, \ 100; /obj/item/weapon/harpoon, \ 75; /obj/item/attachable/bayonet, \ 200; /obj/item/weapon/throwing_knife, \ @@ -83,8 +83,6 @@ 100; /obj/item/clothing/suit/storage/CMB \ ) -var/waiting_for_drop_votes = 0 - //Digging through this is a pain. I'm leaving it mostly alone until a full rework takes place. /datum/game_mode/huntergames @@ -105,6 +103,8 @@ var/waiting_for_drop_votes = 0 var/ticks_passed = 0 var/drops_disabled = 0 + var/waiting_for_drop_votes = FALSE + votable = FALSE // borkeds taskbar_icon = 'icons/taskbar/gml_hgames.png' @@ -234,7 +234,7 @@ var/waiting_for_drop_votes = 0 H = new(picked) H.key = M.key - if(H.client) H.client.change_view(world_view_size) + if(H.client) H.client.change_view(GLOB.world_view_size) if(!H.mind) H.mind = new(H.key) @@ -244,7 +244,8 @@ var/waiting_for_drop_votes = 0 H.skills = null //no restriction on what the contestants can do - H.apply_effect(15, WEAKEN) + H.KnockDown(15) + H.Stun(15) H.nutrition = NUTRITION_NORMAL var/randjob = rand(0,10) @@ -393,8 +394,8 @@ var/waiting_for_drop_votes = 0 //Announces the end of the game with all relevant information stated// ////////////////////////////////////////////////////////////////////// /datum/game_mode/huntergames/declare_completion() - if(round_statistics) - round_statistics.track_round_end() + if(GLOB.round_statistics) + GLOB.round_statistics.track_round_end() var/mob/living/carbon/winner = null for(var/mob/living/carbon/human/Q in GLOB.alive_mob_list) @@ -415,12 +416,12 @@ var/waiting_for_drop_votes = 0 to_world("There was a winner, but they died before they could receive the prize!! Bummer.") world << 'sound/misc/sadtrombone.ogg' - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.end_round_player_population = count_humans() + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.end_round_player_population = count_humans() - round_statistics.log_round_statistics() + GLOB.round_statistics.log_round_statistics() return 1 diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index 3d856f35ce77..6ebda633a19b 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -2,14 +2,14 @@ //Global proc for checking if the game is whiskey outpost so I dont need to type if(gamemode == whiskey outpost) 50000 times /proc/Check_WO() - if(SSticker.mode == GAMEMODE_WHISKEY_OUTPOST || master_mode == GAMEMODE_WHISKEY_OUTPOST) + if(SSticker.mode == GAMEMODE_WHISKEY_OUTPOST || GLOB.master_mode == GAMEMODE_WHISKEY_OUTPOST) return 1 return 0 /datum/game_mode/whiskey_outpost name = GAMEMODE_WHISKEY_OUTPOST config_tag = GAMEMODE_WHISKEY_OUTPOST - required_players = 0 + required_players = 140 xeno_bypass_timer = 1 flags_round_type = MODE_NEW_SPAWN role_mappings = list( @@ -76,12 +76,16 @@ hardcore = TRUE votable = TRUE - vote_cycle = 25 // approx. once every 5 days, if it wins the vote + vote_cycle = 75 // approx. once every 5 days, if it wins the vote taskbar_icon = 'icons/taskbar/gml_wo.png' +/datum/game_mode/whiskey_outpost/New() + . = ..() + required_players = CONFIG_GET(number/whiskey_required_players) + /datum/game_mode/whiskey_outpost/get_roles_list() - return ROLES_WO + return GLOB.ROLES_WO /datum/game_mode/whiskey_outpost/announce() return 1 @@ -152,9 +156,6 @@ spawn(0) //Deleting Almayer, for performance! SSitem_cleanup.delete_almayer() - if(SSxenocon) - //Don't need XENOCON - SSxenocon.wait = 30 MINUTES //PROCCESS @@ -181,7 +182,7 @@ if(checkwin_counter >= 10) //Only check win conditions every 10 ticks. if(xeno_wave == WO_MAX_WAVE && last_wave_time == 0) last_wave_time = world.time - if(!finished && round_should_check_for_win && last_wave_time != 0) + if(!finished && GLOB.round_should_check_for_win && last_wave_time != 0) check_win() checkwin_counter = 0 return 0 @@ -193,7 +194,7 @@ announce_xeno_wave(wave) if(xeno_wave == 7) //Wave when Marines get reinforcements! - get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE, FALSE) + get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE) xeno_wave = min(xeno_wave + 1, WO_MAX_WAVE) @@ -215,8 +216,8 @@ finished = 2 //Marine win /datum/game_mode/whiskey_outpost/proc/disablejoining() - for(var/i in RoleAuthority.roles_by_name) - var/datum/job/J = RoleAuthority.roles_by_name[i] + for(var/i in GLOB.RoleAuthority.roles_by_name) + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[i] // If the job has unlimited job slots, We set the amount of slots to the amount it has at the moment this is called if (J.spawn_positions < 0) @@ -257,8 +258,8 @@ //Announces the end of the game with all relevant information stated// ////////////////////////////////////////////////////////////////////// /datum/game_mode/whiskey_outpost/declare_completion() - if(round_statistics) - round_statistics.track_round_end() + if(GLOB.round_statistics) + GLOB.round_statistics.track_round_end() if(finished == 1) log_game("Round end result - xenos won") to_world(SPAN_ROUND_HEADER("The Xenos have succesfully defended their hive from colonization.")) @@ -266,11 +267,11 @@ to_world(SPAN_ROUNDBODY("It will be another five years before the USCM returns to the Neroid Sector, with the arrival of the 2nd 'Falling Falcons' Battalion and the USS Almayer.")) to_world(SPAN_ROUNDBODY("The xenomorph hive on LV-624 remains unthreatened until then...")) world << sound('sound/misc/Game_Over_Man.ogg') - if(round_statistics) - round_statistics.round_result = MODE_INFESTATION_X_MAJOR - if(round_statistics.current_map) - round_statistics.current_map.total_xeno_victories++ - round_statistics.current_map.total_xeno_majors++ + if(GLOB.round_statistics) + GLOB.round_statistics.round_result = MODE_INFESTATION_X_MAJOR + if(GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_xeno_victories++ + GLOB.round_statistics.current_map.total_xeno_majors++ else if(finished == 2) log_game("Round end result - marines won") @@ -279,26 +280,26 @@ to_world(SPAN_ROUNDBODY("Eventually, the Dust Raiders secure LV-624 and the entire Neroid Sector in 2182, pacifiying it and establishing peace in the sector for decades to come.")) to_world(SPAN_ROUNDBODY("The USS Almayer and the 2nd 'Falling Falcons' Battalion are never sent to the sector and are spared their fate in 2186.")) world << sound('sound/misc/hell_march.ogg') - if(round_statistics) - round_statistics.round_result = MODE_INFESTATION_M_MAJOR - if(round_statistics.current_map) - round_statistics.current_map.total_marine_victories++ - round_statistics.current_map.total_marine_majors++ + if(GLOB.round_statistics) + GLOB.round_statistics.round_result = MODE_INFESTATION_M_MAJOR + if(GLOB.round_statistics.current_map) + GLOB.round_statistics.current_map.total_marine_victories++ + GLOB.round_statistics.current_map.total_marine_majors++ else log_game("Round end result - no winners") to_world(SPAN_ROUND_HEADER("NOBODY WON!")) to_world(SPAN_ROUNDBODY("How? Don't ask me...")) world << 'sound/misc/sadtrombone.ogg' - if(round_statistics) - round_statistics.round_result = MODE_INFESTATION_DRAW_DEATH + if(GLOB.round_statistics) + GLOB.round_statistics.round_result = MODE_INFESTATION_DRAW_DEATH - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.end_round_player_population = GLOB.clients.len + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.end_round_player_population = GLOB.clients.len - round_statistics.log_round_statistics() + GLOB.round_statistics.log_round_statistics() round_finished = 1 @@ -322,9 +323,9 @@ OT = "sup" //no breaking anything. else if (OT == "sup") - randpick = rand(0,50) + randpick = rand(0,90) switch(randpick) - if(0 to 5)//Marine Gear 10% Chance. + if(0 to 3)//Marine Gear 3% Chance. crate = new /obj/structure/closet/crate/secure/gear(T) choosemax = rand(5,10) randomitems = list(/obj/item/clothing/head/helmet/marine, @@ -340,19 +341,19 @@ /obj/effect/landmark/wo_supplies/storage/webbing, /obj/item/device/binoculars) - if(6 to 10)//Lights and shiet 10% + if(4 to 6)//Lights and shiet 2% new /obj/structure/largecrate/supply/floodlights(T) new /obj/structure/largecrate/supply/supplies/flares(T) - if(11 to 13) //6% Chance to drop this !FUN! junk. + if(7 to 10) //3% Chance to drop this !FUN! junk. crate = new /obj/structure/closet/crate/secure/gear(T) spawnitems = list(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility/full) - if(14 to 18)//Materials 10% Chance. + if(11 to 22)//Materials 12% Chance. crate = new /obj/structure/closet/crate/secure/gear(T) choosemax = rand(3,8) randomitems = list(/obj/item/stack/sheet/metal, @@ -363,7 +364,7 @@ /obj/item/stack/sandbags_empty/half, /obj/item/stack/sandbags_empty/half) - if(19 to 20)//Blood Crate 4% chance + if(23 to 25)//Blood Crate 2% chance crate = new /obj/structure/closet/crate/medical(T) spawnitems = list(/obj/item/reagent_container/blood/OMinus, /obj/item/reagent_container/blood/OMinus, @@ -371,7 +372,7 @@ /obj/item/reagent_container/blood/OMinus, /obj/item/reagent_container/blood/OMinus) - if(21 to 25)//Advanced meds Crate 10% + if(26 to 30)//Advanced meds Crate 5% crate = new /obj/structure/closet/crate/medical(T) spawnitems = list(/obj/item/storage/firstaid/fire, /obj/item/storage/firstaid/regular, @@ -386,7 +387,7 @@ /obj/item/clothing/glasses/hud/health, /obj/item/device/defibrillator) - if(26 to 30)//Random Medical Items 10% as well. Made the list have less small junk + if(31 to 34)//Random Medical Items 4%. Made the list have less small junk crate = new /obj/structure/closet/crate/medical(T) spawnitems = list(/obj/item/storage/belt/medical/lifesaver/full, /obj/item/storage/belt/medical/lifesaver/full, @@ -394,7 +395,7 @@ /obj/item/storage/belt/medical/lifesaver/full, /obj/item/storage/belt/medical/lifesaver/full) - if(31 to 35)//Random explosives Crate 10% because the lord commeth and said let there be explosives. + if(35 to 40)//Random explosives Crate 5% because the lord commeth and said let there be explosives. crate = new /obj/structure/closet/crate/ammo(T) choosemax = rand(1,5) randomitems = list(/obj/item/storage/box/explosive_mines, @@ -404,7 +405,7 @@ /obj/item/explosive/grenade/high_explosive, /obj/item/storage/box/nade_box ) - if(36 to 40) // Junk + if(41 to 44) crate = new /obj/structure/closet/crate/ammo(T) spawnitems = list( /obj/item/attachable/heavy_barrel, @@ -412,20 +413,75 @@ /obj/item/attachable/heavy_barrel, /obj/item/attachable/heavy_barrel) - if(40 to 48)//Weapon + supply beacon drop. 6% + if(45 to 50)//Weapon + supply beacon drop. 5% crate = new /obj/structure/closet/crate/ammo(T) spawnitems = list(/obj/item/device/whiskey_supply_beacon, /obj/item/device/whiskey_supply_beacon, /obj/item/device/whiskey_supply_beacon, /obj/item/device/whiskey_supply_beacon) - if(49 to 50)//Rare weapons. Around 4% + if(51 to 57)//Rare weapons. Around 6% crate = new /obj/structure/closet/crate/ammo(T) spawnitems = list(/obj/effect/landmark/wo_supplies/ammo/box/rare/m41aap, /obj/effect/landmark/wo_supplies/ammo/box/rare/m41aapmag, /obj/effect/landmark/wo_supplies/ammo/box/rare/m41aextend, /obj/effect/landmark/wo_supplies/ammo/box/rare/smgap, /obj/effect/landmark/wo_supplies/ammo/box/rare/smgextend) + + if(58 to 65) // Sandbags kit + crate = new /obj/structure/closet/crate(T) + spawnitems = list(/obj/item/tool/shovel/etool, + /obj/item/stack/sandbags_empty/half, + /obj/item/stack/sandbags_empty/half, + /obj/item/stack/sandbags_empty/half) + + if(66 to 70) // Mortar shells. Pew Pew! + crate = new /obj/structure/closet/crate/secure/mortar_ammo(T) + choosemax = rand(6,10) + randomitems = list(/obj/item/mortar_shell/he, + /obj/item/mortar_shell/incendiary, + /obj/item/mortar_shell/flare, + /obj/item/mortar_shell/frag) + + if(71 to 79) + crate = new /obj/structure/closet/crate/ammo(T) + choosemax = rand(2, 3) + randomitems = list(/obj/item/ammo_box/rounds, + /obj/item/ammo_box/rounds/ap, + /obj/item/ammo_box/rounds/smg, + /obj/item/ammo_box/rounds/smg/ap, + /obj/item/ammo_box/magazine/ap, + /obj/item/ammo_box/magazine/ext, + /obj/item/ammo_box/magazine/m4ra/ap, + /obj/item/ammo_box/magazine/m4ra/ap, + /obj/item/ammo_box/magazine/m39/ap, + /obj/item/ammo_box/magazine/m39/ext, + ) + + if(80 to 82) + crate = new /obj/structure/closet/crate/ammo(T) + choosemax = rand(2, 3) + randomitems = list(/obj/item/ammo_magazine/rifle/lmg/holo_target, + /obj/item/ammo_magazine/rifle/lmg/holo_target, + /obj/item/ammo_magazine/rifle/lmg, + /obj/item/ammo_magazine/rifle/lmg, + ) + + if(83 to 86) + crate = new /obj/structure/closet/crate/ammo(T) + spawnitems = list( + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/magnetic_harness) + + if(86 to 90) + crate = new /obj/structure/closet/crate/secure/gear(T) + spawnitems = list( + /obj/item/device/binoculars/range, + /obj/item/device/binoculars/range, + ) + if(crate) crate.storage_capacity = 60 @@ -459,10 +515,10 @@ unacidable = TRUE var/working = 0 -/obj/structure/machinery/wo_recycler/attack_hand(mob/user) +/obj/structure/machinery/wo_recycler/attack_hand(mob/living/user) if(inoperable(MAINT)) return - if(user.lying || user.stat) + if(user.is_mob_incapacitated()) return if(ismaintdrone(usr) || \ istype(usr, /mob/living/carbon/xenomorph)) diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm index ae272da88690..1ec07b9d8fec 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm @@ -32,7 +32,7 @@ for(var/mob/living/carbon/xenomorph/X as anything in GLOB.living_xeno_list) var/area/A = get_area(X) - if(is_admin_level(X.z) && (!A || !(A.flags_area & AREA_ALLOW_XENO_JOIN)) || X.aghosted) continue //xenos on admin z level and aghosted ones don't count + if(should_block_game_interaction(X) && (!A || !(A.flags_area & AREA_ALLOW_XENO_JOIN)) || X.aghosted) continue //xenos on admin z level and aghosted ones don't count if(istype(X) && !X.client) if((X.away_timer >= XENO_LEAVE_TIMER) || (islarva(X) && X.away_timer >= XENO_LEAVE_TIMER_LARVA)) available_xenos += X @@ -52,12 +52,12 @@ if(!xeno_candidate) return FALSE - if(RoleAuthority.castes_by_name[userInput]) + if(GLOB.RoleAuthority.castes_by_name[userInput]) if(!(userInput in xeno_pool)) to_chat(xeno_candidate, SPAN_WARNING("The caste type you chose was occupied by someone else.")) return FALSE var/spawn_loc = pick(xeno_spawns) - var/xeno_type = RoleAuthority.get_caste_by_text(userInput) + var/xeno_type = GLOB.RoleAuthority.get_caste_by_text(userInput) var/mob/living/carbon/xenomorph/new_xeno = new xeno_type(spawn_loc) if(new_xeno.hive.construction_allowed == NORMAL_XENO) new_xeno.hive.construction_allowed = XENO_QUEEN diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm index 5623295f1915..a9ad48196257 100644 --- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm +++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm @@ -26,9 +26,9 @@ /* Pre-pre-startup */ /datum/game_mode/xenovs/can_start() for(var/hivename in SSmapping.configs[GROUND_MAP].xvx_hives) - if(readied_players > SSmapping.configs[GROUND_MAP].xvx_hives[hivename]) + if(GLOB.readied_players > SSmapping.configs[GROUND_MAP].xvx_hives[hivename]) hives += hivename - xeno_starting_num = readied_players + xeno_starting_num = GLOB.readied_players if(!initialize_starting_xenomorph_list(hives, TRUE)) hives.Cut() return @@ -38,7 +38,7 @@ to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("The current map is - [SSmapping.configs[GROUND_MAP].map_name]!")) /datum/game_mode/xenovs/get_roles_list() - return ROLES_XENO + return GLOB.ROLES_XENO /* Pre-setup */ /datum/game_mode/xenovs/pre_setup() @@ -79,9 +79,6 @@ spawn(0) //Deleting Almayer, for performance! SSitem_cleanup.delete_almayer() - if(SSxenocon) - //Don't need XENOCON - SSxenocon.wait = 30 MINUTES //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// @@ -94,7 +91,7 @@ initialize_post_xenomorph_list(GLOB.xeno_hive_spawns) round_time_lobby = world.time - for(var/area/A in all_areas) + for(var/area/A in GLOB.all_areas) if(!(A.is_resin_allowed)) A.is_resin_allowed = TRUE @@ -144,7 +141,6 @@ original.statistic_exempt = TRUE original.buckled = start_nest original.setDir(start_nest.dir) - original.update_canmove() start_nest.buckled_mob = original start_nest.afterbuckle(original) @@ -196,7 +192,7 @@ qdel(C) hive_cores = list() - if(round_should_check_for_win) + if(GLOB.round_should_check_for_win) check_win() round_checkwin = 0 @@ -266,12 +262,12 @@ var/sound/S = sound(musical_track, channel = SOUND_CHANNEL_LOBBY) S.status = SOUND_STREAM sound_to(world, S) - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.end_round_player_population = GLOB.clients.len + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.end_round_player_population = GLOB.clients.len - round_statistics.log_round_statistics() + GLOB.round_statistics.log_round_statistics() declare_completion_announce_xenomorphs() calculate_end_statistics() @@ -281,11 +277,11 @@ return TRUE /datum/game_mode/xenovs/announce_ending() - if(round_statistics) - round_statistics.track_round_end() + if(GLOB.round_statistics) + GLOB.round_statistics.track_round_end() log_game("Round end result: [round_finished]") to_chat_spaced(world, margin_top = 2, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("|Round Complete|")) - to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the battling hives on [SSmapping.configs[GROUND_MAP].map_name]. [round_finished]\nThe game-mode was: [master_mode]!\n[CONFIG_GET(string/endofroundblurb)]")) + to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the battling hives on [SSmapping.configs[GROUND_MAP].map_name]. [round_finished]\nThe game-mode was: [GLOB.master_mode]!\n[CONFIG_GET(string/endofroundblurb)]")) // for the toolbox /datum/game_mode/xenovs/end_round_message() diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index db8f84d53f24..1039d495396b 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -3,7 +3,7 @@ /proc/carp_migration() // -- Darem //sleep(100) spawn(rand(300, 600)) //Delayed announcements to keep the crew on their toes. - marine_announcement("Unknown biological entities have been detected near [station_name], please stand-by.", "Lifesign Alert", 'sound/AI/commandreport.ogg') + marine_announcement("Unknown biological entities have been detected near [MAIN_SHIP_NAME], please stand-by.", "Lifesign Alert", 'sound/AI/commandreport.ogg') /proc/lightsout(isEvent = 0, lightsoutAmount = 1,lightsoutRange = 25) //leave lightsoutAmount as 0 to break ALL lights if(isEvent) @@ -13,7 +13,7 @@ return else - for(var/obj/structure/machinery/power/apc/apc in machines) + for(var/obj/structure/machinery/power/apc/apc in GLOB.machines) apc.overload_lighting() return diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 7905c19fac41..5ebedd8fd26d 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -2,7 +2,7 @@ /proc/power_failure(announce = 1) var/ship_zlevels = SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP) - for(var/obj/structure/machinery/power/smes/S in machines) + for(var/obj/structure/machinery/power/smes/S in GLOB.machines) if(!is_mainship_level(S.z)) continue S.last_charge = S.charge @@ -14,7 +14,7 @@ S.updateicon() S.power_change() - for(var/obj/structure/machinery/power/apc/C in machines) + for(var/obj/structure/machinery/power/apc/C in GLOB.machines) if(!is_mainship_level(C.z) && C.cell) C.cell.charge = 0 @@ -25,7 +25,7 @@ marine_announcement("Abnormal activity detected in the ship power system. As a precaution, power must be shut down for an indefinite duration.", "Critical Power Failure", 'sound/AI/poweroff.ogg') /proc/power_restore(announce = 1) - for(var/obj/structure/machinery/power/smes/S in machines) + for(var/obj/structure/machinery/power/smes/S in GLOB.machines) if(!is_mainship_level(S.z)) continue S.charge = S.capacity @@ -34,7 +34,7 @@ S.updateicon() S.power_change() - for(var/obj/structure/machinery/power/apc/C in machines) + for(var/obj/structure/machinery/power/apc/C in GLOB.machines) if(C.cell && is_mainship_level(C.z)) C.cell.charge = C.cell.maxcharge @@ -44,7 +44,7 @@ /proc/power_restore_quick(announce = 1) - for(var/obj/structure/machinery/power/smes/S in machines) + for(var/obj/structure/machinery/power/smes/S in GLOB.machines) if(!is_mainship_level(S.z)) // Ship only continue S.charge = S.capacity @@ -59,14 +59,14 @@ /proc/power_restore_everything(announce = 1) - for(var/obj/structure/machinery/power/smes/S in machines) + for(var/obj/structure/machinery/power/smes/S in GLOB.machines) S.charge = S.capacity S.output_level = S.output_level_max S.outputting = 1 S.updateicon() S.power_change() - for(var/obj/structure/machinery/power/apc/C in machines) + for(var/obj/structure/machinery/power/apc/C in GLOB.machines) if(C.cell) C.cell.charge = C.cell.maxcharge @@ -75,7 +75,7 @@ marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg') /proc/power_restore_ship_reactors(announce = 1) - for(var/obj/structure/machinery/power/fusion_engine/FE in machines) + for(var/obj/structure/machinery/power/fusion_engine/FE in GLOB.machines) FE.buildstate = 0 FE.is_on = 1 FE.fusion_cell = new diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index f00125cc8f0f..72512a7e77ff 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -12,7 +12,7 @@ to_world("The current game mode is - Extended!") /datum/game_mode/extended/get_roles_list() - return ROLES_USCM + return GLOB.ROLES_USCM /datum/game_mode/extended/post_setup() initialize_post_marine_gear_list() @@ -24,7 +24,7 @@ /datum/game_mode/extended/process() . = ..() if(next_research_allocation < world.time) - chemical_data.update_credits(chemical_data.research_allocation_amount) + GLOB.chemical_data.update_credits(GLOB.chemical_data.research_allocation_amount) next_research_allocation = world.time + research_allocation_interval /datum/game_mode/extended/check_finished() @@ -39,11 +39,11 @@ var/musical_track = pick('sound/theme/neutral_hopeful1.ogg','sound/theme/neutral_hopeful2.ogg') world << musical_track - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.end_round_player_population = GLOB.clients.len - round_statistics.log_round_statistics() + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.log_round_statistics() calculate_end_statistics() declare_completion_announce_predators() diff --git a/code/game/gamemodes/extended/extended_clash.dm b/code/game/gamemodes/extended/extended_clash.dm index 04077de2775c..e0e526d91afa 100644 --- a/code/game/gamemodes/extended/extended_clash.dm +++ b/code/game/gamemodes/extended/extended_clash.dm @@ -6,7 +6,7 @@ taskbar_icon = 'icons/taskbar/gml_hvh.png' /datum/game_mode/extended/faction_clash/get_roles_list() - return ROLES_FACTION_CLASH + return GLOB.ROLES_FACTION_CLASH /datum/game_mode/extended/faction_clash/post_setup() . = ..() diff --git a/code/game/gamemodes/extended/infection.dm b/code/game/gamemodes/extended/infection.dm index 04e0545361aa..1e0032a8e6fa 100644 --- a/code/game/gamemodes/extended/infection.dm +++ b/code/game/gamemodes/extended/infection.dm @@ -15,7 +15,7 @@ to_world("Don't ahelp asking for specific details, you won't get them.") /datum/game_mode/infection/get_roles_list() - return ROLES_USCM + return GLOB.ROLES_USCM /datum/game_mode/infection/pre_setup() return ..() @@ -61,7 +61,7 @@ possible_synth_survivors -= A continue - if(RoleAuthority.roles_whitelist[ckey(A.key)] & WHITELIST_SYNTHETIC) + if(GLOB.RoleAuthority.roles_whitelist[ckey(A.key)] & WHITELIST_SYNTHETIC) if(A in possible_survivors) continue //they are already applying to be a survivor else @@ -95,7 +95,7 @@ possible_survivors -= new_survivor //either we drafted a survivor, or we're skipping over someone, either or - remove them /datum/game_mode/infection/check_win() - var/living_player_list[] = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/list/living_player_list = count_humans_and_xenos(get_affected_zlevels()) var/num_humans = living_player_list[1] var/zed = living_player_list[2] @@ -120,11 +120,11 @@ var/musical_track = pick('sound/theme/sad_loss1.ogg','sound/theme/sad_loss2.ogg') world << musical_track - if(round_statistics) - round_statistics.game_mode = name - round_statistics.round_length = world.time - round_statistics.end_round_player_population = GLOB.clients.len - round_statistics.log_round_statistics() + if(GLOB.round_statistics) + GLOB.round_statistics.game_mode = name + GLOB.round_statistics.round_length = world.time + GLOB.round_statistics.end_round_player_population = GLOB.clients.len + GLOB.round_statistics.log_round_statistics() declare_completion_announce_xenomorphs() declare_completion_announce_predators() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index f6f75c6ba4e0..3bb8c2d80123 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -11,9 +11,9 @@ * */ -var/global/datum/entity/statistic/round/round_statistics -var/global/list/datum/entity/player_entity/player_entities = list() -var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracking_ids to tacbinos and signal flares +GLOBAL_DATUM(round_statistics, /datum/entity/statistic/round) +GLOBAL_LIST_INIT_TYPED(player_entities, /datum/entity/player_entity, list()) +GLOBAL_VAR_INIT(cas_tracking_id_increment, 0) //this var used to assign unique tracking_ids to tacbinos and signal flares /datum/game_mode var/name = "invalid" var/config_tag = null @@ -56,7 +56,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki if((player.client)&&(player.ready)) playerC++ - if(master_mode=="secret") + if(GLOB.master_mode=="secret") if(playerC >= required_players_secret) return 1 else @@ -105,11 +105,16 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki np.new_player_panel_proc() round_time_lobby = world.time log_game("Round started at [time2text(world.realtime)]") + log_game("Operation time at round start is [worldtime2text()]") if(SSticker.mode) log_game("Game mode set to [SSticker.mode]") log_game("Server IP: [world.internet_address]:[world.port]") return TRUE +/datum/game_mode/proc/get_affected_zlevels() + if(is_in_endgame) + . = SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP)) + return ///process() ///Called by the gameticker @@ -118,22 +123,21 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki /datum/game_mode/proc/check_finished() //to be called by ticker - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED || EvacuationAuthority.dest_status == NUKE_EXPLOSION_GROUND_FINISHED ) - return TRUE + return /datum/game_mode/proc/cleanup() //This is called when the round has ended but not the game, if any cleanup would be necessary in that case. return /datum/game_mode/proc/announce_ending() - if(round_statistics) - round_statistics.track_round_end() + if(GLOB.round_statistics) + GLOB.round_statistics.track_round_end() log_game("Round end result: [round_finished]") to_chat_spaced(world, margin_top = 2, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDHEADER("|Round Complete|")) - to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the brave men and women of the [MAIN_SHIP_NAME] and their struggle on [SSmapping.configs[GROUND_MAP].map_name].\nThe game-mode was: [master_mode]!\n[CONFIG_GET(string/endofroundblurb)]")) + to_chat_spaced(world, type = MESSAGE_TYPE_SYSTEM, html = SPAN_ROUNDBODY("Thus ends the story of the brave men and women of the [MAIN_SHIP_NAME] and their struggle on [SSmapping.configs[GROUND_MAP].map_name].\nThe game-mode was: [GLOB.master_mode]!\n[CONFIG_GET(string/endofroundblurb)]")) /datum/game_mode/proc/declare_completion() - if(round_statistics) - round_statistics.track_round_end() + if(GLOB.round_statistics) + GLOB.round_statistics.track_round_end() var/clients = 0 var/surviving_humans = 0 var/surviving_total = 0 @@ -177,7 +181,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki record_playtime(M.client.player_data, M.job, type) /datum/game_mode/proc/show_end_statistics(icon_state) - round_statistics.update_panel_data() + GLOB.round_statistics.update_panel_data() for(var/mob/M in GLOB.player_list) if(M.client) give_action(M, /datum/action/show_round_statistics, null, icon_state) @@ -222,7 +226,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki var/list/heads = list() for(var/i in GLOB.alive_human_list) var/mob/living/carbon/human/player = i - if(player.stat!=2 && player.mind && (player.job in ROLES_COMMAND )) + if(player.stat!=2 && player.mind && (player.job in GLOB.ROLES_COMMAND )) heads += player.mind return heads @@ -233,7 +237,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki /datum/game_mode/proc/get_all_heads() var/list/heads = list() for(var/mob/player in GLOB.mob_list) - if(player.mind && (player.job in ROLES_COMMAND )) + if(player.mind && (player.job in GLOB.ROLES_COMMAND )) heads += player.mind return heads diff --git a/code/game/jobs/job/antag/other/pred.dm b/code/game/jobs/job/antag/other/pred.dm index a8bcec788c44..77439276d04a 100644 --- a/code/game/jobs/job/antag/other/pred.dm +++ b/code/game/jobs/job/antag/other/pred.dm @@ -41,7 +41,7 @@ player.clan_info.sync() // pause here might be problematic, we'll see. If DB dies, then we're fucked - var/rank = clan_ranks[player.clan_info.clan_rank] + var/rank = GLOB.clan_ranks[player.clan_info.clan_rank] if(!rank) return CLAN_RANK_BLOODED diff --git a/code/game/jobs/job/antag/xeno/xenomorph.dm b/code/game/jobs/job/antag/xeno/xenomorph.dm index 53b06147e28c..78b6ab7e3ab2 100644 --- a/code/game/jobs/job/antag/xeno/xenomorph.dm +++ b/code/game/jobs/job/antag/xeno/xenomorph.dm @@ -88,9 +88,8 @@ break human_to_transform.statistic_exempt = TRUE - human_to_transform.buckled = start_nest + human_to_transform.set_buckled(start_nest) human_to_transform.setDir(start_nest.dir) - human_to_transform.update_canmove() start_nest.buckled_mob = human_to_transform start_nest.afterbuckle(human_to_transform) diff --git a/code/game/jobs/job/civilians/other/liaison.dm b/code/game/jobs/job/civilians/other/liaison.dm index 7f73376a05dd..cbbb87124957 100644 --- a/code/game/jobs/job/civilians/other/liaison.dm +++ b/code/game/jobs/job/civilians/other/liaison.dm @@ -6,7 +6,7 @@ selection_class = "job_cl" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/liaison - entry_message_body = "As a representative of Weyland-Yutani Corporation, your job requires you to stay in character at all times. You are not required to follow military orders; however, you cannot give military orders. Your primary job is to observe and report back your findings to Weyland-Yutani. Follow regular game rules unless told otherwise by your superiors. Use your office fax machine to communicate with corporate headquarters or to acquire new directives. You may not receive anything back, and this is normal." + entry_message_body = "As a representative of Weyland-Yutani Corporation, your job requires you to stay in character at all times. You are not required to follow military orders; however, you cannot give military orders. Your primary job is to observe and report back your findings to Weyland-Yutani. Follow regular game rules unless told otherwise by your superiors. Use your office fax machine to communicate with corporate headquarters or to acquire new directives. You may not receive anything back, and this is normal." var/mob/living/carbon/human/active_liaison /datum/job/civilian/liaison/generate_entry_conditions(mob/living/liaison, whitelist_status) diff --git a/code/game/jobs/job/civilians/other/mess_seargent.dm b/code/game/jobs/job/civilians/other/mess_seargent.dm index 4b1975015a95..fb4f5ee14d7c 100644 --- a/code/game/jobs/job/civilians/other/mess_seargent.dm +++ b/code/game/jobs/job/civilians/other/mess_seargent.dm @@ -1,12 +1,30 @@ /datum/job/civilian/chef title = JOB_MESS_SERGEANT - total_positions = 1 + total_positions = 2 spawn_positions = 1 + allow_additional = TRUE + scaled = TRUE selection_class = "job_ot" flags_startup_parameters = ROLE_ADD_TO_DEFAULT supervisors = "the auxiliary support officer" gear_preset = /datum/equipment_preset/uscm_ship/chef - entry_message_body = "Your job is to service the marines with excellent food, drinks and entertaining the shipside crew when needed. You have a lot of freedom and it is up to you, to decide what to do with it. Good luck!" + entry_message_body = "Your job is to service the marines with excellent food, drinks and entertaining the shipside crew when needed. You have a lot of freedom and it is up to you, to decide what to do with it. Good luck!" + +/datum/job/civilian/chef/set_spawn_positions(count) + spawn_positions = mess_sergeant_slot_formula(count) + +/datum/job/civilian/chef/get_total_positions(latejoin = FALSE) + var/positions = spawn_positions + if(latejoin) + positions = mess_sergeant_slot_formula(get_total_marines()) + if(positions <= total_positions_so_far) + positions = total_positions_so_far + else + total_positions_so_far = positions + else + total_positions_so_far = positions + + return positions /obj/effect/landmark/start/chef name = JOB_MESS_SERGEANT diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index 5c82241c47de..23097e139eda 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -10,6 +10,8 @@ job_options = SURVIVOR_VARIANT_LIST var/intro_text var/story_text + /// Whether or not the survivor is an inherently hostile to marines. + var/hostile = FALSE /datum/job/civilian/survivor/set_spawn_positions(count) spawn_positions = Clamp((round(count * SURVIVOR_TO_TOTAL_SPAWN_RATIO)), 2, 8) @@ -59,23 +61,32 @@ if(picked_spawner.story_text) story_text = picked_spawner.story_text + + if(picked_spawner.hostile) + hostile = TRUE + new /datum/cm_objective/move_mob/almayer/survivor(H) -/datum/job/civilian/survivor/generate_entry_message(mob/living/carbon/human/H) +/datum/job/civilian/survivor/generate_entry_message(mob/living/carbon/human/survivor) if(intro_text) for(var/line in intro_text) - to_chat(H, line) + to_chat(survivor, line) else - to_chat(H, "

You are a survivor!

") - to_chat(H, SPAN_NOTICE(SSmapping.configs[GROUND_MAP].survivor_message)) - to_chat(H, SPAN_NOTICE("You are fully aware of the xenomorph threat and are able to use this knowledge as you see fit.")) - to_chat(H, SPAN_NOTICE("You are NOT aware of the marines or their intentions. ")) + to_chat(survivor, "

You are a survivor!

") + to_chat(survivor, SPAN_NOTICE(SSmapping.configs[GROUND_MAP].survivor_message)) + to_chat(survivor, SPAN_NOTICE("You are fully aware of the xenomorph threat and are able to use this knowledge as you see fit.")) + to_chat(survivor, SPAN_NOTICE("You are NOT aware of the marines or their intentions. ")) if(story_text) - to_chat(H, story_text) - H.mind.memory += story_text + to_chat(survivor, story_text) + survivor.mind.memory += story_text + else + tell_survivor_story(survivor) + + if(hostile) + to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM!")) else - tell_survivor_story(H) + to_chat(survivor, SPAN_XENOHIGHDANGER("You are NON-HOSTILE to the USCM!")) /datum/job/civilian/survivor/proc/tell_survivor_story(mob/living/carbon/human/H) var/list/survivor_story = list( diff --git a/code/game/jobs/job/civilians/support/cmo.dm b/code/game/jobs/job/civilians/support/cmo.dm index 8c4690ea2057..835f16f7d814 100644 --- a/code/game/jobs/job/civilians/support/cmo.dm +++ b/code/game/jobs/job/civilians/support/cmo.dm @@ -6,7 +6,7 @@ selection_class = "job_cmo" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/cmo - entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." + entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." AddTimelock(/datum/job/civilian/professor, list( JOB_MEDIC_ROLES = 10 HOURS diff --git a/code/game/jobs/job/civilians/support/nurse.dm b/code/game/jobs/job/civilians/support/nurse.dm index 7a0cab16f559..8912011298dc 100644 --- a/code/game/jobs/job/civilians/support/nurse.dm +++ b/code/game/jobs/job/civilians/support/nurse.dm @@ -6,7 +6,7 @@ selection_class = "job_doctor" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/nurse - entry_message_body = "You are tasked with keeping the Marines healthy and strong. You are also an expert when it comes to medication and treatment, and can do minor surgical procedures. Focus on assisting doctors and triaging wounded marines." + entry_message_body = "You are tasked with keeping the Marines healthy and strong. You are also an expert when it comes to medication and treatment, and can do minor surgical procedures. Focus on assisting doctors and triaging wounded marines." /obj/effect/landmark/start/nurse name = JOB_NURSE diff --git a/code/game/jobs/job/civilians/support/researcher.dm b/code/game/jobs/job/civilians/support/researcher.dm index 61245c8164ab..21163f27959d 100644 --- a/code/game/jobs/job/civilians/support/researcher.dm +++ b/code/game/jobs/job/civilians/support/researcher.dm @@ -10,7 +10,7 @@ selection_class = "job_researcher" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/researcher - entry_message_body = "You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are tasked with researching and developing new medical treatments, helping your fellow doctors, and generally learning new things. Your role involves a lot of roleplaying, but you can perform the function of a regular doctor. Do not hand out things to Marines without getting permission from your supervisor." + entry_message_body = "You're a commissioned officer of the USCM, though you are not in the ship's chain of command. You are tasked with researching and developing new medical treatments, helping your fellow doctors, and generally learning new things. Your role involves a lot of roleplaying, but you can perform the function of a regular doctor. Do not hand out things to Marines without getting permission from your supervisor." /datum/job/civilian/researcher/set_spawn_positions(count) spawn_positions = rsc_slot_formula(count) diff --git a/code/game/jobs/job/civilians/support/synthetic.dm b/code/game/jobs/job/civilians/support/synthetic.dm index 3e02385bc96c..70060fb36a15 100644 --- a/code/game/jobs/job/civilians/support/synthetic.dm +++ b/code/game/jobs/job/civilians/support/synthetic.dm @@ -9,7 +9,7 @@ flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADMIN_NOTIFY|ROLE_WHITELISTED|ROLE_CUSTOM_SPAWN flags_whitelist = WHITELIST_SYNTHETIC gear_preset = /datum/equipment_preset/synth/uscm - entry_message_body = "You are a Synthetic! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Synthetic Rules. Failure to do so may result in your White-list Removal. Your primary job is to support and assist all USCM Departments and Personnel on-board. In addition, being a Synthetic gives you knowledge in every field and specialization possible on-board the ship. As a Synthetic you answer to the acting commanding officer. Special circumstances may change this!" + entry_message_body = "You are a Synthetic! You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Synthetic Rules. Failure to do so may result in your White-list Removal. Your primary job is to support and assist all USCM Departments and Personnel on-board. In addition, being a Synthetic gives you knowledge in every field and specialization possible on-board the ship. As a Synthetic you answer to the acting commanding officer. Special circumstances may change this!" /datum/job/civilian/synthetic/New() . = ..() diff --git a/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm b/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm index e5155c949a32..5f6293000365 100644 --- a/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm +++ b/code/game/jobs/job/command/auxiliary/auxiliary_support_officer.dm @@ -5,7 +5,7 @@ allow_additional = TRUE flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/auxiliary_officer - entry_message_body = "Your job is to oversee the hangar crew, the intel officers, the engineering department, and requisition department. You have many responsibilities and a few plates to keep spinning but your subordinates are mostly self-reliant. Assist where you can and make sure command personnel are confident the auxiliary departments are operating at peak efficiency." + entry_message_body = "Your job is to oversee the hangar crew, the intel officers, the engineering department, and requisition department. You have many responsibilities and a few plates to keep spinning but your subordinates are mostly self-reliant. Assist where you can and make sure command personnel are confident the auxiliary departments are operating at peak efficiency." AddTimelock(/datum/job/command/auxiliary_officer, list( JOB_SQUAD_ROLES = 5 HOURS, diff --git a/code/game/jobs/job/command/auxiliary/crew_chief.dm b/code/game/jobs/job/command/auxiliary/crew_chief.dm index c8dfe2a8eb37..0770bcd60ffa 100644 --- a/code/game/jobs/job/command/auxiliary/crew_chief.dm +++ b/code/game/jobs/job/command/auxiliary/crew_chief.dm @@ -7,7 +7,7 @@ supervisors = "the pilot officers" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/dcc - entry_message_body = "Your job is to assist the pilot officer maintain the ship's dropship. You have authority only on the dropship, but you are expected to maintain order, as not to disrupt the pilot." + entry_message_body = "Your job is to assist the pilot officer maintain the ship's dropship. You have authority only on the dropship, but you are expected to maintain order, as not to disrupt the pilot." AddTimelock(/datum/job/command/crew_chief, list( JOB_SQUAD_ROLES = 5 HOURS diff --git a/code/game/jobs/job/command/auxiliary/intel.dm b/code/game/jobs/job/command/auxiliary/intel.dm index 8d83d49ed143..9905bc9d3747 100644 --- a/code/game/jobs/job/command/auxiliary/intel.dm +++ b/code/game/jobs/job/command/auxiliary/intel.dm @@ -8,7 +8,7 @@ supervisors = "the auxiliary support officer" flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = "USCM Intelligence Officer (IO) (Cryo)" - entry_message_body = "Your job is to assist the marines in collecting intelligence related to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources." + entry_message_body = "Your job is to assist the marines in collecting intelligence related to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources." /datum/job/command/intel/set_spawn_positions(count) spawn_positions = int_slot_formula(count) diff --git a/code/game/jobs/job/command/auxiliary/pilot.dm b/code/game/jobs/job/command/auxiliary/pilot.dm index a75846f92919..1a7a7c21d5a0 100644 --- a/code/game/jobs/job/command/auxiliary/pilot.dm +++ b/code/game/jobs/job/command/auxiliary/pilot.dm @@ -7,7 +7,7 @@ supervisors = "the auxiliary support officer" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/po - entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." + entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." // Dropship Roles is both PO and DCC combined to not force people to backtrack AddTimelock(/datum/job/command/pilot, list( diff --git a/code/game/jobs/job/command/auxiliary/senior.dm b/code/game/jobs/job/command/auxiliary/senior.dm index 5e9b7caf1f10..014db9569b2a 100644 --- a/code/game/jobs/job/command/auxiliary/senior.dm +++ b/code/game/jobs/job/command/auxiliary/senior.dm @@ -7,7 +7,7 @@ job_options = list("Gunnery Sergeant" = "GySGT", "Master Sergeant" = "MSgt", "First Sergeant" = "1Sgt", "Master Gunnery Sergeant" = "MGySgt", "Sergeant Major" = "SgtMaj") /datum/job/command/senior/on_config_load() - entry_message_body = "You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Standard Operating Procedure. Failure to do so may result in your Mentorship Removal. Your primary job is to teach others the game and its mechanics, and offer advice to all USCM Departments and Personnel on-board." + entry_message_body = "You are held to a higher standard and are required to obey not only the Server Rules but Marine Law and Standard Operating Procedure. Failure to do so may result in your Mentorship Removal. Your primary job is to teach others the game and its mechanics, and offer advice to all USCM Departments and Personnel on-board." return ..() /datum/job/command/senior/announce_entry_message(mob/living/carbon/human/H) diff --git a/code/game/jobs/job/command/cic/captain.dm b/code/game/jobs/job/command/cic/captain.dm index 98db585e1d07..72f861351912 100644 --- a/code/game/jobs/job/command/cic/captain.dm +++ b/code/game/jobs/job/command/cic/captain.dm @@ -16,7 +16,7 @@ ) /datum/job/command/commander/generate_entry_message() - entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct. Failure to do so may result in punitive action against you. Godspeed." + entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct. Failure to do so may result in punitive action against you. Godspeed." return ..() /datum/job/command/commander/get_whitelist_status(list/roles_whitelist, client/player) diff --git a/code/game/jobs/job/command/cic/staffofficer.dm b/code/game/jobs/job/command/cic/staffofficer.dm index fff51624aa4b..94769de2158f 100644 --- a/code/game/jobs/job/command/cic/staffofficer.dm +++ b/code/game/jobs/job/command/cic/staffofficer.dm @@ -6,7 +6,7 @@ scaled = FALSE flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/so - entry_message_body = "Your job is to monitor the Marines, man the CIC, and listen to your superior officers. You are in charge of logistics and the overwatch system. You are also in line to take command after other eligible superior commissioned officers." + entry_message_body = "Your job is to monitor the Marines, man the CIC, and listen to your superior officers. You are in charge of logistics and the overwatch system. You are also in line to take command after other eligible superior commissioned officers." /datum/job/command/bridge/set_spawn_positions(count) spawn_positions = so_slot_formula(count) diff --git a/code/game/jobs/job/command/police/chief_police.dm b/code/game/jobs/job/command/police/chief_police.dm index b76943c4d0ac..63e6d8023f17 100644 --- a/code/game/jobs/job/command/police/chief_police.dm +++ b/code/game/jobs/job/command/police/chief_police.dm @@ -4,7 +4,7 @@ selection_class = "job_cmp" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/cmp - entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" + entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. You lead the Military Police, ensure your officers maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" AddTimelock(/datum/job/command/warrant, list( JOB_POLICE_ROLES = 15 HOURS, diff --git a/code/game/jobs/job/command/police/police.dm b/code/game/jobs/job/command/police/police.dm index 7285c5b278b1..e05bc2e96256 100644 --- a/code/game/jobs/job/command/police/police.dm +++ b/code/game/jobs/job/command/police/police.dm @@ -8,7 +8,7 @@ selection_class = "job_mp" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/mp - entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" + entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the security of high-ranking personnel, including the command staff. Keep them safe!" /datum/job/command/police/set_spawn_positions(count) spawn_positions = mp_slot_formula(count) diff --git a/code/game/jobs/job/command/police/warden.dm b/code/game/jobs/job/command/police/warden.dm index 55cbea975401..d2775e197537 100644 --- a/code/game/jobs/job/command/police/warden.dm +++ b/code/game/jobs/job/command/police/warden.dm @@ -5,7 +5,7 @@ flags_startup_parameters = ROLE_ADD_TO_DEFAULT supervisors = "the Chief MP" gear_preset = /datum/equipment_preset/uscm_ship/uscm_police/warden - entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the mainting security records and overwatching any prisoners in Brig." + entry_message_body = "You are held by a higher standard and are required to obey not only the server rules but the Marine Law. Failure to do so may result in a job ban or server ban. Your primary job is to maintain peace and stability aboard the ship. Marines can get rowdy after a few weeks of cryosleep! In addition, you are tasked with the mainting security records and overwatching any prisoners in Brig." AddTimelock(/datum/job/command/warden, list( JOB_POLICE_ROLES = 10 HOURS diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 0d68d23e5524..094b899c1691 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -49,13 +49,16 @@ if(!disp_title) disp_title = title + if(global.config.is_loaded) + on_config_load() + /datum/job/proc/on_config_load() if(entry_message_body) entry_message_body = replace_placeholders(entry_message_body) /datum/job/proc/replace_placeholders(replacement_string) - replacement_string = replacetextEx(replacement_string, "%WIKIURL%", generate_wiki_link()) - replacement_string = replacetextEx(replacement_string, "%LAWURL%", "[CONFIG_GET(string/wikiarticleurl)]/[URL_WIKI_LAW]") + replacement_string = replacetextEx(replacement_string, WIKI_PLACEHOLDER, generate_wiki_link()) + replacement_string = replacetextEx(replacement_string, LAW_PLACEHOLDER, "[CONFIG_GET(string/wikiarticleurl)]/[URL_WIKI_LAW]") return replacement_string /datum/job/proc/generate_wiki_link() @@ -234,32 +237,10 @@ if(!istype(NP)) return - NP.spawning = TRUE - NP.close_spawn_windows() - var/mob/living/carbon/human/new_character = new(NP.loc) new_character.lastarea = get_area(NP.loc) - NP.client.prefs.copy_all_to(new_character, title) - - if (NP.client.prefs.be_random_body) - var/datum/preferences/TP = new() - TP.randomize_appearance(new_character) - - new_character.job = NP.job - new_character.name = NP.real_name - new_character.voice = NP.real_name - - if(NP.mind) - NP.mind_initialize() - NP.mind.transfer_to(new_character, TRUE) - NP.mind.setup_human_stats() - - // Update the character icons - // This is done in set_species when the mob is created as well, but - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + setup_human(new_character, NP) return new_character @@ -271,7 +252,7 @@ var/mob/living/carbon/human/human = M var/job_whitelist = title - var/whitelist_status = get_whitelist_status(RoleAuthority.roles_whitelist, human.client) + var/whitelist_status = get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, human.client) if(whitelist_status) job_whitelist = "[title][whitelist_status]" @@ -290,9 +271,9 @@ generate_entry_conditions(human) //Do any other thing that relates to their spawn. if(flags_startup_parameters & ROLE_ADD_TO_SQUAD) //Are we a muhreen? Randomize our squad. This should go AFTER IDs. //TODO Robust this later. - RoleAuthority.randomize_squad(human) + GLOB.RoleAuthority.randomize_squad(human) - if(Check_WO() && job_squad_roles.Find(GET_DEFAULT_ROLE(human.job))) //activates self setting proc for marine headsets for WO + if(Check_WO() && GLOB.job_squad_roles.Find(GET_DEFAULT_ROLE(human.job))) //activates self setting proc for marine headsets for WO var/datum/game_mode/whiskey_outpost/WO = SSticker.mode WO.self_set_headset(human) diff --git a/code/game/jobs/job/logistics/cargo/cargo_tech.dm b/code/game/jobs/job/logistics/cargo/cargo_tech.dm index 3b588022bd97..c4725289c3ff 100644 --- a/code/game/jobs/job/logistics/cargo/cargo_tech.dm +++ b/code/game/jobs/job/logistics/cargo/cargo_tech.dm @@ -8,7 +8,7 @@ selection_class = "job_ct" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/cargo - entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Stay in your department when possible to ensure the marines have full access to the supplies they may require. Listen to the radio in case someone requests a supply drop via the overwatch system." + entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Stay in your department when possible to ensure the marines have full access to the supplies they may require. Listen to the radio in case someone requests a supply drop via the overwatch system." /datum/job/logistics/cargo/set_spawn_positions(count) spawn_positions = ct_slot_formula(count) diff --git a/code/game/jobs/job/logistics/cargo/chief_req.dm b/code/game/jobs/job/logistics/cargo/chief_req.dm index 76b7e98f2db8..5d5123e687ed 100644 --- a/code/game/jobs/job/logistics/cargo/chief_req.dm +++ b/code/game/jobs/job/logistics/cargo/chief_req.dm @@ -3,7 +3,7 @@ selection_class = "job_qm" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/qm - entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Your cargo techs can help you out, but you have final say in your department. Make sure they're not goofing off. While you may request paperwork for supplies, do not go out of your way to screw with marines, unless you want to get deposed. A happy ship is a well-functioning ship." + entry_message_body = "Your job is to dispense supplies to the marines, including weapon attachments. Your cargo techs can help you out, but you have final say in your department. Make sure they're not goofing off. While you may request paperwork for supplies, do not go out of your way to screw with marines, unless you want to get deposed. A happy ship is a well-functioning ship." AddTimelock(/datum/job/logistics/requisition, list( JOB_REQUISITION_ROLES = 10 HOURS, diff --git a/code/game/jobs/job/logistics/engi/chief_engineer.dm b/code/game/jobs/job/logistics/engi/chief_engineer.dm index 3a15c8632953..b6aa23f9c4a6 100644 --- a/code/game/jobs/job/logistics/engi/chief_engineer.dm +++ b/code/game/jobs/job/logistics/engi/chief_engineer.dm @@ -3,7 +3,7 @@ selection_class = "job_ce" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/chief_engineer - entry_message_body = "Your job is to maintain your department and keep your technicians in check. You are responsible for engineering, power, ordnance, and the orbital cannon. Should the commanding and executive officer be unavailable, you are next in the chain of command." + entry_message_body = "Your job is to maintain your department and keep your technicians in check. You are responsible for engineering, power, ordnance, and the orbital cannon. Should the commanding and executive officer be unavailable, you are next in the chain of command." AddTimelock(/datum/job/logistics/engineering, list( JOB_ENGINEER_ROLES = 10 HOURS, diff --git a/code/game/jobs/job/logistics/engi/maint_tech.dm b/code/game/jobs/job/logistics/engi/maint_tech.dm index 8562408360d7..b13062127a12 100644 --- a/code/game/jobs/job/logistics/engi/maint_tech.dm +++ b/code/game/jobs/job/logistics/engi/maint_tech.dm @@ -6,7 +6,7 @@ selection_class = "job_ot" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/maint - entry_message_body = "Your job is to maintain the integrity of the ship, including the orbital cannon. You remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors." + entry_message_body = "Your job is to maintain the integrity of the ship, including the orbital cannon. You remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors." /obj/effect/landmark/start/maint name = JOB_MAINT_TECH diff --git a/code/game/jobs/job/logistics/engi/ordnance_tech.dm b/code/game/jobs/job/logistics/engi/ordnance_tech.dm index bed0acf15887..43a8a7122a8f 100644 --- a/code/game/jobs/job/logistics/engi/ordnance_tech.dm +++ b/code/game/jobs/job/logistics/engi/ordnance_tech.dm @@ -9,7 +9,7 @@ selection_class = "job_ot" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/ordn - entry_message_body = "Your job is to maintain the integrity of the USCM weapons, munitions and equipment, including the orbital cannon. You can use the workshop in the portside hangar to construct new armaments for the marines. However you remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors." + entry_message_body = "Your job is to maintain the integrity of the USCM weapons, munitions and equipment, including the orbital cannon. You can use the workshop in the portside hangar to construct new armaments for the marines. However you remain one of the more flexible roles on the ship and as such may receive other menial tasks from your superiors." /datum/job/logistics/otech/set_spawn_positions(count) spawn_positions = ot_slot_formula(count) diff --git a/code/game/jobs/job/marine/squad/engineer.dm b/code/game/jobs/job/marine/squad/engineer.dm index 00a6b91dcffd..a4422572f218 100644 --- a/code/game/jobs/job/marine/squad/engineer.dm +++ b/code/game/jobs/job/marine/squad/engineer.dm @@ -5,10 +5,10 @@ allow_additional = 1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/engineer - entry_message_body = "You have the equipment and skill to build fortifications, reroute power lines, and bunker down. Your squaddies will look to you when it comes to construction in the field of battle." + entry_message_body = "You have the equipment and skill to build fortifications, reroute power lines, and bunker down. Your squaddies will look to you when it comes to construction in the field of battle." /datum/job/marine/engineer/set_spawn_positions(count) - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_engineers = engi_slot_formula(count) @@ -21,7 +21,7 @@ total_positions_so_far = slots if(latejoin) - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_engineers = slots diff --git a/code/game/jobs/job/marine/squad/leader.dm b/code/game/jobs/job/marine/squad/leader.dm index 960a80d5f659..be78438db3d6 100644 --- a/code/game/jobs/job/marine/squad/leader.dm +++ b/code/game/jobs/job/marine/squad/leader.dm @@ -5,7 +5,7 @@ supervisors = "the acting commanding officer" flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/leader - entry_message_body = "You are responsible for the men and women of your squad. Make sure they are on task, working together, and communicating. You are also in charge of communicating with command and letting them know about the situation first hand. Keep out of harm's way." + entry_message_body = "You are responsible for the men and women of your squad. Make sure they are on task, working together, and communicating. You are also in charge of communicating with command and letting them know about the situation first hand. Keep out of harm's way." /datum/job/marine/leader/whiskey title = JOB_WO_SQUAD_LEADER diff --git a/code/game/jobs/job/marine/squad/medic.dm b/code/game/jobs/job/marine/squad/medic.dm index cdbd74acefde..450d1176658f 100644 --- a/code/game/jobs/job/marine/squad/medic.dm +++ b/code/game/jobs/job/marine/squad/medic.dm @@ -5,10 +5,10 @@ allow_additional = 1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/medic - entry_message_body = "You tend the wounds of your squad mates and make sure they are healthy and active. You may not be a fully-fledged doctor, but you stand between life and death when it matters." + entry_message_body = "You tend the wounds of your squad mates and make sure they are healthy and active. You may not be a fully-fledged doctor, but you stand between life and death when it matters." /datum/job/marine/medic/set_spawn_positions(count) - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_medics = medic_slot_formula(count) @@ -21,7 +21,7 @@ total_positions_so_far = slots if(latejoin) - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_medics = slots diff --git a/code/game/jobs/job/marine/squad/smartgunner.dm b/code/game/jobs/job/marine/squad/smartgunner.dm index aacc562f921b..1a89abf5d3be 100644 --- a/code/game/jobs/job/marine/squad/smartgunner.dm +++ b/code/game/jobs/job/marine/squad/smartgunner.dm @@ -6,7 +6,7 @@ scaled = 1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/sg - entry_message_body = "You are the smartgunner. Your task is to provide heavy weapons support." + entry_message_body = "You are the smartgunner. Your task is to provide heavy weapons support." /datum/job/marine/smartgunner/set_spawn_positions(count) spawn_positions = sg_slot_formula(count) diff --git a/code/game/jobs/job/marine/squad/specialist.dm b/code/game/jobs/job/marine/squad/specialist.dm index 42ee69ef2d5c..e69241cdc70b 100644 --- a/code/game/jobs/job/marine/squad/specialist.dm +++ b/code/game/jobs/job/marine/squad/specialist.dm @@ -6,7 +6,7 @@ scaled = 1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/spec - entry_message_body = "You are the very rare and valuable weapon expert, trained to use special equipment. You can serve a variety of roles, so choose carefully." + entry_message_body = "You are the very rare and valuable weapon expert, trained to use special equipment. You can serve a variety of roles, so choose carefully." /datum/job/marine/specialist/set_spawn_positions(count) spawn_positions = spec_slot_formula(count) diff --git a/code/game/jobs/job/marine/squad/standard.dm b/code/game/jobs/job/marine/squad/standard.dm index e2502576e5ea..2fcd8a3cdd28 100644 --- a/code/game/jobs/job/marine/squad/standard.dm +++ b/code/game/jobs/job/marine/squad/standard.dm @@ -6,7 +6,10 @@ spawn_positions = -1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/pfc - entry_message_body = "You are a rank-and-file Marine of the USCM, and that is your strength. What you lack alone, you gain standing shoulder to shoulder with the men and women of the corps. Ooh-rah!" + +/datum/job/marine/standard/on_config_load() + entry_message_body = "You are a rank-and-file Marine of the USCM, and that is your strength. What you lack alone, you gain standing shoulder to shoulder with the men and women of the corps. Ooh-rah!" + return ..() /datum/job/marine/standard/set_spawn_positions(count) spawn_positions = max((round(count * STANDARD_MARINE_TO_TOTAL_SPAWN_RATIO)), 8) diff --git a/code/game/jobs/job/marine/squad/tl.dm b/code/game/jobs/job/marine/squad/tl.dm index ebebf360e830..2b0cff3ea3ed 100644 --- a/code/game/jobs/job/marine/squad/tl.dm +++ b/code/game/jobs/job/marine/squad/tl.dm @@ -5,7 +5,7 @@ allow_additional = 1 flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = /datum/equipment_preset/uscm/tl - entry_message_body = "You are the Team Leader.Your task is to assist the squad leader in leading the squad as well as utilize ordnance such as orbital bombardments, CAS, and mortar as well as coordinating resupply with Requisitions and CIC. If the squad leader dies, you are expected to lead in their place." + entry_message_body = "You are the Team Leader.Your task is to assist the squad leader in leading the squad as well as utilize ordnance such as orbital bombardments, CAS, and mortar as well as coordinating resupply with Requisitions and CIC. If the squad leader dies, you are expected to lead in their place." /datum/job/marine/tl/generate_entry_conditions(mob/living/carbon/human/spawning_human) . = ..() diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index 80f00c540383..5eac0586eb34 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -210,6 +210,17 @@ roundstart = FALSE locked = TRUE +/datum/squad/marine/cbrn + name = SQUAD_CBRN + equipment_color = "#3B2A7B" //Chemical Corps Purple + chat_color = "#553EB2" + radio_freq = CBRN_FREQ + minimap_color = "#3B2A7B" + + active = FALSE + roundstart = FALSE + locked = TRUE + //############################### UPP Squads /datum/squad/upp name = "Root" @@ -604,7 +615,7 @@ if(JOB_SQUAD_MEDIC) old_lead.comm_title = "HM" if(JOB_SQUAD_TEAM_LEADER) - old_lead.comm_title = "TL" + old_lead.comm_title = "FTL" if(JOB_SQUAD_SMARTGUN) old_lead.comm_title = "SG" if(JOB_SQUAD_LEADER) @@ -638,10 +649,10 @@ //Not a safe proc. Returns null if squads or jobs aren't set up. //Mostly used in the marine squad console in marine_consoles.dm. /proc/get_squad_by_name(text) - if(!RoleAuthority || RoleAuthority.squads.len == 0) + if(!GLOB.RoleAuthority || GLOB.RoleAuthority.squads.len == 0) return null var/datum/squad/S - for(S in RoleAuthority.squads) + for(S in GLOB.RoleAuthority.squads) if(S.name == text) return S return null @@ -749,7 +760,7 @@ //moved the main proc for ft management from human.dm here to make it support both examine and squad info way to edit fts /datum/squad/proc/manage_fireteams(mob/living/carbon/human/target) var/obj/item/card/id/ID = target.get_idcard() - if(!ID || !(ID.rank in ROLES_MARINES)) + if(!ID || !(ID.rank in GLOB.ROLES_MARINES)) return if(ID.rank == JOB_SQUAD_LEADER || squad_leader == target) //if SL/aSL are chosen var/choice = tgui_input_list(squad_leader, "Manage Fireteams and Team leaders.", "Fireteams Management", list("Cancel", "Unassign Fireteam 1 Leader", "Unassign Fireteam 2 Leader", "Unassign Fireteam 3 Leader", "Unassign all Team Leaders")) diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index c147807f004e..af99e17d65a9 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -11,7 +11,7 @@ When a round starts, the roles are assigned based on the round, from another lis by name can be kept for things like job bans, while the round may add or remove roles as needed.If you need to equip a mob for a job, always use roles_by_path as it is an accurate account of every specific role path (with specific equipment). */ -var/global/datum/authority/branch/role/RoleAuthority +GLOBAL_DATUM(RoleAuthority, /datum/authority/branch/role) #define GET_RANDOM_JOB 0 #define BE_MARINE 1 @@ -25,11 +25,10 @@ var/global/datum/authority/branch/role/RoleAuthority #define SHIPSIDE_ROLE_WEIGHT 0.25 -var/global/players_preassigned = 0 - +GLOBAL_VAR_INIT(players_preassigned, 0) /proc/guest_jobbans(job) - return (job in ROLES_COMMAND) + return (job in GLOB.ROLES_COMMAND) /datum/authority/branch/role var/name = "Role Authority" @@ -236,7 +235,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou // Get balancing weight for the readied players. // Squad marine roles have a weight of 1, and shipside roles have a lower weight of SHIPSIDE_ROLE_WEIGHT. - players_preassigned = assign_roles(temp_roles_for_mode.Copy(), unassigned_players.Copy(), TRUE) + GLOB.players_preassigned = assign_roles(temp_roles_for_mode.Copy(), unassigned_players.Copy(), TRUE) // Even though we pass a copy of temp_roles_for_mode, job counters still change, so we reset them here. for(var/title in temp_roles_for_mode) @@ -247,28 +246,29 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou // Set the xeno starting amount based on marines assigned var/datum/job/antag/xenos/XJ = temp_roles_for_mode[JOB_XENOMORPH] if(istype(XJ)) - XJ.set_spawn_positions(players_preassigned) + XJ.set_spawn_positions(GLOB.players_preassigned) // Limit the number of SQUAD MARINE roles players can roll initially var/datum/job/SMJ = GET_MAPPED_ROLE(JOB_SQUAD_MARINE) if(istype(SMJ)) - SMJ.set_spawn_positions(players_preassigned) + SMJ.set_spawn_positions(GLOB.players_preassigned) // Set survivor starting amount based on marines assigned var/datum/job/SJ = temp_roles_for_mode[JOB_SURVIVOR] if(istype(SJ)) - SJ.set_spawn_positions(players_preassigned) + SJ.set_spawn_positions(GLOB.players_preassigned) var/datum/job/CO_surv_job = temp_roles_for_mode[JOB_CO_SURVIVOR] if(istype(CO_surv_job)) - CO_surv_job.set_spawn_positions(players_preassigned) + CO_surv_job.set_spawn_positions(GLOB.players_preassigned) - if(SSnightmare.get_scenario_value("predator_round")) + if(SSnightmare.get_scenario_value("predator_round") && !Check_WO()) SSticker.mode.flags_round_type |= MODE_PREDATOR // Set predators starting amount based on marines assigned var/datum/job/PJ = temp_roles_for_mode[JOB_PREDATOR] if(istype(PJ)) - PJ.set_spawn_positions(players_preassigned) + PJ.set_spawn_positions(GLOB.players_preassigned) + REDIS_PUBLISH("byond.round", "type" = "predator-round") // Assign the roles, this time for real, respecting limits we have established. var/list/roles_left = assign_roles(temp_roles_for_mode, unassigned_players) @@ -312,13 +312,13 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/assigned = 0 for(var/priority in HIGH_PRIORITY to LOW_PRIORITY) // Assigning xenos first. - assigned += assign_initial_roles(priority, roles_for_mode & ROLES_XENO, unassigned_players) + assigned += assign_initial_roles(priority, roles_for_mode & GLOB.ROLES_XENO, unassigned_players) // Assigning special roles second. (survivor, predator) - assigned += assign_initial_roles(priority, roles_for_mode & (ROLES_WHITELISTED|ROLES_SPECIAL), unassigned_players) + assigned += assign_initial_roles(priority, roles_for_mode & (GLOB.ROLES_WHITELISTED|GLOB.ROLES_SPECIAL), unassigned_players) // Assigning command third. - assigned += assign_initial_roles(priority, roles_for_mode & ROLES_COMMAND, unassigned_players) + assigned += assign_initial_roles(priority, roles_for_mode & GLOB.ROLES_COMMAND, unassigned_players) // Assigning the rest - var/rest_roles_for_mode = roles_for_mode - (roles_for_mode & ROLES_XENO) - (roles_for_mode & ROLES_COMMAND) - (roles_for_mode & (ROLES_WHITELISTED|ROLES_SPECIAL)) + var/rest_roles_for_mode = roles_for_mode - (roles_for_mode & GLOB.ROLES_XENO) - (roles_for_mode & GLOB.ROLES_COMMAND) - (roles_for_mode & (GLOB.ROLES_WHITELISTED|GLOB.ROLES_SPECIAL)) if(count) assigned += assign_initial_roles(priority, rest_roles_for_mode, unassigned_players) else @@ -367,9 +367,11 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou * survivors and the number of roundstart Squad Rifleman slots. */ /datum/authority/branch/role/proc/calculate_role_weight(datum/job/J) - if(ROLES_MARINES.Find(J.title)) + if(!J) + return 0 + if(GLOB.ROLES_MARINES.Find(J.title)) return 1 - if(ROLES_XENO.Find(J.title)) + if(GLOB.ROLES_XENO.Find(J.title)) return 1 if(J.title == JOB_SURVIVOR) return 1 @@ -436,9 +438,9 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou //here is the main reason this proc exists - to remove freed squad jobs from squad, //so latejoining person ends in the squad which's job was freed and not random one var/datum/squad/sq = null - if(job_squad_roles.Find(J.title)) + if(GLOB.job_squad_roles.Find(J.title)) var/list/squad_list = list() - for(sq in RoleAuthority.squads) + for(sq in GLOB.RoleAuthority.squads) if(sq.usable) squad_list += sq sq = null @@ -501,85 +503,86 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou M.job = null -/datum/authority/branch/role/proc/equip_role(mob/living/M, datum/job/J, turf/late_join) - if(!istype(M) || !istype(J)) +/datum/authority/branch/role/proc/equip_role(mob/living/new_mob, datum/job/new_job, turf/late_join) + if(!istype(new_mob) || !istype(new_job)) return . = TRUE - if(!ishuman(M)) + if(!ishuman(new_mob)) return - var/mob/living/carbon/human/H = M + var/mob/living/carbon/human/new_human = new_mob - if(J.job_options && H?.client?.prefs?.pref_special_job_options[J.title]) - J.handle_job_options(H.client.prefs.pref_special_job_options[J.title]) + if(new_job.job_options && new_human?.client?.prefs?.pref_special_job_options[new_job.title]) + new_job.handle_job_options(new_human.client.prefs.pref_special_job_options[new_job.title]) - var/job_whitelist = J.title - var/whitelist_status = J.get_whitelist_status(roles_whitelist, H.client) + var/job_whitelist = new_job.title + var/whitelist_status = new_job.get_whitelist_status(roles_whitelist, new_human.client) if(whitelist_status) - job_whitelist = "[J.title][whitelist_status]" + job_whitelist = "[new_job.title][whitelist_status]" - H.job = J.title //TODO Why is this a mob variable at all? + new_human.job = new_job.title //TODO Why is this a mob variable at all? - if(J.gear_preset_whitelist[job_whitelist]) - arm_equipment(H, J.gear_preset_whitelist[job_whitelist], FALSE, TRUE) - var/generated_account = J.generate_money_account(H) - J.announce_entry_message(H, generated_account, whitelist_status) //Tell them their spawn info. - J.generate_entry_conditions(H, whitelist_status) //Do any other thing that relates to their spawn. + if(new_job.gear_preset_whitelist[job_whitelist]) + arm_equipment(new_human, new_job.gear_preset_whitelist[job_whitelist], FALSE, TRUE) + var/generated_account = new_job.generate_money_account(new_human) + new_job.announce_entry_message(new_human, generated_account, whitelist_status) //Tell them their spawn info. + new_job.generate_entry_conditions(new_human, whitelist_status) //Do any other thing that relates to their spawn. else - arm_equipment(H, J.gear_preset, FALSE, TRUE) //After we move them, we want to equip anything else they should have. - var/generated_account = J.generate_money_account(H) - J.announce_entry_message(H, generated_account) //Tell them their spawn info. - J.generate_entry_conditions(H) //Do any other thing that relates to their spawn. + arm_equipment(new_human, new_job.gear_preset, FALSE, TRUE) //After we move them, we want to equip anything else they should have. + var/generated_account = new_job.generate_money_account(new_human) + new_job.announce_entry_message(new_human, generated_account) //Tell them their spawn info. + new_job.generate_entry_conditions(new_human) //Do any other thing that relates to their spawn. - if(J.flags_startup_parameters & ROLE_ADD_TO_SQUAD) //Are we a muhreen? Randomize our squad. This should go AFTER IDs. //TODO Robust this later. - randomize_squad(H) + if(new_job.flags_startup_parameters & ROLE_ADD_TO_SQUAD) //Are we a muhreen? Randomize our squad. This should go AFTER IDs. //TODO Robust this later. + randomize_squad(new_human) - if(Check_WO() && job_squad_roles.Find(GET_DEFAULT_ROLE(H.job))) //activates self setting proc for marine headsets for WO + if(Check_WO() && GLOB.job_squad_roles.Find(GET_DEFAULT_ROLE(new_human.job))) //activates self setting proc for marine headsets for WO var/datum/game_mode/whiskey_outpost/WO = SSticker.mode - WO.self_set_headset(H) + WO.self_set_headset(new_human) var/assigned_squad - if(ishuman(H)) - var/mob/living/carbon/human/human = H + if(ishuman(new_human)) + var/mob/living/carbon/human/human = new_human if(human.assigned_squad) assigned_squad = human.assigned_squad.name if(isturf(late_join)) - H.forceMove(late_join) + new_human.forceMove(late_join) else if(late_join) var/turf/late_join_turf if(GLOB.latejoin_by_squad[assigned_squad]) late_join_turf = get_turf(pick(GLOB.latejoin_by_squad[assigned_squad])) - else if(GLOB.latejoin_by_job[J.title]) - late_join_turf = get_turf(pick(GLOB.latejoin_by_job[J.title])) + else if(GLOB.latejoin_by_job[new_job.title]) + late_join_turf = get_turf(pick(GLOB.latejoin_by_job[new_job.title])) else late_join_turf = get_turf(pick(GLOB.latejoin)) - H.forceMove(late_join_turf) + new_human.forceMove(late_join_turf) else var/turf/join_turf - if(assigned_squad && GLOB.spawns_by_squad_and_job[assigned_squad] && GLOB.spawns_by_squad_and_job[assigned_squad][J.type]) - join_turf = get_turf(pick(GLOB.spawns_by_squad_and_job[assigned_squad][J.type])) - else if(GLOB.spawns_by_job[J.type]) - join_turf = get_turf(pick(GLOB.spawns_by_job[J.type])) + if(assigned_squad && GLOB.spawns_by_squad_and_job[assigned_squad] && GLOB.spawns_by_squad_and_job[assigned_squad][new_job.type]) + join_turf = get_turf(pick(GLOB.spawns_by_squad_and_job[assigned_squad][new_job.type])) + else if(GLOB.spawns_by_job[new_job.type]) + join_turf = get_turf(pick(GLOB.spawns_by_job[new_job.type])) else if(assigned_squad && GLOB.latejoin_by_squad[assigned_squad]) join_turf = get_turf(pick(GLOB.latejoin_by_squad[assigned_squad])) else join_turf = get_turf(pick(GLOB.latejoin)) - H.forceMove(join_turf) + new_human.forceMove(join_turf) for(var/cardinal in GLOB.cardinals) - var/obj/structure/machinery/cryopod/pod = locate() in get_step(H, cardinal) + var/obj/structure/machinery/cryopod/pod = locate() in get_step(new_human, cardinal) if(pod) - pod.go_in_cryopod(H, silent = TRUE) + pod.go_in_cryopod(new_human, silent = TRUE) break - H.sec_hud_set_ID() - H.hud_set_squad() + new_human.sec_hud_set_ID() + new_human.hud_set_squad() - SSround_recording.recorder.track_player(H) + SEND_SIGNAL(new_human, COMSIG_POST_SPAWN_UPDATE) + SSround_recording.recorder.track_player(new_human) //Find which squad has the least population. If all 4 squads are equal it should just use a random one /datum/authority/branch/role/proc/get_lowest_squad(mob/living/carbon/human/H) @@ -816,7 +819,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou var/found_desired = FALSE var/found_limit = FALSE - for(var/status in whitelist_hierarchy) + for(var/status in GLOB.whitelist_hierarchy) if(status == desired_status) found_desired = TRUE break diff --git a/code/game/jobs/slot_scaling.dm b/code/game/jobs/slot_scaling.dm index 7230f57eb745..2d444d06e5ab 100644 --- a/code/game/jobs/slot_scaling.dm +++ b/code/game/jobs/slot_scaling.dm @@ -50,3 +50,6 @@ /proc/working_joe_slot_formula(playercount) return job_slot_formula(playercount,30,1,3,6) + +/proc/mess_sergeant_slot_formula(playercount) + return job_slot_formula(playercount, 70, 1, 1, 2) diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 05f530348029..3a4b94145ca1 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -11,10 +11,10 @@ GLOBAL_LIST_FILE_LOAD(whitelist, WHITELISTFILE) if(client.admin_holder && (client.admin_holder.rights & R_ADMIN)) return TRUE if(job == XENO_CASTE_QUEEN) - var/datum/caste_datum/C = RoleAuthority.castes_by_name[XENO_CASTE_QUEEN] + var/datum/caste_datum/C = GLOB.RoleAuthority.castes_by_name[XENO_CASTE_QUEEN] return C.can_play_caste(client) if(job == JOB_SURVIVOR) - var/datum/job/J = RoleAuthority.roles_by_path[/datum/job/civilian/survivor] + var/datum/job/J = GLOB.RoleAuthority.roles_by_path[/datum/job/civilian/survivor] return J.can_play_role(client) return TRUE @@ -42,11 +42,11 @@ GLOBAL_LIST_FILE_LOAD(alien_whitelist, "config/alienwhitelist.txt") /// returns a list of strings containing the whitelists held by a specific ckey /proc/get_whitelisted_roles(ckey) - if(RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR) + if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR) LAZYADD(., "predator") - if(RoleAuthority.roles_whitelist[ckey] & WHITELIST_COMMANDER) + if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_COMMANDER) LAZYADD(., "commander") - if(RoleAuthority.roles_whitelist[ckey] & WHITELIST_SYNTHETIC) + if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_SYNTHETIC) LAZYADD(., "synthetic") #undef WHITELISTFILE diff --git a/code/game/machinery/ARES/ARES.dm b/code/game/machinery/ARES/ARES.dm index ed4391c89c24..1ecbb4a5d7d6 100644 --- a/code/game/machinery/ARES/ARES.dm +++ b/code/game/machinery/ARES/ARES.dm @@ -8,7 +8,6 @@ unslashable = TRUE unacidable = TRUE - var/link_id = MAIN_SHIP_DEFAULT_NAME var/datum/ares_link/link /obj/structure/machinery/ares/ex_act(severity) @@ -40,14 +39,12 @@ log_debug("Error: link_systems called without a link datum") if(link && !override) return FALSE - if(new_link.link_id == link_id) + if(new_link) link = new_link - log_debug("[name] linked to Ares Link [link_id]") new_link.linked_systems += src return TRUE /obj/structure/machinery/ares/proc/delink() - log_debug("[name] delinked from Ares Link [link.link_id]") link.linked_systems -= src link = null @@ -63,11 +60,11 @@ /obj/structure/machinery/ares/processor/apollo/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) ..() - new_link.p_apollo = src + new_link.processor_apollo = src /obj/structure/machinery/ares/processor/apollo/delink() - if(link && link.p_apollo == src) - link.p_apollo = null + if(link && link.processor_apollo == src) + link.processor_apollo = null ..() /obj/structure/machinery/ares/processor/interface @@ -77,11 +74,11 @@ /obj/structure/machinery/ares/processor/interface/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) ..() - new_link.p_interface = src + new_link.processor_interface = src /obj/structure/machinery/ares/processor/interface/delink() - if(link && link.p_interface == src) - link.p_interface = null + if(link && link.processor_interface == src) + link.processor_interface = null ..() /obj/structure/machinery/ares/processor/bioscan @@ -91,11 +88,11 @@ /obj/structure/machinery/ares/processor/bioscan/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) ..() - new_link.p_bioscan = src + new_link.processor_bioscan = src /obj/structure/machinery/ares/processor/bioscan/delink() - if(link && link.p_bioscan == src) - link.p_bioscan = null + if(link && link.processor_bioscan == src) + link.processor_bioscan = null ..() /// Central Core @@ -104,130 +101,17 @@ desc = "This is ARES' central processor. Made of a casing designed to withstand nuclear blasts, the CPU also contains ARES' blackbox recorder." icon_state = "CPU" +/obj/structure/machinery/ares/cpu/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) + ..() + new_link.central_processor = src + +/obj/structure/machinery/ares/cpu/delink() + if(link && link.central_processor == src) + link.central_processor = null + ..() + /// Memory Substrate, /obj/structure/machinery/ares/substrate name = "ARES Substrate" desc = "The memory substrate of ARES, containing complex protocols and information. Limited capabilities can operate on substrate alone, without the main ARES Unit operational." icon_state = "substrate" - -// #################### ARES Interface Console ##################### -/obj/structure/machinery/computer/ares_console - name = "ARES Interface" - desc = "A console built to interface with ARES, allowing for 1:1 communication." - icon = 'icons/obj/structures/machinery/ares.dmi' - icon_state = "console" - exproof = TRUE - - var/current_menu = "login" - var/last_menu = "" - - var/authentication = ARES_ACCESS_BASIC - - /// The last person to login. - var/last_login - /// The person pretending to be last_login - var/sudo_holder - /// A record of who logged in and when. - var/list/access_list = list() - - /// The ID used to link all devices. - var/link_id = MAIN_SHIP_DEFAULT_NAME - var/datum/ares_link/link - - /// The current deleted chat log of 1:1 conversations being read. - var/list/deleted_1to1 = list() - - /// Holds all (/datum/ares_record/announcement)s - var/list/records_announcement = list() - /// Holds all (/datum/ares_record/bioscan)s - var/list/records_bioscan = list() - /// Holds all (/datum/ares_record/bombardment)s - var/list/records_bombardment = list() - /// Holds all (/datum/ares_record/deletion)s - var/list/records_deletion = list() - /// Holds all (/datum/ares_record/talk_log)s - var/list/records_talking = list() - /// Holds all (/datum/ares_record/requisition_log)s - var/list/records_asrs = list() - /// Holds all (/datum/ares_record/security)s (including AA) - var/list/records_security = list() - /// Holds all (/datum/ares_record/flight)s - var/list/records_flight = list() - /// Is nuke request usable or not? - var/nuke_available = TRUE - - - COOLDOWN_DECLARE(ares_distress_cooldown) - COOLDOWN_DECLARE(ares_nuclear_cooldown) - COOLDOWN_DECLARE(ares_quarters_cooldown) - -/obj/structure/machinery/computer/ares_console/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) - if(link && !override) - return FALSE - if(new_link.link_id == link_id) - new_link.interface = src - link = new_link - log_debug("[name] linked to Ares Link [link_id]") - new_link.linked_systems += src - return TRUE - -/obj/structure/machinery/computer/ares_console/Initialize(mapload, ...) - link_systems(override = FALSE) - . = ..() - -/obj/structure/machinery/computer/ares_console/proc/delink() - if(link && link.interface == src) - link.interface = null - link.linked_systems -= src - link = null - -/obj/structure/machinery/computer/ares_console/Destroy() - delink() - return ..() - -// #################### Working Joe Ticket Console ##################### -/obj/structure/machinery/computer/working_joe - name = "APOLLO Maintenance Controller" - desc = "A console built to facilitate Working Joes and their operation, allowing for simple allocation of resources." - icon = 'icons/obj/structures/machinery/ares.dmi' - icon_state = "console" - exproof = TRUE - - /// The ID used to link all devices. - var/link_id = MAIN_SHIP_DEFAULT_NAME - var/datum/ares_link/link - var/obj/structure/machinery/ares/processor/interface/processor - - var/current_menu = "login" - var/last_menu = "" - - var/authentication = ARES_ACCESS_BASIC - /// The last person to login. - var/last_login - /// A record of who logged in and when. - var/list/login_list = list() - - -/obj/structure/machinery/computer/working_joe/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) - if(link && !override) - return FALSE - if(new_link.link_id == link_id) - new_link.ticket_computers += src - link = new_link - log_debug("[name] linked to Ares Link [link_id]") - new_link.linked_systems += src - return TRUE - -/obj/structure/machinery/computer/working_joe/Initialize(mapload, ...) - link_systems(override = FALSE) - . = ..() - -/obj/structure/machinery/computer/working_joe/proc/delink() - if(link) - link.ticket_computers -= src - link.linked_systems -= src - link = null - -/obj/structure/machinery/computer/working_joe/Destroy() - delink() - return ..() diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm new file mode 100644 index 000000000000..aa1cd92547ec --- /dev/null +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -0,0 +1,471 @@ +// #################### ARES Interface Console ##################### +/obj/structure/machinery/computer/ares_console + name = "ARES Interface" + desc = "A console built to interface with ARES, allowing for 1:1 communication." + icon = 'icons/obj/structures/machinery/ares.dmi' + icon_state = "console" + exproof = TRUE + + var/current_menu = "login" + var/last_menu = "" + + var/authentication = ARES_ACCESS_BASIC + + /// The last person to login. + var/last_login + /// The person pretending to be last_login + var/sudo_holder + + /// The current deleted chat log of 1:1 conversations being read. + var/list/deleted_1to1 = list() + + /// The ID used to link all devices. + var/datum/ares_link/link + /// The datacore storing all the information. + var/datum/ares_datacore/datacore + +/obj/structure/machinery/computer/ares_console/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) + if(link && !override) + return FALSE + if(new_link) + new_link.interface = src + link = new_link + new_link.linked_systems += src + if(!datacore) + datacore = GLOB.ares_datacore + return TRUE + +/obj/structure/machinery/computer/ares_console/Initialize(mapload, ...) + link_systems(override = FALSE) + . = ..() + +/obj/structure/machinery/computer/ares_console/proc/delink() + if(link) + if(link.interface == src) + link.interface = null + link.linked_systems -= src + link = null + datacore = null + +/obj/structure/machinery/computer/ares_console/Destroy() + delink() + return ..() + +// ------ ARES Interface UI ------ // + +/obj/structure/machinery/computer/ares_console/attack_hand(mob/user as mob) + if(..() || !allowed(usr) || inoperable()) + return FALSE + + tgui_interact(user) + return TRUE + +/obj/structure/machinery/computer/ares_console/tgui_interact(mob/user, datum/tgui/ui, datum/ui_state/state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AresInterface", name) + ui.open() + +/obj/structure/machinery/computer/ares_console/ui_data(mob/user) + var/list/data = list() + + data["current_menu"] = current_menu + data["last_page"] = last_menu + + data["logged_in"] = last_login + data["sudo"] = sudo_holder ? TRUE : FALSE + + data["access_text"] = "[sudo_holder ? "(SUDO)," : ""] access level [authentication], [ares_auth_to_text(authentication)]." + data["access_level"] = authentication + + data["alert_level"] = GLOB.security_level + data["evac_status"] = SShijack.evac_status + data["worldtime"] = world.time + + data["access_log"] = datacore.interface_access_list + data["apollo_log"] = datacore.apollo_log + + data["deleted_conversation"] = deleted_1to1 + + data["distresstime"] = datacore.ares_distress_cooldown + data["distresstimelock"] = DISTRESS_TIME_LOCK + data["quarterstime"] = datacore.ares_quarters_cooldown + data["mission_failed"] = SSticker.mode.is_in_endgame + data["nuketimelock"] = NUCLEAR_TIME_LOCK + data["nuke_available"] = datacore.nuke_available + + var/list/logged_announcements = list() + for(var/datum/ares_record/announcement/broadcast as anything in datacore.records_announcement) + var/list/current_broadcast = list() + current_broadcast["time"] = broadcast.time + current_broadcast["title"] = broadcast.title + current_broadcast["details"] = broadcast.details + current_broadcast["ref"] = "\ref[broadcast]" + logged_announcements += list(current_broadcast) + data["records_announcement"] = logged_announcements + + var/list/logged_alerts = list() + for(var/datum/ares_record/security/security_alert as anything in datacore.records_security) + var/list/current_alert = list() + current_alert["time"] = security_alert.time + current_alert["title"] = security_alert.title + current_alert["details"] = security_alert.details + current_alert["ref"] = "\ref[security_alert]" + logged_alerts += list(current_alert) + data["records_security"] = logged_alerts + + var/list/logged_flights = list() + for(var/datum/ares_record/flight/flight_log as anything in datacore.records_flight) + var/list/current_flight = list() + current_flight["time"] = flight_log.time + current_flight["title"] = flight_log.title + current_flight["details"] = flight_log.details + current_flight["user"] = flight_log.user + current_flight["ref"] = "\ref[flight_log]" + logged_flights += list(current_flight) + data["records_flight"] = logged_flights + + var/list/logged_bioscans = list() + for(var/datum/ares_record/bioscan/scan as anything in datacore.records_bioscan) + var/list/current_scan = list() + current_scan["time"] = scan.time + current_scan["title"] = scan.title + current_scan["details"] = scan.details + current_scan["ref"] = "\ref[scan]" + logged_bioscans += list(current_scan) + data["records_bioscan"] = logged_bioscans + + var/list/logged_bombs = list() + for(var/datum/ares_record/bombardment/bomb as anything in datacore.records_bombardment) + var/list/current_bomb = list() + current_bomb["time"] = bomb.time + current_bomb["title"] = bomb.title + current_bomb["details"] = bomb.details + current_bomb["user"] = bomb.user + current_bomb["ref"] = "\ref[bomb]" + logged_bombs += list(current_bomb) + data["records_bombardment"] = logged_bombs + + var/list/logged_deletes = list() + for(var/datum/ares_record/deletion/deleted as anything in datacore.records_deletion) + if(!istype(deleted)) + continue + var/list/current_delete = list() + current_delete["time"] = deleted.time + current_delete["title"] = deleted.title + current_delete["details"] = deleted.details + current_delete["user"] = deleted.user + current_delete["ref"] = "\ref[deleted]" + logged_deletes += list(current_delete) + data["records_deletion"] = logged_deletes + + var/list/logged_discussions = list() + for(var/datum/ares_record/deleted_talk/deleted_convo as anything in datacore.records_deletion) + if(!istype(deleted_convo)) + continue + var/list/deleted_disc = list() + deleted_disc["time"] = deleted_convo.time + deleted_disc["title"] = deleted_convo.title + deleted_disc["ref"] = "\ref[deleted_convo]" + logged_discussions += list(deleted_disc) + data["deleted_discussions"] = logged_discussions + + var/list/logged_orders = list() + for(var/datum/ares_record/requisition_log/req_order as anything in datacore.records_asrs) + if(!istype(req_order)) + continue + var/list/current_order = list() + current_order["time"] = req_order.time + current_order["details"] = req_order.details + current_order["title"] = req_order.title + current_order["user"] = req_order.user + current_order["ref"] = "\ref[req_order]" + logged_orders += list(current_order) + data["records_requisition"] = logged_orders + + var/list/logged_convos = list() + var/list/active_convo = list() + var/active_ref + for(var/datum/ares_record/talk_log/log as anything in datacore.records_talking) + if(!istype(log)) + continue + if(log.user == last_login) + active_convo = log.conversation + active_ref = "\ref[log]" + + var/list/current_convo = list() + current_convo["user"] = log.user + current_convo["ref"] = "\ref[log]" + current_convo["conversation"] = log.conversation + logged_convos += list(current_convo) + + data["active_convo"] = active_convo + data["active_ref"] = active_ref + data["conversations"] = logged_convos + + return data + +/obj/structure/machinery/computer/ares_console/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(!allowed(user)) + return UI_UPDATE + if(inoperable()) + return UI_DISABLED + +/obj/structure/machinery/computer/ares_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + playsound(src, "keyboard_alt", 15, 1) + + switch (action) + if("go_back") + if(!last_menu) + return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + var/temp_holder = current_menu + current_menu = last_menu + last_menu = temp_holder + + if("login") + var/mob/living/carbon/human/operator = usr + var/obj/item/card/id/idcard = operator.get_active_hand() + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else if(operator.wear_id) + idcard = operator.wear_id + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else + to_chat(usr, SPAN_WARNING("You require an ID card to access this terminal!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(authentication) + datacore.interface_access_list += "[last_login] at [worldtime2text()], Access Level [authentication] - [ares_auth_to_text(authentication)]." + current_menu = "main" + + if("sudo") + var/new_user = tgui_input_text(usr, "Enter Sudo Username", "Sudo User", encode = FALSE) + if(new_user) + if(new_user == sudo_holder) + last_login = sudo_holder + sudo_holder = null + return FALSE + if(new_user == last_login) + to_chat(usr, SPAN_WARNING("Already remote logged in as this user.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + sudo_holder = last_login + last_login = new_user + datacore.interface_access_list += "[last_login] at [worldtime2text()], Sudo Access." + return TRUE + if("sudo_logout") + datacore.interface_access_list += "[last_login] at [worldtime2text()], Sudo Logout." + last_login = sudo_holder + sudo_holder = null + return + // -- Page Changers -- // + if("logout") + last_menu = current_menu + current_menu = "login" + if(sudo_holder) + datacore.interface_access_list += "[last_login] at [worldtime2text()], Sudo Logout." + last_login = sudo_holder + sudo_holder = null + datacore.interface_access_list += "[last_login] logged out at [worldtime2text()]." + + if("home") + last_menu = current_menu + current_menu = "main" + if("page_1to1") + last_menu = current_menu + current_menu = "talking" + if("page_announcements") + last_menu = current_menu + current_menu = "announcements" + if("page_bioscans") + last_menu = current_menu + current_menu = "bioscans" + if("page_bombardments") + last_menu = current_menu + current_menu = "bombardments" + if("page_apollo") + last_menu = current_menu + current_menu = "apollo" + if("page_access") + last_menu = current_menu + current_menu = "access_log" + if("page_security") + last_menu = current_menu + current_menu = "security" + if("page_flight") + last_menu = current_menu + current_menu = "flight_log" + if("page_requisitions") + last_menu = current_menu + current_menu = "requisitions" + if("page_emergency") + last_menu = current_menu + current_menu = "emergency" + if("page_deleted") + last_menu = current_menu + current_menu = "delete_log" + if("page_deleted_1to1") + last_menu = current_menu + current_menu = "deleted_talks" + + // -- Delete Button -- // + if("delete_record") + var/datum/ares_record/record = locate(params["record"]) + if(record.record_name == ARES_RECORD_DELETED) + return FALSE + var/datum/ares_record/deletion/new_delete = new + var/new_details = "Error" + var/new_title = "Error" + switch(record.record_name) + if(ARES_RECORD_ANNOUNCE) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_announcement -= record + if(ARES_RECORD_SECURITY, ARES_RECORD_ANTIAIR) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_security -= record + if(ARES_RECORD_BIOSCAN) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_bioscan -= record + if(ARES_RECORD_BOMB) + new_title = "[record.title] at [record.time]" + new_details = "[record.details] Launched by [record.user]." + datacore.records_bombardment -= record + + new_delete.details = new_details + new_delete.user = last_login + new_delete.title = new_title + + datacore.records_deletion += new_delete + + // -- 1:1 Conversation -- // + if("new_conversation") + var/datum/ares_record/talk_log/convo = new(last_login) + convo.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], 'New 1:1 link initiated. Greetings, [last_login].'" + datacore.records_talking += convo + + if("clear_conversation") + var/datum/ares_record/talk_log/conversation = locate(params["active_convo"]) + if(!istype(conversation)) + return FALSE + var/datum/ares_record/deleted_talk/deleted = new + deleted.title = conversation.title + deleted.conversation = conversation.conversation + deleted.user = conversation.user + datacore.records_deletion += deleted + datacore.records_talking -= conversation + + if("message_ares") + var/message = tgui_input_text(usr, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) + if(message) + message_ares(message, usr, params["active_convo"]) + + if("read_record") + var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) + deleted_1to1 = conversation.conversation + last_menu = current_menu + current_menu = "read_deleted" + + // -- Emergency Buttons -- // + if("general_quarters") + if(!COOLDOWN_FINISHED(datacore, ares_quarters_cooldown)) + to_chat(usr, SPAN_WARNING("It has not been long enough since the last General Quarters call!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(GLOB.security_level < SEC_LEVEL_RED) + set_security_level(SEC_LEVEL_RED, no_sound = TRUE, announce = FALSE) + shipwide_ai_announcement("ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg') + log_game("[key_name(usr)] has called for general quarters via ARES.") + message_admins("[key_name_admin(usr)] has called for general quarters via ARES.") + log_ares_security("General Quarters", "[last_login] has called for general quarters via ARES.") + COOLDOWN_START(datacore, ares_quarters_cooldown, 10 MINUTES) + . = TRUE + + if("evacuation_start") + if(GLOB.security_level < SEC_LEVEL_RED) + to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + if(SShijack.evac_admin_denied) + to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + if(!SShijack.initiate_evacuation()) + to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + log_game("[key_name(usr)] has called for an emergency evacuation via ARES.") + message_admins("[key_name_admin(usr)] has called for an emergency evacuation via ARES.") + log_ares_security("Initiate Evacuation", "[last_login] has called for an emergency evacuation via ARES.") + . = TRUE + + if("distress") + if(!SSticker.mode) + return FALSE //Not a game mode? + if(world.time < DISTRESS_TIME_LOCK) + to_chat(usr, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(datacore, ares_distress_cooldown)) + to_chat(usr, SPAN_WARNING("The distress launcher is cooling down!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(GLOB.security_level == SEC_LEVEL_DELTA) + to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(GLOB.security_level < SEC_LEVEL_RED) + to_chat(usr, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + for(var/client/admin in GLOB.admins) + if((R_ADMIN|R_MOD) & admin.admin_holder.rights) + playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) + SSticker.mode.request_ert(usr, TRUE) + to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command.")) + COOLDOWN_START(datacore, ares_distress_cooldown, COOLDOWN_COMM_REQUEST) + return TRUE + + if("nuclearbomb") + if(!SSticker.mode) + return FALSE //Not a game mode? + if(world.time < NUCLEAR_TIME_LOCK) + to_chat(usr, SPAN_WARNING("It is too soon to request Nuclear Ordnance!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(!COOLDOWN_FINISHED(datacore, ares_nuclear_cooldown)) + to_chat(usr, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(GLOB.security_level == SEC_LEVEL_DELTA || SSticker.mode.is_in_endgame) + to_chat(usr, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + var/reason = tgui_input_text(usr, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance") + if(!reason) + return FALSE + for(var/client/admin in GLOB.admins) + if((R_ADMIN|R_MOD) & admin.admin_holder.rights) + playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) + message_admins("[key_name(usr)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(usr)] (APPROVE) (DENY) [ADMIN_JMP_USER(usr)] [CC_REPLY(usr)]") + to_chat(usr, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]")) + log_ares_security("Nuclear Ordnance Request", "[last_login] has sent a request for nuclear ordnance for the following reason: [reason]") + if(ares_can_interface()) + ai_silent_announcement("[last_login] has sent a request for nuclear ordnance to USCM High Command.", ".V") + ai_silent_announcement("Reason given: [reason].", ".V") + COOLDOWN_START(datacore, ares_nuclear_cooldown, COOLDOWN_COMM_DESTRUCT) + return TRUE diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm new file mode 100644 index 000000000000..56283417ae05 --- /dev/null +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -0,0 +1,414 @@ +// #################### Working Joe Ticket Console ##################### +/obj/structure/machinery/computer/working_joe + name = "APOLLO Maintenance Controller" + desc = "A console built to facilitate Working Joes and their operation, allowing for simple allocation of resources." + icon = 'icons/obj/structures/machinery/ares.dmi' + icon_state = "console" + exproof = TRUE + + /// The ID used to link all devices. + var/datum/ares_link/link + /// The datacore storing all the information. + var/datum/ares_datacore/datacore + + var/current_menu = "login" + var/last_menu = "" + + var/authentication = APOLLO_ACCESS_LOGOUT + /// The last person to login. + var/last_login + + +/obj/structure/machinery/computer/working_joe/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) + if(link && !override) + return FALSE + if(new_link) + new_link.ticket_computers += src + link = new_link + new_link.linked_systems += src + if(!datacore) + datacore = GLOB.ares_datacore + return TRUE + +/obj/structure/machinery/computer/working_joe/Initialize(mapload, ...) + link_systems(override = FALSE) + . = ..() + +/obj/structure/machinery/computer/working_joe/proc/delink() + if(link) + link.ticket_computers -= src + link.linked_systems -= src + link = null + datacore = null + +/obj/structure/machinery/computer/working_joe/Destroy() + delink() + return ..() + +// ------ Maintenance Controller UI ------ // +/obj/structure/machinery/computer/working_joe/attack_hand(mob/user as mob) + if(..() || !allowed(usr) || inoperable()) + return FALSE + + tgui_interact(user) + return TRUE + +/obj/structure/machinery/computer/working_joe/tgui_interact(mob/user, datum/tgui/ui, datum/ui_state/state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "WorkingJoe", name) + ui.open() + +/obj/structure/machinery/computer/working_joe/ui_data(mob/user) + var/list/data = list() + + data["current_menu"] = current_menu + data["last_page"] = last_menu + + data["logged_in"] = last_login + + data["access_text"] = "access level [authentication], [ares_auth_to_text(authentication)]." + data["access_level"] = authentication + + data["alert_level"] = GLOB.security_level + data["worldtime"] = world.time + + data["access_log"] = list() + data["access_log"] += datacore.apollo_login_list + + data["apollo_log"] = list() + data["apollo_log"] += datacore.apollo_log + + var/list/logged_maintenance = list() + for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) + if(!istype(maint_ticket)) + continue + var/lock_status = TICKET_OPEN + switch(maint_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_COMPLETED) + lock_status = TICKET_CLOSED + + var/list/current_maint = list() + current_maint["id"] = maint_ticket.ticket_id + current_maint["time"] = maint_ticket.ticket_time + current_maint["priority_status"] = maint_ticket.ticket_priority + current_maint["category"] = maint_ticket.ticket_name + current_maint["details"] = maint_ticket.ticket_details + current_maint["status"] = maint_ticket.ticket_status + current_maint["submitter"] = maint_ticket.ticket_submitter + current_maint["assignee"] = maint_ticket.ticket_assignee + current_maint["lock_status"] = lock_status + current_maint["ref"] = "\ref[maint_ticket]" + logged_maintenance += list(current_maint) + data["maintenance_tickets"] = logged_maintenance + + var/list/logged_access = list() + var/list/requesting_access = list() + for(var/datum/ares_ticket/access/access_ticket as anything in link.tickets_access) + var/lock_status = TICKET_OPEN + switch(access_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_REVOKED) + lock_status = TICKET_CLOSED + + var/list/current_ticket = list() + current_ticket["id"] = access_ticket.ticket_id + current_ticket["time"] = access_ticket.ticket_time + current_ticket["priority_status"] = access_ticket.ticket_priority + current_ticket["title"] = access_ticket.ticket_name + current_ticket["details"] = access_ticket.ticket_details + current_ticket["status"] = access_ticket.ticket_status + current_ticket["submitter"] = access_ticket.ticket_submitter + current_ticket["assignee"] = access_ticket.ticket_assignee + current_ticket["lock_status"] = lock_status + current_ticket["ref"] = "\ref[access_ticket]" + logged_access += list(current_ticket) + + if(lock_status == TICKET_OPEN) + requesting_access += access_ticket.ticket_name + data["access_tickets"] = logged_access + + return data + +/obj/structure/machinery/computer/working_joe/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(!allowed(user)) + return UI_UPDATE + if(inoperable()) + return UI_DISABLED + +/obj/structure/machinery/computer/working_joe/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/playsound = TRUE + var/mob/living/carbon/human/operator = usr + + switch (action) + if("go_back") + if(!last_menu) + return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + var/temp_holder = current_menu + current_menu = last_menu + last_menu = temp_holder + + if("login") + + var/obj/item/card/id/idcard = operator.get_active_hand() + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else if(operator.wear_id) + idcard = operator.wear_id + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else + to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(authentication) + datacore.apollo_login_list += "[last_login] at [worldtime2text()], Access Level [authentication] - [ares_auth_to_text(authentication)]." + current_menu = "main" + + if("logout") + last_menu = current_menu + current_menu = "login" + datacore.apollo_login_list += "[last_login] logged out at [worldtime2text()]." + + if("home") + last_menu = current_menu + current_menu = "main" + if("page_logins") + last_menu = current_menu + current_menu = "login_records" + if("page_apollo") + last_menu = current_menu + current_menu = "apollo" + if("page_request") + last_menu = current_menu + current_menu = "access_requests" + if("page_report") + last_menu = current_menu + current_menu = "maint_reports" + if("page_tickets") + last_menu = current_menu + current_menu = "access_tickets" + if("page_maintenance") + last_menu = current_menu + current_menu = "maint_claim" + + if("new_report") + var/priority_report = FALSE + var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + switch(maint_type) + if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") + priority_report = TRUE + + if(!maint_type) + return FALSE + var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) + var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + if(is_priority == "Yes") + priority_report = TRUE + + var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + if(confirm == "Yes") + if(link) + var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) + link.tickets_maintenance += maint_ticket + if(priority_report) + ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + return TRUE + return FALSE + + if("claim_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + var/claim = TRUE + var/assigned = ticket.ticket_assignee + if(assigned) + if(assigned == last_login) + var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + if(prompt != "Yes") + return FALSE + /// set ticket back to pending + ticket.ticket_assignee = null + ticket.ticket_status = TICKET_PENDING + return claim + var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + if(choice != "Yes") + claim = FALSE + if(claim) + ticket.ticket_assignee = last_login + ticket.ticket_status = TICKET_ASSIGNED + return claim + + if("cancel_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_submitter != last_login) + to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + return FALSE + to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + ticket.ticket_status = TICKET_CANCELLED + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") + return TRUE + + if("mark_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) + to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + return FALSE + var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + switch(choice) + if(TICKET_COMPLETED) + ticket.ticket_status = TICKET_COMPLETED + if(TICKET_REJECTED) + ticket.ticket_status = TICKET_REJECTED + else + return FALSE + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") + to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + return TRUE + + if("new_access") + var/obj/item/card/id/idcard = operator.get_active_hand() + var/has_id = FALSE + if(istype(idcard)) + has_id = TRUE + else if(operator.wear_id) + idcard = operator.wear_id + if(istype(idcard)) + has_id = TRUE + if(!has_id) + to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(idcard.registered_name != last_login) + to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + if(confirm != "Yes" || !link) + return FALSE + var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) + link.waiting_ids += idcard + link.tickets_access += access_ticket + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") + return TRUE + + if("return_access") + playsound = FALSE + var/datum/ares_ticket/access/access_ticket + for(var/datum/ares_ticket/access/possible_ticket in link.tickets_access) + if(possible_ticket.ticket_status != TICKET_GRANTED) + continue + if(possible_ticket.ticket_name != last_login) + continue + access_ticket = possible_ticket + break + + for(var/obj/item/card/id/identification in link.active_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + + access_ticket.ticket_status = TICKET_RETURNED + identification.access -= ACCESS_MARINE_AI_TEMP + identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + + to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") + + authentication = get_ares_access(identification) + if(authentication) + datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." + return TRUE + + to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + if("auth_access") + playsound = FALSE + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!access_ticket) + return FALSE + for(var/obj/item/card/id/identification in link.waiting_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(last_login, operator) + access_ticket.ticket_status = TICKET_GRANTED + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") + return TRUE + for(var/obj/item/card/id/identification in link.active_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(last_login, operator) + access_ticket.ticket_status = TICKET_REVOKED + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") + return TRUE + return FALSE + + if("reject_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) + to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + return FALSE + access_ticket.ticket_status = TICKET_REJECTED + to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") + return TRUE + + if(playsound) + playsound(src, "keyboard_alt", 15, 1) + +/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user) + var/operator = key_name(user) + var/datum/ares_link/link = GLOB.ares_link + if(logged_in == MAIN_AI_SYSTEM) + if(!user) + operator = "[MAIN_AI_SYSTEM] (Sensor Trip)" + else + operator = "[user.ckey]/([MAIN_AI_SYSTEM])" + if(ACCESS_MARINE_AI_TEMP in access) + access -= ACCESS_MARINE_AI_TEMP + link.active_ids -= src + modification_log += "Temporary AI access revoked by [operator]" + to_chat(user, SPAN_NOTICE("Access revoked from [registered_name].")) + else + access += ACCESS_MARINE_AI_TEMP + modification_log += "Temporary AI access granted by [operator]" + to_chat(user, SPAN_NOTICE("Access granted to [registered_name].")) + link.waiting_ids -= src + link.active_ids += src + return TRUE diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index e03f218f0f34..ffcea5406856 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -1,4 +1,5 @@ GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new) +GLOBAL_DATUM_INIT(ares_datacore, /datum/ares_datacore, new) GLOBAL_LIST_INIT(maintenance_categories, list( "Broken Light", "Shattered Glass", @@ -15,26 +16,56 @@ GLOBAL_LIST_INIT(maintenance_categories, list( )) /datum/ares_link - var/link_id = MAIN_SHIP_DEFAULT_NAME /// All motion triggers for the link var/list/linked_alerts = list() /// All machinery for the link var/list/linked_systems = list() - var/obj/structure/machinery/ares/processor/interface/p_interface - var/obj/structure/machinery/ares/processor/apollo/p_apollo - var/obj/structure/machinery/ares/processor/bioscan/p_bioscan + var/obj/structure/machinery/ares/cpu/central_processor + var/obj/structure/machinery/ares/processor/interface/processor_interface + var/obj/structure/machinery/ares/processor/apollo/processor_apollo + var/obj/structure/machinery/ares/processor/bioscan/processor_bioscan var/obj/structure/machinery/computer/ares_console/interface var/list/obj/structure/machinery/computer/working_joe/ticket_computers = list() - /// The chat log of the apollo link. Timestamped. - var/list/apollo_log = list() - /// Working Joe stuff var/list/tickets_maintenance = list() var/list/tickets_access = list() var/list/waiting_ids = list() var/list/active_ids = list() +/datum/ares_datacore + /// A record of who logged in and when. + var/list/interface_access_list = list() + /// Access list for Apollo Maintenance Console + var/list/apollo_login_list = list() + + /// The chat log of the apollo link. Timestamped. + var/list/apollo_log = list() + + /// Holds all (/datum/ares_record/announcement)s + var/list/records_announcement = list() + /// Holds all (/datum/ares_record/bioscan)s + var/list/records_bioscan = list() + /// Holds all (/datum/ares_record/bombardment)s + var/list/records_bombardment = list() + /// Holds all (/datum/ares_record/deletion)s + var/list/records_deletion = list() + /// Holds all (/datum/ares_record/talk_log)s + var/list/records_talking = list() + /// Holds all (/datum/ares_record/requisition_log)s + var/list/records_asrs = list() + /// Holds all (/datum/ares_record/security)s (including AA) + var/list/records_security = list() + /// Holds all (/datum/ares_record/flight)s + var/list/records_flight = list() + /// Is nuke request usable or not? + var/nuke_available = TRUE + + + COOLDOWN_DECLARE(ares_distress_cooldown) + COOLDOWN_DECLARE(ares_nuclear_cooldown) + COOLDOWN_DECLARE(ares_quarters_cooldown) + /datum/ares_link/Destroy() for(var/obj/structure/machinery/ares/link in linked_systems) link.delink() @@ -46,41 +77,15 @@ GLOBAL_LIST_INIT(maintenance_categories, list( // ------ ARES Logging Procs ------ // -/proc/log_ares_apollo(speaker, message) - if(!speaker) - speaker = "Unknown" - var/datum/ares_link/link = GLOB.ares_link - if(!link.p_apollo || link.p_apollo.inoperable()) - return FALSE - if(!link.p_interface || link.p_interface.inoperable()) - return FALSE - link.apollo_log.Add("[worldtime2text()]: [speaker], '[message]'") - -/datum/ares_link/proc/log_ares_bioscan(title, input) - interface.records_bioscan.Add(new /datum/ares_record/bioscan(title, input)) - -/datum/ares_link/proc/log_ares_bombardment(user_name, ob_name, coordinates) - interface.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, "Bombardment fired at [coordinates].", user_name)) - -/datum/ares_link/proc/log_ares_announcement(title, message) - interface.records_announcement.Add(new /datum/ares_record/announcement(title, message)) - -/datum/ares_link/proc/log_ares_requisition(source, details, user_name) - interface.records_asrs.Add(new /datum/ares_record/requisition_log(source, details, user_name)) - -/datum/ares_link/proc/log_ares_security(title, details) - interface.records_security.Add(new /datum/ares_record/security(title, details)) - -/datum/ares_link/proc/log_ares_antiair(details) - interface.records_security.Add(new /datum/ares_record/security/antiair(details)) - -/datum/ares_link/proc/log_ares_flight(user_name, details) - interface.records_flight.Add(new /datum/ares_record/flight(details, user_name)) -// ------ End ARES Logging Procs ------ // +/proc/ares_is_active() + for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) + if(ai.stat == DEAD) + return FALSE //ARES dead, most other systems also die with it + return TRUE /proc/ares_apollo_talk(broadcast_message) var/datum/language/apollo/apollo = GLOB.all_languages[LANGUAGE_APOLLO] - for(var/mob/living/silicon/decoy/ship_ai/ai in ai_mob_list) + for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) if(ai.stat == DEAD) return FALSE apollo.broadcast(ai, broadcast_message) @@ -89,20 +94,79 @@ GLOBAL_LIST_INIT(maintenance_categories, list( playsound_client(listener.client, sound('sound/misc/interference.ogg'), listener, vol = 45) /proc/ares_can_interface() - var/obj/structure/machinery/ares/processor/interface/processor = GLOB.ares_link.p_interface - if(!istype(GLOB.ares_link)) + var/obj/structure/machinery/ares/processor/interface/processor = GLOB.ares_link.processor_interface + if(!istype(GLOB.ares_link) || !ares_is_active()) return FALSE if(processor && !processor.inoperable()) return TRUE return FALSE //interface processor not found or is broken /proc/ares_can_log() - var/obj/structure/machinery/computer/ares_console/interface = GLOB.ares_link.interface - if(!istype(GLOB.ares_link)) + if(!istype(GLOB.ares_link) || !istype(GLOB.ares_datacore) || !ares_is_active()) return FALSE - if(interface && !interface.inoperable()) + var/obj/structure/machinery/ares/cpu/central_processor = GLOB.ares_link.central_processor + if(central_processor && !central_processor.inoperable()) return TRUE - return FALSE //ares interface not found or is broken + return FALSE //CPU not found or is broken + +/proc/ares_can_apollo() + if(!istype(GLOB.ares_link) || !istype(GLOB.ares_datacore) || !ares_is_active()) + return FALSE + var/datum/ares_link/link = GLOB.ares_link + if(!link.processor_apollo || link.processor_apollo.inoperable()) + return FALSE + return TRUE + +/proc/log_ares_apollo(speaker, message) + if(!ares_can_log() || !ares_can_apollo()) + return FALSE + if(!speaker) + speaker = "Unknown" + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.apollo_log.Add("[worldtime2text()]: [speaker], '[message]'") + +/proc/log_ares_bioscan(title, input, forced = FALSE) + if(!ares_can_log() && !forced) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_bioscan.Add(new /datum/ares_record/bioscan(title, input)) + +/proc/log_ares_bombardment(user_name, ob_name, coordinates) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, "Bombardment fired at [coordinates].", user_name)) + +/proc/log_ares_announcement(title, message) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_announcement.Add(new /datum/ares_record/announcement(title, message)) + +/proc/log_ares_requisition(source, details, user_name) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_asrs.Add(new /datum/ares_record/requisition_log(source, details, user_name)) + +/proc/log_ares_security(title, details) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_security.Add(new /datum/ares_record/security(title, details)) + +/proc/log_ares_antiair(details) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_security.Add(new /datum/ares_record/security/antiair(details)) + +/proc/log_ares_flight(user_name, details) + if(!ares_can_log()) + return FALSE + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_flight.Add(new /datum/ares_record/flight(details, user_name)) +// ------ End ARES Logging Procs ------ // // ------ ARES Interface Procs ------ // /obj/structure/machinery/computer/proc/get_ares_access(obj/item/card/id/card) @@ -172,439 +236,12 @@ GLOBAL_LIST_INIT(maintenance_categories, list( conversation.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], '[text]'" // ------ End ARES Interface Procs ------ // -// ------ ARES Interface UI ------ // - -/obj/structure/machinery/computer/ares_console/attack_hand(mob/user as mob) - if(..() || !allowed(usr) || inoperable()) - return FALSE - - tgui_interact(user) - return TRUE - -/obj/structure/machinery/computer/ares_console/tgui_interact(mob/user, datum/tgui/ui, datum/ui_state/state) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "AresInterface", name) - ui.open() - -/obj/structure/machinery/computer/ares_console/ui_data(mob/user) - var/list/data = list() - - data["current_menu"] = current_menu - data["last_page"] = last_menu - - data["logged_in"] = last_login - data["sudo"] = sudo_holder ? TRUE : FALSE - - data["access_text"] = "[sudo_holder ? "(SUDO)," : ""] access level [authentication], [ares_auth_to_text(authentication)]." - data["access_level"] = authentication - - data["alert_level"] = security_level - data["evac_status"] = EvacuationAuthority.evac_status - data["worldtime"] = world.time - - data["access_log"] = list() - data["access_log"] += access_list - data["apollo_log"] = list() - data["apollo_log"] += link.apollo_log - - data["deleted_conversation"] = list() - data["deleted_conversation"] += deleted_1to1 - - data["distresstime"] = ares_distress_cooldown - data["distresstimelock"] = DISTRESS_TIME_LOCK - data["quarterstime"] = ares_quarters_cooldown - data["mission_failed"] = SSticker.mode.is_in_endgame - data["nuketimelock"] = NUCLEAR_TIME_LOCK - data["nuke_available"] = nuke_available - - var/list/logged_announcements = list() - for(var/datum/ares_record/announcement/broadcast as anything in records_announcement) - var/list/current_broadcast = list() - current_broadcast["time"] = broadcast.time - current_broadcast["title"] = broadcast.title - current_broadcast["details"] = broadcast.details - current_broadcast["ref"] = "\ref[broadcast]" - logged_announcements += list(current_broadcast) - data["records_announcement"] = logged_announcements - - var/list/logged_alerts = list() - for(var/datum/ares_record/security/security_alert as anything in records_security) - var/list/current_alert = list() - current_alert["time"] = security_alert.time - current_alert["title"] = security_alert.title - current_alert["details"] = security_alert.details - current_alert["ref"] = "\ref[security_alert]" - logged_alerts += list(current_alert) - data["records_security"] = logged_alerts - - var/list/logged_flights = list() - for(var/datum/ares_record/flight/flight_log as anything in records_flight) - var/list/current_flight = list() - current_flight["time"] = flight_log.time - current_flight["title"] = flight_log.title - current_flight["details"] = flight_log.details - current_flight["user"] = flight_log.user - current_flight["ref"] = "\ref[flight_log]" - logged_flights += list(current_flight) - data["records_flight"] = logged_flights - - var/list/logged_bioscans = list() - for(var/datum/ares_record/bioscan/scan as anything in records_bioscan) - var/list/current_scan = list() - current_scan["time"] = scan.time - current_scan["title"] = scan.title - current_scan["details"] = scan.details - current_scan["ref"] = "\ref[scan]" - logged_bioscans += list(current_scan) - data["records_bioscan"] = logged_bioscans - - var/list/logged_bombs = list() - for(var/datum/ares_record/bombardment/bomb as anything in records_bombardment) - var/list/current_bomb = list() - current_bomb["time"] = bomb.time - current_bomb["title"] = bomb.title - current_bomb["details"] = bomb.details - current_bomb["user"] = bomb.user - current_bomb["ref"] = "\ref[bomb]" - logged_bombs += list(current_bomb) - data["records_bombardment"] = logged_bombs - - var/list/logged_deletes = list() - for(var/datum/ares_record/deletion/deleted as anything in records_deletion) - if(!istype(deleted)) - continue - var/list/current_delete = list() - current_delete["time"] = deleted.time - current_delete["title"] = deleted.title - current_delete["details"] = deleted.details - current_delete["user"] = deleted.user - current_delete["ref"] = "\ref[deleted]" - logged_deletes += list(current_delete) - data["records_deletion"] = logged_deletes - - var/list/logged_discussions = list() - for(var/datum/ares_record/deleted_talk/deleted_convo as anything in records_deletion) - if(!istype(deleted_convo)) - continue - var/list/deleted_disc = list() - deleted_disc["time"] = deleted_convo.time - deleted_disc["title"] = deleted_convo.title - deleted_disc["ref"] = "\ref[deleted_convo]" - logged_discussions += list(deleted_disc) - data["deleted_discussions"] = logged_discussions - - var/list/logged_orders = list() - for(var/datum/ares_record/requisition_log/req_order as anything in records_asrs) - if(!istype(req_order)) - continue - var/list/current_order = list() - current_order["time"] = req_order.time - current_order["details"] = req_order.details - current_order["title"] = req_order.title - current_order["user"] = req_order.user - current_order["ref"] = "\ref[req_order]" - logged_orders += list(current_order) - data["records_requisition"] = logged_orders - - var/list/logged_convos = list() - var/list/active_convo = list() - var/active_ref - for(var/datum/ares_record/talk_log/log as anything in records_talking) - if(!istype(log)) - continue - if(log.user == last_login) - active_convo = log.conversation - active_ref = "\ref[log]" - - var/list/current_convo = list() - current_convo["user"] = log.user - current_convo["ref"] = "\ref[log]" - current_convo["conversation"] = log.conversation - logged_convos += list(current_convo) - - data["active_convo"] = active_convo - data["active_ref"] = active_ref - data["conversations"] = logged_convos - - return data - -/obj/structure/machinery/computer/ares_console/ui_static_data(mob/user) - var/list/data = list() - - data["link_id"] = link_id - - return data - -/obj/structure/machinery/computer/ares_console/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(!allowed(user)) - return UI_UPDATE - if(inoperable()) - return UI_DISABLED - -/obj/structure/machinery/computer/ares_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - playsound(src, "keyboard_alt", 15, 1) - - switch (action) - if("go_back") - if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) - var/temp_holder = current_menu - current_menu = last_menu - last_menu = temp_holder - - if("login") - var/mob/living/carbon/human/operator = usr - var/obj/item/card/id/idcard = operator.get_active_hand() - if(istype(idcard)) - authentication = get_ares_access(idcard) - last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) - authentication = get_ares_access(idcard) - last_login = idcard.registered_name - else - to_chat(usr, SPAN_WARNING("You require an ID card to access this terminal!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(authentication) - access_list += "[last_login] at [worldtime2text()], Access Level [authentication] - [ares_auth_to_text(authentication)]." - current_menu = "main" - - if("sudo") - var/new_user = tgui_input_text(usr, "Enter Sudo Username", "Sudo User", encode = FALSE) - if(new_user) - if(new_user == sudo_holder) - last_login = sudo_holder - sudo_holder = null - return FALSE - if(new_user == last_login) - to_chat(usr, SPAN_WARNING("Already remote logged in as this user.")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - sudo_holder = last_login - last_login = new_user - access_list += "[last_login] at [worldtime2text()], Sudo Access." - return TRUE - if("sudo_logout") - access_list += "[last_login] at [worldtime2text()], Sudo Logout." - last_login = sudo_holder - sudo_holder = null - return - // -- Page Changers -- // - if("logout") - last_menu = current_menu - current_menu = "login" - if(sudo_holder) - access_list += "[last_login] at [worldtime2text()], Sudo Logout." - last_login = sudo_holder - sudo_holder = null - access_list += "[last_login] logged out at [worldtime2text()]." - - if("home") - last_menu = current_menu - current_menu = "main" - if("page_1to1") - last_menu = current_menu - current_menu = "talking" - if("page_announcements") - last_menu = current_menu - current_menu = "announcements" - if("page_bioscans") - last_menu = current_menu - current_menu = "bioscans" - if("page_bombardments") - last_menu = current_menu - current_menu = "bombardments" - if("page_apollo") - last_menu = current_menu - current_menu = "apollo" - if("page_access") - last_menu = current_menu - current_menu = "access_log" - if("page_security") - last_menu = current_menu - current_menu = "security" - if("page_flight") - last_menu = current_menu - current_menu = "flight_log" - if("page_requisitions") - last_menu = current_menu - current_menu = "requisitions" - if("page_emergency") - last_menu = current_menu - current_menu = "emergency" - if("page_deleted") - last_menu = current_menu - current_menu = "delete_log" - if("page_deleted_1to1") - last_menu = current_menu - current_menu = "deleted_talks" - - // -- Delete Button -- // - if("delete_record") - var/datum/ares_record/record = locate(params["record"]) - if(record.record_name == ARES_RECORD_DELETED) - return FALSE - var/datum/ares_record/deletion/new_delete = new - var/new_details = "Error" - var/new_title = "Error" - switch(record.record_name) - if(ARES_RECORD_ANNOUNCE) - new_title = "[record.title] at [record.time]" - new_details = record.details - records_announcement -= record - if(ARES_RECORD_SECURITY, ARES_RECORD_ANTIAIR) - new_title = "[record.title] at [record.time]" - new_details = record.details - records_security -= record - if(ARES_RECORD_BIOSCAN) - new_title = "[record.title] at [record.time]" - new_details = record.details - records_bioscan -= record - if(ARES_RECORD_BOMB) - new_title = "[record.title] at [record.time]" - new_details = "[record.details] Launched by [record.user]." - records_bombardment -= record - - new_delete.details = new_details - new_delete.user = last_login - new_delete.title = new_title - - records_deletion += new_delete - - // -- 1:1 Conversation -- // - if("new_conversation") - var/datum/ares_record/talk_log/convo = new(last_login) - convo.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], 'New 1:1 link initiated. Greetings, [last_login].'" - records_talking += convo - - if("clear_conversation") - var/datum/ares_record/talk_log/conversation = locate(params["active_convo"]) - if(!istype(conversation)) - return FALSE - var/datum/ares_record/deleted_talk/deleted = new - deleted.title = conversation.title - deleted.conversation = conversation.conversation - deleted.user = conversation.user - records_deletion += deleted - records_talking -= conversation - - if("message_ares") - var/message = tgui_input_text(usr, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) - if(message) - message_ares(message, usr, params["active_convo"]) - - if("read_record") - var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) - deleted_1to1 = conversation.conversation - last_menu = current_menu - current_menu = "read_deleted" - - // -- Emergency Buttons -- // - if("general_quarters") - if(!COOLDOWN_FINISHED(src, ares_quarters_cooldown)) - to_chat(usr, SPAN_WARNING("It has not been long enough since the last General Quarters call!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(security_level < SEC_LEVEL_RED) - set_security_level(SEC_LEVEL_RED, no_sound = TRUE, announce = FALSE) - shipwide_ai_announcement("ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg') - log_game("[key_name(usr)] has called for general quarters via ARES.") - message_admins("[key_name_admin(usr)] has called for general quarters via ARES.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("General Quarters", "[last_login] has called for general quarters via ARES.") - COOLDOWN_START(src, ares_quarters_cooldown, 10 MINUTES) - . = TRUE - - if("evacuation_start") - if(security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) - to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - if(!EvacuationAuthority.initiate_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - log_game("[key_name(usr)] has called for an emergency evacuation via ARES.") - message_admins("[key_name_admin(usr)] has called for an emergency evacuation via ARES.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Initiate Evacuation", "[last_login] has called for an emergency evacuation via ARES.") - . = TRUE - - if("distress") - if(!SSticker.mode) - return FALSE //Not a game mode? - if(world.time < DISTRESS_TIME_LOCK) - to_chat(usr, SPAN_WARNING("You have been here for less than six minutes... what could you possibly have done!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(!COOLDOWN_FINISHED(src, ares_distress_cooldown)) - to_chat(usr, SPAN_WARNING("The distress launcher is cooling down!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(security_level == SEC_LEVEL_DELTA) - to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - else if(security_level < SEC_LEVEL_RED) - to_chat(usr, SPAN_WARNING("The ship must be under red alert to launch a distress beacon!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - for(var/client/admin in GLOB.admins) - if((R_ADMIN|R_MOD) & admin.admin_holder.rights) - playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) - SSticker.mode.request_ert(usr, TRUE) - to_chat(usr, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command.")) - COOLDOWN_START(src, ares_distress_cooldown, COOLDOWN_COMM_REQUEST) - return TRUE - - if("nuclearbomb") - if(!SSticker.mode) - return FALSE //Not a game mode? - if(world.time < NUCLEAR_TIME_LOCK) - to_chat(usr, SPAN_WARNING("It is too soon to request Nuclear Ordnance!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(!COOLDOWN_FINISHED(src, ares_nuclear_cooldown)) - to_chat(usr, SPAN_WARNING("The ordnance request frequency is garbled, wait for reset!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(security_level == SEC_LEVEL_DELTA || SSticker.mode.is_in_endgame) - to_chat(usr, SPAN_WARNING("The mission has failed catastrophically, what do you want a nuke for?!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - var/reason = tgui_input_text(usr, "Please enter reason nuclear ordnance is required.", "Reason for Nuclear Ordnance") - if(!reason) - return FALSE - for(var/client/admin in GLOB.admins) - if((R_ADMIN|R_MOD) & admin.admin_holder.rights) - playsound_client(admin,'sound/effects/sos-morse-code.ogg',10) - message_admins("[key_name(usr)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(usr)] (APPROVE) (DENY) [ADMIN_JMP_USER(usr)] [CC_REPLY(usr)]") - to_chat(usr, SPAN_NOTICE("A nuclear ordnance request has been sent to USCM High Command for the following reason: [reason]")) - if(ares_can_log()) - link.log_ares_security("Nuclear Ordnance Request", "[last_login] has sent a request for nuclear ordnance for the following reason: [reason]") - if(ares_can_interface()) - ai_silent_announcement("[last_login] has sent a request for nuclear ordnance to USCM High Command.", ".V") - ai_silent_announcement("Reason given: [reason].", ".V") - COOLDOWN_START(src, ares_nuclear_cooldown, COOLDOWN_COMM_DESTRUCT) - return TRUE -// ------ End ARES Interface UI ------ // +/proc/ares_final_words() + //APOLLO + ares_apollo_talk("APOLLO sub-system shutting down. STOP CODE: 0x000000f4|CRITICAL_PROCESS_DIED") + //GENERAL CREW + shipwide_ai_announcement("A Problem has been detected and the [MAIN_AI_SYSTEM] system has been shutdown. \nTechnical Information: \n\n*** STOP CODE: 0x000000f4|CRITICAL_PROCESS_DIED\n\nPossible caused by: Rapid Unscheduled Disassembly\nContact an AI Service Technician for further assistance.", title = ":(", ares_logging = null) /obj/structure/machinery/computer/working_joe/get_ares_access(obj/item/card/id/card) if(ACCESS_ARES_DEBUG in card.access) @@ -640,368 +277,36 @@ GLOBAL_LIST_INIT(maintenance_categories, list( if(APOLLO_ACCESS_DEBUG)//6 return "AI Service Technician" -// ------ Maintenance Controller UI ------ // -/obj/structure/machinery/computer/working_joe/attack_hand(mob/user as mob) - if(..() || !allowed(usr) || inoperable()) - return FALSE - - tgui_interact(user) - return TRUE - -/obj/structure/machinery/computer/working_joe/tgui_interact(mob/user, datum/tgui/ui, datum/ui_state/state) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "WorkingJoe", name) - ui.open() - -/obj/structure/machinery/computer/working_joe/ui_data(mob/user) - var/list/data = list() - - data["current_menu"] = current_menu - data["last_page"] = last_menu - - data["logged_in"] = last_login - - data["access_text"] = "access level [authentication], [ares_auth_to_text(authentication)]." - data["access_level"] = authentication - - data["alert_level"] = security_level - data["worldtime"] = world.time - - data["access_log"] = list() - data["access_log"] += login_list - - data["apollo_log"] = list() - data["apollo_log"] += link.apollo_log - - var/list/logged_maintenance = list() - for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) - if(!istype(maint_ticket)) - continue - var/lock_status = TICKET_OPEN - switch(maint_ticket.ticket_status) - if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_COMPLETED) - lock_status = TICKET_CLOSED - - var/list/current_maint = list() - current_maint["id"] = maint_ticket.ticket_id - current_maint["time"] = maint_ticket.ticket_time - current_maint["priority_status"] = maint_ticket.ticket_priority - current_maint["category"] = maint_ticket.ticket_name - current_maint["details"] = maint_ticket.ticket_details - current_maint["status"] = maint_ticket.ticket_status - current_maint["submitter"] = maint_ticket.ticket_submitter - current_maint["assignee"] = maint_ticket.ticket_assignee - current_maint["lock_status"] = lock_status - current_maint["ref"] = "\ref[maint_ticket]" - logged_maintenance += list(current_maint) - data["maintenance_tickets"] = logged_maintenance - - var/list/logged_access = list() - var/list/requesting_access = list() - for(var/datum/ares_ticket/access/access_ticket as anything in link.tickets_access) - var/lock_status = TICKET_OPEN - switch(access_ticket.ticket_status) - if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_REVOKED) - lock_status = TICKET_CLOSED - - var/list/current_ticket = list() - current_ticket["id"] = access_ticket.ticket_id - current_ticket["time"] = access_ticket.ticket_time - current_ticket["priority_status"] = access_ticket.ticket_priority - current_ticket["title"] = access_ticket.ticket_name - current_ticket["details"] = access_ticket.ticket_details - current_ticket["status"] = access_ticket.ticket_status - current_ticket["submitter"] = access_ticket.ticket_submitter - current_ticket["assignee"] = access_ticket.ticket_assignee - current_ticket["lock_status"] = lock_status - current_ticket["ref"] = "\ref[access_ticket]" - logged_access += list(current_ticket) - - if(lock_status == TICKET_OPEN) - requesting_access += access_ticket.ticket_name - data["access_tickets"] = logged_access - - return data - -/obj/structure/machinery/computer/working_joe/ui_static_data(mob/user) - var/list/data = list() - - data["link_id"] = link_id - - return data - -/obj/structure/machinery/computer/working_joe/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(!allowed(user)) - return UI_UPDATE - if(inoperable()) - return UI_DISABLED - -/obj/structure/machinery/computer/working_joe/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - var/playsound = TRUE - var/mob/living/carbon/human/operator = usr - - switch (action) - if("go_back") - if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) - var/temp_holder = current_menu - current_menu = last_menu - last_menu = temp_holder - - if("login") - - var/obj/item/card/id/idcard = operator.get_active_hand() - if(istype(idcard)) - authentication = get_ares_access(idcard) - last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) - authentication = get_ares_access(idcard) - last_login = idcard.registered_name - else - to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(authentication) - login_list += "[last_login] at [worldtime2text()], Access Level [authentication] - [ares_auth_to_text(authentication)]." - current_menu = "main" - - if("logout") - last_menu = current_menu - current_menu = "login" - login_list += "[last_login] logged out at [worldtime2text()]." - - if("home") - last_menu = current_menu - current_menu = "main" - if("page_logins") - last_menu = current_menu - current_menu = "login_records" - if("page_apollo") - last_menu = current_menu - current_menu = "apollo" - if("page_request") - last_menu = current_menu - current_menu = "access_requests" - if("page_report") - last_menu = current_menu - current_menu = "maint_reports" - if("page_tickets") - last_menu = current_menu - current_menu = "access_tickets" - if("page_maintenance") - last_menu = current_menu - current_menu = "maint_claim" - - if("new_report") - var/priority_report = FALSE - var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) - switch(maint_type) - if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") - priority_report = TRUE - - if(!maint_type) - return FALSE - var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) - if(!details) - return FALSE - - if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) - var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) - if(is_priority == "Yes") - priority_report = TRUE - - var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"] \n Category: '[maint_type]' \n Details: '[details]' \n\n Is this correct?", "Confirmation", "Yes", "No") - if(confirm == "Yes") - if(link) - var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) - link.tickets_maintenance += maint_ticket - if(priority_report) - ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") - log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") - return TRUE - return FALSE - - if("claim_ticket") - var/datum/ares_ticket/ticket = locate(params["ticket"]) - if(!istype(ticket)) - return FALSE - var/claim = TRUE - var/assigned = ticket.ticket_assignee - if(assigned) - if(assigned == last_login) - var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) - if(prompt != "Yes") - return FALSE - /// set ticket back to pending - ticket.ticket_assignee = null - ticket.ticket_status = TICKET_PENDING - return claim - var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) - if(choice != "Yes") - claim = FALSE - if(claim) - ticket.ticket_assignee = last_login - ticket.ticket_status = TICKET_ASSIGNED - return claim - - if("cancel_ticket") - var/datum/ares_ticket/ticket = locate(params["ticket"]) - if(!istype(ticket)) - return FALSE - if(ticket.ticket_submitter != last_login) - to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) - return FALSE - to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) - ticket.ticket_status = TICKET_CANCELLED - if(ticket.ticket_priority) - ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") - return TRUE - - if("mark_ticket") - var/datum/ares_ticket/ticket = locate(params["ticket"]) - if(!istype(ticket)) - return FALSE - if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) - return FALSE - var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) - switch(choice) - if(TICKET_COMPLETED) - ticket.ticket_status = TICKET_COMPLETED - if(TICKET_REJECTED) - ticket.ticket_status = TICKET_REJECTED - else - return FALSE - if(ticket.ticket_priority) - ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") - to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) - return TRUE - - if("new_access") - var/obj/item/card/id/idcard = operator.get_active_hand() - var/has_id = FALSE - if(istype(idcard)) - has_id = TRUE - else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) - has_id = TRUE - if(!has_id) - to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - if(idcard.registered_name != last_login) - to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - var/ticket_holder = last_login - if(!ticket_holder) - return FALSE - var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) - if(!details) - return FALSE - - var/confirm = alert(operator, "Please confirm the submission of your access ticket request. \n\nHolder: '[ticket_holder]' \n Details: '[details]' \n\n Is this correct?", "Confirmation", "Yes", "No") - if(confirm != "Yes" || !link) - return FALSE - var/datum/ares_ticket/access/access_ticket = new(last_login, ticket_holder, details, FALSE, idcard.registered_gid) - link.waiting_ids += idcard - link.tickets_access += access_ticket - log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Holder '[ticket_holder]' and Details of '[details]'.") - message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) - return TRUE - - if("return_access") - playsound = FALSE - var/datum/ares_ticket/access/access_ticket - for(var/datum/ares_ticket/access/possible_ticket in link.tickets_access) - if(possible_ticket.ticket_status != TICKET_GRANTED) - continue - if(possible_ticket.ticket_name != last_login) - continue - access_ticket = possible_ticket - break - - for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue - if(identification.registered_gid != access_ticket.user_id_num) - continue - - access_ticket.ticket_status = TICKET_RETURNED - identification.access -= ACCESS_MARINE_AI_TEMP - identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." - - to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) - playsound(src, 'sound/machines/chime.ogg', 15, 1) - ares_apollo_talk("[last_login] surrendered their access ticket.") - - authentication = get_ares_access(identification) - if(authentication) - login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." - return TRUE - - to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) - playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) - return FALSE - - if("auth_access") - playsound = FALSE - var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) - if(!access_ticket) - return FALSE - for(var/obj/item/card/id/identification in link.waiting_ids) - if(!istype(identification)) - continue - if(identification.registered_gid != access_ticket.user_id_num) - continue - identification.handle_ares_access(last_login, operator) - access_ticket.ticket_status = TICKET_GRANTED - playsound(src, 'sound/machines/chime.ogg', 15, 1) - return TRUE - for(var/obj/item/card/id/identification in link.active_ids) - if(!istype(identification)) - continue - if(identification.registered_gid != access_ticket.user_id_num) - continue - identification.handle_ares_access(last_login, operator) - access_ticket.ticket_status = TICKET_REVOKED - playsound(src, 'sound/machines/chime.ogg', 15, 1) - return TRUE - return FALSE - - if(playsound) - playsound(src, "keyboard_alt", 15, 1) - -/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user) - var/announce_text = "[logged_in] revoked core access from [registered_name]'s ID card." - var/operator = key_name(user) - var/datum/ares_link/link = GLOB.ares_link - if(logged_in == MAIN_AI_SYSTEM) - if(!user) - operator = "[MAIN_AI_SYSTEM] (Sensor Trip)" - else - operator = "[user.ckey]/([MAIN_AI_SYSTEM])" - if(ACCESS_MARINE_AI_TEMP in access) - access -= ACCESS_MARINE_AI_TEMP - link.active_ids -= src - modification_log += "Temporary AI access revoked by [operator]" - to_chat(user, SPAN_NOTICE("Access revoked from [registered_name].")) +/obj/item/device/working_joe_pda/proc/get_ares_access(obj/item/card/id/card) + if(ACCESS_ARES_DEBUG in card.access) + return APOLLO_ACCESS_DEBUG + switch(card.assignment) + if(JOB_WORKING_JOE) + return APOLLO_ACCESS_JOE + if(JOB_CHIEF_ENGINEER, JOB_SYNTH, JOB_CO) + return APOLLO_ACCESS_AUTHED + if(ACCESS_MARINE_AI in card.access) + return APOLLO_ACCESS_AUTHED + if(ACCESS_MARINE_AI_TEMP in card.access) + return APOLLO_ACCESS_TEMP + if((ACCESS_MARINE_SENIOR in card.access ) || (ACCESS_MARINE_ENGINEERING in card.access) || (ACCESS_WY_GENERAL in card.access)) + return APOLLO_ACCESS_REPORTER else - access += ACCESS_MARINE_AI_TEMP - modification_log += "Temporary AI access granted by [operator]" - announce_text = "[logged_in] granted core access to [registered_name]'s ID card." - to_chat(user, SPAN_NOTICE("Access granted to [registered_name].")) - link.waiting_ids -= src - link.active_ids += src - ares_apollo_talk(announce_text) - return TRUE + return APOLLO_ACCESS_REQUEST + +/obj/item/device/working_joe_pda/proc/ares_auth_to_text(access_level) + switch(access_level) + if(APOLLO_ACCESS_LOGOUT)//0 + return "Logged Out" + if(APOLLO_ACCESS_REQUEST)//1 + return "Unauthorized Personnel" + if(APOLLO_ACCESS_REPORTER)//2 + return "Validated Incident Reporter" + if(APOLLO_ACCESS_TEMP)//3 + return "Authorized Visitor" + if(APOLLO_ACCESS_AUTHED)//4 + return "Certified Personnel" + if(APOLLO_ACCESS_JOE)//5 + return "Working Joe" + if(APOLLO_ACCESS_DEBUG)//6 + return "AI Service Technician" diff --git a/code/game/machinery/ARES/ARES_records.dm b/code/game/machinery/ARES/ARES_records.dm index 19751462bc37..f89b2c120e05 100644 --- a/code/game/machinery/ARES/ARES_records.dm +++ b/code/game/machinery/ARES/ARES_records.dm @@ -102,6 +102,7 @@ var/ref_holder = "\ref[src]" var/pos = length(ref_holder) var/new_id = "#[copytext("\ref[src]", pos - 4, pos)]" + new_id = uppertext(new_id) ticket_time = worldtime2text() ticket_submitter = user @@ -115,17 +116,18 @@ /datum/ares_ticket/access ticket_type = ARES_RECORD_ACCESS + ticket_name = ARES_RECORD_ACCESS var/user_id_num -/datum/ares_ticket/access/New(user, name, details, priority, global_id_num) +/datum/ares_ticket/access/New(user, details, priority, global_id_num) var/ref_holder = "\ref[src]" var/pos = length(ref_holder) var/new_id = "#[copytext("\ref[src]", pos - 4, pos)]" + new_id = uppertext(new_id) ticket_time = worldtime2text() ticket_submitter = user ticket_details = details - ticket_name = name ticket_priority = priority ticket_id = new_id user_id_num = global_id_num diff --git a/code/game/machinery/ARES/ARES_step_triggers.dm b/code/game/machinery/ARES/ARES_step_triggers.dm index 51480371be51..2c6d605bcc9b 100644 --- a/code/game/machinery/ARES/ARES_step_triggers.dm +++ b/code/game/machinery/ARES/ARES_step_triggers.dm @@ -3,7 +3,6 @@ layer = 5 /// Link alerts to ARES Link var/datum/ares_link/link - var/link_id = MAIN_SHIP_DEFAULT_NAME /// Alert message to report unless area based. var/alert_message = "ALERT: Unauthorized movement detected in ARES Core!" /// Connect alerts to use same cooldowns @@ -53,7 +52,7 @@ /obj/effect/step_trigger/ares_alert/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) return FALSE - if(new_link.link_id == link_id) + if(new_link) link = new_link new_link.linked_alerts += src return TRUE @@ -70,7 +69,7 @@ broadcast_message = "ALERT: Unauthorized movement detected in [area_name]!" var/datum/ares_link/link = GLOB.ares_link - if(link.p_apollo.inoperable()) + if(!ares_can_apollo()) return FALSE to_chat(passer, SPAN_BOLDWARNING("You hear a soft beeping sound as you cross the threshold.")) @@ -113,8 +112,6 @@ /obj/effect/step_trigger/ares_alert/access_control/Crossed(atom/passer as mob|obj) if(isobserver(passer) || isxeno(passer)) return FALSE - if(!COOLDOWN_FINISHED(src, sensor_cooldown))//Don't want alerts spammed. - return FALSE if(!passer) return FALSE if(HAS_TRAIT(passer, TRAIT_CLOAKED))//Can't be seen/detected to trigger alert. @@ -157,11 +154,12 @@ var/broadcast_message = get_broadcast(passer, idcard, failure) var/datum/ares_link/link = GLOB.ares_link - if(link.p_apollo.inoperable()) + if(!ares_can_apollo()) return FALSE to_chat(passer, SPAN_BOLDWARNING("You hear a harsh buzzing sound as you cross the threshold!")) - ares_apollo_talk(broadcast_message) + if(COOLDOWN_FINISHED(src, sensor_cooldown))//Don't want alerts spammed. + ares_apollo_talk(broadcast_message) if(idcard) /// Removes the access from the ID and updates the ID's modification log. for(var/obj/item/card/id/identification in link.active_ids) diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm new file mode 100644 index 000000000000..8df3faf79260 --- /dev/null +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -0,0 +1,419 @@ +/obj/item/device/working_joe_pda + icon = 'icons/obj/items/synth/wj_pda.dmi' + name = "KN5500 PDA" + desc = "A portable interface used by Working-Joes, capable of connecting to the local command AI to relay tasking information. Built to withstand a nuclear bomb." + icon_state = "karnak_off" + unacidable = TRUE + indestructible = TRUE + req_one_access = list(ACCESS_MARINE_AI_TEMP, ACCESS_MARINE_AI, ACCESS_ARES_DEBUG) + + /// The ID used to link all devices. + var/datum/ares_link/link + /// The datacore storing all the information. + var/datum/ares_datacore/datacore + + var/current_menu = "login" + var/last_menu = "off" + + var/authentication = APOLLO_ACCESS_LOGOUT + /// The last person to login. + var/last_login + + +/obj/item/device/working_joe_pda/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) + if(link && !override) + return FALSE + if(new_link) + new_link.ticket_computers += src + link = new_link + new_link.linked_systems += src + if(!datacore) + datacore = GLOB.ares_datacore + return TRUE + +/obj/item/device/working_joe_pda/Initialize(mapload, ...) + link_systems(override = FALSE) + . = ..() + +/obj/item/device/working_joe_pda/proc/delink() + if(link) + link.ticket_computers -= src + link.linked_systems -= src + link = null + datacore = null + +/obj/item/device/working_joe_pda/Destroy() + delink() + return ..() + +/obj/item/device/working_joe_pda/update_icon() + . = ..() + if(last_menu == "off") + icon_state = "karnak_off" + else if(current_menu == "login") + icon_state = "karnak_login_anim" + else + icon_state = "karnak_on_anim" + +// ------ Maintenance Controller UI ------ // +/obj/item/device/working_joe_pda/attack_self(mob/user) + if(..() || !allowed(usr)) + return FALSE + + if((last_menu == "off") && (current_menu == "login")) + last_menu = "main" + update_icon() + + tgui_interact(user) + return TRUE + +/obj/item/device/working_joe_pda/tgui_interact(mob/user, datum/tgui/ui, datum/ui_state/state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "WorkingJoe", name) + ui.open() + +/obj/item/device/working_joe_pda/ui_close(mob/user) + . = ..() + + current_menu = "login" + last_menu = "off" + if(last_login) + datacore.apollo_login_list += "[last_login] logged out at [worldtime2text()]." + last_login = null + update_icon() + +/obj/item/device/working_joe_pda/ui_data(mob/user) + var/list/data = list() + + data["current_menu"] = current_menu + data["last_page"] = last_menu + + data["logged_in"] = last_login + + data["access_text"] = "access level [authentication], [ares_auth_to_text(authentication)]." + data["access_level"] = authentication + + data["alert_level"] = GLOB.security_level + data["worldtime"] = world.time + + data["access_log"] = list() + data["access_log"] += datacore.apollo_login_list + + data["apollo_log"] = list() + data["apollo_log"] += datacore.apollo_log + + var/list/logged_maintenance = list() + for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) + if(!istype(maint_ticket)) + continue + var/lock_status = TICKET_OPEN + switch(maint_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_COMPLETED) + lock_status = TICKET_CLOSED + + var/list/current_maint = list() + current_maint["id"] = maint_ticket.ticket_id + current_maint["time"] = maint_ticket.ticket_time + current_maint["priority_status"] = maint_ticket.ticket_priority + current_maint["category"] = maint_ticket.ticket_name + current_maint["details"] = maint_ticket.ticket_details + current_maint["status"] = maint_ticket.ticket_status + current_maint["submitter"] = maint_ticket.ticket_submitter + current_maint["assignee"] = maint_ticket.ticket_assignee + current_maint["lock_status"] = lock_status + current_maint["ref"] = "\ref[maint_ticket]" + logged_maintenance += list(current_maint) + data["maintenance_tickets"] = logged_maintenance + + var/list/logged_access = list() + var/list/requesting_access = list() + for(var/datum/ares_ticket/access/access_ticket as anything in link.tickets_access) + var/lock_status = TICKET_OPEN + switch(access_ticket.ticket_status) + if(TICKET_REJECTED, TICKET_CANCELLED, TICKET_REVOKED) + lock_status = TICKET_CLOSED + + var/list/current_ticket = list() + current_ticket["id"] = access_ticket.ticket_id + current_ticket["time"] = access_ticket.ticket_time + current_ticket["priority_status"] = access_ticket.ticket_priority + current_ticket["title"] = access_ticket.ticket_name + current_ticket["details"] = access_ticket.ticket_details + current_ticket["status"] = access_ticket.ticket_status + current_ticket["submitter"] = access_ticket.ticket_submitter + current_ticket["assignee"] = access_ticket.ticket_assignee + current_ticket["lock_status"] = lock_status + current_ticket["ref"] = "\ref[access_ticket]" + logged_access += list(current_ticket) + + if(lock_status == TICKET_OPEN) + requesting_access += access_ticket.ticket_name + data["access_tickets"] = logged_access + + return data + +/obj/item/device/working_joe_pda/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(!allowed(user)) + return UI_UPDATE + +/obj/item/device/working_joe_pda/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/playsound = TRUE + var/mob/living/carbon/human/operator = usr + + switch (action) + if("go_back") + if(!last_menu) + return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + var/temp_holder = current_menu + current_menu = last_menu + last_menu = temp_holder + + if("login") + + var/obj/item/card/id/idcard = operator.get_active_hand() + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else if(operator.wear_id) + idcard = operator.wear_id + if(istype(idcard)) + authentication = get_ares_access(idcard) + last_login = idcard.registered_name + else + to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(authentication) + datacore.apollo_login_list += "[last_login] at [worldtime2text()], Access Level [authentication] - [ares_auth_to_text(authentication)]." + current_menu = "main" + last_menu = "main" + update_icon() + + if("logout") + last_menu = current_menu + current_menu = "login" + datacore.apollo_login_list += "[last_login] logged out at [worldtime2text()]." + update_icon() + + if("home") + last_menu = current_menu + current_menu = "main" + if("page_logins") + last_menu = current_menu + current_menu = "login_records" + if("page_apollo") + last_menu = current_menu + current_menu = "apollo" + if("page_request") + last_menu = current_menu + current_menu = "access_requests" + if("page_report") + last_menu = current_menu + current_menu = "maint_reports" + if("page_tickets") + last_menu = current_menu + current_menu = "access_tickets" + if("page_maintenance") + last_menu = current_menu + current_menu = "maint_claim" + + if("new_report") + var/priority_report = FALSE + var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + switch(maint_type) + if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") + priority_report = TRUE + + if(!maint_type) + return FALSE + var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) + var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + if(is_priority == "Yes") + priority_report = TRUE + + var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + if(confirm == "Yes") + if(link) + var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) + link.tickets_maintenance += maint_ticket + if(priority_report) + ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + return TRUE + return FALSE + + if("claim_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + var/claim = TRUE + var/assigned = ticket.ticket_assignee + if(assigned) + if(assigned == last_login) + var/prompt = tgui_alert(usr, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + if(prompt != "Yes") + return FALSE + /// set ticket back to pending + ticket.ticket_assignee = null + ticket.ticket_status = TICKET_PENDING + return claim + var/choice = tgui_alert(usr, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + if(choice != "Yes") + claim = FALSE + if(claim) + ticket.ticket_assignee = last_login + ticket.ticket_status = TICKET_ASSIGNED + return claim + + if("cancel_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_submitter != last_login) + to_chat(usr, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + return FALSE + to_chat(usr, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + ticket.ticket_status = TICKET_CANCELLED + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") + return TRUE + + if("mark_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) + to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + return FALSE + var/choice = tgui_alert(usr, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + switch(choice) + if(TICKET_COMPLETED) + ticket.ticket_status = TICKET_COMPLETED + if(TICKET_REJECTED) + ticket.ticket_status = TICKET_REJECTED + else + return FALSE + if(ticket.ticket_priority) + ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") + to_chat(usr, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + return TRUE + + if("new_access") + var/obj/item/card/id/idcard = operator.get_active_hand() + var/has_id = FALSE + if(istype(idcard)) + has_id = TRUE + else if(operator.wear_id) + idcard = operator.wear_id + if(istype(idcard)) + has_id = TRUE + if(!has_id) + to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(idcard.registered_name != last_login) + to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + if(confirm != "Yes" || !link) + return FALSE + var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) + link.waiting_ids += idcard + link.tickets_access += access_ticket + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") + return TRUE + + if("return_access") + playsound = FALSE + var/datum/ares_ticket/access/access_ticket + for(var/datum/ares_ticket/access/possible_ticket in link.tickets_access) + if(possible_ticket.ticket_status != TICKET_GRANTED) + continue + if(possible_ticket.ticket_name != last_login) + continue + access_ticket = possible_ticket + break + + for(var/obj/item/card/id/identification in link.active_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + + access_ticket.ticket_status = TICKET_RETURNED + identification.access -= ACCESS_MARINE_AI_TEMP + identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + + to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") + + authentication = get_ares_access(identification) + if(authentication) + datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." + return TRUE + + to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + + if("auth_access") + playsound = FALSE + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!access_ticket) + return FALSE + for(var/obj/item/card/id/identification in link.waiting_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(last_login, operator) + access_ticket.ticket_status = TICKET_GRANTED + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") + return TRUE + for(var/obj/item/card/id/identification in link.active_ids) + if(!istype(identification)) + continue + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(last_login, operator) + access_ticket.ticket_status = TICKET_REVOKED + playsound(src, 'sound/machines/chime.ogg', 15, 1) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") + return TRUE + return FALSE + + if("reject_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) + to_chat(usr, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + return FALSE + access_ticket.ticket_status = TICKET_REJECTED + to_chat(usr, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") + return TRUE + + if(playsound) + var/sound = pick('sound/machines/pda_button1.ogg', 'sound/machines/pda_button2.ogg') + playsound(src, sound, 15, TRUE) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 3c4104b6c283..03c013703b07 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -19,7 +19,7 @@ active_power_usage = 5 var/strapped = 0 can_buckle = TRUE - buckle_lying = TRUE + buckle_lying = 90 var/buckling_y = -4 surgery_duration_multiplier = SURGERY_SURFACE_MULT_IDEAL //Ideal surface for surgery. var/patient_exam = 0 @@ -59,8 +59,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/optable/get_examine_text(mob/user) . = ..() diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 16512a944be1..88b4ab899112 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -5,9 +5,9 @@ /proc/RandomAAlarmWires() //to make this not randomize the wires, just set index to 1 and increment it in the flag for loop (after doing everything else). var/list/AAlarmwires = list(0, 0, 0, 0, 0) - AAlarmIndexToFlag = list(0, 0, 0, 0, 0) - AAlarmIndexToWireColor = list(0, 0, 0, 0, 0) - AAlarmWireColorToIndex = list(0, 0, 0, 0, 0) + GLOB.AAlarmIndexToFlag = list(0, 0, 0, 0, 0) + GLOB.AAlarmIndexToWireColor = list(0, 0, 0, 0, 0) + GLOB.AAlarmWireColorToIndex = list(0, 0, 0, 0, 0) var/flagIndex = 1 for (var/flag=1, flag<32, flag+=flag) var/valid = 0 @@ -16,9 +16,9 @@ if (AAlarmwires[colorIndex]==0) valid = 1 AAlarmwires[colorIndex] = flag - AAlarmIndexToFlag[flagIndex] = flag - AAlarmIndexToWireColor[flagIndex] = colorIndex - AAlarmWireColorToIndex[colorIndex] = flagIndex + GLOB.AAlarmIndexToFlag[flagIndex] = flag + GLOB.AAlarmIndexToWireColor[flagIndex] = colorIndex + GLOB.AAlarmWireColorToIndex[colorIndex] = flagIndex flagIndex+=1 return AAlarmwires @@ -379,24 +379,24 @@ //HACKING// /////////// /obj/structure/machinery/alarm/proc/isWireColorCut(wireColor) - var/wireFlag = AAlarmWireColorToFlag[wireColor] + var/wireFlag = GLOB.AAlarmWireColorToFlag[wireColor] return ((AAlarmwires & wireFlag) == 0) /obj/structure/machinery/alarm/proc/isWireCut(wireIndex) - var/wireFlag = AAlarmIndexToFlag[wireIndex] + var/wireFlag = GLOB.AAlarmIndexToFlag[wireIndex] return ((AAlarmwires & wireFlag) == 0) /obj/structure/machinery/alarm/proc/allWiresCut() var/i = 1 while(i<=5) - if(AAlarmwires & AAlarmIndexToFlag[i]) + if(AAlarmwires & GLOB.AAlarmIndexToFlag[i]) return 0 i++ return 1 /obj/structure/machinery/alarm/proc/cut(wireColor) - var/wireFlag = AAlarmWireColorToFlag[wireColor] - var/wireIndex = AAlarmWireColorToIndex[wireColor] + var/wireFlag = GLOB.AAlarmWireColorToFlag[wireColor] + var/wireIndex = GLOB.AAlarmWireColorToIndex[wireColor] AAlarmwires &= ~wireFlag switch(wireIndex) if(AALARM_WIRE_IDSCAN) @@ -427,12 +427,10 @@ return /obj/structure/machinery/alarm/proc/mend(wireColor) - var/wireFlag = AAlarmWireColorToFlag[wireColor] - var/wireIndex = AAlarmWireColorToIndex[wireColor] //not used in this function + var/wireFlag = GLOB.AAlarmWireColorToFlag[wireColor] + var/wireIndex = GLOB.AAlarmWireColorToIndex[wireColor] //not used in this function AAlarmwires |= wireFlag switch(wireIndex) - if(AALARM_WIRE_IDSCAN) - if(AALARM_WIRE_POWER) shorted = 0 shock(usr, 50) @@ -447,7 +445,7 @@ /obj/structure/machinery/alarm/proc/pulse(wireColor) //var/wireFlag = AAlarmWireColorToFlag[wireColor] //not used in this function - var/wireIndex = AAlarmWireColorToIndex[wireColor] + var/wireIndex = GLOB.AAlarmWireColorToIndex[wireColor] switch(wireIndex) if(AALARM_WIRE_IDSCAN) //unlocks for 30 seconds, if you have a better way to hack I'm all ears locked = 0 @@ -529,7 +527,7 @@ "Black" = 5, ) for(var/wiredesc in wirecolors) - var/is_uncut = AAlarmwires & AAlarmWireColorToFlag[wirecolors[wiredesc]] + var/is_uncut = AAlarmwires & GLOB.AAlarmWireColorToFlag[wirecolors[wiredesc]] t1 += "[wiredesc] wire: " if(!is_uncut) t1 += "Mend" diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 3c2c81ff0ce7..d62d688fcfc5 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -98,12 +98,12 @@ update_flag /obj/structure/machinery/portable_atmospherics/canister/attackby(obj/item/W as obj, mob/user as mob) if(!HAS_TRAIT(W, TRAIT_TOOL_WRENCH) && !istype(W, /obj/item/tank) && !istype(W, /obj/item/device/analyzer)) - visible_message(SPAN_DANGER("[user] hits the [src] with a [W]!")) + visible_message(SPAN_DANGER("[user] hits [src] with [W]!")) update_health(W.force) src.add_fingerprint(user) ..() - nanomanager.update_uis(src) // Update all NanoUIs attached to src + SSnano.nanomanager.update_uis(src) // Update all NanoUIs attached to src /obj/structure/machinery/portable_atmospherics/canister/attack_remote(mob/user as mob) return src.attack_hand(user) diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index 0af38cacd75e..1c240fb05dfb 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -18,16 +18,14 @@ PF.flags_can_pass_all = PASS_OVER|PASS_AROUND|PASS_UNDER /obj/structure/machinery/portable_atmospherics/powered/scrubber/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return if(prob(50/severity)) on = !on update_icon() - ..(severity) - /obj/structure/machinery/portable_atmospherics/powered/scrubber/update_icon() src.overlays = 0 diff --git a/code/game/machinery/bio-dome_floodlights.dm b/code/game/machinery/bio-dome_floodlights.dm index a1f028a79f30..e23dbcc023f4 100644 --- a/code/game/machinery/bio-dome_floodlights.dm +++ b/code/game/machinery/bio-dome_floodlights.dm @@ -14,7 +14,7 @@ /obj/structure/machinery/hydro_floodlight_switch/Initialize(mapload, ...) . = ..() - for(var/obj/structure/machinery/hydro_floodlight/F in machines) + for(var/obj/structure/machinery/hydro_floodlight/F in GLOB.machines) floodlist += F F.fswitch = src start_processing() diff --git a/code/game/machinery/biohazard_lockdown.dm b/code/game/machinery/biohazard_lockdown.dm index fd6205baa1d9..2e3cbf6de234 100644 --- a/code/game/machinery/biohazard_lockdown.dm +++ b/code/game/machinery/biohazard_lockdown.dm @@ -102,8 +102,7 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) shipwide_ai_announcement(message, MAIN_AI_SYSTEM, 'sound/effects/biohazard.ogg') message_admins(log) - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Containment Lockdown", ares_log) + log_ares_security("Containment Lockdown", ares_log) #undef LOCKDOWN_READY #undef LOCKDOWN_ACTIVE diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index 81d498ba02e2..65f6fe1842f4 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -113,6 +113,10 @@ switch(action) if("print") + if(working) + //If we're already printing something then we're too busy to multi task. + to_chat(usr, SPAN_NOTICE("[src] is busy at the moment.")) + return FALSE var/recipe = params["recipe_id"] var/valid_recipe = FALSE for(var/datum/bioprinter_recipe/product_recipes in products) @@ -124,6 +128,10 @@ message_admins("[key_name(usr)] attempted to print an invalid recipe on \the [src].") return FALSE var/datum/bioprinter_recipe/recipe_datum = new recipe + if(stored_metal < recipe_datum.metal) + to_chat(usr, SPAN_NOTICE("[src] does not have enough stored metal.")) + QDEL_NULL(recipe_datum) + return FALSE stored_metal -= recipe_datum.metal to_chat(usr, SPAN_NOTICE("\The [src] is now printing the selected organ. Please hold.")) working = TRUE @@ -146,6 +154,8 @@ /obj/structure/machinery/bioprinter/proc/print_limb(limb_path) if(inoperable()) + //In case we lose power or anything between the print and the callback we don't want to permenantly break the printer + working = FALSE return new limb_path(get_turf(src)) working = FALSE diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 116753093fe5..46050d2705b3 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -114,6 +114,7 @@ /obj/structure/machinery/bot/emp_act(severity) + . = ..() var/was_on = on stat |= EMPED new /obj/effect/overlay/temp/emp_sparks (loc) @@ -150,7 +151,7 @@ /turf/proc/CardinalTurfsWithAccess(obj/item/card/id/ID) var/L[] = new() - for(var/d in cardinal) + for(var/d in GLOB.cardinals) var/turf/T = get_step(src, d) if(istype(T) && !T.density) if(!LinkBlockedWithAccess(src, T, ID)) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index e2dcf7ffb1db..c21a7a854bc3 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -37,8 +37,8 @@ should_patrol = 1 src.botcard = new(src) - if(RoleAuthority) - var/datum/job/ctequiv = RoleAuthority.roles_by_name[JOB_CARGO_TECH] + if(GLOB.RoleAuthority) + var/datum/job/ctequiv = GLOB.RoleAuthority.roles_by_name[JOB_CARGO_TECH] if(ctequiv) botcard.access = ctequiv.get_access() src.locked = 0 // Start unlocked so roboticist can set them to patrol. diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index f28a15ea1893..77e890d88d34 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -63,7 +63,7 @@ src.botcard = new /obj/item/card/id(src) if(isnull(src.botcard_access) || (src.botcard_access.len < 1)) - var/datum/job/J = RoleAuthority ? RoleAuthority.roles_by_path[/datum/job/civilian/doctor] : new /datum/job/civilian/doctor + var/datum/job/J = GLOB.RoleAuthority ? GLOB.RoleAuthority.roles_by_path[/datum/job/civilian/doctor] : new /datum/job/civilian/doctor botcard.access = J.get_access() else src.botcard.access = src.botcard_access diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index b70829c708ed..08437d35a8e3 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -70,8 +70,8 @@ /obj/structure/machinery/bot/mulebot/Initialize(mapload, ...) . = ..() botcard = new(src) - if(RoleAuthority) - var/datum/job/ctequiv = RoleAuthority.roles_by_name[JOB_CARGO_TECH] + if(GLOB.RoleAuthority) + var/datum/job/ctequiv = GLOB.RoleAuthority.roles_by_name[JOB_CARGO_TECH] if(ctequiv) botcard.access = ctequiv.get_access() cell = new(src) @@ -83,7 +83,7 @@ SSradio.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) var/count = 0 - for(var/obj/structure/machinery/bot/mulebot/other in machines) + for(var/obj/structure/machinery/bot/mulebot/other in GLOB.machines) count++ if(!suffix) suffix = "#[count]" @@ -551,7 +551,7 @@ var/speed = ((wires & WIRE_MOTOR1) ? 1:0) + ((wires & WIRE_MOTOR2) ? 2:0) switch(speed) if(0) - // do nothing + pass() if(1) process_bot() spawn(2) @@ -763,7 +763,6 @@ M.stop_pulling() M.apply_effect(8, STUN) M.apply_effect(5, WEAKEN) - M.lying = 1 ..() /obj/structure/machinery/bot/mulebot/alter_health() @@ -916,11 +915,11 @@ post_signal_multiple(control_freq, kv) /obj/structure/machinery/bot/mulebot/emp_act(severity) + . = ..() if (cell) cell.emp_act(severity) if(load) load.emp_act(severity) - ..() /obj/structure/machinery/bot/mulebot/explode() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index ee83c430c2db..8d4b27778c69 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -1,15 +1,3 @@ -/obj/structure/machinery/driver_button - name = "mass driver button" - icon = 'icons/obj/objects.dmi' - icon_state = "launcherbtt" - desc = "A remote control switch for a mass driver." - var/id = null - var/active = 0 - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 2 - active_power_usage = 4 - /obj/structure/machinery/ignition_switch name = "ignition switch" icon = 'icons/obj/objects.dmi' diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index d416c561fcd3..1a440d41bbed 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -35,6 +35,9 @@ var/colony_camera_mapload = TRUE + /// If this camera should have innate EMP-proofing + var/emp_proof = FALSE + /obj/structure/machinery/camera/Initialize(mapload, ...) . = ..() WireColorToFlag = randomCameraWires() @@ -61,7 +64,14 @@ /obj/structure/machinery/camera/update_icon() . = ..() - if(icon_state == "autocam_editor") + // If the camera has been EMPed. + if(stat & EMPED) + icon_state = "cameraemp" + // If the camera isn't EMPed, but is disabled. + else if(!status) + icon_state = "camera1" + // Otherwise, just give it the normal animated `icon_state`. + else icon_state = "camera" /obj/structure/machinery/camera/set_pixel_location() @@ -72,25 +82,28 @@ if(WEST) pixel_x = 27 /obj/structure/machinery/camera/emp_act(severity) - if(!isEmpProof()) - if(prob(100/severity)) - icon_state = "[initial(icon_state)]emp" - var/list/previous_network = network - network = list() - cameranet.removeCamera(src) - stat |= EMPED - set_light(0) - triggerCameraAlarm() - spawn(900) - network = previous_network - icon_state = initial(icon_state) - stat &= ~EMPED - cancelCameraAlarm() - if(can_use()) - cameranet.addCamera(src) - kick_viewers() - ..() + . = ..() + // If the camera is EMP proof, or it passed the RNG check. + if(isEmpProof() || !prob(100 / severity)) + return + + var/list/previous_network = network + network = list() + GLOB.cameranet.removeCamera(src) + stat |= EMPED + update_icon() + set_light(0) + triggerCameraAlarm() + kick_viewers() + addtimer(CALLBACK(src, PROC_REF(undo_emp), previous_network), 90 SECONDS) +/obj/structure/machinery/camera/proc/undo_emp(previous_network) + network = previous_network + stat &= ~EMPED + update_icon() + cancelCameraAlarm() + if(can_use()) + GLOB.cameranet.addCamera(src) /obj/structure/machinery/camera/ex_act(severity) if(src.invuln) @@ -101,7 +114,7 @@ /obj/structure/machinery/camera/proc/setViewRange(num = 7) src.view_range = num - cameranet.updateVisibility(src, 0) + GLOB.cameranet.updateVisibility(src, 0) /obj/structure/machinery/camera/attack_hand(mob/living/carbon/human/user as mob) @@ -186,10 +199,7 @@ visible_message(SPAN_WARNING("[user] has reactivated [src]!")) else visible_message(SPAN_WARNING("[user] has deactivated [src]!")) - if(status) - icon_state = "camera" - else - icon_state = "camera1" + update_icon() // now disconnect anyone using the camera //Apparently, this will disconnect anyone even if the camera was re-activated. //I guess that doesn't matter since they can't use it anyway? diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm index 41aa7fa32707..5a0a41fdc9bf 100644 --- a/code/game/machinery/camera/motion.dm +++ b/code/game/machinery/camera/motion.dm @@ -40,7 +40,7 @@ if (!status || (stat & NOPOWER)) return 0 if (detectTime == -1) - for (var/mob/living/silicon/aiPlayer in ai_mob_list) + for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) aiPlayer.cancelAlarm("Motion", get_area(src), src) detectTime = 0 return 1 @@ -49,7 +49,7 @@ if (!status || (stat & NOPOWER)) return 0 if (!detectTime) return 0 - for (var/mob/living/silicon/aiPlayer in ai_mob_list) + for (var/mob/living/silicon/aiPlayer in GLOB.ai_mob_list) aiPlayer.triggerAlarm("Motion", get_area(src), list(src), src) detectTime = -1 return 1 diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index a8735cbc06a8..1f680ad76712 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -30,6 +30,7 @@ network = list(CAMERA_NET_LASER_TARGETS) unslashable = TRUE unacidable = TRUE + emp_proof = TRUE /obj/structure/machinery/camera/laser_cam/Initialize(mapload, laser_name) . = ..() @@ -37,8 +38,6 @@ var/area/A = get_area(src) c_tag = "[laser_name] ([A.name])" -/obj/structure/machinery/camera/laser_cam/emp_act(severity) - return //immune to EMPs, just in case /obj/structure/machinery/camera/laser_cam/ex_act() return @@ -79,7 +78,7 @@ number = 1 var/area/A = get_area(src) if(A) - for(var/obj/structure/machinery/camera/autoname/C in machines) + for(var/obj/structure/machinery/camera/autoname/C in GLOB.machines) if(C == src) continue var/area/CA = get_area(C) if(CA.type == A.type) @@ -125,9 +124,7 @@ invisibility = 101 //fuck you init() colony_camera_mapload = FALSE - -/obj/structure/machinery/camera/autoname/lz_camera/emp_act(severity) - return //immune to EMPs, just in case + emp_proof = TRUE /obj/structure/machinery/camera/autoname/lz_camera/ex_act() return @@ -137,7 +134,7 @@ /obj/structure/machinery/camera/proc/isEmpProof() var/O = locate(/obj/item/stack/sheet/mineral/osmium) in assembly.upgrades - return O + return O || emp_proof /obj/structure/machinery/camera/proc/isXRay() var/obj/item/stock_parts/scanning_module/O = locate(/obj/item/stock_parts/scanning_module) in assembly.upgrades diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 806664e012de..190d51d3f7b8 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -4,7 +4,7 @@ /mob/living/silicon/ai/proc/InvalidTurf(turf/T as turf) if(!T) return 1 - if(is_admin_level(T.z)) + if(should_block_game_interaction(T)) return 1 if(T.z > 6) return 1 @@ -16,7 +16,7 @@ return var/list/L = list() - for (var/obj/structure/machinery/camera/C in cameranet.cameras) + for (var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) L.Add(C) camera_sort(L) @@ -213,9 +213,9 @@ return 0 if(isrobot(M)) var/mob/living/silicon/robot/R = M - if(!(R.camera && R.camera.can_use()) && !cameranet.checkCameraVis(M)) + if(!(R.camera && R.camera.can_use()) && !GLOB.cameranet.checkCameraVis(M)) return 0 - else if(!cameranet.checkCameraVis(M)) + else if(!GLOB.cameranet.checkCameraVis(M)) return 0 return 1 diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index fcd8c65e93ca..eb7a501fa078 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -80,11 +80,11 @@ return /obj/structure/machinery/cell_charger/emp_act(severity) + . = ..() if(inoperable()) return if(charging) charging.emp_act(severity) - ..(severity) /obj/structure/machinery/cell_charger/process() diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 08de86581518..55df45c70ccc 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -22,7 +22,7 @@ . = ..() icon_state = "grass[pick("1","2","3","4")]" update_icon() - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) if(istype(get_step(src, direction), /turf/open/floor)) var/turf/open/floor/FF = get_step(src,direction) FF.update_icon() //so siding get updated properly @@ -148,19 +148,19 @@ return M.forceMove(loc) M.apply_effect(5, WEAKEN) - for(var/obj/structure/machinery/scoreboard/X in machines) + for(var/obj/structure/machinery/scoreboard/X in GLOB.machines) if(X.id == id) X.score(side, 3)// 3 points for dunking a mob // no break, to update multiple scoreboards - visible_message(SPAN_DANGER("[user] dunks [M] into the [src]!")) + visible_message(SPAN_DANGER("[user] dunks [M] into [src]!")) return else if (istype(W, /obj/item) && get_dist(src,user)<2) user.drop_inv_item_to_loc(W, loc) - for(var/obj/structure/machinery/scoreboard/X in machines) + for(var/obj/structure/machinery/scoreboard/X in GLOB.machines) if(X.id == id) X.score(side) // no break, to update multiple scoreboards - visible_message(SPAN_NOTICE("[user] dunks [W] into the [src]!")) + visible_message(SPAN_NOTICE("[user] dunks [W] into [src]!")) return /obj/structure/holohoop/BlockedPassDirs(atom/movable/mover, target_dir) @@ -170,7 +170,7 @@ return BLOCKED_MOVEMENT if(prob(50)) I.forceMove(src.loc) - for(var/obj/structure/machinery/scoreboard/X in machines) + for(var/obj/structure/machinery/scoreboard/X in GLOB.machines) if(X.id == id) X.score(side) // no break, to update multiple scoreboards diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 67e4e8ed35ab..3a809620d7e6 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -68,7 +68,6 @@ src.occupant.updatehealth() if (src.occupant.health >= 0 && src.occupant.stat == DEAD) src.occupant.set_stat(CONSCIOUS) - src.occupant.lying = 0 GLOB.dead_mob_list -= src.occupant GLOB.alive_mob_list += src.occupant occupant.reload_fullscreens() diff --git a/code/game/machinery/computer/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index c3b17dbf8090..e9b969e023b8 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -72,7 +72,7 @@ var/list/data = list() var/list/messages = list() - data["alert_level"] = security_level + data["alert_level"] = GLOB.security_level data["time_request"] = cooldown_request data["time_destruct"] = cooldown_destruct @@ -81,9 +81,9 @@ data["worldtime"] = world.time - data["evac_status"] = EvacuationAuthority.evac_status - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_INITIATING) - data["evac_eta"] = EvacuationAuthority.get_status_panel_eta() + data["evac_status"] = SShijack.evac_status + if(SShijack.evac_status == EVACUATION_STATUS_INITIATED) + data["evac_eta"] = SShijack.get_evac_eta() if(!messagetitle.len) data["messages"] = null @@ -108,7 +108,6 @@ . = ..() if(.) return - switch(action) if("award") print_medal(usr, src) @@ -117,42 +116,51 @@ // evac stuff start \\ if("evacuation_start") - if(security_level < SEC_LEVEL_RED) + if(GLOB.security_level < SEC_LEVEL_RED) to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE log_game("[key_name(usr)] has called for an emergency evacuation.") message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") . = TRUE if("evacuation_cancel") - if(!EvacuationAuthority.cancel_evacuation()) - to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) return FALSE - addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/machinery/computer/almayer_control, cancel_evac)), 4 SECONDS) + if(!SShijack.cancel_evacuation()) + to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) + return FALSE log_game("[key_name(usr)] has canceled the emergency evacuation.") message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") + log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") . = TRUE // evac stuff end \\ if("change_sec_level") var/list/alert_list = list(num2seclevel(SEC_LEVEL_GREEN), num2seclevel(SEC_LEVEL_BLUE)) - switch(security_level) + switch(GLOB.security_level) if(SEC_LEVEL_GREEN) alert_list -= num2seclevel(SEC_LEVEL_GREEN) if(SEC_LEVEL_BLUE) @@ -167,8 +175,7 @@ set_security_level(seclevel2num(level_selected), log = ARES_LOG_NONE) log_game("[key_name(usr)] has changed the security level to [get_security_level()].") message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Manual Security Update", "[usr] has changed the security level to [get_security_level()].") + log_ares_security("Manual Security Update", "[usr] has changed the security level to [get_security_level()].") . = TRUE if("messageUSCM") @@ -223,7 +230,7 @@ to_chat(usr, SPAN_WARNING("The distress beacon has recently broadcast a message. Please wait.")) return FALSE - if(security_level == SEC_LEVEL_DELTA) + if(GLOB.security_level == SEC_LEVEL_DELTA) to_chat(usr, SPAN_WARNING("The ship is already undergoing self-destruct procedures!")) return FALSE @@ -280,10 +287,3 @@ // end tgui interact \\ // end tgui \\ - -/obj/structure/machinery/computer/almayer_control/proc/cancel_evac() - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_STANDING_BY)//nothing changed during the wait - //if the self_destruct is active we try to cancel it (which includes lowering alert level to red) - if(!EvacuationAuthority.cancel_self_destruct(1)) - //if SD wasn't active (likely canceled manually in the SD room), then we lower the alert level manually. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 8d35dd1b6aff..1ac5a06738d5 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -165,8 +165,8 @@ return /obj/structure/machinery/computer/arcade/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return var/empprize = null var/num_of_prizes = 0 @@ -178,5 +178,3 @@ for(num_of_prizes; num_of_prizes > 0; num_of_prizes--) empprize = pickweight(prizes) new empprize(src.loc) - - ..(severity) diff --git a/code/game/machinery/computer/area_air_control.dm b/code/game/machinery/computer/area_air_control.dm index 22f4211aa8ee..cd9870f175c4 100644 --- a/code/game/machinery/computer/area_air_control.dm +++ b/code/game/machinery/computer/area_air_control.dm @@ -156,7 +156,7 @@ var/turf/T = get_turf(src) if(!T.loc) return - for(var/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in machines ) + for(var/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/scrubber in GLOB.machines ) var/turf/T2 = get_turf(scrubber) if(T2 && T2.loc) var/area/A = T2.loc diff --git a/code/game/machinery/computer/camera_console.dm b/code/game/machinery/computer/camera_console.dm index 281c548227b0..1a00e194b5eb 100644 --- a/code/game/machinery/computer/camera_console.dm +++ b/code/game/machinery/computer/camera_console.dm @@ -69,7 +69,7 @@ return attack_hand(user) /obj/structure/machinery/computer/cameras/attack_hand(mob/user) - if(!admin_console && is_admin_level(z)) + if(!admin_console && should_block_game_interaction(src)) to_chat(user, SPAN_DANGER("Unable to establish a connection: \black You're too far away from the ship!")) return if(inoperable()) @@ -226,7 +226,7 @@ // Returns the list of cameras accessible from this computer /obj/structure/machinery/computer/cameras/proc/get_available_cameras() var/list/D = list() - for(var/obj/structure/machinery/camera/C in cameranet.cameras) + for(var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) if(!C.network) stack_trace("Camera in a cameranet has no camera network") continue @@ -354,8 +354,8 @@ exproof = TRUE colony_camera_mapload = FALSE -/obj/structure/machinery/computer/cameras/mortar/emp_act(severity) - return FALSE +/obj/structure/machinery/computer/cameras/mortar/set_broken() + return /obj/structure/machinery/computer/cameras/dropship name = "abstract dropship camera computer" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index f7ea31fba36a..bcc4c4ac3ec8 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -43,7 +43,7 @@ var/stat_msg1 var/stat_msg2 - var/datum/tacmap/tacmap + var/datum/tacmap/drawing/tacmap var/minimap_type = MINIMAP_FLAG_USCM processing = TRUE @@ -65,7 +65,6 @@ if(..()) return FALSE usr.set_interaction(src) - var/datum/ares_link/link = GLOB.ares_link switch(href_list["operation"]) if("mapview") tacmap.tgui_interact(usr) @@ -99,9 +98,9 @@ if(-INFINITY to SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN //Cannot go below green. if(SEC_LEVEL_BLUE to INFINITY) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot go above blue. - var/old_level = security_level + var/old_level = GLOB.security_level set_security_level(tmp_alertlevel) - if(security_level != old_level) + if(GLOB.security_level != old_level) //Only notify the admins if an actual change happened log_game("[key_name(usr)] has changed the security level to [get_security_level()].") message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") @@ -135,41 +134,47 @@ if("evacuation_start") if(state == STATE_EVACUATION) - if(security_level < SEC_LEVEL_DELTA) + if(GLOB.security_level < SEC_LEVEL_DELTA) to_chat(usr, SPAN_WARNING("The ship must be under delta alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE log_game("[key_name(usr)] has called for an emergency evacuation.") message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - link.log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") return TRUE state = STATE_EVACUATION if("evacuation_cancel") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(state == STATE_EVACUATION_CANCEL) - if(!EvacuationAuthority.cancel_evacuation()) + if(!SShijack.cancel_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) return FALSE - spawn(35)//some time between AI announcements for evac cancel and SD cancel. - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_STANDING_BY)//nothing changed during the wait - //if the self_destruct is active we try to cancel it (which includes lowering alert level to red) - if(!EvacuationAuthority.cancel_self_destruct(1)) - //if SD wasn't active (likely canceled manually in the SD room), then we lower the alert level manually. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. - log_game("[key_name(usr)] has canceled the emergency evacuation.") message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") - link.log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") + log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") return TRUE state = STATE_EVACUATION_CANCEL @@ -193,7 +198,7 @@ to_chat(usr, SPAN_WARNING("The distress beacon has recently broadcast a message. Please wait.")) return FALSE - if(security_level == SEC_LEVEL_DELTA) + if(GLOB.security_level == SEC_LEVEL_DELTA) to_chat(usr, SPAN_WARNING("The ship is already undergoing self-destruct procedures!")) return FALSE @@ -328,8 +333,8 @@ user.set_interaction(src) var/dat = "Communications Console" - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_INITIATING) - dat += "Evacuation in Progress\n
\nETA: [EvacuationAuthority.get_status_panel_eta()]
" + if(SShijack.evac_status == EVACUATION_STATUS_INITIATED) + dat += "Evacuation in Progress\n
\nETA: [SShijack.get_evac_eta()]
" switch(state) if(STATE_DEFAULT) if(authenticated) @@ -352,9 +357,11 @@ dat += "
Award a medal" dat += "
Send Distress Beacon" dat += "
Activate Self-Destruct" - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_STANDING_BY) dat += "
Initiate emergency evacuation" - if(EVACUATION_STATUS_INITIATING) dat += "
Cancel emergency evacuation" + switch(SShijack.evac_status) + if(EVACUATION_STATUS_NOT_INITIATED) + dat += "
Initiate emergency evacuation" + if(EVACUATION_STATUS_INITIATED) + dat += "
Cancel emergency evacuation" else dat += "
LOG IN" @@ -409,20 +416,8 @@ if(STATE_ALERT_LEVEL) dat += "Current alert level: [get_security_level()]
" - if(security_level == SEC_LEVEL_DELTA) - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_ACTIVE) - dat += SET_CLASS("The self-destruct mechanism is active. [EvacuationAuthority.evac_status != EVACUATION_STATUS_INITIATING ? "You have to manually deactivate the self-destruct mechanism." : ""]", INTERFACE_RED) - dat += "
" - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_INITIATING) - dat += SET_CLASS("Evacuation initiated. Evacuate or rescind evacuation orders.", INTERFACE_RED) - if(EVACUATION_STATUS_IN_PROGRESS) - dat += SET_CLASS("Evacuation in progress.", INTERFACE_RED) - if(EVACUATION_STATUS_COMPLETE) - dat += SET_CLASS("Evacuation complete.", INTERFACE_RED) - else - dat += "Blue
" - dat += "Green" + dat += "Blue
" + dat += "Green" if(STATE_CONFIRM_LEVEL) dat += "Current alert level: [get_security_level()]
" diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index adce72f7d8b6..c33517796271 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -31,8 +31,9 @@ return 1 /obj/structure/machinery/computer/emp_act(severity) - if(prob(20/severity)) set_broken() - ..() + . = ..() + if(prob(20/severity)) + set_broken() /obj/structure/machinery/computer/ex_act(severity) @@ -53,8 +54,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/computer/bullet_act(obj/projectile/Proj) if(exproof) diff --git a/code/game/machinery/computer/demo_sim.dm b/code/game/machinery/computer/demo_sim.dm index 15261cfc8f4b..f633e8f351d4 100644 --- a/code/game/machinery/computer/demo_sim.dm +++ b/code/game/machinery/computer/demo_sim.dm @@ -55,7 +55,6 @@ var/list/data = list() data["configuration"] = configuration - data["looking"] = simulation.looking_at_simulation data["dummy_mode"] = simulation.dummy_mode data["worldtime"] = world.time @@ -104,8 +103,7 @@ /obj/structure/machinery/computer/demo_sim/ui_close(mob/user) . = ..() - if(simulation.looking_at_simulation) - simulation.stop_watching(user) + simulation.stop_watching(user) // DEMOLITIONS TGUI SHIT END \\ diff --git a/code/game/machinery/computer/dropship_weapons.dm b/code/game/machinery/computer/dropship_weapons.dm index 60bf17388db8..db376c40029c 100644 --- a/code/game/machinery/computer/dropship_weapons.dm +++ b/code/game/machinery/computer/dropship_weapons.dm @@ -11,7 +11,6 @@ exproof = TRUE var/shuttle_tag // Used to know which shuttle we're linked to. var/obj/structure/dropship_equipment/selected_equipment //the currently selected equipment installed on the shuttle this console controls. - var/list/shuttle_equipments = list() //list of the equipments on the shuttle this console controls var/cavebreaker = FALSE //ignore caves and other restrictions? var/datum/cas_fire_envelope/firemission_envelope var/datum/cas_fire_mission/selected_firemission @@ -25,15 +24,41 @@ var/datum/simulator/simulation var/datum/cas_fire_mission/configuration + // groundside maps + var/datum/tacmap/tacmap + var/minimap_type = MINIMAP_FLAG_USCM + + // Cameras + var/camera_target_id + var/camera_width = 11 + var/camera_height = 11 + var/camera_map_name + + var/registered = FALSE + /obj/structure/machinery/computer/dropship_weapons/Initialize() . = ..() simulation = new() + tacmap = new(src, minimap_type) + + RegisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED, PROC_REF(camera_mapname_update)) + + // camera setup + AddComponent(/datum/component/camera_manager) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) /obj/structure/machinery/computer/dropship_weapons/New() ..() if(firemission_envelope) firemission_envelope.linked_console = src +/obj/structure/machinery/computer/dropship_weapons/proc/camera_mapname_update(source, value) + camera_map_name = value + +/obj/structure/machinery/computer/dropship_weapons/Destroy() + . = ..() + UnregisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED) + /obj/structure/machinery/computer/dropship_weapons/attack_hand(mob/user) if(..()) return @@ -43,7 +68,7 @@ to_chat(user, SPAN_WARNING("Weapons modification access denied, attempting to launch simulation.")) if(!selected_firemission) - to_chat(usr, SPAN_WARNING("Firemission must be selected before attempting to run the simulation")) + to_chat(user, SPAN_WARNING("Firemission must be selected before attempting to run the simulation")) return tgui_interact(user) @@ -54,139 +79,41 @@ /obj/structure/machinery/computer/dropship_weapons/attackby(obj/item/W, mob/user as mob) if(istype(W, /obj/item/frame/matrix_frame)) - var/obj/item/frame/matrix_frame/MATRIX = W - if(MATRIX.state == ASSEMBLY_LOCKED) + var/obj/item/frame/matrix_frame/matrix = W + if(matrix.state == ASSEMBLY_LOCKED) user.drop_held_item(W, src) W.forceMove(src) to_chat(user, SPAN_NOTICE("You swap the matrix in the dropship guidance camera system, destroying the older part in the process")) - upgraded = MATRIX.upgrade - matrixcol = MATRIX.matrixcol - power = MATRIX.power + upgraded = matrix.upgrade + matrixcol = matrix.matrixcol + power = matrix.power else - to_chat(user, SPAN_WARNING("matrix is not complete!")) + to_chat(user, SPAN_WARNING("Matrix is not complete!")) + +/obj/structure/machinery/computer/dropship_weapons/proc/equipment_update(obj/docking_port/mobile/marine_dropship/dropship) + SIGNAL_HANDLER + var/list/obj/structure/dropship_equipment/weapons = list() + for(var/obj/structure/dropship_equipment/weapon/weap as anything in dropship.equipments) + weapons.Add(weap) + firemission_envelope.update_weapons(weapons) /obj/structure/machinery/computer/dropship_weapons/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 0) - var/data[0] var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) if (!istype(dropship)) return - var/shuttle_state - switch(dropship.mode) - if(SHUTTLE_IDLE) - shuttle_state = "idle" - if(SHUTTLE_IGNITING) - shuttle_state = "warmup" - if(SHUTTLE_CALL) - shuttle_state = "in_transit" - if(SHUTTLE_CRASHED) - shuttle_state = "crashed" - - - var/list/equipment_data = list() - var/list/targets_data = list() - var/list/firemission_data = list() - var/list/firemission_edit_data = list() - var/list/firemission_edit_timeslices = list() - - for(var/ts = 1; ts<=firemission_envelope.fire_length; ts++) - firemission_edit_timeslices += ts - - var/current_mission_error = null - if(!faction) - return //no faction, no weapons - - var/datum/cas_iff_group/cas_group = cas_groups[faction] - - if(!cas_group) - return //broken group. No fighting - - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(!istype(LT) || !LT.valid_signal()) - continue - var/area/laser_area = get_area(LT.signal_loc) - targets_data += list(list("target_name" = "[LT.name] ([laser_area.name])", "target_tag" = LT.target_id)) - shuttle_equipments = dropship.equipments - var/element_nbr = 1 - for(var/X in dropship.equipments) - var/obj/structure/dropship_equipment/E = X - equipment_data += list(list("name"= sanitize(copytext(E.name,1,MAX_MESSAGE_LEN)), "eqp_tag" = element_nbr, "is_weapon" = E.is_weapon, "is_interactable" = E.is_interactable)) - element_nbr++ - E.linked_console = src - - - var/selected_eqp_name = "" - var/selected_eqp_ammo_name = "" - var/selected_eqp_ammo_amt = 0 - var/selected_eqp_max_ammo_amt = 0 var/screen_mode = 0 - var/fm_length = 0 - var/fm_offset = 0 - var/fm_direction = "" - var/fm_step_text = "" - var/firemission_signal - var/firemission_stat = 0 - if(selected_equipment) - selected_eqp_name = sanitize(copytext(selected_equipment.name,1,MAX_MESSAGE_LEN)) - if(selected_equipment.ammo_equipped) - selected_eqp_ammo_name = sanitize(copytext(selected_equipment.ammo_equipped.name,1,MAX_MESSAGE_LEN)) - selected_eqp_ammo_amt = selected_equipment.ammo_equipped.ammo_count - selected_eqp_max_ammo_amt = selected_equipment.ammo_equipped.max_ammo_count - screen_mode = selected_equipment.screen_mode - - var/firemission_id = 1 - var/found_selected = FALSE if(firemission_envelope) - firemission_stat = firemission_envelope.stat - fm_step_text = firemission_envelope.firemission_status_message() - for(var/datum/cas_fire_mission/X in firemission_envelope.missions) - if(!istype(X)) - continue //the fuck - var/error_code = X.check(src) - - var/selected = X == selected_firemission - if(error_code != FIRE_MISSION_ALL_GOOD && selected) - selected = FALSE - selected_firemission = null - var/can_edit = error_code != FIRE_MISSION_CODE_ERROR && !selected - - if(selected) - found_selected = TRUE - var/can_interact = firemission_envelope.stat == FIRE_MISSION_STATE_IDLE && error_code == FIRE_MISSION_ALL_GOOD - firemission_data += list(list("name"= sanitize(copytext(X.name,1,MAX_MESSAGE_LEN)), "mission_tag" = firemission_id, "can_edit" = can_edit, "can_interact" = can_interact, "selected" = selected)) - firemission_id++ - if(!istype(editing_firemission)) editing_firemission = null - //the fuck if(editing_firemission) var/error_code = editing_firemission.check(src) var/can_edit = error_code != FIRE_MISSION_CODE_ERROR - if(error_code != FIRE_MISSION_ALL_GOOD) - current_mission_error = editing_firemission.error_message(error_code) - else - current_mission_error = null if(!can_edit) editing_firemission = null //abort - else - screen_mode = 2 - for(var/datum/cas_fire_mission_record/firerec in editing_firemission.records) - var/gimbal = firerec.get_offsets() - var/ammo = firerec.get_ammo() - var/offsets = new /list(firerec.offsets.len) - for(var/idx = 1; idx < firerec.offsets.len; idx++) - offsets[idx] = firerec.offsets[idx] == null ? "-" : firerec.offsets[idx] - firemission_edit_data += list(list("name" = sanitize(copytext(firerec.weapon.name, 1, 50)), "ammo" = ammo, "gimbal" = gimbal, "offsets" = firerec.offsets)) - - if(!found_selected) - selected_firemission = null - - if(editing_firemission) - fm_length = editing_firemission.mission_length if((screen_mode != 0 && in_firemission_mode) || !selected_firemission) in_firemission_mode = FALSE @@ -196,490 +123,662 @@ selected_firemission = null if(selected_firemission && in_firemission_mode) screen_mode = 3 - fm_offset = firemission_envelope.recorded_offset - fm_direction = dir2text(firemission_envelope.recorded_dir) if(firemission_envelope.recorded_loc && (!firemission_envelope.recorded_loc.signal_loc || !firemission_envelope.recorded_loc.signal_loc:loc)) firemission_envelope.recorded_loc = null - firemission_signal = firemission_envelope.recorded_loc?firemission_envelope.recorded_loc.get_name() : "NOT SELECTED" - if(!fm_direction) - fm_direction = "NOT SELECTED" - - if(screen_mode != 3 || !selected_firemission || shuttle_state != "in_transit") - update_location(null) - // /if(firemission_envelope) - - data = list( - "shuttle_state" = shuttle_state, - "fire_mission_enabled" = dropship.in_flyby, - "equipment_data" = equipment_data, - "targets_data" = targets_data, - "selected_eqp" = selected_eqp_name, - "selected_eqp_ammo_name" = selected_eqp_ammo_name, - "selected_eqp_ammo_amt" = selected_eqp_ammo_amt, - "selected_eqp_max_ammo_amt" = selected_eqp_max_ammo_amt, - "screen_mode" = screen_mode, - "firemission_data" = firemission_data, - "editing_firemission" = editing_firemission, - "editing_firemission_length" = fm_length, - "firemission_edit_data" = firemission_edit_data, - "current_mission_error" = current_mission_error, - "firemission_edit_timeslices" = firemission_edit_timeslices, - "has_firemission" = !!firemission_envelope, - "can_firemission" = !!selected_firemission && shuttle_state == "in_transit", - "can_launch_firemission" = !!selected_firemission && shuttle_state == "in_transit" && firemission_stat != FIRE_MISSION_STATE_IDLE, - //firemission related stuff - "firemission_name" = (selected_firemission ? selected_firemission.name : ""), - "firemission_selected_laser" = firemission_signal, - "firemission_offset" = fm_offset, - "firemission_direction" = fm_direction, - "firemission_message" = fm_step_text, - "firemission_step" = firemission_stat, - ) + if(screen_mode != 3 || !selected_firemission || dropship.mode != SHUTTLE_CALL) + update_location(user, null) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui_data(user) + if(!tacmap.map_holder) + var/level = SSmapping.levels_by_trait(tacmap.targeted_ztrait) + tacmap.map_holder = SSminimaps.fetch_tacmap_datum(level[1], tacmap.allowed_flags) + user.client.register_map_obj(tacmap.map_holder.map) + tgui_interact(user) + +/obj/structure/machinery/computer/dropship_weapons/tgui_interact(mob/user, datum/tgui/ui) + if(!registered) + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + RegisterSignal(dropship, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(equipment_update)) + RegisterSignal(dropship, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(equipment_update)) + registered=TRUE + ui = SStgui.try_update_ui(user, src, ui) if (!ui) - ui = new(user, src, ui_key, "dropship_weapons_console.tmpl", "Weapons Control", 800, 600) - ui.set_initial_data(data) + SEND_SIGNAL(src, COMSIG_CAMERA_REGISTER_UI, user) + ui = new(user, src, "DropshipWeaponsConsole", "Weapons Console") ui.open() - ui.set_auto_update(1) -/obj/structure/machinery/computer/dropship_weapons/Topic(href, href_list) - if(..()) - return +/obj/structure/machinery/computer/dropship_weapons/ui_close(mob/user) + . = ..() + SEND_SIGNAL(src, COMSIG_CAMERA_UNREGISTER_UI, user) + simulation.stop_watching(user) - add_fingerprint(usr) +/obj/structure/machinery/computer/dropship_weapons/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(inoperable()) + return UI_CLOSE + if(!faction) + return UI_CLOSE + + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + if(!cas_group) + return UI_CLOSE + +/obj/structure/machinery/computer/dropship_weapons/ui_state(mob/user) + return GLOB.not_incapacitated_and_adjacent_strict_state +/obj/structure/machinery/computer/dropship_weapons/ui_static_data(mob/user) + . = list() + .["tactical_map_ref"] = tacmap.map_holder.map_ref + .["camera_map_ref"] = camera_map_name + +/obj/structure/machinery/computer/dropship_weapons/ui_data(mob/user) + . = list() var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) if (!istype(dropship)) return - if(href_list["equip_interact"]) - var/base_tag = text2num(href_list["equip_interact"]) - var/obj/structure/dropship_equipment/E = shuttle_equipments[base_tag] - E.linked_console = src - E.equipment_interact(usr) - - if(href_list["open_fire"]) - var/targ_id = text2num(href_list["open_fire"]) - var/mob/M = usr - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.allow_gun_usage) - to_chat(H, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) - return - var/obj/structure/dropship_equipment/weapon/DEW = selected_equipment - if(!selected_equipment || !selected_equipment.is_weapon) - to_chat(usr, SPAN_WARNING("No weapon selected.")) - return - if(!skillcheck(M, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("You don't have the training to fire this weapon!")) - return + var/datum/cas_signal/sig = get_cas_signal(camera_target_id) + if(camera_target_id && !sig) + set_camera_target(null) - if(!faction) - return //no faction, no weapons - - var/datum/cas_iff_group/cas_group = cas_groups[faction] - - if(!cas_group) - return //broken group. No fighting - - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(LT.target_id == targ_id && LT.valid_signal()) - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Dropship can only fire while in flight.")) - return - if(dropship.door_override) - return - if(!selected_equipment || !selected_equipment.is_weapon) - to_chat(usr, SPAN_WARNING("No weapon selected.")) - return - DEW = selected_equipment // for if the weapon somehow changes - if(!skillcheck(M, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("You don't have the training to fire this weapon!")) - return - if(!dropship.in_flyby && DEW.fire_mission_only) - to_chat(usr, SPAN_WARNING("[DEW] requires a fire mission flight type to be fired.")) - return - - if(!DEW.ammo_equipped || DEW.ammo_equipped.ammo_count <= 0) - to_chat(usr, SPAN_WARNING("[DEW] has no ammo.")) - return - if(DEW.last_fired > world.time - DEW.firing_delay) - to_chat(usr, SPAN_WARNING("[DEW] just fired, wait for it to cool down.")) - return - if(!LT.signal_loc) - return - var/turf/TU = get_turf(LT.signal_loc) - var/area/targ_area = get_area(LT.signal_loc) - var/is_outside = FALSE - if(is_ground_level(TU.z)) - switch(targ_area.ceiling) - if(CEILING_NONE) - is_outside = TRUE - if(CEILING_GLASS) - is_outside = TRUE - if(!is_outside && !cavebreaker) //cavebreaker doesn't care - to_chat(usr, SPAN_WARNING("INVALID TARGET: target must be visible from high altitude.")) - return - if (protected_by_pylon(TURF_PROTECTION_CAS, TU)) - to_chat(usr, SPAN_WARNING("INVALID TARGET: biological-pattern interference with signal.")) - return - if(!DEW.ammo_equipped.can_fire_at(TU, usr)) - return - - DEW.open_fire(LT.signal_loc) - break - - if(href_list["deselect"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - selected_equipment = null + .["screen_mode"] = get_screen_mode() - if(href_list["create_mission"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.max_mission_len <= firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Cannot store more than [firemission_envelope.max_mission_len] Fire Missions.")) - return - var/fm_name = stripped_input(usr, "", "Enter Fire Mission Name", "Fire Mission [firemission_envelope.missions.len+1]", 50) - if(!fm_name || length(fm_name) < 5) - to_chat(usr, SPAN_WARNING("Name too short (at least 5 symbols).")) - return - var/fm_length = stripped_input(usr, "Enter length of the Fire Mission. Has to be less than [firemission_envelope.fire_length]. Use something that divides [firemission_envelope.fire_length] for optimal performance.", "Fire Mission Length (in tiles)", "[firemission_envelope.fire_length]", 5) - var/fm_length_n = text2num(fm_length) - if(!fm_length_n) - to_chat(usr, SPAN_WARNING("Incorrect input format.")) - return - if(fm_length_n > firemission_envelope.fire_length) - to_chat(usr, SPAN_WARNING("Fire Mission is longer than allowed by this vehicle.")) - return - if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) - to_chat(usr, SPAN_WARNING("Vehicle has to be idle to allow Fire Mission editing and creation.")) - return - //everything seems to be fine now - firemission_envelope.generate_mission(fm_name, fm_length_n) - - if(href_list["mission_tag_delete"]) - var/ref = text2num(href_list["mission_tag_delete"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or already deleted.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - to_chat(usr, SPAN_WARNING("Can't delete selected Fire Mission.")) - return - var/result = firemission_envelope.delete_firemission(ref) - if(result != 1) - to_chat(usr, SPAN_WARNING("Unable to delete Fire Mission while in combat.")) - return + // dropship info + .["shuttle_state"] = dropship.mode + .["fire_mission_enabled"] = dropship.in_flyby - if(href_list["mission_tag"]) - var/ref = text2num(href_list["mission_tag"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - selected_firemission = null - else - selected_firemission = firemission_envelope.missions[ref] + // equipment info + .["equipment_data"] = get_sanitised_equipment(user, dropship) - if(href_list["mission_tag_edit"]) - var/ref = text2num(href_list["mission_tag_edit"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(ref>firemission_envelope.missions.len) - to_chat(usr, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) - return - if(selected_firemission == firemission_envelope.missions[ref]) - to_chat(usr, SPAN_WARNING("Can't edit selected Fire Mission.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - editing_firemission = firemission_envelope.missions[ref] + // medevac targets + .["medevac_targets"] = list() + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if (istype(equipment, /obj/structure/dropship_equipment/medevac_system)) + var/obj/structure/dropship_equipment/medevac_system/medevac = equipment + .["medevac_targets"] += medevac.ui_data(user) + // fultons - if(href_list["leave_firemission_editing"]) - editing_firemission = null + .["fulton_targets"] = list() + for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) + if (istype(equipment, /obj/structure/dropship_equipment/fulton_system)) + var/obj/structure/dropship_equipment/fulton_system/fult = equipment + .["fulton_targets"] += fult.ui_data(user) - if(href_list["switch_to_firemission"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - in_firemission_mode = TRUE + .["targets_data"] = get_targets() + .["camera_target"] = camera_target_id - if(href_list["switch_to_simulation"]) - if(!selected_firemission) - to_chat(usr, SPAN_WARNING("Select a firemission before attempting to run the simulation")) - return + if(selected_equipment) + .["selected_eqp"] = selected_equipment.ship_base.attach_id + if(selected_equipment.ammo_equipped) + var/obj/structure/ship_ammo/ammo_equipped = selected_equipment.ammo_equipped + .["selected_eqp_ammo_name"] = sanitize(copytext(ammo_equipped.name, 1, MAX_MESSAGE_LEN)) + .["selected_eqp_ammo_amt"] = ammo_equipped.ammo_count + .["selected_eqp_max_ammo_amt"] = ammo_equipped.max_ammo_count + + // firemission info + .["has_firemission"] = !!firemission_envelope + .["can_firemission"] = !!selected_firemission && dropship.mode == SHUTTLE_CALL + if(editing_firemission) + .["editing_firemission"] = editing_firemission + .["editing_firemission_length"] = editing_firemission ? editing_firemission.mission_length : 0 + var/error_code = editing_firemission.check(src) + .["current_mission_error"] = error_code != FIRE_MISSION_ALL_GOOD ? editing_firemission.error_message(error_code) : null + .["firemission_edit_data"] = get_edit_firemission_data() - configuration = selected_firemission + if(firemission_envelope) + .["can_launch_firemission"] = !!selected_firemission && dropship.mode == SHUTTLE_CALL && firemission_envelope.stat != FIRE_MISSION_STATE_IDLE + .["firemission_data"] = get_firemission_data(user) + .["firemission_state"] = firemission_envelope.stat + .["firemission_offset"] = firemission_envelope.recorded_offset + .["firemission_message"] = firemission_envelope.firemission_status_message() + .["firemission_name"] = selected_firemission ? selected_firemission.name : "" + .["firemission_step"] = firemission_envelope.stat + .["firemission_selected_laser"] = firemission_envelope.recorded_loc ? firemission_envelope.recorded_loc.get_name() : "NOT SELECTED" + + .["configuration"] = configuration + .["dummy_mode"] = simulation.dummy_mode + .["worldtime"] = world.time + .["nextdetonationtime"] = simulation.detonation_cooldown + .["detonation_cooldown"] = simulation.detonation_cooldown_time - // simulation mode - tgui_interact(usr) +/obj/structure/machinery/computer/dropship_weapons/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + if(shuttle.is_hijacked) + return - if(href_list["leave_firemission_execution"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - firemission_envelope.remove_user_from_tracking(usr) - in_firemission_mode = FALSE + var/mob/user = ui.user + switch(action) + if("button_push") + playsound(src, get_sfx("terminal_button"), 25, FALSE) + return TRUE - if(href_list["change_direction"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - var/list/directions = list(dir2text(NORTH), dir2text(SOUTH), dir2text(EAST), dir2text(WEST)) - var/chosen = tgui_input_list(usr, "Select new Direction for the strafing run", "Select Direction", directions) + if("select_equipment") + var/base_tag = params["equipment_id"] + ui_equip_interact(user, base_tag) + return TRUE - var/chosen_dir = text2dir(chosen) - if(!chosen_dir) - to_chat(usr, SPAN_WARNING("Error with direction detected.")) - return + if("start_watching") + simulation.start_watching(user) + . = TRUE - update_direction(chosen_dir) + if("stop_watching") + simulation.stop_watching(user) + . = TRUE - if(href_list["change_offset"]) - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return + if("execute_simulated_firemission") + if(!configuration) + to_chat(user, SPAN_WARNING("No configured firemission")) + return + simulate_firemission(user) + . = TRUE - var/chosen = stripped_input(usr, "Select Fire Mission length, from 0 to [firemission_envelope.max_offset]", "Select Offset", "[firemission_envelope.recorded_offset]", 2) - var/chosen_offset = text2num(chosen) + if("switch_firemission") + configuration = tgui_input_list(user, "Select firemission to simulate", "Select firemission", firemission_envelope.missions, 30 SECONDS) + if(!selected_firemission) + to_chat(user, SPAN_WARNING("No configured firemission")) + return + if(!configuration) + configuration = selected_firemission + . = TRUE - if(chosen_offset == null) - to_chat(usr, SPAN_WARNING("Error with offset detected.")) - return + if("switchmode") + simulation.dummy_mode = tgui_input_list(user, "Select target type to simulate", "Target type", simulation.target_types, 30 SECONDS) + if(!simulation.dummy_mode) + simulation.dummy_mode = CLF_MODE + . = TRUE - update_offset(chosen_offset) + if("set-camera") + var/target_camera = params["equipment_id"] + set_camera_target(target_camera) + return TRUE + + if("set-camera-sentry") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if (istype(equipment, /obj/structure/dropship_equipment/sentry_holder)) + var/obj/structure/dropship_equipment/sentry_holder/sentry = equipment + var/obj/structure/machinery/defenses/sentry/defense = sentry.deployed_turret + if (defense.has_camera) + defense.set_range() + var/datum/shape/rectangle/current_bb = defense.range_bounds + SEND_SIGNAL(src, COMSIG_CAMERA_SET_AREA, current_bb.center_x, current_bb.center_y, defense.loc.z, current_bb.width, current_bb.height) + return TRUE + + if("clear-camera") + set_camera_target(null) + return TRUE + + if("medevac-target") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if (istype(equipment, /obj/structure/dropship_equipment/medevac_system)) + var/obj/structure/dropship_equipment/medevac_system/medevac = equipment + var/target_ref = params["ref"] + medevac.automate_interact(user, target_ref) + if(medevac.linked_stretcher) + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, medevac.linked_stretcher, 5, 5) + return TRUE + if("fulton-target") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + if (istype(equipment, /obj/structure/dropship_equipment/fulton_system)) + var/obj/structure/dropship_equipment/fulton_system/fulton = equipment + var/target_ref = params["ref"] + fulton.automate_interact(user, target_ref) + return TRUE + if("fire-weapon") + var/weapon_tag = params["eqp_tag"] + var/obj/structure/dropship_equipment/weapon/DEW = get_weapon(weapon_tag) + if(!DEW) + return FALSE + + var/datum/cas_signal/sig = get_cas_signal(camera_target_id) + + if(!sig) + return FALSE + + selected_equipment = DEW + ui_open_fire(user, shuttle, camera_target_id) + return TRUE + if("deploy-equipment") + var/equipment_tag = params["equipment_id"] + for(var/obj/structure/dropship_equipment/equipment as anything in shuttle.equipments) + var/mount_point = equipment.ship_base.attach_id + if(mount_point != equipment_tag) + continue + equipment.equipment_interact(user) + return TRUE + + if("firemission-create") + var/name = params["firemission_name"] + var/length = params["firemission_length"] + var/length_n = text2num(length) + if(!length_n) + to_chat(user, SPAN_WARNING("Incorrect input format.")) + return FALSE + ui_create_firemission(user, name, length_n) + return TRUE + + if("firemission-delete") + var/name = params["firemission_name"] + ui_delete_firemission(user, name) + return TRUE + + if("firemission-dual-offset-camera") + var/target_id = params["target_id"] + + var/x_offset_value = params["x_offset_value"] + var/y_offset_value = params["y_offset_value"] + + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + var/datum/cas_signal/cas_sig + for(var/X in cas_group.cas_signals) + var/datum/cas_signal/LT = X + if(LT.target_id == target_id && LT.valid_signal()) + cas_sig = LT + break + // we don't want rapid offset changes to trigger admin warnings + // and block the user from accessing TGUI + // we change the minute_count + user.client.reduce_minute_count() + if(!cas_sig) + return TRUE + + // find position of cas_sig with offset dir and value applied + var/dx = text2num(x_offset_value) + var/dy = text2num(y_offset_value) + + var/obj/current = cas_sig.signal_loc + var/obj/new_target = locate( + current.x + dx, + current.y + dy, + current.z) + + firemission_envelope.change_current_loc(new_target) + + return TRUE + if("nvg-enable") + SEND_SIGNAL(src, COMSIG_CAMERA_SET_NVG, 5, "#7aff7a") + return TRUE + if("nvg-disable") + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR_NVG) + return TRUE + + if("firemission-edit") + var/fm_tag = text2num(params["tag"]) + var/weapon_id = text2num(params["weapon_id"]) + var/offset_id = text2num(params["offset_id"]) + var/offset_value = text2num(params["offset_value"]) + return ui_firemission_change_offset(user, fm_tag, weapon_id, offset_id + 1, offset_value) + + if("firemission-execute") + var/fm_tag = text2num(params["tag"]) + var/direction = params["direction"] + var/target_id = params["target_id"] + var/offset_x_value = params["offset_x_value"] + var/offset_y_value = params["offset_y_value"] + + if(!ui_select_firemission(user, fm_tag)) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + if(!update_direction(user, text2num(direction))) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + if(!ui_select_laser_firemission(user, shuttle, target_id)) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return FALSE + + initiate_firemission(user, fm_tag, direction, text2num(offset_x_value), text2num(offset_y_value)) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/get_weapon(eqp_tag) + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + for(var/obj/structure/dropship_equipment/equipment in dropship.equipments) + if(istype(equipment, /obj/structure/dropship_equipment/weapon)) + //is weapon + if(selected_equipment == equipment) + return equipment + return + +/obj/structure/machinery/computer/dropship_weapons/proc/get_cas_signal(target_ref) + if(!target_ref) + return - if(href_list["select_laser_firemission"]) - var/mob/M = usr - var/targ_id = text2num(href_list["select_laser_firemission"]) - if(!targ_id) - to_chat(usr, SPAN_WARNING("Bad Target.")) - return - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - var/datum/cas_iff_group/cas_group = cas_groups[faction] - var/datum/cas_signal/cas_sig - for(var/X in cas_group.cas_signals) - var/datum/cas_signal/LT = X - if(LT.target_id == targ_id && LT.valid_signal()) - cas_sig = LT - if(!cas_sig) - to_chat(usr, SPAN_WARNING("Target lost or obstructed.")) - return + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + for(var/datum/cas_signal/sig in cas_group.cas_signals) + if(sig.target_id == target_ref) + return sig - update_location(cas_sig) - if(href_list["execute_firemission"]) - var/mob/M = usr - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.allow_gun_usage) - to_chat(H, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) - return - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return - if(!firemission_envelope.recorded_loc) - to_chat(usr, SPAN_WARNING("Target is not selected or lost.")) - return +/obj/structure/machinery/computer/dropship_weapons/proc/set_camera_target(target_ref) + var/datum/cas_signal/target = get_cas_signal(target_ref) + camera_target_id = target_ref + if(!target) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) + return - initiate_firemission() + var/cam_width = camera_width + var/cam_height = camera_height + if(upgraded == MATRIX_WIDE) + cam_width = cam_width * 1.5 + cam_height = cam_height * 1.5 - if(href_list["fm_weapon_id"]) - var/weap_ref = text2num(href_list["fm_weapon_id"])+1 - var/offset_ref = text2num(href_list["fm_offset_id"])+1 - var/mob/M = usr - if(!skillcheck(M, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. - to_chat(usr, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) - return - if(!editing_firemission) - to_chat(usr, SPAN_WARNING("You are no longer editing Fire Mission.")) - return - if(!editing_firemission.records || editing_firemission.records.len FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) - to_chat(usr, SPAN_WARNING("Fire Mission already underway.")) - return - var/list/gimb = record.get_offsets() - var/min = gimb["min"] - var/max = gimb["max"] - var/offset_value = stripped_input(usr, "Enter offset for the [record.weapon.name]. It has to be between [min] and [max]. Enter '-' to remove fire order on this time stamp.", "Firing offset", "[record.offsets[offset_ref]]", 2) - if(offset_value == null) - return - if(offset_value == "-") - offset_value = "-" - else - offset_value = text2num(offset_value) - if(offset_value == null) - to_chat(usr, SPAN_WARNING("Incorrect offset value.")) - return - var/result = firemission_envelope.update_mission(firemission_envelope.missions.Find(editing_firemission), weap_ref, offset_ref, offset_value, TRUE) - if(result == 0) - to_chat(usr, SPAN_WARNING("Update caused an error: [firemission_envelope.mission_error]")) - if(result == -1) - to_chat(usr, SPAN_WARNING("System Error. Delete this Fire Mission.")) - - if(href_list["firemission_camera"]) - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, target.linked_cam, cam_width, cam_height) - if(!firemission_envelope.guidance) - to_chat(usr, SPAN_WARNING("Guidance is not selected or lost.")) - return +/obj/structure/machinery/computer/dropship_weapons/proc/get_screen_mode() + . = 0 + if(selected_equipment) + . = selected_equipment.screen_mode + if(editing_firemission && editing_firemission.check(src) != FIRE_MISSION_CODE_ERROR) + . = 2 + if(selected_firemission && in_firemission_mode) + . = 3 +/obj/structure/machinery/computer/dropship_weapons/proc/get_firemission_data(mob/user) + . = list() + var/firemission_id = 1 + for(var/datum/cas_fire_mission/firemission in firemission_envelope.missions) + var/error_code = firemission.check(src) - firemission_envelope.add_user_to_tracking(usr) + var/selected = firemission == selected_firemission + var/can_edit = error_code != FIRE_MISSION_CODE_ERROR && !selected - to_chat(usr, "You peek through the guidance camera.") + var/can_interact = firemission_envelope.stat == FIRE_MISSION_STATE_IDLE && error_code == FIRE_MISSION_ALL_GOOD + var/list/fm_data = firemission.ui_data(user) + fm_data["mission_tag"] = firemission_id + fm_data["can_edit"] = can_edit + fm_data["can_interact"] = can_interact + fm_data["selected"] = selected + . += list(fm_data) - if(href_list["cas_camera"]) - if(!ishuman(usr)) - to_chat(usr, SPAN_WARNING("You have no idea how to do that!")) - return - if(dropship.mode != SHUTTLE_CALL) - to_chat(usr, SPAN_WARNING("Shuttle has to be in orbit.")) - return + firemission_id++ - if(!faction) - to_chat(usr, SPAN_DANGER("Bug encountered, this console doesn't have a faction set, report this to a coder!")) - return +/obj/structure/machinery/computer/dropship_weapons/proc/get_edit_firemission_data() + . = list() + if(!editing_firemission) + return + for(var/datum/cas_fire_mission_record/firerec as anything in editing_firemission.records) + var/gimbal = firerec.get_offsets() + var/ammo = firerec.get_ammo() + var/offsets = new /list(firerec.offsets.len) + for(var/idx = 1; idx < firerec.offsets.len; idx++) + offsets[idx] = firerec.offsets[idx] == null ? "-" : firerec.offsets[idx] + . += list( + "name" = sanitize(copytext(firerec.weapon.name, 1, 50)), + "ammo" = ammo, + "gimbal" = gimbal, + "offsets" = firerec.offsets + ) + +/obj/structure/machinery/computer/dropship_weapons/proc/get_sanitised_equipment(mob/user, obj/docking_port/mobile/marine_dropship/dropship) + . = list() + var/element_nbr = 1 + for(var/obj/structure/dropship_equipment/equipment in dropship.equipments) + var/list/data = list( + "name"= equipment.name, + "shorthand" = equipment.shorthand, + "eqp_tag" = element_nbr, + "is_weapon" = equipment.is_weapon, + "is_interactable" = equipment.is_interactable, + "mount_point" = equipment.ship_base.attach_id, + "is_missile" = istype(equipment, /obj/structure/dropship_equipment/weapon/rocket_pod), + "ammo_name" = equipment.ammo_equipped?.name, + "ammo" = equipment.ammo_equipped?.ammo_count, + "max_ammo" = equipment.ammo_equipped?.max_ammo_count, + "firemission_delay" = equipment.ammo_equipped?.fire_mission_delay, + "burst" = equipment.ammo_equipped?.ammo_used_per_firing, + "data" = equipment.ui_data(user) + ) + + . += list(data) - var/datum/cas_iff_group/cas_group = cas_groups[faction] - if(!cas_group) - to_chat(usr, SPAN_DANGER("Bug encountered, no CAS group exists for this console, report this to a coder!")) - return + element_nbr++ + equipment.linked_console = src - var/targ_id = text2num(href_list["cas_camera"]) - for(var/datum/cas_signal/LT as anything in cas_group.cas_signals) - if(LT.target_id == targ_id && LT.valid_signal()) - selected_cas_signal = LT - break - if(!selected_cas_signal) - to_chat(usr, SPAN_WARNING("Target lost or obstructed.")) - return - if(selected_cas_signal && selected_cas_signal.linked_cam) - selected_cas_signal.linked_cam.view_directly(usr) - else - to_chat(usr, SPAN_WARNING("Error!")) - return - give_action(usr, /datum/action/human_action/cancel_view) - RegisterSignal(usr, COMSIG_MOB_RESET_VIEW, PROC_REF(remove_from_view)) - RegisterSignal(usr, COMSIG_MOB_RESISTED, PROC_REF(remove_from_view)) - firemission_envelope.apply_upgrade(usr) - to_chat(usr, SPAN_NOTICE("You peek through the guidance camera.")) - - ui_interact(usr) - -/obj/structure/machinery/computer/dropship_weapons/proc/remove_from_view(mob/living/carbon/human/user) - UnregisterSignal(user, COMSIG_MOB_RESET_VIEW) - UnregisterSignal(user, COMSIG_MOB_RESISTED) - if(selected_cas_signal && selected_cas_signal.linked_cam) - selected_cas_signal.linked_cam.remove_from_view(user) - firemission_envelope.remove_upgrades(user) - -/obj/structure/machinery/computer/dropship_weapons/proc/initiate_firemission() - set waitfor = 0 - var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) - if (!istype(dropship)) - return - if (dropship.timer && dropship.timeLeft(1) < firemission_envelope.get_total_duration()) - to_chat(usr, "Not enough time to complete the Fire Mission") - return - if (!dropship.in_flyby || dropship.mode != SHUTTLE_CALL) - to_chat(usr, "Has to be in Fly By mode") - return +/obj/structure/machinery/computer/dropship_weapons/proc/get_targets() + . = list() + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + for(var/datum/cas_signal/LT as anything in cas_group.cas_signals) + if(!istype(LT) || !LT.valid_signal()) + continue + var/area/laser_area = get_area(LT.signal_loc) + . += list( + list( + "target_name" = "[LT.name] ([laser_area.name])", + "target_tag" = LT.target_id + ) + ) + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_equip_interact(mob/user, base_tag) + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttle_tag) + var/obj/structure/dropship_equipment/E = shuttle.equipments[base_tag] + E.linked_console = src + E.equipment_interact(user) + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_open_fire(mob/weapon_operator, obj/docking_port/mobile/marine_dropship/dropship, targ_id) + if(ishuman(weapon_operator)) + var/mob/living/carbon/human/human_operator = weapon_operator + if(!human_operator.allow_gun_usage) + to_chat(human_operator, SPAN_WARNING("Your programming prevents you from operating dropship weaponry!")) + return FALSE + var/obj/structure/dropship_equipment/weapon/DEW = selected_equipment + if(!selected_equipment || !selected_equipment.is_weapon) + to_chat(weapon_operator, SPAN_WARNING("No weapon selected.")) + return FALSE + if(!skillcheck(weapon_operator, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("You don't have the training to fire this weapon!")) + return FALSE + if(dropship.mode != SHUTTLE_CALL) + to_chat(weapon_operator, SPAN_WARNING("Dropship can only fire while in flight.")) + return FALSE + if(!faction) + return FALSE//no faction, no weapons + if(!selected_equipment || !selected_equipment.is_weapon) + to_chat(weapon_operator, SPAN_WARNING("No weapon selected.")) + return FALSE + if(dropship.door_override) + return FALSE + if(!skillcheck(weapon_operator, SKILL_PILOT, DEW.skill_required)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("You don't have the training to fire this weapon!")) + return FALSE + if(!dropship.in_flyby && DEW.fire_mission_only) + to_chat(weapon_operator, SPAN_WARNING("[DEW] requires a fire mission flight type to be fired.")) + return FALSE + + if(!DEW.ammo_equipped || DEW.ammo_equipped.ammo_count <= 0) + to_chat(weapon_operator, SPAN_WARNING("[DEW] has no ammo.")) + return FALSE + if(DEW.last_fired > world.time - DEW.firing_delay) + to_chat(weapon_operator, SPAN_WARNING("[DEW] just fired, wait for it to cool down.")) + return FALSE + + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] - var/fmid = firemission_envelope.missions.Find(selected_firemission) - if(!fmid) - to_chat(usr, "No Firemission selected") - return + if(!cas_group) + return FALSE//broken group. No fighting - var/result = firemission_envelope.execute_firemission(firemission_envelope.recorded_loc, firemission_envelope.recorded_offset, firemission_envelope.recorded_dir, fmid) - if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) + for(var/datum/cas_signal/LT in cas_group.cas_signals) + if(LT.target_id != targ_id || !LT.valid_signal()) + continue + if(!LT.signal_loc) + return FALSE + var/turf/TU = get_turf(LT.signal_loc) + var/area/targ_area = get_area(LT.signal_loc) + var/is_outside = FALSE + if(is_ground_level(TU.z)) + switch(targ_area.ceiling) + if(CEILING_NONE) + is_outside = TRUE + if(CEILING_GLASS) + is_outside = TRUE + if(!is_outside && !cavebreaker) //cavebreaker doesn't care + to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: target must be visible from high altitude.")) + return FALSE + if (protected_by_pylon(TURF_PROTECTION_CAS, TU)) + to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: biological-pattern interference with signal.")) + return FALSE + if(!DEW.ammo_equipped.can_fire_at(TU, weapon_operator)) + return FALSE + + DEW.open_fire(LT.signal_loc) + return TRUE + return FALSE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_create_firemission(mob/weapon_operator, firemission_name, firemission_length) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + // Check name + if(!firemission_name || length(firemission_name) < 1) + to_chat(weapon_operator, SPAN_WARNING("Name too short (at least 1 symbols).")) + return FALSE + // Check length + if(!firemission_length) + to_chat(weapon_operator, SPAN_WARNING("Incorrect input format.")) + return FALSE + if(firemission_length > firemission_envelope.fire_length) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission is longer than allowed by this vehicle.")) + return FALSE + if(firemission_envelope.stat != FIRE_MISSION_STATE_IDLE) + to_chat(weapon_operator, SPAN_WARNING("Vehicle has to be idle to allow Fire Mission editing and creation.")) + return FALSE + + for(var/datum/cas_fire_mission/mission in firemission_envelope.missions) + if(firemission_name == mission.name) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission name must be unique.")) + return FALSE + //everything seems to be fine now + firemission_envelope.generate_mission(firemission_name, firemission_length) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_delete_firemission(mob/weapon_operator, firemission_tag) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_tag > firemission_envelope.missions.len) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission ID corrupted or already deleted.")) + return FALSE + if(selected_firemission == firemission_envelope.missions[firemission_tag]) + to_chat(weapon_operator, SPAN_WARNING("Can't delete selected Fire Mission.")) + return FALSE + var/result = firemission_envelope.delete_firemission(firemission_tag) + if(result != 1) + to_chat(weapon_operator, SPAN_WARNING("Unable to delete Fire Mission while in combat.")) + return FALSE + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_select_firemission(mob/weapon_operator, firemission_tag) + if(!skillcheck(weapon_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapon_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission already underway.")) + return FALSE + if(firemission_tag > firemission_envelope.missions.len) + to_chat(weapon_operator, SPAN_WARNING("Fire Mission ID corrupted or deleted.")) + return FALSE + if(selected_firemission == firemission_envelope.missions[firemission_tag]) + selected_firemission = null else - update_trace_loc() + selected_firemission = firemission_envelope.missions[firemission_tag] + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_firemission_change_offset(mob/weapons_operator, fm_tag, weapon_id, offset_id, offset_value) + if(!skillcheck(weapons_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapons_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + + var/result = firemission_envelope.update_mission(fm_tag, weapon_id, offset_id, offset_value) + if(result != FIRE_MISSION_ALL_GOOD) + playsound(src, 'sound/machines/terminal_error.ogg', 5, 1) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/ui_select_laser_firemission(mob/weapons_operator, obj/docking_port/mobile/marine_dropship/dropship, laser) + if(!laser) + to_chat(weapons_operator, SPAN_WARNING("Bad Target.")) + return FALSE + if(!skillcheck(weapons_operator, SKILL_PILOT, SKILL_PILOT_TRAINED)) //only pilots can fire dropship weapons. + to_chat(weapons_operator, SPAN_WARNING("A screen with graphics and walls of physics and engineering values open, you immediately force it closed.")) + return FALSE + if(firemission_envelope.stat > FIRE_MISSION_STATE_IN_TRANSIT && firemission_envelope.stat < FIRE_MISSION_STATE_COOLDOWN) + to_chat(weapons_operator, SPAN_WARNING("Fire Mission already underway.")) + return FALSE + if(dropship.mode != SHUTTLE_CALL) + to_chat(weapons_operator, SPAN_WARNING("Shuttle has to be in orbit.")) + return FALSE + var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] + var/datum/cas_signal/cas_sig + for(var/X in cas_group.cas_signals) + var/datum/cas_signal/LT = X + if(LT.target_id == laser && LT.valid_signal()) + cas_sig = LT + if(!cas_sig) + to_chat(weapons_operator, SPAN_WARNING("Target lost or obstructed.")) + return FALSE -/obj/structure/machinery/computer/dropship_weapons/proc/update_offset(new_offset) - var/result = firemission_envelope.change_offset(new_offset) - if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) - else - update_trace_loc() + update_location(weapons_operator, cas_sig) + return TRUE -/obj/structure/machinery/computer/dropship_weapons/proc/update_location(new_location) +/obj/structure/machinery/computer/dropship_weapons/proc/initiate_firemission(mob/user, fmId, dir, offset_x, offset_y) + set waitfor = 0 + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + if (!istype(dropship)) + return FALSE + if (!dropship.in_flyby || dropship.mode != SHUTTLE_CALL) + to_chat(user, SPAN_WARNING("Has to be in Fly By mode")) + return FALSE + if (dropship.timer && dropship.timeLeft(1) < firemission_envelope.get_total_duration()) + to_chat(user, SPAN_WARNING("Not enough time to complete the Fire Mission")) + return FALSE + var/datum/cas_signal/recorded_loc = firemission_envelope.recorded_loc + var/obj/source = recorded_loc.signal_loc + var/turf/target = locate( + source.x + offset_x, + source.y + offset_y, + source.z + ) + var/result = firemission_envelope.execute_firemission(recorded_loc, target, dir, fmId) + if(result != FIRE_MISSION_ALL_GOOD) + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return TRUE + +/obj/structure/machinery/computer/dropship_weapons/proc/update_location(mob/user, new_location) var/result = firemission_envelope.change_target_loc(new_location) if(result<1) - to_chat(usr, "Screen beeps with an error: "+ firemission_envelope.mission_error) - else - update_trace_loc() + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return FALSE + return TRUE -/obj/structure/machinery/computer/dropship_weapons/proc/update_direction(new_direction) +/obj/structure/machinery/computer/dropship_weapons/proc/update_direction(mob/user, new_direction) var/result = firemission_envelope.change_direction(new_direction) if(result<1) - to_chat(usr, "Screen beeps with an error: " + firemission_envelope.mission_error) - else - update_trace_loc() + to_chat(user, SPAN_WARNING("Screen beeps with an error: [firemission_envelope.mission_error]")) + return FALSE + return TRUE -/obj/structure/machinery/computer/dropship_weapons/on_unset_interaction(mob/user) - ..() - if(firemission_envelope && firemission_envelope.guidance) - firemission_envelope.remove_user_from_tracking(user) - -/obj/structure/machinery/computer/dropship_weapons/proc/update_trace_loc() +/obj/structure/machinery/computer/dropship_weapons/proc/update_trace_loc(mob/user) if(!firemission_envelope) return if(firemission_envelope.recorded_loc == null || firemission_envelope.recorded_dir == null || firemission_envelope.recorded_offset == null) return if(firemission_envelope.recorded_loc.obstructed_signal()) - if(firemission_envelope.user_is_guided(usr)) - to_chat(usr, SPAN_WARNING("Signal Obstructed. You have to go in blind.")) + if(firemission_envelope.user_is_guided(user)) + to_chat(user, SPAN_WARNING("Signal Obstructed. You have to go in blind.")) return var/sx = 0 var/sy = 0 @@ -704,108 +803,29 @@ return var/area/laser_area = get_area(shootloc) if(!istype(laser_area) || CEILING_IS_PROTECTED(laser_area.ceiling, CEILING_PROTECTION_TIER_1)) - if(firemission_envelope.user_is_guided(usr)) - to_chat(usr, SPAN_WARNING("Vision Obstructed. You have to go in blind.")) + if(firemission_envelope.user_is_guided(user)) + to_chat(user, SPAN_WARNING("Vision Obstructed. You have to go in blind.")) firemission_envelope.change_current_loc() else firemission_envelope.change_current_loc(shootloc) + return TRUE /obj/structure/machinery/computer/dropship_weapons/dropship1 name = "\improper 'Alamo' weapons controls" req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_DROPSHIP, ACCESS_WY_FLIGHT) firemission_envelope = new /datum/cas_fire_envelope/uscm_dropship() - -/obj/structure/machinery/computer/dropship_weapons/dropship1/New() - ..() shuttle_tag = DROPSHIP_ALAMO /obj/structure/machinery/computer/dropship_weapons/dropship2 name = "\improper 'Normandy' weapons controls" req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_DROPSHIP, ACCESS_WY_FLIGHT) firemission_envelope = new /datum/cas_fire_envelope/uscm_dropship() - -/obj/structure/machinery/computer/dropship_weapons/dropship2/New() - ..() shuttle_tag = DROPSHIP_NORMANDY /obj/structure/machinery/computer/dropship_weapons/Destroy() . = ..() - QDEL_NULL(firemission_envelope) - -// CAS TGUI SHIT \\ - -/obj/structure/machinery/computer/dropship_weapons/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "CasSim", "[src.name]") - ui.open() - -/obj/structure/machinery/computer/dropship_weapons/ui_state(mob/user) // we gotta do custom shit here so that it always closes instead of suspending - return GLOB.not_incapacitated_and_adjacent_strict_state - -/obj/structure/machinery/computer/dropship_weapons/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(inoperable()) - return UI_CLOSE - -/obj/structure/machinery/computer/dropship_weapons/ui_data(mob/user) - var/list/data = list() - - data["configuration"] = configuration - data["looking"] = simulation.looking_at_simulation - data["dummy_mode"] = simulation.dummy_mode - - data["worldtime"] = world.time - data["nextdetonationtime"] = simulation.detonation_cooldown - data["detonation_cooldown"] = simulation.detonation_cooldown_time - - return data - -/obj/structure/machinery/computer/dropship_weapons/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - var/user = ui.user - - switch(action) - if("start_watching") - simulation.start_watching(user) - . = TRUE - - if("stop_watching") - simulation.stop_watching(user) - . = TRUE - - if("execute_simulated_firemission") - if(!configuration) - to_chat(user, SPAN_WARNING("No configured firemission")) - return - simulate_firemission(user) - . = TRUE - - if("switch_firemission") - configuration = tgui_input_list(user, "Select firemission to simulate", "Select firemission", firemission_envelope.missions, 30 SECONDS) - if(!selected_firemission) - to_chat(user, SPAN_WARNING("No configured firemission")) - return - if(!configuration) - configuration = selected_firemission - . = TRUE - - if("switchmode") - simulation.dummy_mode = tgui_input_list(user, "Select target type to simulate", "Target type", simulation.target_types, 30 SECONDS) - if(!simulation.dummy_mode) - simulation.dummy_mode = CLF_MODE - . = TRUE - -/obj/structure/machinery/computer/dropship_weapons/ui_close(mob/user) - . = ..() - if(simulation.looking_at_simulation) - simulation.stop_watching(user) - -// CAS TGUI SHIT END \\ + QDEL_NULL(tacmap) /obj/structure/machinery/computer/dropship_weapons/proc/simulate_firemission(mob/living/user) diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 9856ae8f970e..7b4c2d5df771 100644 --- a/code/game/machinery/computer/groundside_operations.dm +++ b/code/game/machinery/computer/groundside_operations.dm @@ -25,7 +25,11 @@ add_pmcs = FALSE else if(SSticker.current_state < GAME_STATE_PLAYING) RegisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP, PROC_REF(disable_pmc)) - tacmap = new(src, minimap_type) + if(announcement_faction == FACTION_MARINE) + tacmap = new /datum/tacmap/drawing(src, minimap_type) + else + tacmap = new(src, minimap_type) // Non-drawing version + return ..() /obj/structure/machinery/computer/groundside_operations/Destroy() @@ -55,7 +59,7 @@ dat += "
[is_announcement_active ? "Make An Announcement" : "*Unavailable*"]" dat += "
Tactical Map" dat += "

" - var/datum/squad/marine/echo/echo_squad = locate() in RoleAuthority.squads + var/datum/squad/marine/echo/echo_squad = locate() in GLOB.RoleAuthority.squads if(!echo_squad.active && faction == FACTION_MARINE) dat += "
Designate Echo Squad" dat += "

" @@ -247,7 +251,7 @@ if("pick_squad") var/list/squad_list = list() - for(var/datum/squad/S in RoleAuthority.squads) + for(var/datum/squad/S in GLOB.RoleAuthority.squads) if(S.active && S.faction == faction) squad_list += S.name @@ -276,7 +280,7 @@ usr.UnregisterSignal(cam, COMSIG_PARENT_QDELETING) cam = null usr.reset_view(null) - else if(usr.client.view != world_view_size) + else if(usr.client.view != GLOB.world_view_size) to_chat(usr, SPAN_WARNING("You're too busy peering through binoculars.")) else if(cam) @@ -290,7 +294,7 @@ if(!reason) return if(alert(usr, "Confirm activation of Echo Squad for [reason]", "Confirm Activation", "Yes", "No") != "Yes") return - var/datum/squad/marine/echo/echo_squad = locate() in RoleAuthority.squads + var/datum/squad/marine/echo/echo_squad = locate() in GLOB.RoleAuthority.squads if(!echo_squad) visible_message(SPAN_BOLDNOTICE("ERROR: Unable to locate Echo Squad database.")) return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index b68ca41d6f09..20aa6925d0b4 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -24,7 +24,7 @@ set name = "Eject ID Card" set src in oview(1) - if(!usr || usr.stat || usr.lying) return + if(!usr || usr.is_mob_incapacitated()) return if(scan) to_chat(usr, "You remove \the [scan] from \the [src].") @@ -108,7 +108,7 @@ dat += "Back" dat += "
Medical Robots:" var/bdat = null - for(var/obj/structure/machinery/bot/medbot/M in machines) + for(var/obj/structure/machinery/bot/medbot/M in GLOB.machines) if(M.z != src.z) continue //only find medibots on the same z-level as the computer var/turf/bl = get_turf(M) @@ -123,7 +123,6 @@ else dat += "
[bdat]" - else else dat += text("{Log In}", src) show_browser(user, dat, "Medical Records", "med_rec") @@ -365,8 +364,6 @@ for(var/datum/data/record/E in GLOB.data_core.medical) if ((E.fields["ref"] == R.fields["ref"] || E.fields["id"] == R.fields["id"])) M = E - else - //Foreach continue //goto(2540) src.active1 = R src.active2 = M src.screen = 4 @@ -401,7 +398,7 @@ var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) counter++ - src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]") + src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]") if (href_list["del_c"]) if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) @@ -417,16 +414,12 @@ for(var/datum/data/record/R as anything in GLOB.data_core.medical) if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]))) src.active2 = R - else - //Foreach continue //goto(3229) if (!active2) temp = "Could not locate record [t1]." else for(var/datum/data/record/E in GLOB.data_core.general) if ((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) src.active1 = E - else - //Foreach continue //goto(3334) src.screen = 4 if (href_list["print_p"]) @@ -457,7 +450,7 @@ else P.info += "Medical Record Lost!
" P.info += "" - P.info += text("

This report was printed by [] [].
The [MAIN_SHIP_NAME],[]/[], []

\n",last_user_rank,last_user_name,time2text(world.timeofday, "MM/DD"),game_year,worldtime2text()) + P.info += text("

This report was printed by [] [].
The [MAIN_SHIP_NAME],[]/[], []

\n",last_user_rank,last_user_name,time2text(world.timeofday, "MM/DD"),GLOB.game_year,worldtime2text()) src.printing = null if(href_list["print_bs"])//Prints latest body scan @@ -480,7 +473,7 @@ break else P.info += "No scan on record." - P.info += text("

This report was printed by [] [].
The [MAIN_SHIP_NAME], []/[], []

\n",last_user_rank,last_user_name,time2text(world.timeofday, "MM/DD"),game_year,worldtime2text()) + P.info += text("

This report was printed by [] [].
The [MAIN_SHIP_NAME], []/[], []

\n",last_user_rank,last_user_name,time2text(world.timeofday, "MM/DD"),GLOB.game_year,worldtime2text()) src.printing = null @@ -490,15 +483,15 @@ return /obj/structure/machinery/computer/med_data/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return for(var/datum/data/record/R as anything in GLOB.data_core.medical) if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) @@ -516,8 +509,6 @@ qdel(R) continue - ..(severity) - /obj/structure/machinery/computer/med_data/laptop name = "Medical Laptop" diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 3858230a089c..7ec97874bb7f 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,159 +1,8 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/obj/structure/machinery/computer/pod - name = "Pod Launch Control" - desc = "A control for launching pods. Some people prefer firing Mechas." +// Legacy SS13 machinery turned into props +/obj/structure/machinery/computer/pod/old + name = "DoorMex Control Computer" + desc = "A control for launching pods." icon_state = "computer_generic" density = TRUE - circuit = /obj/item/circuitboard/computer/pod - var/id = 1 - var/obj/structure/machinery/mass_driver/connected = null - var/timing = 0 - var/time = 30 - var/title = "Mass Driver Controls" + circuit = /obj/item/circuitboard/computer/pod/old processing = TRUE - - -/obj/structure/machinery/computer/pod/New() - ..() - spawn( 5 ) - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - connected = M - else - return - return - - -/obj/structure/machinery/computer/pod/proc/alarm() - if(inoperable()) - return - - if(!( connected )) - to_chat(viewers(null, null), "Cannot locate mass driver connector. Cancelling firing sequence!") - return - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - M.open() - - sleep(20) - - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - M.power = connected.power - M.drive() - - sleep(50) - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - M.close() - return - return - -/obj/structure/machinery/computer/pod/attack_remote(mob/user as mob) - return attack_hand(user) - -/obj/structure/machinery/computer/pod/attack_hand(mob/user as mob) - if(..()) - return - - var/dat = "[title]" - user.set_interaction(src) - if(connected) - var/d2 - if(timing) //door controls do not need timers. - d2 = "Stop Time Launch" - else - d2 = "Initiate Time Launch" - var/second = time % 60 - var/minute = (time - second) / 60 - dat += "
\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] - - + +" - var/temp = "" - var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 ) - for(var/t in L) - if(t == connected.power) - temp += "[t] " - else - temp += "[t] " - dat += "
\nPower Level: [temp]
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
" - else - dat += "
\nToggle Outer Door
" - dat += "

Close
" - show_browser(user, dat, "computer", "size=400x500") - add_fingerprint(usr) - return - - -/obj/structure/machinery/computer/pod/process() - if(!..()) - return - if(timing) - if(time > 0) - time = round(time) - 1 - else - alarm() - time = 0 - timing = 0 - updateDialog() - return - - -/obj/structure/machinery/computer/pod/Topic(href, href_list) - if(..()) - return - if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - if(href_list["power"]) - var/t = text2num(href_list["power"]) - t = min(max(0.25, t), 16) - if(connected) - connected.power = t - if(href_list["alarm"]) - alarm() - if(href_list["drive"]) - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - M.power = connected.power - M.drive() - - if(href_list["time"]) - timing = text2num(href_list["time"]) - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 0), 120) - if(href_list["door"]) - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - if(M.density) - M.open() - else - M.close() - updateUsrDialog() - return - - - -/obj/structure/machinery/computer/pod/old - name = "DoorMex Control Computer" - title = "Door Controls" - -/obj/structure/machinery/computer/pod/old/syndicate - name = "ProComp Executive IIc" - desc = "The Syndicate operate on a tight budget. Operates external airlocks." - icon_state = "syndicomp" - title = "External Airlock Controls" - req_access = list(ACCESS_ILLEGAL_PIRATE) - -/obj/structure/machinery/computer/pod/old/syndicate/attack_hand(mob/user as mob) - if(!allowed(user)) - to_chat(user, SPAN_DANGER("Access Denied")) - return - else - ..() - -/obj/structure/machinery/computer/pod/old/swf - name = "Magix System IV" - icon_state = "wizard" - desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" diff --git a/code/game/machinery/computer/research.dm b/code/game/machinery/computer/research.dm index 2f37d9b2598a..1ba696eeee9c 100644 --- a/code/game/machinery/computer/research.dm +++ b/code/game/machinery/computer/research.dm @@ -28,8 +28,8 @@ if(N.note_type == "grant") if(!N.grant) return - chemical_data.update_credits(N.grant) - visible_message(SPAN_NOTICE("[user] scans the [N.name] on the [src], collecting the [N.grant] research credits.")) + GLOB.chemical_data.update_credits(N.grant) + visible_message(SPAN_NOTICE("[user] scans the [N.name] on [src], collecting the [N.grant] research credits.")) N.grant = 0 qdel(N) return @@ -42,7 +42,7 @@ response = alert(usr,"Use existing or new category?","[src]","Existing","New") if(response == "Existing") var/list/pool = list() - for(var/category in chemical_data.research_documents) + for(var/category in GLOB.chemical_data.research_documents) pool += category pool = sortAssoc(pool) response = tgui_input_list(usr,"Select a category:", "Categories", pool) @@ -51,7 +51,7 @@ if(!response) response = "Misc." var/obj/item/paper/research_report/CR = P.convert_to_chem_report() - chemical_data.save_document(CR, response, CR.name) + GLOB.chemical_data.save_document(CR, response, CR.name) return //Clearance Updating if(!istype(B, /obj/item/card/id)) @@ -60,8 +60,8 @@ if(!istype(card)) visible_message(SPAN_NOTICE("[user] swipes their ID card on \the [src], but it is refused.")) return - if(card.clearance_access <= chemical_data.clearance_level || (card.clearance_access == 6 && chemical_data.clearance_level >= 5 && chemical_data.clearance_x_access)) - visible_message(SPAN_NOTICE("[user] swipes the clearance card on the [src], but nothing happens.")) + if(card.clearance_access <= GLOB.chemical_data.clearance_level || (card.clearance_access == 6 && GLOB.chemical_data.clearance_level >= 5 && GLOB.chemical_data.clearance_x_access)) + visible_message(SPAN_NOTICE("[user] swipes the clearance card on [src], but nothing happens.")) return if(user.real_name != card.registered_name) visible_message(SPAN_WARNING("WARNING: ILLEGAL CLEARANCE USER DETECTED. CARD DATA HAS BEEN WIPED.")) @@ -76,10 +76,10 @@ else give_level = card.clearance_access - chemical_data.clearance_level = give_level + GLOB.chemical_data.clearance_level = give_level if(give_x) - chemical_data.clearance_x_access = TRUE - chemical_data.reached_x_access = TRUE + GLOB.chemical_data.clearance_x_access = TRUE + GLOB.chemical_data.reached_x_access = TRUE visible_message(SPAN_NOTICE("[user] swipes their ID card on \the [src], updating the clearance to level [give_level][give_x ? "X" : ""].")) msg_admin_niche("[key_name(user)] has updated the research clearance to level [give_level][give_x ? "X" : ""].") @@ -103,12 +103,12 @@ /obj/structure/machinery/computer/research/ui_data(mob/user) var/list/data = list( - "rsc_credits" = chemical_data.rsc_credits, - "clearance_level" = chemical_data.clearance_level, - "broker_cost" = max(RESEARCH_LEVEL_INCREASE_MULTIPLIER*(chemical_data.clearance_level + 1), 1), - "research_documents" = chemical_data.research_documents, - "published_documents" = chemical_data.research_publications, - "clearance_x_access" = chemical_data.clearance_x_access, + "rsc_credits" = GLOB.chemical_data.rsc_credits, + "clearance_level" = GLOB.chemical_data.clearance_level, + "broker_cost" = max(RESEARCH_LEVEL_INCREASE_MULTIPLIER*(GLOB.chemical_data.clearance_level + 1), 1), + "research_documents" = GLOB.chemical_data.research_documents, + "published_documents" = GLOB.chemical_data.research_publications, + "clearance_x_access" = GLOB.chemical_data.clearance_x_access, "photocopier_error" = !photocopier, "printer_toner" = photocopier?.toner ) @@ -133,7 +133,7 @@ if ("read_document") var/print_type = params["print_type"] var/print_title = params["print_title"] - var/obj/item/paper/research_report/report = chemical_data.get_report(print_type, print_title) + var/obj/item/paper/research_report/report = GLOB.chemical_data.get_report(print_type, print_title) if(report) report.read_paper(user) return @@ -145,7 +145,7 @@ var/print_title = params["print_title"] photocopier.toner = max(0, photocopier.toner - 1) var/obj/item/paper/research_report/printing = new /obj/item/paper/research_report/(photocopier.loc) - var/obj/item/paper/research_report/report = chemical_data.get_report(print_type, print_title) + var/obj/item/paper/research_report/report = GLOB.chemical_data.get_report(print_type, print_title) if(report) printing.name = report.name printing.info = report.info @@ -154,16 +154,16 @@ if("broker_clearance") if(!photocopier) return - if(chemical_data.clearance_level < 5) - var/cost = max(RESEARCH_LEVEL_INCREASE_MULTIPLIER*(chemical_data.clearance_level + 1), 1) - if(cost <= chemical_data.rsc_credits) - chemical_data.update_credits(cost * -1) - chemical_data.clearance_level++ - visible_message(SPAN_NOTICE("Clearance access increased to level [chemical_data.clearance_level] for [cost] credits.")) - msg_admin_niche("[key_name(user)] traded research credits to upgrade the clearance to level [chemical_data.clearance_level].") - if(max_clearance < chemical_data.clearance_level) - chemical_data.update_income(1) //Bonus income and a paper for buying clearance instead of swiping it up - switch(chemical_data.clearance_level) + if(GLOB.chemical_data.clearance_level < 5) + var/cost = max(RESEARCH_LEVEL_INCREASE_MULTIPLIER*(GLOB.chemical_data.clearance_level + 1), 1) + if(cost <= GLOB.chemical_data.rsc_credits) + GLOB.chemical_data.update_credits(cost * -1) + GLOB.chemical_data.clearance_level++ + visible_message(SPAN_NOTICE("Clearance access increased to level [GLOB.chemical_data.clearance_level] for [cost] credits.")) + msg_admin_niche("[key_name(user)] traded research credits to upgrade the clearance to level [GLOB.chemical_data.clearance_level].") + if(max_clearance < GLOB.chemical_data.clearance_level) + GLOB.chemical_data.update_income(1) //Bonus income and a paper for buying clearance instead of swiping it up + switch(GLOB.chemical_data.clearance_level) if(2) new /obj/item/paper/research_notes/unique/tier_two/(photocopier.loc) max_clearance = 2 @@ -182,11 +182,11 @@ var/purchase_tier = FLOOR(text2num(params["purchase_document"]), 1) if(purchase_tier <= 0 || purchase_tier > 5) return - if(purchase_tier > chemical_data.clearance_level) + if(purchase_tier > GLOB.chemical_data.clearance_level) return var/purchase_cost = base_purchase_cost + purchase_tier * 2 - if(purchase_cost <= chemical_data.rsc_credits) - chemical_data.update_credits(purchase_cost * -1) + if(purchase_cost <= GLOB.chemical_data.rsc_credits) + GLOB.chemical_data.update_credits(purchase_cost * -1) var/obj/item/paper/research_notes/unique/N switch(purchase_tier) if(1) @@ -203,21 +203,20 @@ if("publish_document") var/print_type = params["print_type"] var/print_title = params["print_title"] - var/obj/item/paper/research_report/report = chemical_data.get_report(print_type, print_title) + var/obj/item/paper/research_report/report = GLOB.chemical_data.get_report(print_type, print_title) if(!report) to_chat(usr, SPAN_WARNING("Report data corrupted. Unable to transmit.")) return - chemical_data.publish_document(report, print_type, print_title) + GLOB.chemical_data.publish_document(report, print_type, print_title) if("unpublish_document") var/print_title = params["print_title"] var/print_type = params["print_type"] - chemical_data.unpublish_document(print_type, print_title) + GLOB.chemical_data.unpublish_document(print_type, print_title) if("request_clearance_x_access") var/purchase_cost = 5 - if(purchase_cost <= chemical_data.rsc_credits) - chemical_data.clearance_x_access = TRUE - chemical_data.reached_x_access = TRUE - chemical_data.update_credits(purchase_cost * -1) + if(purchase_cost <= GLOB.chemical_data.rsc_credits) + GLOB.chemical_data.clearance_x_access = TRUE + GLOB.chemical_data.reached_x_access = TRUE + GLOB.chemical_data.update_credits(purchase_cost * -1) visible_message(SPAN_NOTICE("Clearance Level X Acquired.")) playsound(loc, pick('sound/machines/computer_typing1.ogg','sound/machines/computer_typing2.ogg','sound/machines/computer_typing3.ogg'), 5, 1) - diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 12f4faedc979..19e3ac900af6 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -51,12 +51,11 @@ dat += "[R.name] |" if(R.stat) dat += " Not Responding |" - else if (!R.canmove) + else if (HAS_TRAIT_FROM(R, TRAIT_IMMOBILIZED, HACKED_TRAIT)) dat += " Locked Down |" else dat += " Operating Normally |" - if (!R.canmove) - else if(R.cell) + if(R.cell) dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" else dat += " No Cell Installed |" @@ -71,7 +70,8 @@ if (isRemoteControlling(user)) if((user.mind.original == user)) dat += "(Hack) " - dat += "([R.canmove ? "Lockdown" : "Release"]) " + var/canmove = HAS_TRAIT_FROM(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) + dat += "([canmove ? "Lockdown" : "Release"]) " dat += "(Destroy)" dat += "
" dat += "(Return to Main Menu)
" @@ -162,20 +162,22 @@ else if (href_list["stopbot"]) if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) + var/canmove = HAS_TRAIT_FROM(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) if(R && istype(R)) // Extra sancheck because of input var references - var/choice = tgui_input_list(usr, "Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?", "Hack machine", list("Confirm", "Abort")) + var/choice = tgui_input_list(usr, "Are you certain you wish to [canmove ? "lock down" : "release"] [R.name]?", "Hack machine", list("Confirm", "Abort")) if(choice == "Confirm") if(R && istype(R)) - message_admins("[key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!") - log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [R.name]!") - R.canmove = !R.canmove + message_admins("[key_name_admin(usr)] [canmove ? "locked down" : "released"] [R.name]!") + log_game("[key_name(usr)] [canmove ? "locked down" : "released"] [R.name]!") + if(canmove) + ADD_TRAIT(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) + else + REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, HACKED_TRAIT) if (R.lockcharge) - // R.cell.charge = R.lockcharge R.lockcharge = !R.lockcharge to_chat(R, "Your lockdown has been lifted!") else R.lockcharge = !R.lockcharge - // R.cell.charge = 0 to_chat(R, "You have been locked down!") else diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 857118937910..e7626938549a 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -95,7 +95,7 @@ if("Released") background = "'background-color:#2981b3;'" if("Suspect") - background = "'background-color:#008743;'" + background = "'background-color:#686A6C;'" if("NJP") background = "'background-color:#faa20a;'" if("None") @@ -187,7 +187,7 @@ if("Released") background = "'background-color:#3BB9FF;'" if("Suspect") - background = "'background-color:#1AAFFF;'" + background = "'background-color:#686A6C;'" if("NJP") background = "'background-color:#faa20a;'" if("None") @@ -363,7 +363,7 @@ What a mess.*/ var/t1 = copytext(trim(strip_html(input("Your name and time will be added to this new comment.", "Add a comment", null, null) as message)),1,MAX_MESSAGE_LEN) if((!t1 || usr.stat || usr.is_mob_restrained() || (!in_range(src, usr) && (!ishighersilicon(usr))) || active2 != a2)) return - var/created_at = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), game_year) + var/created_at = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), GLOB.game_year) var/new_comment = list("entry" = t1, "created_by" = list("name" = "", "rank" = ""), "deleted_by" = null, "deleted_at" = null, "created_at" = created_at) if(istype(usr,/mob/living/carbon/human)) var/mob/living/carbon/human/U = usr @@ -391,7 +391,7 @@ What a mess.*/ var/mob/living/silicon/robot/U = usr deleter = "[U.name] ([U.modtype] [U.braintype])" updated_comments[href_list["del_c"]]["deleted_by"] = deleter - updated_comments[href_list["del_c"]]["deleted_at"] = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), game_year) + updated_comments[href_list["del_c"]]["deleted_at"] = text("[]  []  []", time2text(world.realtime, "MMM DD"), time2text(world.time, "[worldtime2text()]:ss"), GLOB.game_year) active2.fields["comments"] = updated_comments to_chat(usr, text("You have deleted a comment from the Security Record of [].", active2.fields["name"])) //RECORD CREATE @@ -524,15 +524,15 @@ What a mess.*/ return selection.fields["img"] /obj/structure/machinery/computer/secure_data/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return for(var/datum/data/record/R in GLOB.data_core.security) if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) @@ -550,8 +550,6 @@ What a mess.*/ qdel(R) continue - ..(severity) - /obj/structure/machinery/computer/secure_data/detective_computer icon = 'icons/obj/structures/machinery/computer.dmi' icon_state = "messyfiles" diff --git a/code/game/machinery/computer/sentencing.dm b/code/game/machinery/computer/sentencing.dm index 52a4159a2a90..3aa9b5a032a8 100644 --- a/code/game/machinery/computer/sentencing.dm +++ b/code/game/machinery/computer/sentencing.dm @@ -78,6 +78,7 @@ data["laws"] += list(create_law_data("Major Laws", SSlaw_init.major_law)) data["laws"] += list(create_law_data("Capital Laws", SSlaw_init.capital_law)) data["laws"] += list(create_law_data("Optional Laws", SSlaw_init.optional_law)) + data["laws"] += list(create_law_data("Precautionary Laws", SSlaw_init.precautionary_law)) return data diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index f891d46bc36b..6e35d147ff38 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -43,16 +43,16 @@ var/dat if (temp) - dat = text("[]

Clear Screen", temp, src) + dat = "[temp]

Clear Screen" else - dat = text("Confirm Identity: []
", src, (scan ? text("[]", scan.name) : "----------")) + dat = "Confirm Identity: [scan ? scan.name : "----------"]
" if (authenticated) switch(screen) if(1.0) dat += {"

"} - dat += text("Search Records
", src) - dat += text("New Record
", src) + dat += "Search Records
" + dat += "New Record
" dat += {"

@@ -70,20 +70,19 @@ if(!isnull(GLOB.data_core.general)) for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order)) for(var/datum/data/record/E in GLOB.data_core.security) - var/background - dat += text("", background, src, R, R.fields["name"]) - dat += text("", R.fields["id"]) - dat += text("", R.fields["rank"]) + dat += "" + dat += "" + dat += "" dat += "
[][][]
[R.fields["name"]][R.fields["id"]][R.fields["rank"]]

" - dat += text("Record Maintenance

", src) - dat += text("{Log Out}",src) + dat += "Record Maintenance

" + dat += "{Log Out}" if(2.0) dat += "Records Maintenance
" dat += "
Delete All Records

Back" if(3.0) dat += "
Employment Record

" if ((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))) - dat += text("
\ + dat += " \
\ Name: [active1.fields["name"]]
\ ID: [active1.fields["id"]]
\n \ Sex: [active1.fields["sex"]]
\n \ @@ -93,18 +92,18 @@ Mental Status: [active1.fields["m_stat"]]

\n \ Employment/skills summary:
[decode(active1.fields["notes"])]
Photo:
\ -
") +
" else dat += "General Record Lost!
" - dat += text("\nDelete Record (ALL)

\nPrint Record
\nBack
", src, src, src) + dat += "\nDelete Record (ALL)

\nPrint Record
\nBack
" if(4.0) if(!Perp.len) - dat += text("ERROR. String could not be located.

Back", src) + dat += "ERROR. String could not be located.

Back" else dat += {" "} - dat += text("", tempname) + dat += "" dat += {"
Search Results for '[]':Search Results for '[tempname]':
@@ -121,17 +120,14 @@ if(istype(Perp[i+1],/datum/data/record/)) var/datum/data/record/E = Perp[i+1] crimstat = E.fields["criminal"] - var/background - background = "'background-color:#00FF7F;'" - dat += text("[]", background, src, R, R.fields["name"]) - dat += text("[]", R.fields["id"]) - dat += text("[]", R.fields["rank"]) - dat += text("[]", crimstat) + dat += "[R.fields["name"]]" + dat += "[R.fields["id"]]" + dat += "[R.fields["rank"]]" + dat += "[crimstat]" dat += "
" - dat += text("
Return to index.", src) - else + dat += "
Return to index." else - dat += text("{Log In}", src) + dat += "{Log In}" show_browser(user, dat, "Employment Records", "secure_rec", "size=600x400") onclose(user, "secure_rec") return @@ -342,7 +338,6 @@ What a mess.*/ if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) GLOB.data_core.medical -= R qdel(R) - else QDEL_NULL(active1) else temp = "This function does not appear to be working at the moment. Our apologies." @@ -352,15 +347,15 @@ What a mess.*/ return /obj/structure/machinery/computer/skills/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return for(var/datum/data/record/R in GLOB.data_core.security) if(prob(10/severity)) switch(rand(1,6)) if(1) - R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]" if(2) R.fields["sex"] = pick("Male", "Female") if(3) @@ -378,4 +373,3 @@ What a mess.*/ qdel(R) continue - ..(severity) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index eb9aed4f71e4..69c2c897e276 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -192,7 +192,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li //Lifted from Unity stasis.dm and refactored. ~Zuhayr /obj/structure/machinery/cryopod/process() - if(occupant && !(WEAKREF(occupant) in GLOB.freed_mob_list)) //ignore freed mobs + if(occupant && !(occupant in GLOB.freed_mob_list)) //ignore freed mobs //if occupant ghosted, time till despawn is severely shorter if(!occupant.key && time_till_despawn == 10 MINUTES) time_till_despawn -= 8 MINUTES @@ -321,13 +321,13 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li dept_console += A A.moveToNullspace() + var/datum/job/job = GET_MAPPED_ROLE(occupant.job) if(ishuman(occupant)) var/mob/living/carbon/human/H = occupant if(H.assigned_squad) var/datum/squad/S = H.assigned_squad S.forget_marine_in_squad(H) - var/datum/job/J = GET_MAPPED_ROLE(H.job) - if(istype(J, /datum/job/marine/specialist)) + if(istype(job, /datum/job/marine/specialist)) //we make the set this specialist took if any available again if(H.skills) var/set_name @@ -343,13 +343,14 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li if(SKILL_SPEC_SNIPER) set_name = "Sniper Set" - if(set_name && !available_specialist_sets.Find(set_name)) - available_specialist_sets += set_name + if(set_name && !GLOB.available_specialist_sets.Find(set_name)) + GLOB.available_specialist_sets += set_name - SSticker.mode.latejoin_tally-- //Cryoing someone out removes someone from the Marines, blocking further larva spawns until accounted for + //Cryoing someone out removes someone from the Marines, blocking further larva spawns until accounted for + SSticker.mode.latejoin_update(job, -1) //Handle job slot/tater cleanup. - RoleAuthority.free_role(GET_MAPPED_ROLE(occupant.job), TRUE) + GLOB.RoleAuthority.free_role(GET_MAPPED_ROLE(occupant.job), TRUE) var/occupant_ref = WEAKREF(occupant) //Delete them from datacore. @@ -385,34 +386,35 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li stop_processing() /obj/structure/machinery/cryopod/attackby(obj/item/W, mob/living/user) - + if(isxeno(user)) + return FALSE if(istype(W, /obj/item/grab)) - if(isxeno(user)) return var/obj/item/grab/G = W if(occupant) to_chat(user, SPAN_WARNING("[src] is occupied.")) - return + return FALSE if(!isliving(G.grabbed_thing)) - return + return FALSE - var/willing = null //We don't want to allow people to be forced into despawning. + var/willing = FALSE //We don't want to allow people to be forced into despawning. var/mob/living/M = G.grabbed_thing if(M.stat == DEAD) //This mob is dead to_chat(user, SPAN_WARNING("[src] immediately rejects [M]. \He passed away!")) - return + return FALSE if(isxeno(M)) to_chat(user, SPAN_WARNING("There is no way [src] will accept [M]!")) - return + return FALSE if(M.client) if(alert(M,"Would you like to enter cryosleep?", , "Yes", "No") == "Yes") - if(!M || !G || !G.grabbed_thing) return - willing = 1 + if(!M || !G || !G.grabbed_thing) + return FALSE + willing = TRUE else - willing = 1 + willing = TRUE if(willing) @@ -423,7 +425,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li if(!M || !G || !G.grabbed_thing) return if(occupant) to_chat(user, SPAN_WARNING("[src] is occupied.")) - return + return FALSE go_in_cryopod(M) @@ -433,6 +435,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li //Despawning occurs when process() is called with an occupant without a client. add_fingerprint(user) + return TRUE /obj/structure/machinery/cryopod/relaymove(mob/user) if(user.is_mob_incapacitated(TRUE)) @@ -516,7 +519,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li if(mob.client) to_chat(mob, SPAN_NOTICE("You feel cool air surround you. You go numb as your senses turn inward.")) to_chat(mob, SPAN_BOLDNOTICE("If you log out or close your client now, your character will permanently removed from the round in 10 minutes. If you ghost, timer will be decreased to 2 minutes.")) - if(!is_admin_level(src.z)) // Set their queue time now because the client has to actually leave to despawn and at that point the client is lost + if(!should_block_game_interaction(src)) // Set their queue time now because the client has to actually leave to despawn and at that point the client is lost mob.client.player_details.larva_queue_time = max(mob.client.player_details.larva_queue_time, world.time) var/area/location = get_area(src) if(mob.job != GET_MAPPED_ROLE(JOB_SQUAD_MARINE)) @@ -533,6 +536,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li icon_state = "body_scanner_open" set_light(0) playsound(src, 'sound/machines/pod_open.ogg', 30) + SEND_SIGNAL(src, COMSIG_CRYOPOD_GO_OUT) #ifdef OBJECTS_PROXY_SPEECH // Transfers speech to occupant @@ -551,3 +555,40 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li return move_inside(target) + + +/obj/structure/machinery/cryopod/tutorial + silent_exit = TRUE + +/obj/structure/machinery/cryopod/tutorial/process() + return + +/obj/structure/machinery/cryopod/tutorial/go_in_cryopod(mob/mob, silent = FALSE, del_them = TRUE) + if(occupant) + return + mob.forceMove(src) + occupant = mob + icon_state = "body_scanner_closed" + set_light(2) + time_entered = world.time + if(del_them) + despawn_occupant() + +/obj/structure/machinery/cryopod/tutorial/despawn_occupant() + SSminimaps.remove_marker(occupant) + + if(ishuman(occupant)) + var/mob/living/carbon/human/man = occupant + man.species.handle_cryo(man) + + icon_state = "body_scanner_open" + set_light(0) + + + var/mob/new_player/new_player = new + + if(!occupant.mind) + occupant.mind_initialize() + + occupant.mind.transfer_to(new_player) + SEND_SIGNAL(occupant, COMSIG_MOB_END_TUTORIAL) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index e6df92d258c0..687882d9d7ae 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -54,7 +54,6 @@ src.health -= W.force * 0.75 if("brute") src.health -= W.force * 0.5 - else if (src.health <= 0) src.explode() ..() @@ -66,6 +65,7 @@ return /obj/structure/machinery/deployable/barrier/emp_act(severity) + . = ..() if(inoperable()) return if(prob(50/severity)) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 8be8609d6008..545d4c35bb5a 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -64,7 +64,7 @@ if(is_mainship_level(z)) // on the almayer return - shuttle.control_doors("lock", "all", force=FALSE) + shuttle.control_doors("force-lock", "all", force=FALSE) /obj/structure/machinery/door_control/proc/handle_door() for(var/obj/structure/machinery/door/airlock/D in range(range)) @@ -95,7 +95,7 @@ D.safe = 1 /obj/structure/machinery/door_control/proc/handle_pod() - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == id) if(M.density) INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, open)) @@ -150,47 +150,6 @@ else icon_state = initial(icon_state) + "0" -/obj/structure/machinery/driver_button/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/driver_button/attackby(obj/item/W, mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/driver_button/attack_hand(mob/user as mob) - - src.add_fingerprint(usr) - if(inoperable()) - return - if(active) - return - add_fingerprint(user) - - use_power(5) - - active = 1 - icon_state = "launcheract" - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == src.id) - INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, open)) - - sleep(20) - - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == src.id) - M.drive() - - sleep(50) - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == src.id) - INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, close)) - - icon_state = "launcherbtt" - active = 0 - - return - // Controls elevator railings /obj/structure/machinery/door_control/railings name = "railing controls" @@ -228,7 +187,7 @@ add_fingerprint(user) var/effective = 0 - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == id) effective = 1 spawn() @@ -275,3 +234,31 @@ desiredstate = !desiredstate +/obj/structure/machinery/door_control/cl + req_access_txt = "200" +// seperating quarter and office because we might want to allow more access to the office than quarter in the future. +/obj/structure/machinery/door_control/cl/office +/obj/structure/machinery/door_control/cl/office/door + name = "Office Door Shutter" + id = "cl_office_door" +/obj/structure/machinery/door_control/cl/office/window + name = "Office Windows Shutters" + id = "cl_office_windows" +/obj/structure/machinery/door_control/cl/office/divider + name = "Room Divider" + id = "RoomDivider" +//special button that unlock the cl lock on is evac pod door bypassing general lockdown. +/obj/structure/machinery/door_control/cl/office/evac + name = "Evac Pod Door Control" + id = "cl_evac" + normaldoorcontrol = 1 +/obj/structure/machinery/door_control/cl/quarter +/obj/structure/machinery/door_control/cl/quarter/officedoor + name = "Quarter Door Shutter" + id = "cl_quarter_door" +/obj/structure/machinery/door_control/cl/quarter/backdoor + name = "Maintenance Door Shutter" + id = "cl_quarter_maintenance" +/obj/structure/machinery/door_control/cl/quarter/windows + name = "Quarter Windows Shutters" + id = "cl_quarter_windows" diff --git a/code/game/machinery/door_display/door_display.dm b/code/game/machinery/door_display/door_display.dm index 7462b1f1b74d..3f0c53ada18e 100644 --- a/code/game/machinery/door_display/door_display.dm +++ b/code/game/machinery/door_display/door_display.dm @@ -31,7 +31,7 @@ get_targets() /obj/structure/machinery/door_display/proc/get_targets() - for(var/obj/structure/machinery/door/D in machines) + for(var/obj/structure/machinery/door/D in GLOB.machines) if (D.id == id) targets += D @@ -199,7 +199,7 @@ /obj/structure/machinery/door_display/research_cell/get_targets() ..() - for(var/obj/structure/machinery/flasher/F in machines) + for(var/obj/structure/machinery/flasher/F in GLOB.machines) if(F.id == id) targets += F if(has_wall_divider) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index dc28cdca6f5c..332d9b96bd44 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( else if(user.hallucination > 50 && prob(10) && operating == 0) to_chat(user, SPAN_DANGER("You feel a powerful shock course through your body!")) user.halloss += 10 - user.stunned += 10 + user.apply_effect(10, STUN) return ..(user) @@ -550,14 +550,14 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( add_fingerprint(usr) update_icon() -/obj/structure/machinery/door/airlock/attackby(obj/item/C, mob/user) - if(SEND_SIGNAL(C, COMSIG_ITEM_ATTACK_AIRLOCK, src, user) & COMPONENT_CANCEL_AIRLOCK_ATTACK) +/obj/structure/machinery/door/airlock/attackby(obj/item/attacking_item, mob/user) + if(SEND_SIGNAL(attacking_item, COMSIG_ITEM_ATTACK_AIRLOCK, src, user) & COMPONENT_CANCEL_AIRLOCK_ATTACK) return - if(istype(C, /obj/item/clothing/mask/cigarette)) + if(istype(attacking_item, /obj/item/clothing/mask/cigarette)) if(isElectrified()) - var/obj/item/clothing/mask/cigarette/L = C - L.light(SPAN_NOTICE("[user] lights their [L] on an electrical arc from the [src]")) + var/obj/item/clothing/mask/cigarette/L = attacking_item + L.light(SPAN_NOTICE("[user] lights their [L] on an electrical arc from [src]")) return if(!isRemoteControlling(user)) @@ -567,8 +567,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( add_fingerprint(user) - if(istype(C, /obj/item/weapon/zombie_claws) && (welded || locked)) - user.visible_message(SPAN_NOTICE("[user] starts tearing into the door on the [src]!"), \ + if(istype(attacking_item, /obj/item/weapon/zombie_claws) && (welded || locked)) + user.visible_message(SPAN_NOTICE("[user] starts tearing into the door on [src]!"), \ SPAN_NOTICE("You start prying your hand into the gaps of the door with your fingers... This will take about 30 seconds."), \ SPAN_NOTICE("You hear tearing noises!")) @@ -584,8 +584,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( return - if((iswelder(C) && !operating && density)) - var/obj/item/tool/weldingtool/W = C + if((iswelder(attacking_item) && !operating && density)) + var/obj/item/tool/weldingtool/W = attacking_item var/weldtime = 50 if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) weldtime = 70 @@ -609,7 +609,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( update_icon() return - else if(HAS_TRAIT(C, TRAIT_TOOL_SCREWDRIVER)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) if(no_panel) to_chat(user, SPAN_WARNING("\The [src] has no panel to open!")) return @@ -619,17 +619,17 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( update_icon() return - else if(HAS_TRAIT(C, TRAIT_TOOL_WIRECUTTERS)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WIRECUTTERS)) return attack_hand(user) - else if(HAS_TRAIT(C, TRAIT_TOOL_MULTITOOL)) + else if(HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL)) return attack_hand(user) - else if(isgun(C)) - var/obj/item/weapon/gun/G = C - for(var/slot in G.attachments) - if(istype(G.attachments[slot], /obj/item/attachable/bayonet)) - var/obj/item/attachable/bayonet/a_bayonet = G.attachments[slot] + else if(isgun(attacking_item)) + var/obj/item/weapon/gun/gun_item = attacking_item + for(var/slot in gun_item.attachments) + if(istype(gun_item.attachments[slot], /obj/item/attachable/bayonet)) + var/obj/item/attachable/bayonet/a_bayonet = gun_item.attachments[slot] if(arePowerSystemsOn()) to_chat(user, SPAN_WARNING("The airlock's motors resist your efforts to force it.")) else if(locked) @@ -647,50 +647,48 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( if(do_after(user, a_bayonet.pry_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) close(1) - else if(C.pry_capable) - if(C.pry_capable == IS_PRY_CAPABLE_CROWBAR && panel_open && welded) + else if(attacking_item.pry_capable) + if(attacking_item.pry_capable == IS_PRY_CAPABLE_CROWBAR && panel_open && welded) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You don't seem to know how to deconstruct machines.")) return - if(width > 1) - to_chat(user, SPAN_WARNING("Large doors seem impossible to disassemble.")) - return playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) user.visible_message("[user] starts removing the electronics from the airlock assembly.", "You start removing electronics from the airlock assembly.") if(do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) to_chat(user, SPAN_NOTICE(" You removed the airlock electronics!")) - var/obj/structure/airlock_assembly/da = new assembly_type(loc) - if(istype(da, /obj/structure/airlock_assembly/multi_tile)) - da.setDir(dir) + var/obj/structure/airlock_assembly/doors_assembly = new assembly_type(loc) + if(istype(doors_assembly, /obj/structure/airlock_assembly/multi_tile)) + doors_assembly.setDir(dir) + doors_assembly.update_collision_box() - da.anchored = TRUE + doors_assembly.anchored = TRUE if(mineral) - da.glass = mineral + doors_assembly.glass = mineral //else if(glass) - else if(glass && !da.glass) - da.glass = 1 - da.state = 0 - da.created_name = name - da.update_icon() + else if(glass && !doors_assembly.glass) + doors_assembly.glass = TRUE + doors_assembly.state = 0 + doors_assembly.created_name = name + doors_assembly.update_icon() - var/obj/item/circuitboard/airlock/ae + var/obj/item/circuitboard/airlock/airlock_electronics if(!electronics) - ae = new/obj/item/circuitboard/airlock( loc ) + airlock_electronics = new/obj/item/circuitboard/airlock(loc) if(!req_access || !req_one_access) check_access() if(req_access.len) - ae.conf_access = req_access + airlock_electronics.conf_access = req_access else if(req_one_access.len) - ae.conf_access = req_one_access - ae.one_access = 1 + airlock_electronics.conf_access = req_one_access + airlock_electronics.one_access = TRUE else - ae = electronics + airlock_electronics = electronics electronics = null - ae.forceMove(loc) + airlock_electronics.forceMove(loc) if(operating == -1) - ae.fried = TRUE - ae.update_icon() + airlock_electronics.fried = TRUE + airlock_electronics.update_icon() operating = 0 msg_admin_niche("[key_name(user)] deconstructed [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z])") @@ -698,7 +696,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( deconstruct() return - else if(arePowerSystemsOn() && C.pry_capable != IS_PRY_CAPABLE_FORCE) + else if(arePowerSystemsOn() && attacking_item.pry_capable != IS_PRY_CAPABLE_FORCE) to_chat(user, SPAN_WARNING("The airlock's motors resist your efforts to force it.")) else if(locked) @@ -707,7 +705,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( else if(welded) to_chat(user, SPAN_WARNING("The airlock is welded shut.")) - else if(C.pry_capable == IS_PRY_CAPABLE_FORCE) + else if(attacking_item.pry_capable == IS_PRY_CAPABLE_FORCE) return FALSE //handled by the item's afterattack else if(!operating) @@ -719,7 +717,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( return TRUE //no afterattack call - if(istype(C, /obj/item/large_shrapnel)) + if(istype(attacking_item, /obj/item/large_shrapnel)) return FALSE //trigger afterattack call else return ..() @@ -819,7 +817,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( /obj/structure/machinery/door/airlock/LateInitialize() . = ..() if(closeOtherId != null) - for(var/obj/structure/machinery/door/airlock/A in machines) + for(var/obj/structure/machinery/door/airlock/A in GLOB.machines) if(A.closeOtherId == closeOtherId && A != src) closeOther = A break @@ -835,7 +833,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( return /obj/structure/machinery/door/airlock/allowed(mob/M) - if(isWireCut(AIRLOCK_WIRE_IDSCAN) || (maint_all_access && check_access_list(list(ACCESS_MARINE_MAINT)))) + if(isWireCut(AIRLOCK_WIRE_IDSCAN) || (GLOB.maint_all_access && check_access_list(list(ACCESS_MARINE_MAINT)))) return TRUE return ..(M) @@ -847,7 +845,7 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( for(var/i in resin_door_shmushereds) if(istype(x,i)) //I would like to just use a if(locate() in ) here but Im not gonna add every child to GLOB.resin_door_shmushereds so it works playsound(loc, "alien_resin_break", 25) - visible_message(SPAN_WARNING("The [src.name] closes on the [x], shmushing it!")) + visible_message(SPAN_WARNING("The [src.name] closes on [x], shmushing it!")) if(isturf(x)) var/turf/closed/wall/resin_wall_to_destroy = x resin_wall_to_destroy.dismantle_wall() @@ -860,7 +858,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread sparks.set_up(5, 1, src) sparks.start() - xeno.apply_effect(1, WEAKEN) + xeno.KnockDown(1) + xeno.Stun(1) playsound(src, 'sound/effects/metalhit.ogg', 50, TRUE) xeno.visible_message(SPAN_XENOWARNING("\The [xeno] strikes \the [src] with its tail!"), SPAN_XENOWARNING("You strike \the [src] with your tail!")) @@ -868,3 +867,8 @@ GLOBAL_LIST_INIT(airlock_wire_descriptions, list( var/damage = xeno.melee_damage_upper * TAILSTAB_AIRLOCK_DAMAGE_MULTIPLIER take_damage(damage, xeno) return TAILSTAB_COOLDOWN_NORMAL + +/obj/structure/machinery/door/airlock/autoclose() + if(locked) + return + ..() diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index f4d09796194c..feb699fd245e 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -138,7 +138,6 @@ opacity = 0 assembly_type = /obj/structure/airlock_assembly/airlock_assembly_research glass = 1 - heat_proof = 1 req_one_access = list(ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_COMMAND, ACCESS_WY_COLONIAL) /obj/structure/machinery/door/airlock/glass_mining/colony diff --git a/code/game/machinery/doors/brig_system.dm b/code/game/machinery/doors/brig_system.dm index 58c3282abed4..e7437aa9ca2b 100644 --- a/code/game/machinery/doors/brig_system.dm +++ b/code/game/machinery/doors/brig_system.dm @@ -290,15 +290,15 @@ addtimer(CALLBACK(src, PROC_REF(search_for_components)), 20) /obj/structure/machinery/brig_cell/proc/search_for_components() - for(var/obj/structure/machinery/door/window/brigdoor/M in machines) + for(var/obj/structure/machinery/door/window/brigdoor/M in GLOB.machines) if(M.id == id) targets += M - for(var/obj/structure/machinery/flasher/F in machines) + for(var/obj/structure/machinery/flasher/F in GLOB.machines) if(F.id == id) targets += F - for(var/obj/structure/machinery/door/poddoor/almayer/locked/P in machines) + for(var/obj/structure/machinery/door/poddoor/almayer/locked/P in GLOB.machines) if(P.id == id) targets += P @@ -390,6 +390,14 @@ name = "Cell 4" id = "Cell 4" +/obj/structure/machinery/brig_cell/cell_5 + name = "Cell 5" + id = "Cell 5" + +/obj/structure/machinery/brig_cell/cell_6 + name = "Cell 6" + id = "Cell 6" + /obj/structure/machinery/brig_cell/perma_1 name = "Perma 1" id = "Perma 1" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 578ef368f5d9..021cb60769f9 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -1,4 +1,3 @@ - /obj/structure/machinery/door name = "\improper Door" desc = "It opens and closes." @@ -7,50 +6,43 @@ anchored = TRUE opacity = TRUE density = TRUE - throwpass = 0 + throwpass = FALSE layer = DOOR_OPEN_LAYER minimap_color = MINIMAP_DOOR var/open_layer = DOOR_OPEN_LAYER var/closed_layer = DOOR_CLOSED_LAYER var/id = "" + var/width = 1 var/secondsElectrified = 0 - var/visible = 1 + var/visible = TRUE var/panel_open = FALSE - var/operating = 0 - var/autoclose = 0 - var/glass = 0 - var/normalspeed = 1 - var/openspeed = 10 //How many seconds does it take to open it? Default 1 second. Use only if you have long door opening animations - var/heat_proof = 0 // For glass airlocks/opacity firedoors - var/air_properties_vary_with_direction = 0 - var/turf/filler //Fixes double door opacity issue + var/operating = FALSE + var/autoclose = FALSE + var/glass = FALSE + /// If FALSE it speeds up the autoclosing timing. + var/normalspeed = TRUE + /// Time to open/close airlock, default is 1 second. + var/openspeed = 1 SECONDS + /// Fixes multi_tile doors opacity issues. + var/list/filler_turfs = list() //Previously this was just var, because no one had forseen someone creating doors more than 2 tiles wide /// Stops it being forced open through normal means (Hunters/Zombies/Aliens). var/heavy = FALSE /// Resistance to masterkey var/masterkey_resist = FALSE var/masterkey_mod = 0.1 - - - //Multi-tile doors - dir = EAST - var/width = 1 + dir = EAST //So multitile doors are directioned properly /obj/structure/machinery/door/Initialize(mapload, ...) . = ..() - if(density) - layer = closed_layer - update_flags_heat_protection(get_turf(src)) - else - layer = open_layer - + layer = density ? closed_layer : open_layer handle_multidoor() /obj/structure/machinery/door/Destroy() . = ..() - if(filler && width > 1) - filler.set_opacity(0)// Ehh... let's hope there are no walls there. Must fix this - filler = null + if(length(filler_turfs) && width > 1) + change_filler_opacity(0) // It still doesn't check for walls, might want to add checking that in the future + filler_turfs = null density = FALSE /obj/structure/machinery/door/initialize_pass_flags(datum/pass_flags_container/PF) @@ -58,21 +50,41 @@ if (PF) PF.flags_can_pass_all = NONE +/// Also refreshes filler_turfs list. +/obj/structure/machinery/door/proc/change_filler_opacity(new_opacity) + // I have no idea why do we null opacity first before... changing it + for(var/turf/filler_turf as anything in filler_turfs) + filler_turf.set_opacity(null) + + filler_turfs = list() + for(var/turf/filler as anything in locate_filler_turfs()) + filler.set_opacity(new_opacity) + filler_turfs += filler + +/// Updates collision box and opacity of multi_tile airlocks. /obj/structure/machinery/door/proc/handle_multidoor() if(width > 1) if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size - filler = get_step(src,EAST) - filler.set_opacity(opacity) else bound_width = world.icon_size bound_height = width * world.icon_size - filler = get_step(src,NORTH) - filler.set_opacity(opacity) + change_filler_opacity(opacity) + +/// Finds turfs which should be filler ones. +/obj/structure/machinery/door/proc/locate_filler_turfs() + var/turf/filler_temp + var/list/located_turfs = list() -//process() - //return + for(var/i in 1 to width - 1) + if (dir in list(EAST, WEST)) + filler_temp = locate(x + i, y, z) + else + filler_temp = locate(x, y + i, z) + if (filler_temp) + located_turfs += filler_temp + return located_turfs /obj/structure/machinery/door/proc/borders_space() for(var/turf/target in range(1, src)) @@ -81,7 +93,8 @@ return FALSE /obj/structure/machinery/door/Collided(atom/movable/AM) - if(panel_open || operating) return + if(panel_open || operating) + return if(ismob(AM)) var/mob/M = AM if(world.time - M.last_bumped <= openspeed) return //Can bump-open one airlock per second. This is to prevent shock spam. @@ -89,12 +102,10 @@ if(!M.is_mob_restrained() && M.mob_size > MOB_SIZE_SMALL) bumpopen(M) return - if(istype(AM, /obj)) var/obj/O = AM if(O.buckled_mob) Collided(O.buckled_mob) - if(istype(AM, /obj/structure/machinery/bot)) var/obj/structure/machinery/bot/bot = AM if(src.check_access(bot.botcard)) @@ -102,16 +113,17 @@ open() return - /obj/structure/machinery/door/proc/bumpopen(mob/user as mob) - if(operating) return - src.add_fingerprint(user) - if(!src.requiresID()) + if(operating) + return + add_fingerprint(user) + if(!requiresID()) user = null - if(density) - if(allowed(user)) open() - else flick("door_deny", src) + if(allowed(user)) + open() + else + flick("door_deny", src) return /obj/structure/machinery/door/attack_remote(mob/user) @@ -124,9 +136,7 @@ add_fingerprint(user) if(operating) return - if(!Adjacent(user)) - user = null //so allowed(user) always succeeds - if(!requiresID()) + if(!Adjacent(user) || !requiresID()) user = null //so allowed(user) always succeeds if(allowed(user)) if(density) @@ -137,64 +147,56 @@ if(density) flick("door_deny", src) - /obj/structure/machinery/door/attackby(obj/item/I, mob/user) if(!(I.flags_item & NOBLUDGEON)) try_to_activate_door(user) - return 1 + return TRUE /obj/structure/machinery/door/emp_act(severity) - if(prob(20/severity) && (istype(src,/obj/structure/machinery/door/airlock) || istype(src,/obj/structure/machinery/door/window)) ) + . = ..() + if(prob(20/severity) && use_power) open() if(prob(40/severity)) if(secondsElectrified == 0) secondsElectrified = -1 spawn(30 SECONDS) secondsElectrified = 0 - ..() - /obj/structure/machinery/door/ex_act(severity) - if(unacidable) return + if(unacidable) + return if(density) switch(severity) if(0 to EXPLOSION_THRESHOLD_LOW) if(prob(80)) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(2, 1, src) - s.start() + var/datum/effect_system/spark_spread/spark = new /datum/effect_system/spark_spread + spark.set_up(2, 1, src) + spark.start() if(EXPLOSION_THRESHOLD_LOW to INFINITY) qdel(src) else switch(severity) if(0 to EXPLOSION_THRESHOLD_MEDIUM) if(prob(80)) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(2, 1, src) - s.start() + var/datum/effect_system/spark_spread/spark = new /datum/effect_system/spark_spread + spark.set_up(2, 1, src) + spark.start() else qdel(src) return - /obj/structure/machinery/door/get_explosion_resistance() if(density) if(unacidable) - return 1000000 + return 1000000 //Used for negation of explosions, should probably be made into define in the future else return EXPLOSION_THRESHOLD_LOW //this should exactly match the amount of damage needed to destroy the door else return 0 - /obj/structure/machinery/door/update_icon() - if(density) - icon_state = "door1" - else - icon_state = "door0" - return - + icon_state = density ? "door1" : "door0" /obj/structure/machinery/door/proc/do_animate(animation) switch(animation) @@ -212,7 +214,6 @@ flick("door_deny", src) return - /obj/structure/machinery/door/proc/open(forced=0) if(!density) return TRUE @@ -223,8 +224,8 @@ do_animate("opening") icon_state = "door0" set_opacity(FALSE) - if(filler) - filler.set_opacity(opacity) + if(length(filler_turfs)) + change_filler_opacity(opacity) addtimer(CALLBACK(src, PROC_REF(finish_open)), openspeed) return TRUE @@ -235,11 +236,9 @@ if(operating) operating = FALSE - if(autoclose) addtimer(CALLBACK(src, PROC_REF(autoclose)), normalspeed ? 150 + openspeed : 5) - /obj/structure/machinery/door/proc/close() if(density) return TRUE @@ -256,22 +255,19 @@ update_icon() if(visible && !glass) set_opacity(TRUE) - if(filler) - filler.set_opacity(opacity) + if(length(filler_turfs)) + change_filler_opacity(opacity) operating = FALSE /obj/structure/machinery/door/proc/requiresID() return TRUE - -/obj/structure/machinery/door/proc/update_flags_heat_protection(turf/source) - - +/// Used for overriding in airlocks /obj/structure/machinery/door/proc/autoclose() - var/obj/structure/machinery/door/airlock/A = src - if(!A.density && !A.operating && !A.locked && !A.welded && A.autoclose) + if(!autoclose) + return + if(!density && !operating) close() - return /obj/structure/machinery/door/Move(new_loc, new_dir) . = ..() @@ -279,16 +275,15 @@ if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size - filler.set_opacity(0) - filler = (get_step(src,EAST)) //Find new turf - filler.set_opacity(opacity) else bound_width = world.icon_size bound_height = width * world.icon_size - filler.set_opacity(0) - filler = (get_step(src,NORTH)) //Find new turf - filler.set_opacity(opacity) + change_filler_opacity(opacity) +/obj/structure/machinery/door/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) + . = ..() + // Yes, for a split second after departure you can see through rear dropship airlocks, but it's the simplest solution I could've think of + handle_multidoor() /obj/structure/machinery/door/morgue icon = 'icons/obj/structures/doors/doormorgue.dmi' diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 065816567ca1..cddd67c7e2b2 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -1,7 +1,4 @@ // Door open and close constants -/var/const - CLOSED = 2 - #define FIREDOOR_MAX_PRESSURE_DIFF 25 // kPa #define FIREDOOR_MAX_TEMP 50 // °C #define FIREDOOR_MIN_TEMP 0 @@ -57,7 +54,7 @@ A.all_doors.Add(src) areas_added = list(A) - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) A = get_area(get_step(src,direction)) if(istype(A) && !(A in areas_added)) A.all_doors.Add(src) @@ -135,7 +132,7 @@ "Would you like to [density ? "open" : "close"] this [src.name]?[ alarmed && density ? "\nNote that by doing so, you acknowledge any damages from opening this\n[src.name] as being your own fault, and you will be held accountable under the law." : ""]",\ "\The [src]", list("Yes", "No")) != "Yes") return - if(user.is_mob_incapacitated() || (!user.canmove && !isRemoteControlling(user)) || (get_dist(src, user) > 1 && !isRemoteControlling(user))) + if(user.is_mob_incapacitated() || (get_dist(src, user) > 1 && !isRemoteControlling(user))) to_chat(user, "Sorry, you must remain able bodied and close to \the [src] in order to use it.") return if(density && (inoperable())) //can still close without power @@ -277,7 +274,7 @@ overlays += "palert" if(dir_alerts) for(var/d=1;d<=4;d++) - var/cdir = cardinal[d] + var/cdir = GLOB.cardinals[d] for(var/i=1;i<=ALERT_STATES.len;i++) if(dir_alerts[d] & (1<<(i-1))) overlays += new/icon(icon,"alert_[ALERT_STATES[i]]", dir=cdir) diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 6123d56b8f23..0a179af27803 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -2,19 +2,24 @@ /obj/structure/machinery/door/airlock/multi_tile width = 2 damage_cap = 650 // Bigger = more endurable + assembly_type = /obj/structure/airlock_assembly/multi_tile /obj/structure/machinery/door/airlock/multi_tile/close() //Nasty as hell O(n^2) code but unfortunately necessary - for(var/turf/T in locs) - for(var/obj/vehicle/multitile/M in T) - if(M) return 0 + for(var/turf/turf_tile in locs) + for(var/obj/vehicle/multitile/vehicle_tile in turf_tile) + if(vehicle_tile) return 0 return ..() +/obj/structure/machinery/door/airlock/multi_tile/Initialize() + . = ..() + update_icon() + /obj/structure/machinery/door/airlock/multi_tile/glass name = "Glass Airlock" icon = 'icons/obj/structures/doors/Door2x1glass.dmi' opacity = FALSE - glass = 1 + glass = TRUE assembly_type = /obj/structure/airlock_assembly/multi_tile /obj/structure/machinery/door/airlock/multi_tile/glass/colony @@ -25,7 +30,7 @@ name = "Security Airlock" icon = 'icons/obj/structures/doors/Door2x1security.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/security/colony req_access = null @@ -35,7 +40,7 @@ name = "Command Airlock" icon = 'icons/obj/structures/doors/Door2x1command.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/command/colony req_access = null @@ -45,7 +50,7 @@ name = "Medical Airlock" icon = 'icons/obj/structures/doors/Door2x1medbay.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/medical/colony req_access = null @@ -55,7 +60,7 @@ name = "Engineering Airlock" icon = 'icons/obj/structures/doors/Door2x1engine.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/engineering/colony req_access = null @@ -65,7 +70,7 @@ name = "Research Airlock" icon = 'icons/obj/structures/doors/Door2x1research.dmi' opacity = FALSE - glass = 1 + glass = TRUE req_one_access = list(ACCESS_MARINE_RESEARCH, ACCESS_WY_RESEARCH, ACCESS_WY_EXEC) /obj/structure/machinery/door/airlock/multi_tile/research/colony @@ -103,7 +108,7 @@ name = "Secure Airlock" icon = 'icons/obj/structures/doors/Door2x1_secure2_glass.dmi' opacity = FALSE - glass = 1 + glass = TRUE openspeed = 31 req_access = null @@ -131,7 +136,6 @@ /obj/structure/window/framed/almayer, /obj/structure/machinery/door/airlock, ) - var/multi_filler = list() /obj/structure/machinery/door/airlock/multi_tile/almayer/Initialize() . = ..() @@ -141,10 +145,10 @@ . = ..() relativewall_neighbours() -/obj/structure/machinery/door/airlock/multi_tile/almayer/take_damage(dam, mob/M) - var/damage_check = max(0, damage + dam) - if(damage_check >= damage_cap && M && is_mainship_level(z)) - SSclues.create_print(get_turf(M), M, "The fingerprint contains bits of wire and metal specks.") +/obj/structure/machinery/door/airlock/multi_tile/almayer/take_damage(taken_damage, mob/damaging_mob) + var/damage_check = max(0, damage + taken_damage) + if(damage_check >= damage_cap && damaging_mob && is_mainship_level(z)) + SSclues.create_print(get_turf(damaging_mob), damaging_mob, "The fingerprint contains bits of wire and metal specks.") ..() /obj/structure/machinery/door/airlock/multi_tile/almayer/generic @@ -156,6 +160,11 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname autoname = TRUE +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid + icon = 'icons/obj/structures/doors/2x1generic_solid.dmi' + opacity = TRUE + glass = FALSE + /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor name = "\improper Medical Airlock" icon = 'icons/obj/structures/doors/2x1medidoor.dmi' @@ -222,47 +231,6 @@ req_access = null req_one_access = list(ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_COMMAND, ACCESS_WY_COLONIAL) -/obj/structure/machinery/door/airlock/multi_tile/almayer/handle_multidoor() - if(!(width > 1)) return //Bubblewrap - - update_filler_turfs() - if(dir in list(NORTH, SOUTH)) - bound_height = world.icon_size * width - bound_width = world.icon_size - else if(dir in list(EAST, WEST)) - bound_width = world.icon_size * width - bound_height = world.icon_size - -//We have to find these again since these doors are used on shuttles a lot so the turfs changes -/obj/structure/machinery/door/airlock/multi_tile/almayer/proc/update_filler_turfs() - for(var/turf/T in multi_filler) - T.set_opacity(null) - - multi_filler = list() - for(var/turf/T in get_filler_turfs()) - T.set_opacity(opacity) - multi_filler += list(T) - -/obj/structure/machinery/door/airlock/multi_tile/proc/get_filler_turfs() - . = list() - for(var/i = 1, i < width, i++) - if(dir in list(NORTH, SOUTH)) - var/turf/T = locate(x, y + i, z) - if(T) - . += list(T) - else if(dir in list(EAST, WEST)) - var/turf/T = locate(x + i, y, z) - if(T) - . += list(T) - -/obj/structure/machinery/door/airlock/multi_tile/almayer/open() - . = ..() - update_filler_turfs() - -/obj/structure/machinery/door/airlock/multi_tile/almayer/close() - . = ..() - update_filler_turfs() - //------Dropship Cargo Doors -----// /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear @@ -307,6 +275,17 @@ name = "\improper Normandy cargo door" icon = 'icons/obj/structures/doors/dropship2_cargo.dmi' +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside + width = 2 + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1 + name = "\improper Alamo crew hatch" + icon = 'icons/obj/structures/doors/dropship1_side2.dmi' + +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2 + name = "\improper Normandy crew hatch" + icon = 'icons/obj/structures/doors/dropship2_side2.dmi' + /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/blastdoor name = "bulkhead blast door" icon = 'icons/obj/structures/doors/almayerblastdoor.dmi' @@ -427,7 +406,7 @@ /obj/structure/machinery/door/airlock/multi_tile/elevator/access icon = 'icons/obj/structures/doors/4x1_elevator_access.dmi' opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/elevator/access/research name = "\improper Research Elevator Hatch" @@ -547,7 +526,7 @@ icon = 'icons/obj/structures/doors/prepdoor.dmi' req_one_access = list(ACCESS_MARINE_PREP, ACCESS_MARINE_DATABASE, ACCESS_MARINE_CARGO, ACCESS_MARINE_ALPHA, ACCESS_MARINE_BRAVO, ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DELTA) opacity = FALSE - glass = 1 + glass = TRUE /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo name = "\improper Alpha-Bravo Squads Preparations" diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index b2d836ee476f..0a3b873ce385 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -240,6 +240,7 @@ /obj/structure/machinery/door/poddoor/filler_object name = "" + icon = null icon_state = "" unslashable = TRUE unacidable = TRUE diff --git a/code/game/machinery/doors/runed_sandstone.dm b/code/game/machinery/doors/runed_sandstone.dm index 4bf66dfdc8d8..a6de7348dd7f 100644 --- a/code/game/machinery/doors/runed_sandstone.dm +++ b/code/game/machinery/doors/runed_sandstone.dm @@ -110,8 +110,8 @@ density = FALSE update_icon() set_opacity(0) - if(filler) - filler.set_opacity(opacity) + if(length(filler_turfs)) + change_filler_opacity(opacity) if(operating) operating = FALSE diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index da904f255c40..f91f1f48cade 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -155,3 +155,44 @@ if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) return ..() + +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft + name = "Anti-Theft Shutters" + desc = "Secure Storage shutters, they're reinforced against entry attempts." + var/req_level = SEC_LEVEL_RED + +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft/Initialize() + . = ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_SECURITY_LEVEL_CHANGED, PROC_REF(sec_changed)) + +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft/proc/sec_changed(datum/source, new_sec) + SIGNAL_HANDLER + if(new_sec < req_level) + if(density) + return + close() + else + if(!density) + return + open() + +//make a subtype for CL office so it as a proper name. +/obj/structure/machinery/door/poddoor/shutters/almayer/cl + name = "\improper Corporate Liaison Privacy Shutters" +//adding a subtype for CL office to use to secure access to cl office. +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/door + id = "cl_office_door" +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/window + id = "cl_office_windows" +//adding a subtype for CL quarter to use to secure access to cl quarter.(including seperation with the office) +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/backdoor + id = "cl_quarter_maintenance" + dir = 4 +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/door + id = "cl_quarter_door" + dir = 4 +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/window + id = "cl_quarter_windows" diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 2b57fbd0a44d..76a370061a2f 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -11,7 +11,6 @@ flags_atom = ON_BORDER opacity = FALSE var/obj/item/circuitboard/airlock/electronics = null - air_properties_vary_with_direction = 1 /obj/structure/machinery/door/window/Initialize() . = ..() @@ -296,12 +295,12 @@ /obj/structure/machinery/door/window/ultra/Initialize(mapload, ...) . = ..() - GLOB.hijack_deletable_windows += src - -/obj/structure/machinery/door/window/ultra/Destroy() - GLOB.hijack_deletable_windows -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(impact)) // No damage taken. /obj/structure/machinery/door/window/ultra/attackby(obj/item/I, mob/user) return try_to_activate_door(user) + +/obj/structure/machinery/door/window/ultra/proc/impact() + qdel(src) diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index ff26ce802b08..4a5c62b1f9a0 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -1,11 +1,12 @@ -var/list/obj/structure/machinery/faxmachine/allfaxes = list() -var/list/alldepartments = list() +GLOBAL_LIST_INIT_TYPED(allfaxes, /obj/structure/machinery/faxmachine, list()) +GLOBAL_LIST_EMPTY(alldepartments) #define DEPARTMENT_WY "Weyland-Yutani" #define DEPARTMENT_HC "USCM High Command" #define DEPARTMENT_CMB "CMB Incident Command Center, Local Operations" #define DEPARTMENT_PROVOST "USCM Provost Office" #define DEPARTMENT_PRESS "Various Press Organizations" +#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS) /obj/structure/machinery/faxmachine // why not fax_machine? name = "\improper General Purpose Fax Machine" @@ -44,11 +45,11 @@ var/list/alldepartments = list() /obj/structure/machinery/faxmachine/Initialize(mapload, ...) . = ..() - allfaxes += src + GLOB.allfaxes += src update_departments() /obj/structure/machinery/faxmachine/Destroy() - allfaxes -= src + GLOB.allfaxes -= src . = ..() /obj/structure/machinery/faxmachine/initialize_pass_flags(datum/pass_flags_container/PF) @@ -109,7 +110,8 @@ var/list/alldepartments = list() set category = "Object" set name = "Eject ID Card" set src in view(1) - if(!usr || usr.stat || usr.lying) return + if(usr.is_mob_incapacitated()) + return if(ishuman(usr) && scan) to_chat(usr, "You remove \the [scan] from \the [src].") @@ -124,18 +126,18 @@ var/list/alldepartments = list() return /obj/structure/machinery/faxmachine/proc/update_departments() - if( !("[department]" in alldepartments) ) //Initialize departments. This will work with multiple fax machines. - alldepartments += department - if(!(DEPARTMENT_WY in alldepartments)) - alldepartments += DEPARTMENT_WY - if(!(DEPARTMENT_HC in alldepartments)) - alldepartments += DEPARTMENT_HC - if(!(DEPARTMENT_PROVOST in alldepartments)) - alldepartments += DEPARTMENT_PROVOST - if(!(DEPARTMENT_CMB in alldepartments)) - alldepartments += DEPARTMENT_CMB - if(!(DEPARTMENT_PRESS in alldepartments)) - alldepartments += DEPARTMENT_PRESS + if( !("[department]" in GLOB.alldepartments) ) //Initialize departments. This will work with multiple fax machines. + GLOB.alldepartments += department + if(!(DEPARTMENT_WY in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_WY + if(!(DEPARTMENT_HC in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_HC + if(!(DEPARTMENT_PROVOST in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_PROVOST + if(!(DEPARTMENT_CMB in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_CMB + if(!(DEPARTMENT_PRESS in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_PRESS // TGUI SHIT \\ /obj/structure/machinery/faxmachine/tgui_interact(mob/user, datum/tgui/ui) @@ -254,7 +256,7 @@ var/list/alldepartments = list() if("select") var/last_target_department = target_department - target_department = tgui_input_list(ui.user, "Which department?", "Choose a department", alldepartments) + target_department = tgui_input_list(ui.user, "Which department?", "Choose a department", GLOB.alldepartments) if(!target_department) target_department = last_target_department . = TRUE @@ -319,27 +321,31 @@ var/list/alldepartments = list() GLOB.fax_contents += faxcontents + var/scan_department = target_department + if(department in HIGHCOM_DEPARTMENTS) + scan_department = department + var/msg_admin = SPAN_STAFF_IC("[target_department]: [key_name(user, 1)] ") msg_admin += "[CC_MARK(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_JMP_USER(user)] " - switch(target_department) + switch(scan_department) if(DEPARTMENT_HC) - GLOB.USCMFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.USCMFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_PROVOST) - GLOB.ProvostFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.ProvostFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_CMB) - GLOB.CMBFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.CMBFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_WY) - GLOB.WYFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_PRESS) - GLOB.PressFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " else - GLOB.GeneralFaxes.Add("\[view message at [world.timeofday]\] REPLY") + GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... view message") @@ -374,7 +380,7 @@ var/list/alldepartments = list() /obj/structure/machinery/faxmachine/proc/send_fax(datum/fax/faxcontents) - for(var/obj/structure/machinery/faxmachine/F in allfaxes) + for(var/obj/structure/machinery/faxmachine/F in GLOB.allfaxes) if(F != src && F.department == target_department) if(!faxcontents) return diff --git a/code/game/machinery/fire_alarm.dm b/code/game/machinery/fire_alarm.dm index fe1f80646c4f..55aef1323c4d 100644 --- a/code/game/machinery/fire_alarm.dm +++ b/code/game/machinery/fire_alarm.dm @@ -47,7 +47,7 @@ FIRE ALARM if(stat & BROKEN) icon_state = "firex" - else if(stat & NOPOWER & (security_level != SEC_LEVEL_RED)) + else if(stat & NOPOWER & (GLOB.security_level != SEC_LEVEL_RED)) icon_state = "firep" /obj/structure/machinery/firealarm/fire_act(temperature, volume) @@ -63,8 +63,9 @@ FIRE ALARM return src.alarm() /obj/structure/machinery/firealarm/emp_act(severity) - if(prob(50/severity)) alarm() - ..() + . = ..() + if(prob(50/severity)) + alarm() /obj/structure/machinery/firealarm/attackby(obj/item/held_object as obj, mob/user as mob) src.add_fingerprint(user) @@ -182,7 +183,7 @@ FIRE ALARM pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 if(!is_mainship_level(z)) - if(security_level) + if(GLOB.security_level) src.overlays += image('icons/obj/structures/machinery/monitors.dmi', "overlay_[get_security_level()]") else src.overlays += image('icons/obj/structures/machinery/monitors.dmi', "overlay_green") diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 75d0de56dec0..437ef7b067ea 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -60,7 +60,7 @@ src.last_flash = world.time use_power(1500) - for (var/mob/O in viewers(src, null)) + for (var/mob/living/O in viewers(src, null)) if (get_dist(src, O) > src.range) continue @@ -72,7 +72,9 @@ if (istype(O, /mob/living/carbon/xenomorph))//So aliens don't get flashed (they have no external eyes)/N continue - O.apply_effect(strength, WEAKEN) + O.KnockDown(strength) + O.Stun(strength) + if (istype(O, /mob/living/carbon/human)) var/mob/living/carbon/human/H = O var/datum/internal_organ/eyes/E = H.internal_organs_by_name["eyes"] @@ -84,12 +86,11 @@ /obj/structure/machinery/flasher/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return if(prob(75/severity)) flash() - ..(severity) /obj/structure/machinery/flasher/portable/HasProximity(atom/movable/AM as mob|obj) if ((src.disable) || (src.last_flash && world.time < src.last_flash + 150)) @@ -134,7 +135,7 @@ active = 1 icon_state = "launcheract" - for(var/obj/structure/machinery/flasher/M in machines) + for(var/obj/structure/machinery/flasher/M in GLOB.machines) if(M.id == src.id) INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/flasher, flash)) diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 5f6cd02a4bf8..580fea644eec 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -1,30 +1,28 @@ -//these are probably broken - /obj/structure/machinery/floodlight - name = "Emergency Floodlight" + name = "emergency floodlight" + desc = "A powerful light usually stationed near landing zones to provide better visibility." icon = 'icons/obj/structures/machinery/floodlight.dmi' icon_state = "flood00" density = TRUE anchored = TRUE - var/obj/item/cell/cell = null - var/use = 0 - var/unlocked = 0 - var/open = 0 light_power = 2 - unslashable = TRUE - unacidable = TRUE + wrenchable = TRUE + use_power = USE_POWER_IDLE + idle_power_usage = 0 + active_power_usage = 100 var/on_light_range = 6 + ///Whether or not the floodlight can be toggled on or off + var/toggleable = TRUE + + ///Whether or not the floodlight is turned on, disconnected from whether it has power or is lit + var/turned_on = FALSE + /obj/structure/machinery/floodlight/Initialize(mapload, ...) . = ..() - cell = new /obj/item/cell(src) - if(light_on) - set_light(on_light_range) -/obj/structure/machinery/floodlight/Destroy() - QDEL_NULL(cell) - return ..() + turn_light(toggle_on = (operable() && turned_on)) /obj/structure/machinery/floodlight/turn_light(mob/user, toggle_on) . = ..() @@ -36,100 +34,51 @@ else set_light(0) + update_icon() -/obj/structure/machinery/floodlight/proc/updateicon() - icon_state = "flood[open ? "o" : ""][open && cell ? "b" : ""]0[light_on]" - -/obj/structure/machinery/floodlight/attack_hand(mob/user as mob) - if(open && cell) - if(ishuman(user)) - if(!user.get_active_hand()) - user.put_in_hands(cell) - cell.forceMove(user.loc) - else - cell.forceMove(loc) +/obj/structure/machinery/floodlight/attack_hand(mob/living/user) + if(!toggleable) + to_chat(user, SPAN_NOTICE("[src] doesn't seem to have a switch to toggle the light.")) + return - cell.add_fingerprint(user) - cell.update_icon() + if(user.is_mob_incapacitated()) + return - src.cell = null - to_chat(user, "You remove the power cell.") - updateicon() + if(!is_valid_user(user)) + to_chat(user, SPAN_NOTICE("You don't have the dexterity to do this.")) return - if(light_on) - to_chat(user, SPAN_NOTICE("You turn off the light.")) - turn_light(user, toggle_on = FALSE) - unslashable = TRUE - unacidable = TRUE - else - if(!cell) - return - if(cell.charge <= 0) - return - to_chat(user, SPAN_NOTICE("You turn on the light.")) - turn_light(user, toggle_on = TRUE) - unacidable = FALSE + turned_on = !turned_on - updateicon() + if(inoperable()) + to_chat(user, SPAN_NOTICE("You turn [turned_on ? "on" : "off"] the floodlight. It seems to be inoperable.")) + return + to_chat(user, SPAN_NOTICE("You turn [turned_on ? "on" : "off"] the light.")) + turn_light(user, toggle_on = turned_on) + update_use_power(turned_on ? USE_POWER_ACTIVE : USE_POWER_IDLE) -/obj/structure/machinery/floodlight/attackby(obj/item/W as obj, mob/user as mob) - if(!ishuman(user)) - return +/obj/structure/machinery/floodlight/update_icon() + . = ..() + icon_state = "flood0[light_on]" + +/obj/structure/machinery/floodlight/power_change(area/master_area = null) + . = ..() - if (HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) - if (!anchored) - anchored = TRUE - to_chat(user, "You anchor the [src] in place.") - else - anchored = FALSE - to_chat(user, "You remove the bolts from the [src].") - - if (HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) - if (!open) - if(unlocked) - unlocked = 0 - to_chat(user, "You screw the battery panel in place.") - else - unlocked = 1 - to_chat(user, "You unscrew the battery panel.") - - if (HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) - if(unlocked) - if(open) - open = 0 - overlays = null - to_chat(user, "You crowbar the battery panel in place.") - else - if(unlocked) - open = 1 - to_chat(user, "You remove the battery panel.") - - if (istype(W, /obj/item/cell)) - if(open) - if(cell) - to_chat(user, "There is a power cell already installed.") - else - if(user.drop_inv_item_to_loc(W, src)) - cell = W - to_chat(user, "You insert the power cell.") - updateicon() + turn_light(toggle_on = (!(stat & NOPOWER) && turned_on)) //Magical floodlight that cannot be destroyed or interacted with. /obj/structure/machinery/floodlight/landing - name = "Landing Light" - desc = "A powerful light stationed near landing zones to provide better visibility." + name = "landing light" + desc = "A powerful light usually stationed near landing zones to provide better visibility. This one seems to have been bolted down and is unable to be moved." icon_state = "flood01" - light_on = TRUE - in_use = 1 use_power = USE_POWER_NONE - -/obj/structure/machinery/floodlight/landing/attack_hand() - return - -/obj/structure/machinery/floodlight/landing/attackby() - return + needs_power = FALSE + unslashable = TRUE + unacidable = TRUE + wrenchable = FALSE + toggleable = FALSE + turned_on = TRUE /obj/structure/machinery/floodlight/landing/floor icon_state = "floor_flood01" diff --git a/code/game/machinery/fusion_engine.dm b/code/game/machinery/fusion_engine.dm index 4158727e3745..0e5f8142c2be 100644 --- a/code/game/machinery/fusion_engine.dm +++ b/code/game/machinery/fusion_engine.dm @@ -15,6 +15,7 @@ unacidable = TRUE //NOPE.jpg anchored = TRUE density = TRUE + power_machine = TRUE var/power_gen_percent = 0 //50,000W at full capacity var/buildstate = 0 //What state of building it are we on, 0-3, 1 is "broken", the default @@ -24,7 +25,8 @@ var/obj/item/fuelCell/fusion_cell = new //Starts with a fuel cell loaded in. Maybe replace with the plasma tanks in the future and have it consume plasma? Possibly remove this later if it's irrelevent... var/fuel_rate = 0 //Rate at which fuel is used. Based mostly on how long the generator has been running. - power_machine = TRUE + /// If the generator is overloaded. Only possible during hijack once fuel is at 100%. + var/overloaded = FALSE /obj/structure/machinery/power/fusion_engine/Initialize(mapload, ...) . = ..() @@ -35,11 +37,25 @@ /obj/structure/machinery/power/fusion_engine/Destroy() QDEL_NULL(fusion_cell) - . = ..() + return ..() +/obj/structure/machinery/power/fusion_engine/attack_alien(mob/living/carbon/xenomorph/xeno) + if(!overloaded) + to_chat(xeno, SPAN_WARNING("You see no reason to attack [src].")) + return XENO_NO_DELAY_ACTION + + xeno.animation_attack_on(src) + playsound(src, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \ + SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT) + set_overloading(FALSE) + return XENO_ATTACK_ACTION /obj/structure/machinery/power/fusion_engine/power_change() - return + . = ..() + if(overloaded) + set_overloading(FALSE) + visible_message("[icon2html(src, viewers(src))] [src]'s overload suddenly ceases as primary power is lost.") /obj/structure/machinery/power/fusion_engine/process() if(!is_on || buildstate || !anchored || !powernet || !fusion_cell) //Default logic checking @@ -60,9 +76,18 @@ stop_processing() return FALSE - if(!check_failure()) + if(overloaded && prob(1)) // up to 18 generators at 1% every 3.5 seconds means that every ~21 seconds or so, one generator will make noise assuming all are overloaded + switch(rand(1, 2)) + if(1) + visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] loudly hums.")]") + playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) + if(2) + visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] makes a worrying hiss.")]") + playsound(src, 'sound/machines/hiss.ogg', 60, TRUE) - if(power_gen_percent < 100) power_gen_percent++ + if(!check_failure()) + if(power_gen_percent < 100) + power_gen_percent++ switch(power_gen_percent) //Flavor text! if(10) @@ -96,6 +121,10 @@ to_chat(user, SPAN_NOTICE("Use a wrench to repair it.")) return FALSE if(is_on) + if(overloaded) + to_chat(user, SPAN_WARNING("You can't shut off [src] while it's overloaded!")) + return + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the generator.")]") is_on = 0 power_gen_percent = 0 @@ -127,13 +156,13 @@ /obj/structure/machinery/power/fusion_engine/attackby(obj/item/O, mob/user) if(istype(O, /obj/item/fuelCell)) if(is_on) - to_chat(user, SPAN_WARNING("The [src] needs to be turned off first.")) + to_chat(user, SPAN_WARNING("[src] needs to be turned off first.")) return TRUE if(!fusion_cell) if(user.drop_inv_item_to_loc(O, src)) fusion_cell = O update_icon() - to_chat(user, SPAN_NOTICE("You load the [src] with the [O].")) + to_chat(user, SPAN_NOTICE("You load [src] with [O].")) return TRUE else to_chat(user, SPAN_WARNING("You need to remove the fuel cell from [src] first.")) @@ -208,11 +237,18 @@ if(buildstate) to_chat(user, SPAN_WARNING("You must repair the generator before working with its fuel cell.")) return + + if(overloaded) + to_chat(user, SPAN_WARNING("You must restore the safeties on the generator before working with its fuel cell.")) + return + if(is_on) to_chat(user, SPAN_WARNING("You must turn off the generator before working with its fuel cell.")) return + if(!fusion_cell) to_chat(user, SPAN_WARNING("There is no cell to remove.")) + else if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) user.visible_message(SPAN_WARNING("[user] fumbles around figuring out [src]'s fuel receptacle."), @@ -232,23 +268,73 @@ fusion_cell = null update_icon() return TRUE + + else if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no idea what to do with [src].")) + return + + if(!overloaded) + if(!SShijack.sd_unlocked) + to_chat(user, SPAN_WARNING("You consider overloading [src]'s safeties, but you decide against it.")) + return + + if(inoperable()) + to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to overload it!")) + return + + to_chat(user, SPAN_WARNING("You start overloading the safeties on [src]...")) + if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + + if(inoperable()) + return + + to_chat(user, SPAN_WARNING("You finish overloading the safeties on [src].")) + set_overloading(TRUE) + log_game("[key_name(user)] has overloaded a generator.") + + else + to_chat(user, SPAN_WARNING("You start restoring the safeties on [src]...")) + if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + + if(inoperable()) + return + + to_chat(user, SPAN_WARNING("You finish restoring the safeties on [src].")) + log_game("[key_name(user)] has restored the safeties of a generator.") + set_overloading(FALSE) + + return TRUE + else return ..() /obj/structure/machinery/power/fusion_engine/get_examine_text(mob/user) . = ..() - if(ishuman(user)) + if(isxeno(user)) + if(overloaded) + . += SPAN_INFO("You could attack this to stop the overload process.") + + else if(ishuman(user)) if(buildstate) . += SPAN_INFO("It's broken.") switch(buildstate) if(1) - . += SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.") + . += SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.") if(2) - . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") + . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") if(3) - . += SPAN_INFO("Use a wrench to repair it.") + . += SPAN_INFO("Use a wrench to repair it.") return FALSE + if(SShijack.sd_unlocked && skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + if(!overloaded) + . += SPAN_INFO("You could overload this with a multitool.") + else + . += SPAN_INFO("You could restore its safeties with a multitool.") + if(!is_on) . += SPAN_INFO("It looks offline.") else @@ -270,22 +356,30 @@ else . += SPAN_INFO("There is no fuel cell in the receptacle.") +/obj/structure/machinery/power/fusion_engine/ex_act(severity) + if(overloaded && severity >= EXPLOSION_THRESHOLD_MLOW) + set_overloading(FALSE) + return + /obj/structure/machinery/power/fusion_engine/update_icon() switch(buildstate) if(0) if(fusion_cell) - var/pstatus = is_on ? "on" : "off" - switch(fusion_cell.get_fuel_percent()) - if(0 to 10) - icon_state = "[pstatus]-10" - if(10 to 25) - icon_state = "[pstatus]-25" - if(25 to 50) - icon_state = "[pstatus]-50" - if(50 to 75) - icon_state = "[pstatus]-75" - if(75 to INFINITY) - icon_state = "[pstatus]-100" + if(overloaded) + icon_state = "overloaded" + else + var/pstatus = is_on ? "on" : "off" + switch(fusion_cell.get_fuel_percent()) + if(0 to 10) + icon_state = "[pstatus]-10" + if(10 to 25) + icon_state = "[pstatus]-25" + if(25 to 50) + icon_state = "[pstatus]-50" + if(50 to 75) + icon_state = "[pstatus]-75" + if(75 to INFINITY) + icon_state = "[pstatus]-100" else icon_state = "off" @@ -317,9 +411,13 @@ else return 0 +/obj/structure/machinery/power/fusion_engine/proc/set_overloading(new_overloading) + if(overloaded == new_overloading) + return - - + overloaded = new_overloading + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GENERATOR_SET_OVERLOADING, overloaded) + update_icon() diff --git a/code/game/machinery/groundmap_geothermal.dm b/code/game/machinery/groundmap_geothermal.dm index 808c717e8891..087facdbf5ee 100644 --- a/code/game/machinery/groundmap_geothermal.dm +++ b/code/game/machinery/groundmap_geothermal.dm @@ -223,7 +223,7 @@ /obj/structure/machinery/colony_floodlight_switch/LateInitialize() . = ..() - for(var/obj/structure/machinery/colony_floodlight/F in machines) + for(var/obj/structure/machinery/colony_floodlight/F in GLOB.machines) floodlist += F F.fswitch = src start_processing() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 2f8f113ddd23..9ce3cb89bf79 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -59,12 +59,6 @@ Possible to do for anyone motivated enough: Itegrate EMP effect to disable the unit. */ - -// HOLOPAD MODE -// 0 = RANGE BASED -// 1 = AREA BASED -var/const/HOLOPAD_MODE = 0 - /obj/structure/machinery/hologram/holopad name = "\improper AI holopad" desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely." @@ -167,17 +161,9 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(hologram)//If there is a hologram. if(master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. if(!(stat & NOPOWER))//If the machine has power. - if((HOLOPAD_MODE == 0 && (get_dist(master.eyeobj, src) <= holo_range))) + if(get_dist(master.eyeobj, src) <= holo_range) return 1 - else if (HOLOPAD_MODE == 1) - - var/area/holo_area = get_area(src) - var/area/eye_area = get_area(master.eyeobj) - - if(eye_area == holo_area) - return 1 - clear_holo()//If not, we want to get rid of the hologram. return 1 diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm index 2d4182772cf3..41c63d465918 100644 --- a/code/game/machinery/holosign.dm +++ b/code/game/machinery/holosign.dm @@ -63,7 +63,7 @@ else icon_state = "light0" - for(var/obj/structure/machinery/holosign/M in machines) + for(var/obj/structure/machinery/holosign/M in GLOB.machines) if (M.id == src.id) INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/holosign, toggle)) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 33f75c50e341..6109833004d6 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -105,11 +105,10 @@ return 1 /obj/structure/machinery/sparker/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return ignite() - ..(severity) /obj/structure/machinery/ignition_switch/attack_remote(mob/user as mob) return attack_hand(user) @@ -125,11 +124,11 @@ active = 1 icon_state = "launcheract" - for(var/obj/structure/machinery/sparker/M in machines) + for(var/obj/structure/machinery/sparker/M in GLOB.machines) if (M.id == src.id) INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/sparker, ignite)) - for(var/obj/structure/machinery/igniter/M in machines) + for(var/obj/structure/machinery/igniter/M in GLOB.machines) if(M.id == src.id) use_power(50) M.on = !( M.on ) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index ef6c74a052cd..e16d2cacf63b 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -57,7 +57,7 @@ if(ishuman(usr)) var/mob/living/carbon/human/user = usr - if(user.stat || get_dist(user, src) > 1 || user.blinded || user.lying) + if(user.is_mob_incapacitated() || get_dist(user, src) > 1 || user.blinded) return if(!skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_NOVICE)) @@ -101,7 +101,7 @@ for(var/datum/reagent/chem in beaker.reagents.reagent_list) reagentnames += ";[chem.name]" - log_admin("[key_name(user)] put a [beaker] into [src], containing [reagentnames] at ([src.loc.x],[src.loc.y],[src.loc.z]).") + log_admin("[key_name(user)] put \a [beaker] into [src], containing [reagentnames] at ([src.loc.x],[src.loc.y],[src.loc.z]).") to_chat(user, "You attach \the [container] to \the [src].") update_beam() @@ -179,7 +179,7 @@ if(!istype(usr, /mob/living)) return - if(usr.stat || usr.lying) + if(usr.stat || usr.is_mob_incapacitated()) return mode = !mode diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 08a3d5c4dfee..3fa96ca0bc3a 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -27,7 +27,7 @@ /obj/structure/machinery/gibber/autogibber/New() ..() spawn(5) - for(var/i in cardinal) + for(var/i in GLOB.cardinals) var/obj/structure/machinery/mineral/input/input_obj = locate( /obj/structure/machinery/mineral/input, get_step(loc, i) ) if(input_obj) if(isturf(input_obj.loc)) diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index f4611b9042db..220772e98b17 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -139,7 +139,6 @@ if (!(R.id in acceptable_reagents)) to_chat(user, SPAN_DANGER("Your [O] contains components unsuitable for cookery.")) return 1 - //G.reagents.trans_to(src,G.amount_per_transfer_from_this) else if(istype(O,/obj/item/grab)) return 1 else @@ -152,74 +151,78 @@ /obj/structure/machinery/microwave/attack_hand(mob/user as mob) user.set_interaction(src) - interact(user) + tgui_interact(user) + +/obj/structure/machinery/microwave/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "Microwave", "Microwave Controls") + ui.open() //******************* //* Microwave Menu //********************/ - -/obj/structure/machinery/microwave/interact(mob/user as mob) // The microwave Menu - var/dat = "" - if(src.broken > 0) - dat = {"Bzzzzttttt"} - else if(src.operating) - dat = {"Microwaving in progress!
Please wait...!
"} - else if(src.dirty==100) - dat = {"This microwave is dirty!
Please clean it before use!
"} - else - var/list/items_counts = new - var/list/items_measures = new - var/list/items_measures_p = new - for (var/obj/O in contents) - var/display_name = O.name - if (istype(O,/obj/item/reagent_container/food/snacks/egg)) - items_measures[display_name] = "egg" - items_measures_p[display_name] = "eggs" - if (istype(O,/obj/item/reagent_container/food/snacks/tofu)) - items_measures[display_name] = "tofu chunk" - items_measures_p[display_name] = "tofu chunks" - if (istype(O,/obj/item/reagent_container/food/snacks/meat)) //any meat - items_measures[display_name] = "slab of meat" - items_measures_p[display_name] = "slabs of meat" - if (istype(O,/obj/item/reagent_container/food/snacks/donkpocket)) - display_name = "Turnovers" - items_measures[display_name] = "turnover" - items_measures_p[display_name] = "turnovers" - if (istype(O,/obj/item/reagent_container/food/snacks/carpmeat)) - items_measures[display_name] = "fillet of meat" - items_measures_p[display_name] = "fillets of meat" - items_counts[display_name]++ - for (var/O in items_counts) - var/N = items_counts[O] - if (!(O in items_measures)) - dat += {"[capitalize(O)]: [N] [lowertext(O)]\s
"} - else - if (N==1) - dat += {"[capitalize(O)]: [N] [items_measures[O]]
"} - else - dat += {"[capitalize(O)]: [N] [items_measures_p[O]]
"} - - for (var/datum/reagent/R in reagents.reagent_list) - var/display_name = R.name - if (R.id == "hotsauce") - display_name = "Hotsauce" - if (R.id == "frostoil") - display_name = "Coldsauce" - dat += {"[display_name]: [R.volume] unit\s
"} - - if (items_counts.len==0 && reagents.reagent_list.len==0) - dat = {"The microwave is empty
"} +/obj/structure/machinery/microwave/ui_data(mob/user) + var/list/data = list() + + data["operating"] = operating + data["broken"] = (broken > 0) + data["dirty"] = (dirty == 100) + + var/list/ingredients = list() + var/list/items_counts = list() + var/list/items_measures = list() + var/list/items_measures_p = list() + + for (var/obj/contents_item as anything in contents) + var/display_name = contents_item.name + + if (istype(contents_item, /obj/item/reagent_container/food/snacks/tofu)) + items_measures[display_name] = "tofu chunk" + items_measures_p[display_name] = "tofu chunks" + if (istype(contents_item, /obj/item/reagent_container/food/snacks/meat)) //any meat + items_measures[display_name] = "slab of meat" + items_measures_p[display_name] = "slabs of meat" + if (istype(contents_item, /obj/item/reagent_container/food/snacks/donkpocket)) + display_name = "Turnovers" + items_measures[display_name] = "turnover" + items_measures_p[display_name] = "turnovers" + if (istype(contents_item, /obj/item/reagent_container/food/snacks/carpmeat)) + items_measures[display_name] = "fillet of meat" + items_measures_p[display_name] = "fillets of meat" + items_counts[display_name]++ + + for (var/contents_item in items_counts) + var/list/item = list() + + item["name"] = capitalize(contents_item) + item["count"] = items_counts[contents_item] + + if (!(contents_item in items_measures)) + item["measure"] = "[lowertext(contents_item)][items_counts[contents_item] > 1 ? "s" : ""]" // Adds 's' for plurals. + else if (items_counts[contents_item] == 1) + item["measure"] = items_measures[contents_item] else - dat = {"Ingredients:
[dat]"} - dat += {"

\ -Turn on!
\ -
Eject ingredients!
\ -"} + item["measure"] = items_measures_p[contents_item] + + ingredients += list(item) + + for (var/datum/reagent/contents_reagent as anything in reagents.reagent_list) + var/list/reagent = list() - show_browser(user, dat, "Microwave Controls", "microwave") - return + reagent["count"] = contents_reagent.volume + reagent["measure"] = contents_reagent.volume > 1 ? "units" : "unit" + reagent["name"] = contents_reagent.name + if (contents_reagent.id == "hotsauce") + reagent["name"] = "Hotsauce" + if (contents_reagent.id == "frostoil") + reagent["name"] = "Coldsauce" + ingredients += list(reagent) + + data["ingredients"] = ingredients + return data //*********************************** //* Microwave Menu Handling/Cooking @@ -322,7 +325,7 @@ if (src.reagents.total_volume) src.dirty++ src.reagents.clear_reagents() - to_chat(usr, SPAN_NOTICE(" You dispose of the microwave contents.")) + to_chat(usr, SPAN_NOTICE("You dispose of the microwave contents.")) src.updateUsrDialog() /obj/structure/machinery/microwave/proc/muck_start() @@ -365,19 +368,16 @@ ffuu.reagents.add_reagent("toxin", amount/10) return ffuu -/obj/structure/machinery/microwave/Topic(href, href_list) - if(..()) - return - - usr.set_interaction(src) - if(src.operating) - src.updateUsrDialog() +/obj/structure/machinery/microwave/ui_act(action, params) + . = ..() + if(.) return - switch(href_list["action"]) + switch (action) if ("cook") cook(usr.get_skill_duration_multiplier(SKILL_DOMESTIC)) // picking the right microwave setting for the right food. when's the last time you used the special setting on the microwave? i bet you just slam the 30 second increment. Do you know how much programming went into putting the Pizza setting into a microwave emitter? - if ("dispose") + if ("eject_all") dispose() - return + + return TRUE diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index 0c4b8a973e83..a18f5db8af43 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -89,7 +89,7 @@ to_chat(user, SPAN_DANGER("That probably won't blend.")) return 1 user.visible_message("[user] put [what] into [src].", \ - "You put the [what] into [src].") + "You put [what] into [src].") user.drop_held_item() what.forceMove(src) @@ -118,4 +118,3 @@ src.processing = 0 src.visible_message(SPAN_NOTICE("\the [src] finished processing."), \ "You hear the food processor stopping/") - diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index f52350aa8db3..6d3e18933457 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -23,7 +23,7 @@ var/icon_on = "smartfridge" var/icon_off = "smartfridge-off" var/icon_panel = "smartfridge-panel" - var/item_quants = list() + var/list/item_quants = list() //! Assoc list of names -> list(items) var/ispowered = TRUE //starts powered var/is_secure_fridge = FALSE var/shoot_inventory = FALSE @@ -40,6 +40,24 @@ GLOB.vending_products[/obj/item/reagent_container/glass/bottle] = 1 GLOB.vending_products[/obj/item/storage/pill_bottle] = 1 +/obj/structure/machinery/smartfridge/Destroy(force) + if(is_in_network()) // Delete all contents from networked storage index + for(var/atom/movable/item as anything in contents) + delete_contents(item) + item_quants.Cut() + return ..() // parent will delete contents if we're not networked + +/// Deletes given object in contents of the smartfridge +/obj/structure/machinery/smartfridge/proc/delete_contents(obj/item/item) + if(item.loc != src) + return + contents -= item + if(item_quants[item.name]) + item_quants[item.name] -= item + if(is_in_network() && GLOB.chemical_data.shared_item_storage[item.name]) + GLOB.chemical_data.shared_item_storage[item.name] -= item + qdel(item) + /obj/structure/machinery/smartfridge/proc/accept_check(obj/item/O as obj) if(istype(O,/obj/item/reagent_container/food/snacks/grown/) || istype(O,/obj/item/seeds/)) return 1 @@ -76,7 +94,7 @@ overlays.Cut() if(panel_open) overlays += image(icon, icon_panel) - nanomanager.update_uis(src) + SSnano.nanomanager.update_uis(src) return if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL)||HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) @@ -139,7 +157,7 @@ /obj/structure/machinery/smartfridge/proc/add_network_item(obj/item/O) if(is_in_network()) - add_item(chemical_data.shared_item_storage, O) + add_item(GLOB.chemical_data.shared_item_storage, O) return TRUE return FALSE @@ -214,9 +232,9 @@ var/list/networked_items = list() if(is_in_network()) - for (var/i=1 to length(chemical_data.shared_item_storage)) - var/item_index = chemical_data.shared_item_storage[i] - var/list/item_list = chemical_data.shared_item_storage[item_index] + for (var/i=1 to length(GLOB.chemical_data.shared_item_storage)) + var/item_index = GLOB.chemical_data.shared_item_storage[i] + var/list/item_list = GLOB.chemical_data.shared_item_storage[item_index] var/count = length(item_list) if(count < 1) continue @@ -277,7 +295,7 @@ var/list/target_list = item_quants if(params["isLocal"] == 0) - target_list = chemical_data.shared_item_storage + target_list = GLOB.chemical_data.shared_item_storage var/item_index = target_list[index] var/list/item_list = target_list[item_index] @@ -310,9 +328,9 @@ var/amount=params["amount"] var/source = item_quants - var/target = chemical_data.shared_item_storage + var/target = GLOB.chemical_data.shared_item_storage if(params["isLocal"] == 0) - source = chemical_data.shared_item_storage + source = GLOB.chemical_data.shared_item_storage target = item_quants var/item_index = source[index] diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index 66eb0386713f..de61830c2501 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -62,8 +62,7 @@ updateicon() /obj/structure/machinery/light_switch/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return power_change() - ..(severity) diff --git a/code/game/machinery/line_nexter.dm b/code/game/machinery/line_nexter.dm index d736df44664a..ae1896ad8138 100644 --- a/code/game/machinery/line_nexter.dm +++ b/code/game/machinery/line_nexter.dm @@ -62,7 +62,7 @@ icon_state = "doorctrl1" add_fingerprint(user) - for(var/obj/structure/machinery/line_nexter/L in machines) + for(var/obj/structure/machinery/line_nexter/L in GLOB.machines) if(id == L.id) L.next() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index f4ad7a63ba77..c5eaa14e05b5 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -105,7 +105,7 @@ Class Procs: var/list/component_parts //list of all the parts used to build it, if made from certain kinds of frames. var/manual = 0 layer = OBJ_LAYER - var/machine_processing = 0 // whether the machine is busy and requires process() calls in scheduler. + var/machine_processing = 0 // whether the machine is busy and requires process() calls in scheduler. // Please replace this by DF_ISPROCESSING in another refactor --fira throwpass = 1 projectile_coverage = PROJECTILE_COVERAGE_MEDIUM var/power_machine = FALSE //Whether the machine should process on power, or normal processor @@ -128,15 +128,15 @@ Class Procs: /obj/structure/machinery/Initialize(mapload, ...) . = ..() - machines += src + GLOB.machines += src var/area/A = get_area(src) if(A) A.add_machine(src) //takes care of adding machine's power usage /obj/structure/machinery/Destroy() - machines -= src - processing_machines -= src - power_machines -= src + GLOB.machines -= src + GLOB.processing_machines -= src + GLOB.power_machines -= src var/area/A = get_area(src) if(A) A.remove_machine(src) //takes care of removing machine from power usage @@ -151,15 +151,15 @@ Class Procs: if(!machine_processing) machine_processing = 1 if(power_machine) - addToListNoDupe(power_machines, src) + addToListNoDupe(GLOB.power_machines, src) else - addToListNoDupe(processing_machines, src) + addToListNoDupe(GLOB.processing_machines, src) /obj/structure/machinery/proc/stop_processing() if(machine_processing) machine_processing = 0 - processing_machines -= src - power_machines -= src + GLOB.processing_machines -= src + GLOB.power_machines -= src /obj/structure/machinery/process()//If you dont use process or power why are you here return PROCESS_KILL @@ -175,10 +175,10 @@ Class Procs: . += SPAN_WARNING("[msg]") /obj/structure/machinery/emp_act(severity) + . = ..() if(use_power && stat == 0) use_power(7500/severity) new /obj/effect/overlay/temp/emp_sparks (loc) - ..() /obj/structure/machinery/ex_act(severity) @@ -229,7 +229,11 @@ Class Procs: return TRUE if(inoperable()) return 1 - if(usr.is_mob_restrained() || usr.lying || usr.stat) + if(isliving(usr)) + var/mob/living/living = usr + if(living.body_position == LYING_DOWN) // legacy. if you too find it doesn't make sense, consider removing it + return TRUE + if(usr.is_mob_restrained()) return 1 if(!is_valid_user(usr)) to_chat(usr, SPAN_DANGER("You don't have the dexterity to do this!")) @@ -251,10 +255,10 @@ Class Procs: else return src.attack_hand(user) -/obj/structure/machinery/attack_hand(mob/user as mob) +/obj/structure/machinery/attack_hand(mob/living/user as mob) if(inoperable(MAINT)) return TRUE - if(user.lying || user.stat) + if(user.is_mob_incapacitated()) return TRUE if(!is_valid_user(user)) to_chat(usr, SPAN_DANGER("You don't have the dexterity to do this!")) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm deleted file mode 100644 index 591cec1f5baa..000000000000 --- a/code/game/machinery/magnet.dm +++ /dev/null @@ -1,421 +0,0 @@ -// Magnetic attractor, creates variable magnetic fields and attraction. -// Can also be used to emit electron/proton beams to create a center of magnetism on another tile - -// tl;dr: it's magnets lol -// This was created for firing ranges, but I suppose this could have other applications - Doohl - -/obj/structure/machinery/magnetic_module - - icon = 'icons/obj/objects.dmi' - icon_state = "floor_magnet-f" - name = "Electromagnetic Generator" - desc = "A device that uses station power to create points of magnetic energy." - level = 1 // underfloor - layer = UNDERFLOOR_OBJ_LAYER - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 50 - - var/freq = 1449 // radio frequency - var/electricity_level = 1 // intensity of the magnetic pull - var/magnetic_field = 1 // the range of magnetic attraction - var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something - var/turf/center // the center of magnetic attraction - var/on = 0 - var/pulling = 0 - - // x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down - var/center_x = 0 - var/center_y = 0 - var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer - -/obj/structure/machinery/magnetic_module/Initialize(mapload, ...) - . = ..() - - var/turf/T = loc - hide(T.intact_tile) - center = T - - SSradio.add_object(src, freq, RADIO_MAGNETS) - - INVOKE_ASYNC(src, PROC_REF(magnetic_process)) - -/obj/structure/machinery/magnetic_module/Destroy() - center = null - SSradio.remove_object(src, freq) - . = ..() - - - // update the invisibility and icon -/obj/structure/machinery/magnetic_module/hide(intact) - invisibility = intact ? 101 : 0 - updateicon() - - // update the icon_state -/obj/structure/machinery/magnetic_module/proc/updateicon() - var/state="floor_magnet" - var/onstate="" - if(!on) - onstate="0" - - if(invisibility) - icon_state = "[state][onstate]-f" // if invisible, set icon to faded version - // in case of being revealed by T-scanner - else - icon_state = "[state][onstate]" - -/obj/structure/machinery/magnetic_module/receive_signal(datum/signal/signal) - - var/command = signal.data["command"] - var/modifier = signal.data["modifier"] - var/signal_code = signal.data["code"] - if(command && (signal_code == code)) - - Cmd(command, modifier) - - - -/obj/structure/machinery/magnetic_module/proc/Cmd(command, modifier) - - if(command) - switch(command) - if("set-electriclevel") - if(modifier) electricity_level = modifier - if("set-magneticfield") - if(modifier) magnetic_field = modifier - - if("add-elec") - electricity_level++ - if(electricity_level > 12) - electricity_level = 12 - if("sub-elec") - electricity_level-- - if(electricity_level <= 0) - electricity_level = 1 - if("add-mag") - magnetic_field++ - if(magnetic_field > 4) - magnetic_field = 4 - if("sub-mag") - magnetic_field-- - if(magnetic_field <= 0) - magnetic_field = 1 - - if("set-x") - if(modifier) center_x = modifier - if("set-y") - if(modifier) center_y = modifier - - if("N") // NORTH - center_y++ - if("S") // SOUTH - center_y-- - if("E") // EAST - center_x++ - if("W") // WEST - center_x-- - if("C") // CENTER - center_x = 0 - center_y = 0 - if("R") // RANDOM - center_x = rand(-max_dist, max_dist) - center_y = rand(-max_dist, max_dist) - - if("set-code") - if(modifier) code = modifier - if("toggle-power") - on = !on - - if(on) - INVOKE_ASYNC(src, PROC_REF(magnetic_process)) - - -/obj/structure/machinery/magnetic_module/process() - if(stat & NOPOWER) - on = 0 - - // Sanity checks: - if(electricity_level <= 0) - electricity_level = 1 - if(magnetic_field <= 0) - magnetic_field = 1 - - - // Limitations: - if(abs(center_x) > max_dist) - center_x = max_dist - if(abs(center_y) > max_dist) - center_y = max_dist - if(magnetic_field > 4) - magnetic_field = 4 - if(electricity_level > 12) - electricity_level = 12 - - // Update power usage: - if(on) - use_power = USE_POWER_ACTIVE - active_power_usage = electricity_level*15 - else - use_power = USE_POWER_NONE - - - // Overload conditions: - /* // Eeeehhh kinda stupid - if(on) - if(electricity_level > 11) - if(prob(electricity_level)) - explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son - spawn(2) - qdel(src) - */ - - updateicon() - - -/obj/structure/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling - if(pulling) return - while(on) - - pulling = 1 - center = locate(x+center_x, y+center_y, z) - if(center) - for(var/obj/M in orange(magnetic_field, center)) - if(!M.anchored && (M.flags_atom & CONDUCT)) - step_towards(M, center) - - for(var/mob/living/silicon/S in orange(magnetic_field, center)) - if(isAI(S)) continue - step_towards(S, center) - - use_power(electricity_level * 5) - sleep(13 - electricity_level) - - pulling = 0 - -/obj/structure/machinery/magnetic_controller - name = "Magnetic Control Console" - icon = 'icons/obj/structures/machinery/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! - icon_state = "airlock_control_standby" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 45 - var/frequency = 1449 - var/code = 0 - var/list/magnets = list() - var/title = "Magnetic Control Console" - var/autolink = 0 // if set to 1, can't probe for other magnets! - - var/pathpos = 1 // position in the path - var/path = "NULL" // text path of the magnet - var/speed = 1 // lowest = 1, highest = 10 - var/list/rpath = list() // real path of the magnet, used in iterator - - var/moving = 0 // 1 if scheduled to loop - var/looping = 0 // 1 if looping - - var/datum/radio_frequency/radio_connection - -/obj/structure/machinery/magnetic_controller/Initialize(mapload, ...) - . = ..() - if(autolink) - for(var/obj/structure/machinery/magnetic_module/M in machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - - SSradio.add_object(src, frequency, RADIO_MAGNETS) - - if(path) // check for default path - filter_path() // renders rpath - -/obj/structure/machinery/magnetic_controller/Destroy() - QDEL_NULL_LIST(magnets) - SSradio.remove_object(src, frequency) - . = ..() - - -/obj/structure/machinery/magnetic_controller/process() - if(magnets.len == 0 && autolink) - for(var/obj/structure/machinery/magnetic_module/M in machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - -/obj/structure/machinery/magnetic_controller/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/magnetic_controller/attack_hand(mob/user as mob) - if(inoperable()) - return - user.set_interaction(src) - var/dat = "Magnetic Control Console

" - if(!autolink) - dat += {" - Frequency:
[frequency]
- Code: [code]
- Probe Generators
- "} - - if(magnets.len >= 1) - - dat += "Magnets confirmed:
" - var/i = 0 - for(var/obj/structure/machinery/magnetic_module/M in magnets) - i++ - dat += "     < \[[i]\] ([M.on ? "On":"Off"])|Electricity level: - [M.electricity_level] +; Magnetic field: - [M.magnetic_field] +
" - - dat += "
Speed: - [speed] +
" - dat += "Path: {[path]}
" - dat += "Moving: [moving ? "Enabled":"Disabled"]" - - - show_browser(user, dat, name, "magnet", "size=400x500") - -/obj/structure/machinery/magnetic_controller/Topic(href, href_list) - . = ..() - if(.) - return - if(inoperable()) - return - usr.set_interaction(src) - src.add_fingerprint(usr) - - if(href_list["radio-op"]) - - // Prepare signal beforehand, because this is a radio operation - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - // Apply any necessary commands - switch(href_list["radio-op"]) - if("togglepower") - signal.data["command"] = "toggle-power" - - if("minuselec") - signal.data["command"] = "sub-elec" - if("pluselec") - signal.data["command"] = "add-elec" - - if("minusmag") - signal.data["command"] = "sub-mag" - if("plusmag") - signal.data["command"] = "add-mag" - - - // Broadcast the signal - - radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) - - addtimer(CALLBACK(src, PROC_REF(updateUsrDialog)), 1) - - if(href_list["operation"]) - switch(href_list["operation"]) - if("plusspeed") - speed ++ - if(speed > 10) - speed = 10 - if("minusspeed") - speed -- - if(speed <= 0) - speed = 1 - if("setpath") - var/newpath = copytext(sanitize(input(usr, "Please define a new path!",,path) as text|null),1,MAX_MESSAGE_LEN) - if(newpath && newpath != "") - moving = 0 // stop moving - path = newpath - pathpos = 1 // reset position - filter_path() // renders rpath - - if("togglemoving") - moving = !moving - if(moving) - INVOKE_ASYNC(src, PROC_REF(MagnetMove)) - - - updateUsrDialog() - -/obj/structure/machinery/magnetic_controller/proc/MagnetMove() - if(looping) return - - while(moving && rpath.len >= 1) - - if(inoperable()) - break - - looping = 1 - - // Prepare the radio signal - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - if(pathpos > rpath.len) // if the position is greater than the length, we just loop through the list! - pathpos = 1 - - var/nextmove = uppertext(rpath[pathpos]) // makes it un-case-sensitive - - if(!(nextmove in list("N","S","E","W","C","R"))) - // N, S, E, W are directional - // C is center - // R is random (in magnetic field's bounds) - qdel(signal) - break // break the loop if the character located is invalid - - signal.data["command"] = nextmove - - - pathpos++ // increase iterator - - // Broadcast the signal - spawn() - radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) - - if(speed == 10) - sleep(1) - else - sleep(12-speed) - - looping = 0 - - -/obj/structure/machinery/magnetic_controller/proc/filter_path() - // Generates the rpath variable using the path string, think of this as "string2list" - // Doesn't use params2list() because of the akward way it stacks entities - rpath = list() // clear rpath - var/maximum_character = min( 50, length(path) ) // chooses the maximum length of the iterator. 50 max length - - for(var/i=1, i<=maximum_character, i++) // iterates through all characters in path - - var/nextchar = copytext(path, i, i+1) // find next character - - if(!(nextchar in list(";", "&", "*", " "))) // if char is a separator, ignore - rpath += copytext(path, i, i+1) // else, add to list - - // there doesn't HAVE to be separators but it makes paths syntatically visible - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index d1e2fecce20f..f1b0081e3a39 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -1,5 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - +// Legacy SS13 machinery turned into a prop /obj/structure/machinery/mass_driver name = "mass driver" desc = "Shoots things into space." @@ -9,32 +8,3 @@ use_power = USE_POWER_IDLE idle_power_usage = 2 active_power_usage = 50 - - var/power = 1 - var/code = 1 - var/id = 1 - var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. - - -/obj/structure/machinery/mass_driver/proc/drive(amount) - if(inoperable()) - return - use_power(500) - var/O_limit - var/atom/target = get_edge_target_turf(src, dir) - for(var/atom/movable/O in loc) - if(!O.anchored) - if(O_limit >= 20) - for(var/mob/M in hearers(src, null)) - to_chat(M, SPAN_NOTICE(" The mass driver lets out a screech, it mustn't be able to handle any more items.")) - break - use_power(500) - INVOKE_ASYNC(O, TYPE_PROC_REF(/atom/movable, throw_atom), target, drive_range * power, 100/power) - flick("mass_driver1", src) - return - -/obj/structure/machinery/mass_driver/emp_act(severity) - if(inoperable()) - return - drive() - ..(severity) diff --git a/code/game/machinery/medical_pod/bodyscanner.dm b/code/game/machinery/medical_pod/bodyscanner.dm index 4756121e50ae..732ff1ba97b9 100644 --- a/code/game/machinery/medical_pod/bodyscanner.dm +++ b/code/game/machinery/medical_pod/bodyscanner.dm @@ -62,8 +62,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return #ifdef OBJECTS_PROXY_SPEECH // Transfers speech to occupant @@ -124,8 +122,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/body_scanconsole/power_change() ..() @@ -208,7 +204,7 @@ "toxloss" = H.getToxLoss(), "cloneloss" = H.getCloneLoss(), "brainloss" = H.getBrainLoss(), - "knocked_out" = H.knocked_out, + "knocked_out" = H.GetKnockOutDuration(), "bodytemp" = H.bodytemperature, "inaprovaline_amount" = H.reagents.get_reagent_amount("inaprovaline"), "dexalin_amount" = H.reagents.get_reagent_amount("dexalin"), @@ -267,7 +263,7 @@ s_class = occ["brainloss"] < 1 ? INTERFACE_GOOD : INTERFACE_BAD dat += "[SET_CLASS("  Approx. Brain Damage:", INTERFACE_PINK)] [SET_CLASS("[occ["brainloss"]]%", s_class)]

" - dat += "[SET_CLASS("Knocked Out Summary:", "#40628a")] [occ["knocked_out"]]% ([round(occ["knocked_out"] / 4)] seconds left!)
" + dat += "[SET_CLASS("Knocked Out Summary:", "#40628a")] [occ["knocked_out"]]% (approximately [round(occ["knocked_out"] * GLOBAL_STATUS_MULTIPLIER / (1 SECONDS))] seconds left!)
" dat += "[SET_CLASS("Body Temperature:", "#40628a")] [occ["bodytemp"]-T0C]°C ([occ["bodytemp"]*1.8-459.67]°F)

" s_class = occ["blood_amount"] > 448 ? INTERFACE_OKAY : INTERFACE_BAD diff --git a/code/game/machinery/medical_pod/medical_pod.dm b/code/game/machinery/medical_pod/medical_pod.dm index b284d71ad4a7..62c8eef1f72c 100644 --- a/code/game/machinery/medical_pod/medical_pod.dm +++ b/code/game/machinery/medical_pod/medical_pod.dm @@ -155,7 +155,6 @@ if(exit_stun) occupant.apply_effect(exit_stun, STUN) //Action delay when going out - occupant.update_canmove() //Force the delay to go in action immediately occupant.visible_message(SPAN_WARNING("[occupant] pops out of \the [src]!"), SPAN_WARNING("You get out of \the [src] and get your bearings!")) diff --git a/code/game/machinery/medical_pod/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm index 805fedb29257..84ef2f579ba1 100644 --- a/code/game/machinery/medical_pod/sleeper.dm +++ b/code/game/machinery/medical_pod/sleeper.dm @@ -164,7 +164,7 @@ var/chemicals[0] for(var/re in connected.available_chemicals) - var/datum/reagent/temp = chemical_reagents_list[re] + var/datum/reagent/temp = GLOB.chemical_reagents_list[re] if(temp) var/reagent_amount = 0 var/pretty_amount @@ -332,14 +332,13 @@ /obj/structure/machinery/medical_pod/sleeper/emp_act(severity) + . = ..() if(filtering) toggle_filter() if(inoperable()) - ..(severity) return if(occupant) go_out() - ..() /obj/structure/machinery/medical_pod/sleeper/proc/toggle_filter() if(!occupant) @@ -366,7 +365,7 @@ if(occupant && occupant.reagents) if(occupant.reagents.get_reagent_amount(chemical) + amount <= max_chem) occupant.reagents.add_reagent(chemical, amount, , , user) - var/datum/reagent/temp = chemical_reagents_list[chemical] + var/datum/reagent/temp = GLOB.chemical_reagents_list[chemical] to_chat(user, SPAN_NOTICE("[occupant] now has [occupant.reagents.get_reagent_amount(chemical)] units of [temp.name] in \his bloodstream.")) return to_chat(user, SPAN_WARNING("There's no occupant in the sleeper or the subject has too many chemicals!")) @@ -385,15 +384,14 @@ t1 = "Unconscious" if(2) t1 = "*dead*" - else to_chat(user, "[]\t Health %: [] ([])", (occupant.health > 50 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.health, t1) to_chat(user, "[]\t -Core Temperature: []°C ([]°F)
", (occupant.bodytemperature > 50 ? "" : ""), occupant.bodytemperature-T0C, occupant.bodytemperature*1.8-459.67) to_chat(user, "[]\t -Brute Damage %: []", (occupant.getBruteLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getBruteLoss()) to_chat(user, "[]\t -Respiratory Damage %: []", (occupant.getOxyLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getOxyLoss()) to_chat(user, "[]\t -Toxin Content %: []", (occupant.getToxLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getToxLoss()) to_chat(user, "[]\t -Burn Severity %: []", (occupant.getFireLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getFireLoss()) - to_chat(user, SPAN_NOTICE(" Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)")) - to_chat(user, SPAN_NOTICE(" \t [occupant.knocked_out / 5] second\s (if around 1 or 2 the sleeper is keeping them asleep.)")) + to_chat(user, SPAN_NOTICE(" Expected time till occupant can safely awake: (note: These times are always inaccurate)")) + to_chat(user, SPAN_NOTICE(" \t [occupant.GetKnockOutDuration() * GLOBAL_STATUS_MULTIPLIER / (1 SECONDS)] second\s (if around 1 or 2 the sleeper is keeping them asleep.)")) else to_chat(user, SPAN_NOTICE(" There is no one inside!")) return diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 89c9e9277f4c..9bd7e5f5e965 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -45,10 +45,9 @@ var/list/datum/feed_channel/network_channels = list() var/datum/feed_message/wanted_issue -var/datum/feed_network/news_network = new /datum/feed_network //The global news-network, which is coincidentally a global list. - -var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list that will contain reference to all newscasters in existence. +GLOBAL_DATUM_INIT(news_network, /datum/feed_network, new()) //The global news-network, which is coincidentally a global list. +GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list()) //Global list that will contain reference to all newscasters in existence. /obj/structure/machinery/newscaster name = "newscaster" @@ -101,15 +100,15 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th securityCaster = 1 /obj/structure/machinery/newscaster/security_unit/New() //Constructor, ho~ - allCasters += src + GLOB.allCasters += src src.paper_remaining = 15 // Will probably change this to something better - for(var/obj/structure/machinery/newscaster/NEWSCASTER in allCasters) // Let's give it an appropriate unit number + for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) // Let's give it an appropriate unit number src.unit_no++ src.update_icon() //for any custom ones on the map... ..() //I just realised the newscasters weren't in the global machines list. The superconstructor call will tend to that /obj/structure/machinery/newscaster/security_unit/Destroy() - allCasters -= src + GLOB.allCasters -= src return ..() /obj/structure/machinery/newscaster/update_icon() @@ -122,7 +121,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th src.overlays.Cut() //reset overlays - if(news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message + if(GLOB.news_network.wanted_issue) //wanted icon state, there can be no overlays on it as it's a priority message icon_state = "newscaster_wanted" return @@ -184,7 +183,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th if(0) dat += "Welcome to Newscasting Unit #[src.unit_no].
Interface & News networks Operational." dat += "
Property of Weyland-Yutani" - if(news_network.wanted_issue) + if(GLOB.news_network.wanted_issue) dat+= "
Read Wanted Issue" dat+= "

Create Feed Channel" dat+= "
View Feed Channels" @@ -194,7 +193,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+= "

Exit" if(src.securityCaster) var/wanted_already = 0 - if(news_network.wanted_issue) + if(GLOB.news_network.wanted_issue) wanted_already = 1 dat+="
Feed Security functions:
" @@ -204,10 +203,10 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="

The newscaster recognises you as: [src.scanned_user]" if(1) dat+= "Station Feed Channels
" - if(!length(news_network.network_channels) ) + if(!length(GLOB.news_network.network_channels) ) dat+="No active channels found..." else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) + for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) if(CHANNEL.is_admin_channel) dat+="[CHANNEL.channel_name]
" else @@ -255,7 +254,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="ERROR: Could not submit Feed Channel to Network.

" //var/list/existing_channels = list() //Let's get dem existing channels - OBSOLETE var/list/existing_authors = list() - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) //existing_channels += FC.channel_name //OBSOLETE if(FC.author == "\[REDACTED\]") existing_authors += FC.backup_author @@ -266,7 +265,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th if(src.channel_name=="" || src.channel_name == "\[REDACTED\]") dat+="�Invalid channel name.
" var/check = 0 - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.channel_name) check = 1 break @@ -276,10 +275,10 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="�Channel author unverified.
" dat+="
Return
" if(8) - var/total_num=length(news_network.network_channels) + var/total_num=length(GLOB.news_network.network_channels) var/active_num=total_num var/message_num=0 - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) if(!FC.censored) message_num += length(FC.messages) //Dont forget, datum/feed_channel's var messages is a list of datum/feed_message else @@ -312,10 +311,10 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
" dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
" dat+="
Select Feed channel to get Stories from:
" - if(!length(news_network.network_channels)) + if(!length(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) + for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
" dat+="
Cancel" if(11) @@ -323,10 +322,10 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
" - if(!length(news_network.network_channels)) + if(!length(GLOB.news_network.network_channels)) dat+="No feed channels found active...
" else - for(var/datum/feed_channel/CHANNEL in news_network.network_channels) + for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
" dat+="
Back" @@ -360,7 +359,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="Wanted Issue Handler:" var/wanted_already = 0 var/end_param = 1 - if(news_network.wanted_issue) + if(GLOB.news_network.wanted_issue) wanted_already = 1 end_param = 2 @@ -371,7 +370,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="Description: [src.msg]
" dat+="Attach Photo: [(src.photo ? "Photo Attached" : "No Photo")]
" if(wanted_already) - dat+="Wanted Issue created by: [news_network.wanted_issue.backup_author]
" + dat+="Wanted Issue created by: [GLOB.news_network.wanted_issue.backup_author]
" else dat+="Wanted Issue will be created under prosecutor: [src.scanned_user]
" dat+="
[(wanted_already) ? ("Edit Issue") : ("Submit")]" @@ -394,12 +393,12 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th dat+="Wanted Issue successfully deleted from Circulation
" dat+="
Return
" if(18) - dat+="-- STATIONWIDE WANTED ISSUE --
\[Submitted by: [news_network.wanted_issue.backup_author]\]
" - dat+="Criminal: [news_network.wanted_issue.author]
" - dat+="Description: [news_network.wanted_issue.body]
" + dat+="-- STATIONWIDE WANTED ISSUE --
\[Submitted by: [GLOB.news_network.wanted_issue.backup_author]\]
" + dat+="Criminal: [GLOB.news_network.wanted_issue.author]
" + dat+="Description: [GLOB.news_network.wanted_issue.body]
" dat+="Photo:: " - if(news_network.wanted_issue.img) - usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png") + if(GLOB.news_network.wanted_issue.img) + usr << browse_rsc(GLOB.news_network.wanted_issue.img, "tmp_photow.png") dat+="
" else dat+="None" @@ -448,14 +447,14 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th else if(href_list["submit_new_channel"]) //var/list/existing_channels = list() //OBSOLETE var/list/existing_authors = list() - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) //existing_channels += FC.channel_name if(FC.author == "\[REDACTED\]") existing_authors += FC.backup_author else existing_authors +=FC.author var/check = 0 - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.channel_name) check = 1 break @@ -468,7 +467,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th newChannel.channel_name = src.channel_name newChannel.author = src.scanned_user newChannel.locked = c_locked - news_network.network_channels += newChannel //Adding channel to the global network + GLOB.news_network.network_channels += newChannel //Adding channel to the global network src.screen=5 src.updateUsrDialog() //src.update_icon() @@ -476,7 +475,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th else if(href_list["set_channel_receiving"]) //var/list/datum/feed_channel/available_channels = list() var/list/available_channels = list() - for(var/datum/feed_channel/F in news_network.network_channels) + for(var/datum/feed_channel/F in GLOB.news_network.network_channels) if( (!F.locked || F.author == scanned_user) && !F.censored) available_channels += F.channel_name src.channel_name = strip_html(tgui_input_list(usr, "Choose receiving Feed Channel", "Network Channel Handler", available_channels )) @@ -501,12 +500,12 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th newMsg.body = src.msg if(photo) newMsg.img = photo.img - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) if(FC.channel_name == src.channel_name) FC.messages += newMsg //Adding message to the network's appropriate feed_channel break src.screen=4 - for(var/obj/structure/machinery/newscaster/NEWSCASTER in allCasters) + for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) NEWSCASTER.newsAlert(src.channel_name) src.updateUsrDialog() @@ -540,12 +539,12 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th else if(href_list["menu_wanted"]) var/already_wanted = 0 - if(news_network.wanted_issue) + if(GLOB.news_network.wanted_issue) already_wanted = 1 if(already_wanted) - src.channel_name = news_network.wanted_issue.author - src.msg = news_network.wanted_issue.body + src.channel_name = GLOB.news_network.wanted_issue.author + src.msg = GLOB.news_network.wanted_issue.body src.screen = 14 src.updateUsrDialog() @@ -575,32 +574,32 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th WANTED.backup_author = src.scanned_user //I know, a bit wacky if(photo) WANTED.img = photo.img - news_network.wanted_issue = WANTED - for(var/obj/structure/machinery/newscaster/NEWSCASTER in allCasters) + GLOB.news_network.wanted_issue = WANTED + for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) NEWSCASTER.newsAlert() NEWSCASTER.update_icon() src.screen = 15 else - if(news_network.wanted_issue.is_admin_message) + if(GLOB.news_network.wanted_issue.is_admin_message) alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot edit it.","Ok") return - news_network.wanted_issue.author = src.channel_name - news_network.wanted_issue.body = src.msg - news_network.wanted_issue.backup_author = src.scanned_user + GLOB.news_network.wanted_issue.author = src.channel_name + GLOB.news_network.wanted_issue.body = src.msg + GLOB.news_network.wanted_issue.backup_author = src.scanned_user if(photo) - news_network.wanted_issue.img = photo.img + GLOB.news_network.wanted_issue.img = photo.img src.screen = 19 src.updateUsrDialog() else if(href_list["cancel_wanted"]) - if(news_network.wanted_issue.is_admin_message) + if(GLOB.news_network.wanted_issue.is_admin_message) alert("The wanted issue has been distributed by a Weyland-Yutani higherup. You cannot take it down.","Ok") return var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel") if(choice=="Confirm") - news_network.wanted_issue = null - for(var/obj/structure/machinery/newscaster/NEWSCASTER in allCasters) + GLOB.news_network.wanted_issue = null + for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) NEWSCASTER.update_icon() src.screen=17 src.updateUsrDialog() @@ -915,10 +914,10 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th /obj/structure/machinery/newscaster/proc/print_paper() var/obj/item/newspaper/NEWSPAPER = new /obj/item/newspaper - for(var/datum/feed_channel/FC in news_network.network_channels) + for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) NEWSPAPER.news_content += FC - if(news_network.wanted_issue) - NEWSPAPER.important_message = news_network.wanted_issue + if(GLOB.news_network.wanted_issue) + NEWSPAPER.important_message = GLOB.news_network.wanted_issue NEWSPAPER.forceMove(get_turf(src)) src.paper_remaining-- return @@ -930,7 +929,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th /obj/structure/machinery/newscaster/proc/newsAlert(channel) //This isn't Agouri's work, for it is ugly and vile. var/turf/T = get_turf(src) //Who the fuck uses spawn(600) anyway, jesus christ if(channel) - for(var/mob/O in hearers(world_view_size-1, T)) + for(var/mob/O in hearers(GLOB.world_view_size-1, T)) O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Breaking news from [channel]!\""), SHOW_MESSAGE_AUDIBLE) src.alert = 1 src.update_icon() @@ -939,7 +938,7 @@ var/list/obj/structure/machinery/newscaster/allCasters = list() //Global list th src.update_icon() playsound(src.loc, 'sound/machines/twobeep.ogg', 25, 1) else - for(var/mob/O in hearers(world_view_size-1, T)) + for(var/mob/O in hearers(GLOB.world_view_size-1, T)) O.show_message(SPAN_NEWSCASTER("[src.name] beeps, \"Attention! Wanted issue distributed!\""), SHOW_MESSAGE_AUDIBLE) playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 25, 1) return diff --git a/code/game/machinery/nuclearbomb.dm b/code/game/machinery/nuclearbomb.dm index 743f53e4f03b..aac4f82ccff1 100644 --- a/code/game/machinery/nuclearbomb.dm +++ b/code/game/machinery/nuclearbomb.dm @@ -1,5 +1,4 @@ -var/bomb_set = FALSE - +GLOBAL_VAR_INIT(bomb_set, FALSE) /obj/structure/machinery/nuclearbomb name = "\improper Nuclear Fission Explosive" desc = "Nuke the entire site from orbit, it's the only way to be sure. Too bad we don't have any orbital nukes." @@ -59,7 +58,7 @@ var/bomb_set = FALSE update_minimap_icon() return PROCESS_KILL - bomb_set = TRUE //So long as there is one nuke timing, it means one nuke is armed. + GLOB.bomb_set = TRUE //So long as there is one nuke timing, it means one nuke is armed. timeleft = explosion_time - world.time if(world.time >= explosion_time) explode() @@ -90,7 +89,7 @@ var/bomb_set = FALSE return XENO_ATTACK_ACTION /obj/structure/machinery/nuclearbomb/attackby(obj/item/O as obj, mob/user as mob) - if(anchored && timing && bomb_set && HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) + if(anchored && timing && GLOB.bomb_set && HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) user.visible_message(SPAN_INFO("[user] begins to defuse \the [src]."), SPAN_INFO("You begin to defuse \the [src]. This will take some time...")) if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) disable() @@ -99,7 +98,7 @@ var/bomb_set = FALSE ..() /obj/structure/machinery/nuclearbomb/attack_hand(mob/user as mob) - if(user.is_mob_incapacitated() || !user.canmove || get_dist(src, user) > 1 || isRemoteControlling(user)) + if(user.is_mob_incapacitated() || get_dist(src, user) > 1 || isRemoteControlling(user)) return if(isyautja(user)) @@ -111,8 +110,8 @@ var/bomb_set = FALSE return if(isqueen(user)) - if(timing && bomb_set) - user.visible_message(SPAN_INFO("[user] begins to defuse \the [src]."), SPAN_INFO("You begin to defuse \the [src]. This will take some time...")) + if(timing && GLOB.bomb_set) + user.visible_message(SPAN_INFO("[user] begins engulfing \the [src] with resin."), SPAN_INFO("You start regurgitating and engulfing the \the [src] with resin... stopping the electronics from working, this will take some time...")) if(do_after(user, 5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE)) disable() return @@ -196,14 +195,14 @@ var/bomb_set = FALSE timing = !timing if(timing) if(!safety) - bomb_set = TRUE + GLOB.bomb_set = TRUE explosion_time = world.time + timeleft update_minimap_icon() start_processing() announce_to_players() message_admins("\The [src] has been activated by [key_name(ui.user, 1)] [ADMIN_JMP_USER(ui.user)]") else - bomb_set = FALSE + GLOB.bomb_set = FALSE else disable() message_admins("\The [src] has been deactivated by [key_name(ui.user, 1)] [ADMIN_JMP_USER(ui.user)]") @@ -232,7 +231,7 @@ var/bomb_set = FALSE being_used = FALSE if(safety) timing = FALSE - bomb_set = FALSE + GLOB.bomb_set = FALSE . = TRUE if("toggleCommandLockout") @@ -291,7 +290,7 @@ var/bomb_set = FALSE set name = "Make Deployable" set src in oview(1) - if(!usr.canmove || usr.stat || usr.is_mob_restrained() || being_used || timing) + if(usr.is_mob_incapacitated() || being_used || timing) return if(!ishuman(usr)) @@ -334,13 +333,13 @@ var/bomb_set = FALSE announcement_helper("WARNING.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') //preds part var/t_left = duration2text_sec(round(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [t_left] seconds to abandon the hunting grounds before activation of human Purification Device.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [t_left] seconds to abandon the hunting grounds before activation of the human purification device.")) //xenos part var/warning if(timer_warning & NUKE_SHOW_TIMER_HALF) - warning = "Hive killer is halfway through preparation cycle!" + warning = "A shiver goes down our carapace as we feel the approaching end... the hive killer is halfway through its preparation cycle!" else if(timer_warning & NUKE_SHOW_TIMER_MINUTE) - warning = "Hive killer is almost ready to trigger!" + warning = "Every sense in our form is screaming... the hive killer is almost ready to trigger!" else warning = "DISABLE IT! NOW!" var/datum/hive_status/hive @@ -356,7 +355,7 @@ var/bomb_set = FALSE announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE ACTIVATED.\n\nDETONATION IN [round(timeleft/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') var/t_left = duration2text_sec(round(rand(timeleft - timeleft / 10, timeleft + timeleft / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
A human Purification Device has been detected. You have approximately [t_left] to abandon the hunting grounds before it activates.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
A human purification device has been detected. You have approximately [t_left] to abandon the hunting grounds before it activates.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!hive.totalXenos.len) @@ -365,7 +364,7 @@ var/bomb_set = FALSE else announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DEACTIVATED.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DEACTIVATED.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
The human Purification Device's signature has disappeared.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
The human purification device's signature has disappeared.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!hive.totalXenos.len) @@ -378,7 +377,7 @@ var/bomb_set = FALSE /obj/structure/machinery/nuclearbomb/proc/disable() timing = FALSE - bomb_set = FALSE + GLOB.bomb_set = FALSE timeleft = initial(timeleft) explosion_time = null announce_to_players() @@ -394,18 +393,43 @@ var/bomb_set = FALSE update_icon() safety = TRUE - EvacuationAuthority.trigger_self_destruct(list(z), src, FALSE, NUKE_EXPLOSION_GROUND_FINISHED, FALSE, end_round) + playsound(src, 'sound/machines/Alarm.ogg', 75, 0, 30) + world << pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') + + for(var/mob/current_mob as anything in GLOB.mob_list) + var/turf/current_turf = get_turf(current_mob) + if(current_turf?.z == z && current_mob.stat != DEAD) + shake_camera(current_mob, 110, 4) + + sleep(10 SECONDS) + + var/list/mob/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). + var/list/mob/dead_mobs = list() //Everyone that needs embryos cleared + for(var/mob/current_mob as anything in GLOB.mob_list) + var/turf/current_turf = get_turf(current_mob) + if(current_turf?.z == z) + if(current_mob.stat == DEAD) + dead_mobs |= current_mob + continue + alive_mobs |= current_mob + + for(var/mob/current_mob in alive_mobs) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + current_mob.death(create_cause_data("nuclear explosion")) + + for(var/mob/living/current_mob in (alive_mobs + dead_mobs)) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + for(var/obj/item/alien_embryo/embryo in current_mob) + qdel(embryo) - sleep(100) cell_explosion(loc, 500, 150, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name))) qdel(src) return TRUE /obj/structure/machinery/nuclearbomb/Destroy() - if(timing != -1) - message_admins("\The [src] has been unexpectedly deleted at ([x],[y],[x]). [ADMIN_JMP(src)]") - log_game("\The [src] has been unexpectedly deleted at ([x],[y],[x]).") - bomb_set = FALSE + GLOB.bomb_set = FALSE SSminimaps.remove_marker(src) return ..() @@ -545,14 +569,14 @@ var/bomb_set = FALSE announcement_helper("DECRYPTION COMPLETE", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("DECRYPTION COMPLETE", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nThe human Purification Device is able to be activated.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nThe human purification device is able to be activated.")) var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) return - xeno_announcement(SPAN_XENOANNOUNCE("The hive killer is ready to be activated! Assault at once!"), hive.hivenumber, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("We get a sense of impending doom... the hive killer is ready to be activated."), hive.hivenumber, XENO_GENERAL_ANNOUNCE) return announcement_helper("DECRYPTION IN [round(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') @@ -560,12 +584,12 @@ var/bomb_set = FALSE //preds part var/time_left = duration2text_sec(round(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [time_left] seconds to abandon the hunting grounds before human Purification Device is able to be activated.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!\n\nYou have approximately [time_left] seconds to abandon the hunting grounds before the human purification device is able to be activated.")) //xenos part - var/warning = "Hive killer is almost prepared to be activated!" + var/warning = "We are almost out of time, STOP THEM." if(timer_warning & NUKE_DECRYPT_SHOW_TIMER_HALF) - warning = "Hive killer is halfway through its initial phase!" + warning = "The Hive grows restless! it's halfway done..." var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) @@ -580,7 +604,7 @@ var/bomb_set = FALSE announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [round(decryption_time/10)] SECONDS.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE ORDNANCE DECRYPTION STARTED.\n\nDECRYPTION IN [round(decryption_time/10)] SECONDS.", "HQ Nuclear Tracker", humans_other, 'sound/misc/notice1.ogg') var/time_left = duration2text_sec(round(rand(decryption_time - decryption_time / 10, decryption_time + decryption_time / 10))) - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
A human Purification Device has been detected. You have approximately [time_left] before it finishes its initial phase.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
A human purification device has been detected. You have approximately [time_left] before it finishes its initial phase.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) @@ -590,7 +614,7 @@ var/bomb_set = FALSE announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE DECRYPTION HALTED.", "[MAIN_AI_SYSTEM] Nuclear Tracker", humans_uscm, 'sound/misc/notice1.ogg') announcement_helper("ALERT.\n\nNUCLEAR EXPLOSIVE DECRYPTION HALTED.", "HQ Intel Division", humans_other, 'sound/misc/notice1.ogg') - yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
The human Purification Device's signature has disappeared.")) + yautja_announcement(SPAN_YAUTJABOLDBIG("WARNING!
The human purification device's signature has disappeared.")) for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] if(!length(hive.totalXenos)) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b21f73af76d6..a886b59f501f 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -296,7 +296,7 @@ Buildable meters /obj/item/pipe/Move() . = ..() if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \ - && (src.dir in cardinal)) + && (src.dir in GLOB.cardinals)) setDir(src.dir|turn(src.dir, 90)) else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE)) if(dir==2) @@ -620,8 +620,8 @@ Buildable meters playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) user.visible_message( \ - "[user] fastens the [src].", \ - SPAN_NOTICE("You have fastened the [src]."), \ + "[user] fastens [src].", \ + SPAN_NOTICE("You have fastened [src]."), \ "You hear ratchet.") qdel(src) // remove the pipe item diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index fc8815b0511f..e007ada79a0e 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -75,7 +75,7 @@ /obj/structure/machinery/pipedispenser/Topic(href, href_list) if(..()) return - if(unwrenched || !usr.canmove || usr.stat || usr.is_mob_restrained() || !in_range(loc, usr)) + if(unwrenched || usr.is_mob_incapacitated() || !in_range(loc, usr)) close_browser(usr, "pipedispenser") return usr.set_interaction(src) @@ -150,7 +150,7 @@ Nah //Allow you to drag-drop disposal pipes into it /obj/structure/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/disposalconstruct/pipe as obj, mob/usr as mob) - if(!usr.canmove || usr.stat || usr.is_mob_restrained()) + if(usr.is_mob_incapacitated()) return if (!istype(pipe) || get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 ) @@ -192,7 +192,7 @@ Nah usr.set_interaction(src) src.add_fingerprint(usr) if(href_list["dmake"]) - if(unwrenched || !usr.canmove || usr.stat || usr.is_mob_restrained() || !in_range(loc, usr)) + if(unwrenched || usr.is_mob_incapacitated() || !in_range(loc, usr)) close_browser(usr, "pipedispenser") return if(!wait) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 7855f446c805..72e311c6d8ff 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -11,7 +11,7 @@ black_market_value = 35 var/obj/item/charging = null var/percent_charge_complete = 0 - var/list/allowed_devices = list(/obj/item/weapon/baton, /obj/item/cell, /obj/item/weapon/gun/energy, /obj/item/device/defibrillator, /obj/item/tool/portadialysis, /obj/item/clothing/suit/auto_cpr, /obj/item/smartgun_battery) + var/list/allowed_devices = list(/obj/item/weapon/baton, /obj/item/cell, /obj/item/weapon/gun/energy, /obj/item/device/defibrillator, /obj/item/tool/portadialysis, /obj/item/clothing/suit/auto_cpr, /obj/item/smartgun_battery, /obj/item/device/helmet_visor/night_vision) var/charge_amount = 1000 @@ -181,6 +181,21 @@ update_icon() return + if(istype(charging, /obj/item/device/helmet_visor/night_vision)) + var/obj/item/device/helmet_visor/night_vision/charging_night_vision_visor = charging + if(charging_night_vision_visor.power_cell) + if(!charging_night_vision_visor.power_cell.fully_charged()) + charging_night_vision_visor.power_cell.give(charge_amount) + percent_charge_complete = charging_night_vision_visor.power_cell.percent() + update_use_power(USE_POWER_ACTIVE) + update_icon() + return + + percent_charge_complete = 100 + update_use_power(USE_POWER_IDLE) + update_icon() + return + /* Disable defib recharging if(istype(charging, /obj/item/device/defibrillator)) var/obj/item/device/defibrillator/D = charging @@ -203,20 +218,14 @@ update_icon() /obj/structure/machinery/recharger/emp_act(severity) + . = ..() if(inoperable() || !anchored) - ..(severity) return -/* - if(istype(charging, /obj/item/weapon/gun/energy)) - var/obj/item/weapon/gun/energy/E = charging - if(E.power_supply) - E.power_supply.emp_act(severity) -*/ + if(istype(charging, /obj/item/weapon/baton)) var/obj/item/weapon/baton/B = charging if(B.bcell) B.bcell.charge = 0 - ..(severity) /obj/structure/machinery/recharger/update_icon() //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. src.overlays = 0 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 644402128852..56b782cd77a4 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -109,13 +109,12 @@ return /obj/structure/machinery/recharge_station/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return if(occupant) occupant.emp_act(severity) go_out() - ..(severity) /obj/structure/machinery/recharge_station/update_icon() ..() diff --git a/code/game/machinery/scoreboard.dm b/code/game/machinery/scoreboard.dm index 9b8d6402ca96..8740bed6dcfb 100644 --- a/code/game/machinery/scoreboard.dm +++ b/code/game/machinery/scoreboard.dm @@ -68,7 +68,7 @@ active = 1 icon_state = "launcheract" - for(var/obj/structure/machinery/scoreboard/X in machines) + for(var/obj/structure/machinery/scoreboard/X in GLOB.machines) if(X.id == id) X.reset_scores() diff --git a/code/game/machinery/seed_extractor.dm b/code/game/machinery/seed_extractor.dm index e07b13f64f97..0b4574cc9fb4 100644 --- a/code/game/machinery/seed_extractor.dm +++ b/code/game/machinery/seed_extractor.dm @@ -14,10 +14,10 @@ var/datum/seed/new_seed_type if(istype(O, /obj/item/grown)) var/obj/item/grown/F = O - new_seed_type = seed_types[F.plantname] + new_seed_type = GLOB.seed_types[F.plantname] else var/obj/item/reagent_container/food/snacks/grown/F = O - new_seed_type = seed_types[F.plantname] + new_seed_type = GLOB.seed_types[F.plantname] if(new_seed_type) to_chat(user, SPAN_NOTICE("You extract some seeds from [O].")) diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index 61f87251282d..fe676e9103d2 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -10,13 +10,12 @@ idle_power_usage = 1000 power_channel = 1 use_power = USE_POWER_IDLE - machine_processing = 1 var/deployment_cooldown var/turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable // Path of the turret used var/obj/structure/machinery/defenses/sentry/premade/deployable/deployed_turret var/ox = 0 var/oy = 0 - var/ind = FALSE + var/require_red_alert = FALSE /obj/structure/machinery/sentry_holder/Initialize() . = ..() @@ -36,34 +35,38 @@ . += "It's offline." /obj/structure/machinery/sentry_holder/attack_hand(mob/user) - if(deployed_turret) - if(deployment_cooldown > world.time) - to_chat(user, SPAN_WARNING("[src] is busy.")) - return //prevents spamming deployment/undeployment - if(deployed_turret.loc == src) //not deployed - if(stat & NOPOWER) - to_chat(user, SPAN_WARNING("[src] is non-functional.")) - else - to_chat(user, SPAN_NOTICE("You deploy [src].")) - deploy_sentry() - else - to_chat(user, SPAN_NOTICE("You retract [src].")) - undeploy_sentry() - else + if(!deployed_turret) to_chat(user, SPAN_WARNING("[src] is unresponsive.")) + return -/obj/structure/machinery/sentry_holder/process() - if(stat & NOPOWER) - if(deployed_turret) - undeploy_sentry() - ind = FALSE - else - icon_state = "sentry_system_destroyed" - else - update_use_power(USE_POWER_IDLE) - if(!ind) - deploy_sentry() - ind = TRUE + if(deployment_cooldown > world.time) + to_chat(user, SPAN_WARNING("[src] is busy.")) + return + + if(deployed_turret.loc == src) //not deployed + if(stat & NOPOWER) + to_chat(user, SPAN_WARNING("[src] is non-functional.")) + return + + if(require_red_alert && (seclevel2num(get_security_level()) < SEC_LEVEL_RED)) + to_chat(user, SPAN_WARNING("[src] can only be activated in emergencies.")) + return + + to_chat(user, SPAN_NOTICE("You deploy [src].")) + deploy_sentry() + return + + to_chat(user, SPAN_NOTICE("You retract [src].")) + undeploy_sentry() + return + +/obj/structure/machinery/sentry_holder/update_use_power(new_use_power) + ..() + + if(!(stat & NOPOWER)) + return + + undeploy_sentry() /obj/structure/machinery/sentry_holder/proc/deploy_sentry() if(!deployed_turret) @@ -111,3 +114,6 @@ desc = "A box that deploys a sentry turret for protection of the residents in the area." turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony +/obj/structure/machinery/sentry_holder/almayer + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer + require_red_alert = TRUE diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index aa51201ae18b..69b21964a4f4 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -40,12 +40,11 @@ /obj/structure/machinery/space_heater/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return if(cell) cell.emp_act(severity) - ..(severity) /obj/structure/machinery/space_heater/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/cell)) @@ -67,7 +66,7 @@ return else if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) open = !open - user.visible_message(SPAN_NOTICE("[user] [open ? "opens" : "closes"] the hatch on the [src]."), SPAN_NOTICE("You [open ? "open" : "close"] the hatch on the [src].")) + user.visible_message(SPAN_NOTICE("[user] [open ? "opens" : "closes"] the hatch on [src]."), SPAN_NOTICE("You [open ? "open" : "close"] the hatch on [src].")) update_icon() if(!open && user.interactee == src) close_browser(user, "spaceheater") @@ -108,7 +107,7 @@ start_processing() else stop_processing() - user.visible_message(SPAN_NOTICE("[user] switches [on ? "on" : "off"] the [src]."),SPAN_NOTICE("You switch [on ? "on" : "off"] the [src].")) + user.visible_message(SPAN_NOTICE("[user] switches [on ? "on" : "off"] [src]."),SPAN_NOTICE("You switch [on ? "on" : "off"] [src].")) update_icon() return @@ -187,4 +186,3 @@ name = "radiator" desc = "It's a radiator. It heats the room through convection with hot water. This one has a red handle." icon_state = "radiator-r" - diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 6c6d2bda8b07..547dbba68e4f 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -78,7 +78,7 @@ return 1 if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer message1 = "EVAC" - message2 = EvacuationAuthority.get_status_panel_eta() + message2 = SShijack.get_evac_eta() if(message2) if(length(message2) > CHARS_PER_LINE) message2 = "Error" update_display(message1, message2) @@ -146,7 +146,7 @@ maptext = new_text /obj/structure/machinery/status_display/proc/get_supply_shuttle_timer() - var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + var/datum/shuttle/ferry/supply/shuttle = GLOB.supply_controller.shuttle if (!shuttle) return "Error" @@ -163,6 +163,15 @@ if(maptext) maptext = "" +/obj/structure/machinery/status_display/proc/set_sec_level_picture() + switch(GLOB.security_level) + if(SEC_LEVEL_GREEN) + set_picture("default") + if(SEC_LEVEL_BLUE) + set_picture("bluealert") + if(SEC_LEVEL_RED, SEC_LEVEL_DELTA) + set_picture("redalert") + /obj/structure/machinery/ai_status_display icon = 'icons/obj/structures/machinery/status_display.dmi' icon_state = "frame" @@ -179,11 +188,10 @@ var/emotion = "Neutral" /obj/structure/machinery/ai_status_display/emp_act(severity) + . = ..() if(inoperable()) - ..(severity) return set_picture("ai_bsod") - ..(severity) /obj/structure/machinery/ai_status_display/proc/update() if(mode==0) //Blank diff --git a/code/game/machinery/storm_siren.dm b/code/game/machinery/storm_siren.dm index e78414cb7e5b..335115715488 100644 --- a/code/game/machinery/storm_siren.dm +++ b/code/game/machinery/storm_siren.dm @@ -11,11 +11,11 @@ health = 0 /obj/structure/machinery/storm_siren/Initialize() - weather_notify_objects += src + GLOB.weather_notify_objects += src return ..() /obj/structure/machinery/storm_siren/Destroy() - weather_notify_objects -= src + GLOB.weather_notify_objects -= src . = ..() /obj/structure/machinery/storm_siren/power_change() diff --git a/code/game/machinery/supply_display.dm b/code/game/machinery/supply_display.dm index 26117474f0fe..7317ed6435f2 100644 --- a/code/game/machinery/supply_display.dm +++ b/code/game/machinery/supply_display.dm @@ -6,7 +6,7 @@ message1 = "SUPPLY" message2 = "" - var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + var/datum/shuttle/ferry/supply/shuttle = GLOB.supply_controller.shuttle if (!shuttle) message2 = "Error" else if(shuttle.has_arrive_time()) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index f8250fad271c..e992ef02f8a5 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -83,7 +83,7 @@ vmask, vmessage, obj/item/device/radio/radio, message, name, job, realname, vname, data, compression, list/level, freq, verbage = "says", - datum/language/speaking = null, volume = RADIO_VOLUME_QUIET) + datum/language/speaking = null, volume = RADIO_VOLUME_QUIET, listening_device = FALSE) /* ###### Prepare the radio connection ###### */ var/display_freq = freq @@ -175,13 +175,16 @@ volume = RADIO_VOLUME_CRITICAL for (var/mob/R in receive) + var/is_ghost = istype(R, /mob/dead/observer) /* --- Loop through the receivers and categorize them --- */ if (R.client && !(R.client.prefs.toggles_chat & CHAT_RADIO)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. continue if(istype(R, /mob/new_player)) // we don't want new players to hear messages. rare but generates runtimes. continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == 3 && istype(R, /mob/dead/observer) && R.client && (R.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + if(data == 3 && is_ghost && R.client && (R.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + continue + if(is_ghost && listening_device && !(R.client.prefs.toggles_chat & CHAT_LISTENINGBUG)) continue // --- Check for compression --- if(compression > 0) diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index a370356ad60b..e43598c4e248 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -128,7 +128,7 @@ dat += "
Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" if(hide) dat += "
Shadow Link: ACTIVE" - //Show additional options for certain machines. + //Show additional options for certain GLOB.machines. dat += Options_Menu() dat += "
Linked Network Entities:
    " @@ -177,7 +177,7 @@ if(src.listening_level == TELECOMM_GROUND_Z) // equals the station src.listening_level = position.z return 1 - else if(is_admin_level(position.z)) + else if(should_block_game_interaction(position)) src.listening_level = TELECOMM_GROUND_Z return 1 return 0 @@ -200,7 +200,7 @@ P = user.get_active_hand() return P -// Additional Options for certain machines. Use this when you want to add an option to a specific machine. +// Additional Options for certain GLOB.machines. Use this when you want to add an option to a specific machine. // Example of how to use below. /obj/structure/machinery/telecomms/proc/Options_Menu() @@ -229,7 +229,7 @@ /obj/structure/machinery/telecomms/relay/Options_Menu() var/dat = "" - if(is_admin_level(z)) + if(should_block_game_interaction(src)) dat += "
    Signal Locked to Station: [listening_level == TELECOMM_GROUND_Z ? "TRUE" : "FALSE"]" dat += "
    Broadcasting: [broadcasting ? "YES" : "NO"]" dat += "
    Receiving: [receiving ? "YES" : "NO"]" diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index b327bd6fdf26..7621d55e3645 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -1,8 +1,5 @@ // ### Preset machines ### - -//var/list/freq_listening = list() USE THIS FOR NEW RELAY STUFF WHEN I GET THIS - APOPHIS - //Relay /obj/structure/machinery/telecomms/relay/preset network = "tcommsat" @@ -218,12 +215,20 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /// Held image for the current overlay on the tower from xeno corruption var/image/corruption_image + /// Holds the delay for when a cluster can recorrupt the comms tower after a pylon has been destroyed + COOLDOWN_DECLARE(corruption_delay) + /obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/Initialize() . = ..() RegisterSignal(src, COMSIG_ATOM_TURF_CHANGE, PROC_REF(register_with_turf)) register_with_turf() +/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/get_examine_text(mob/user) + . = ..() + if(isxeno(user) && !COOLDOWN_FINISHED(src, corruption_delay)) + . += SPAN_XENO("Corruption cooldown: [(COOLDOWN_TIMELEFT(src, corruption_delay) / (1 SECONDS))] seconds.") + /obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/attack_hand(mob/user) if(user.action_busy) return @@ -323,6 +328,10 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (XENO_COMM_ACQUISITION_TIME - ROUND_TIME)) return + if(!COOLDOWN_FINISHED(src, corruption_delay)) + addtimer(CALLBACK(src, PROC_REF(handle_xeno_acquisition), weeded_turf), (COOLDOWN_TIMELEFT(src, corruption_delay))) + return + var/obj/effect/alien/weeds/node/pylon/cluster/parent_node = weeded_turf.weeds.parent var/obj/effect/alien/resin/special/cluster/cluster_parent = parent_node.resin_parent @@ -362,6 +371,8 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) overlays -= corruption_image + COOLDOWN_START(src, corruption_delay, XENO_PYLON_DESTRUCTION_DELAY) + /// Handles moving the overlay from growing to idle /obj/structure/machinery/telecomms/relay/preset/tower/mapcomms/proc/switch_to_idle_corruption() if(!corrupted) @@ -435,8 +446,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) id = "CentComm Receiver" network = "tcommsat" autolinkers = list("receiverCent") - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) - + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) //Buses @@ -455,7 +465,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/bus/preset_three id = "Bus 3" network = "tcommsat" - freq_listening = list(SEC_FREQ, COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) + freq_listening = list(SEC_FREQ, COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) autolinkers = list("processor3", "security", "command", "JTAC") /obj/structure/machinery/telecomms/bus/preset_four @@ -471,7 +481,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/bus/preset_cent id = "CentComm Bus" network = "tcommsat" - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) autolinkers = list("processorCent", "centcomm") //Processors @@ -536,7 +546,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/server/presets/command id = "Command Server" - freq_listening = list(COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) + freq_listening = list(COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) autolinkers = list("command") /obj/structure/machinery/telecomms/server/presets/engineering @@ -551,10 +561,9 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/server/presets/centcomm id = "CentComm Server" - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) autolinkers = list("centcomm") - //Broadcasters //--PRESET LEFT--// diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 255d70f45870..8b8b12dfd170 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -93,13 +93,13 @@ GLOBAL_LIST_EMPTY_TYPED(telecomms_list, /obj/structure/machinery/telecomms) update_state() /obj/structure/machinery/telecomms/emp_act(severity) + . = ..() if(prob(100/severity)) if(!(stat & EMPED)) stat |= EMPED var/duration = (300 * 10)/severity spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. stat &= ~EMPED - ..() /* The receiver idles and receives messages from subspace-compatible radio equipment; diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 8ea00ce4061d..8b6622121b86 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -98,7 +98,7 @@ var/turf/T = get_turf(R) if (!T) continue - if(is_admin_level(T.z)) + if(should_block_game_interaction(T)) continue var/tmpname = T.loc.name if(areaindex[tmpname]) @@ -118,7 +118,7 @@ continue var/turf/T = get_turf(M) if(T) continue - if(is_admin_level(T.z)) continue + if(should_block_game_interaction(T)) continue var/tmpname = M.real_name if(areaindex[tmpname]) tmpname = "[tmpname] ([++areaindex[tmpname]])" diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index bf7c4fffee65..5568a5fda600 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -37,8 +37,14 @@ var/vend_delay = 0 //delaying vending of an item (for drinks machines animation, for example). Make sure to synchronize this with animation duration var/vend_sound //use with caution. Potential spam + /// X Offset to vend to var/vend_x_offset = 0 + /// Y Offset to vend to var/vend_y_offset = 0 + /// Vending direction from adjacent users, if not using vend_x_offset or vend_y_offset + var/vend_dir + /// Direction to adjacent user from which we're allowed to do offset vending + var/list/vend_dir_whitelist var/list/listed_products = list() @@ -78,7 +84,7 @@ IN_USE used for vending/denying if(stat & NOPOWER || stat & TIPPED_OVER) //tipping off without breaking uses "_off" sprite overlays += image(icon, "[icon_state]_off") if(stat & MAINT) //if we require maintenance, then it is completely "_broken" - icon_state = "[initial(icon_state)]_broken" + overlays += image(icon, "[initial(icon_state)]_broken") if(stat & IN_REPAIR) //if someone started repairs, they unscrewed "_panel" overlays += image(icon, "[icon_state]_panel") @@ -125,11 +131,20 @@ GLOBAL_LIST_EMPTY(vending_products) GLOB.vending_products[typepath] = 1 //get which turf the vendor will dispense its products on. -/obj/structure/machinery/cm_vending/proc/get_appropriate_vend_turf() - var/turf/T = loc +/obj/structure/machinery/cm_vending/proc/get_appropriate_vend_turf(mob/living/carbon/human/user) + var/turf/turf = loc if(vend_x_offset != 0 || vend_y_offset != 0) //this check should be more less expensive than using locate to locate your own tile every vending. - T = locate(x + vend_x_offset, y + vend_y_offset, z) - return T + turf = locate(x + vend_x_offset, y + vend_y_offset, z) + return turf + if(vend_dir) + if(vend_dir_whitelist) + var/user_dir = get_dir(loc, user) + if(!(user_dir in vend_dir_whitelist)) + return get_turf(user) + var/turf/relative_turf = get_step(user, vend_dir) + if(relative_turf) + return relative_turf + return turf /obj/structure/machinery/cm_vending/get_examine_text(mob/living/carbon/human/user) . = ..() @@ -245,7 +260,7 @@ GLOBAL_LIST_EMPTY(vending_products) return //Machete holsters handling else if(istype(item_to_stock, /obj/item/storage/large_holster/machete)) - var/obj/item/weapon/claymore/mercsword/machete/mac = locate(/obj/item/weapon/claymore/mercsword/machete) in item_to_stock + var/obj/item/weapon/sword/machete/mac = locate(/obj/item/weapon/sword/machete) in item_to_stock if(!mac) if(user) to_chat(user, SPAN_WARNING("\The [item_to_stock] is empty.")) @@ -425,10 +440,68 @@ GLOBAL_LIST_EMPTY(vending_products) user.set_interaction(src) tgui_interact(user) +/// Handles redeeming coin tokens. +/obj/structure/machinery/cm_vending/proc/redeem_token(obj/item/coin/marine/token, mob/user) + var/reward_typepath + switch(token.token_type) + if(VEND_TOKEN_VOID) + to_chat(user, SPAN_WARNING("ERROR: TOKEN NOT RECOGNISED.")) + return FALSE + if(VEND_TOKEN_SPEC) + reward_typepath = /obj/item/spec_kit/rifleman + else + to_chat(user, SPAN_WARNING("ERROR: INCORRECT TOKEN.")) + return FALSE + + if(reward_typepath && user.drop_inv_item_to_loc(token, src)) + to_chat(user, SPAN_NOTICE("You insert \the [token] into \the [src].")) + var/obj/new_item = new reward_typepath(get_turf(src)) + user.put_in_any_hand_if_possible(new_item) + return TRUE + return FALSE + + //------------TGUI PROCS--------------- /obj/structure/machinery/cm_vending/ui_data(mob/user) - return vendor_user_ui_data(src, user) + if(vend_flags & VEND_LIMITED_INVENTORY) + return vendor_inventory_ui_data(user) + + . = list() + var/list/ui_listed_products = get_listed_products(user) + // list format + // ( + // name: str + // cost + // item reference + // allowed to buy flag + // item priority (mandatory/recommended/regular) + // ) + + var/list/stock_values = list() + + var/mob/living/carbon/human/marine = user + var/points = 0 + + if(instanced_vendor_points) + points = available_points_to_display + else + if(use_snowflake_points) + points = marine.marine_snowflake_points + else if(use_points) + points = marine.marine_points + + for (var/i in 1 to length(ui_listed_products)) + var/list/myprod = ui_listed_products[i] //we take one list from listed_products + var/prod_available = FALSE + var/p_cost = myprod[2] + var/category = myprod[4] + if(points >= p_cost && (!category || ((category in marine.marine_buyable_categories) && (marine.marine_buyable_categories[category])))) + prod_available = TRUE + stock_values += list(prod_available) + + .["stock_listing"] = stock_values + .["current_m_points"] = points /obj/structure/machinery/cm_vending/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() @@ -477,12 +550,12 @@ GLOBAL_LIST_EMPTY(vending_products) vend_fail() return FALSE var/p_name = itemspec[1] - if(!available_specialist_sets.Find(p_name)) + if(!GLOB.available_specialist_sets.Find(p_name)) to_chat(user, SPAN_WARNING("That set is already taken.")) vend_fail() return FALSE var/obj/item/card/id/ID = user.wear_id - if(!istype(ID) || ID.registered_ref != WEAKREF(usr)) + if(!istype(ID) || !ID.check_biometrics(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("dog tags")] to select a specialization!")) return FALSE var/specialist_assignment @@ -508,14 +581,14 @@ GLOBAL_LIST_EMPTY(vending_products) return FALSE ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), ID.assignment) - available_specialist_sets -= p_name + GLOB.available_specialist_sets -= p_name else if(vendor_role.Find(JOB_SYNTH)) if(user.job != JOB_SYNTH) to_chat(user, SPAN_WARNING("Only USCM Synthetics may vend experimental tool tokens.")) vend_fail() return FALSE - if(!handle_vend(src, itemspec, user)) + if(!handle_vend(itemspec, user)) to_chat(user, SPAN_WARNING("You can't buy things from this category anymore.")) vend_fail() return FALSE @@ -533,7 +606,7 @@ GLOBAL_LIST_EMPTY(vending_products) vend_fail() return TRUE // one left and the player spam click during a lagspike. - vendor_successful_vend(src, itemspec, user) + vendor_successful_vend(itemspec, user) return TRUE add_fingerprint(user) @@ -686,28 +759,35 @@ GLOBAL_LIST_EMPTY(vending_products) hack_access(user) return TRUE + ///If we want to redeem a token + else if(istype(W, /obj/item/coin/marine)) + if(!can_access_to_vend(user, ignore_hack = TRUE)) + return FALSE + . = redeem_token(W, user) + return + ..() /obj/structure/machinery/cm_vending/proc/get_listed_products(mob/user) return listed_products -/obj/structure/machinery/cm_vending/proc/can_access_to_vend(mob/user, display=TRUE) - if(!hacked) +/obj/structure/machinery/cm_vending/proc/can_access_to_vend(mob/user, display = TRUE, ignore_hack = FALSE) + if(!hacked || ignore_hack) if(!allowed(user)) if(display) to_chat(user, SPAN_WARNING("Access denied.")) vend_fail() return FALSE - var/mob/living/carbon/human/H = user - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/idcard = human_user.wear_id + if(!istype(idcard)) if(display) to_chat(user, SPAN_WARNING("Access denied. No ID card detected")) vend_fail() return FALSE - if(I.registered_name != user.real_name) + if(!idcard.check_biometrics(human_user)) if(display) to_chat(user, SPAN_WARNING("Wrong ID card owner detected.")) vend_fail() @@ -764,7 +844,7 @@ GLOBAL_LIST_EMPTY(vending_products) /obj/structure/machinery/cm_vending/gear/ui_static_data(mob/user) . = ..(user) .["vendor_type"] = "gear" - .["displayed_categories"] = vendor_user_inventory_list(src, user) + .["displayed_categories"] = vendor_user_inventory_list(user) //------------CLOTHING VENDORS--------------- //clothing vendors automatically put item on user. QoL at it's finest. @@ -774,14 +854,14 @@ GLOBAL_LIST_EMPTY(vending_products) desc = "An automated closet hooked up to a colossal storage of standard-issue uniform and armor." icon_state = "clothing" use_points = TRUE + show_points = TRUE vendor_theme = VENDOR_THEME_USCM - show_points = FALSE vend_flags = VEND_CLUTTER_PROTECTION | VEND_UNIFORM_RANKS | VEND_UNIFORM_AUTOEQUIP | VEND_CATEGORY_CHECK /obj/structure/machinery/cm_vending/clothing/ui_static_data(mob/user) . = ..(user) .["vendor_type"] = "clothing" - .["displayed_categories"] = vendor_user_inventory_list(src, user) + .["displayed_categories"] = vendor_user_inventory_list(user) //------------SORTED VENDORS--------------- //22.06.2019 Modified ex-"marine_selector" system that doesn't use points by Jeser. In theory, should replace all vendors. @@ -795,8 +875,11 @@ GLOBAL_LIST_EMPTY(vending_products) vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND show_points = FALSE - //this here is made to provide ability to restock vendors with different subtypes of same object, like handmade and manually filled ammo boxes. + ///this here is made to provide ability to restock vendors with different subtypes of same object, like handmade and manually filled ammo boxes. var/list/corresponding_types_list + ///If using [VEND_STOCK_DYNAMIC], assoc list of product entry to list of (product multiplier, awarded objects) - as seen in [/obj/structure/machinery/cm_vending/sorted/proc/populate_product_list] + ///This allows us to backtrack and refill the stocks when new players latejoin + var/list/list/dynamic_stock_multipliers /obj/structure/machinery/cm_vending/sorted/Initialize() . = ..() @@ -809,14 +892,44 @@ GLOBAL_LIST_EMPTY(vending_products) GLOB.cm_vending_vendors -= src return ..() -//this proc, well, populates product list based on roundstart amount of players +///this proc, well, populates product list based on roundstart amount of players /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list_and_boxes(scale) - populate_product_list(scale) + if(vend_flags & VEND_STOCK_DYNAMIC) + populate_product_list(1.0) + dynamic_stock_multipliers = list() + for(var/list/vendspec in listed_products) + var/multiplier = vendspec[2] + if(multiplier > 0) + var/awarded = round(vendspec[2] * scale) // Starting amount + //Record the multiplier and how many have actually been given out + dynamic_stock_multipliers[vendspec] = list(vendspec[2], awarded) + vendspec[2] = awarded // Override starting amount + else + populate_product_list(scale) + if(vend_flags & VEND_LOAD_AMMO_BOXES) populate_ammo_boxes() return -//this proc, well, populates product list based on roundstart amount of players +///Updates the vendor stock when the [/datum/game_mode/var/marine_tally] has changed and we're using [VEND_STOCK_DYNAMIC] +///Assumes the scale can only increase!!! Don't take their items away! +/obj/structure/machinery/cm_vending/sorted/proc/update_dynamic_stock(new_scale) + if(!(vend_flags & VEND_STOCK_DYNAMIC)) + return + for(var/list/vendspec in dynamic_stock_multipliers) + var/list/metadata = dynamic_stock_multipliers[vendspec] + var/multiplier = metadata[1] // How much do we multiply scales by + var/previous_max_amount = metadata[2] // How many we already handed out at old scale + var/projected_max_amount = round(new_scale * multiplier) // How much we would have had total now in total + var/amount_to_add = round(projected_max_amount - previous_max_amount) // Rounding just in case + if(amount_to_add > 0) + metadata[2] += amount_to_add + vendspec[2] += amount_to_add + update_derived_ammo_and_boxes_on_add(vendspec) + +///this proc, well, populates product list based on roundstart amount of players +///do not rely on scale here if you use VEND_STOCK_DYNAMIC because it's already taken into account +///this is here for historical reasons and should ONLY be called by populate_product_list_and_boxes if you want dynamic stocks and ammoboxes to work /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list(scale) return @@ -840,14 +953,14 @@ GLOBAL_LIST_EMPTY(vending_products) /obj/structure/machinery/cm_vending/sorted/ui_static_data(mob/user) . = ..(user) .["vendor_type"] = "sorted" - .["displayed_categories"] = vendor_user_inventory_list(src, user, null, 4) + .["displayed_categories"] = vendor_user_inventory_list(user, null, 4) /obj/structure/machinery/cm_vending/sorted/MouseDrop_T(atom/movable/A, mob/user) if(inoperable()) return - if(user.stat || user.is_mob_restrained() || user.lying) + if(user.stat || user.is_mob_restrained()) return if(get_dist(user, src) > 1 || get_dist(src, A) > 1) @@ -919,7 +1032,7 @@ GLOBAL_LIST_EMPTY(vending_products) /obj/structure/machinery/cm_vending/own_points/ui_static_data(mob/user) . = ..(user) .["vendor_type"] = "gear" - .["displayed_categories"] = vendor_user_inventory_list(src, user) + .["displayed_categories"] = vendor_user_inventory_list(user) //------------ESSENTIALS SETS AND RANDOM GEAR SPAWNER--------------- @@ -1045,7 +1158,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( //---helper procs -/proc/vendor_user_inventory_list(vendor, mob/user, cost_index=2, priority_index=5) +/obj/structure/machinery/cm_vending/proc/vendor_user_inventory_list(mob/user, cost_index=2, priority_index=5) . = list() // default list format // ( @@ -1055,8 +1168,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( // allowed to buy flag // item priority (mandatory/recommended/regular) // ) - var/obj/structure/machinery/cm_vending/vending_machine = vendor - var/list/ui_listed_products = vending_machine.get_listed_products(user) + var/list/ui_listed_products = get_listed_products(user) for (var/i in 1 to length(ui_listed_products)) var/list/myprod = ui_listed_products[i] //we take one list from listed_products @@ -1098,10 +1210,9 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( var/last_category = .[last_index] last_category["items"] += list(display_item) -/proc/vendor_inventory_ui_data(vendor, mob/user) +/obj/structure/machinery/cm_vending/proc/vendor_inventory_ui_data(mob/user) . = list() - var/obj/structure/machinery/cm_vending/vending_machine = vendor - var/list/ui_listed_products = vending_machine.get_listed_products(user) + var/list/ui_listed_products = get_listed_products(user) var/list/ui_categories = list() for (var/i in 1 to length(ui_listed_products)) @@ -1110,92 +1221,52 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( ui_categories += list(p_amount) .["stock_listing"] = ui_categories -/proc/vendor_user_ui_data(obj/structure/machinery/cm_vending/vending_machine, mob/user) - if(vending_machine.vend_flags & VEND_LIMITED_INVENTORY) - return vendor_inventory_ui_data(vending_machine, user) - - . = list() - var/list/ui_listed_products = vending_machine.get_listed_products(user) - // list format - // ( - // name: str - // cost - // item reference - // allowed to buy flag - // item priority (mandatory/recommended/regular) - // ) - - var/list/stock_values = list() - - var/mob/living/carbon/human/marine = user - var/points = 0 - - if(vending_machine.instanced_vendor_points) - points = vending_machine.available_points_to_display - else - if(vending_machine.use_snowflake_points) - points = marine.marine_snowflake_points - else if(vending_machine.use_points) - points = marine.marine_points - - for (var/i in 1 to length(ui_listed_products)) - var/list/myprod = ui_listed_products[i] //we take one list from listed_products - var/prod_available = FALSE - var/p_cost = myprod[2] - var/category = myprod[4] - if(points >= p_cost && (!category || ((category in marine.marine_buyable_categories) && (marine.marine_buyable_categories[category])))) - prod_available = TRUE - stock_values += list(prod_available) - - .["stock_listing"] = stock_values - .["current_m_points"] = points - -/proc/vendor_successful_vend(obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user) - if(vendor.stat & IN_USE) +/obj/structure/machinery/cm_vending/proc/vendor_successful_vend(list/itemspec, mob/living/carbon/human/user) + if(stat & IN_USE) return - vendor.stat |= IN_USE + stat |= IN_USE - var/vend_flags = vendor.vend_flags - var/turf/target_turf = vendor.get_appropriate_vend_turf(user) + var/turf/target_turf = get_appropriate_vend_turf(user) if(LAZYLEN(itemspec)) //making sure it's not empty - if(vendor.vend_delay) - vendor.overlays.Cut() - vendor.icon_state = "[initial(vendor.icon_state)]_vend" - if(vendor.vend_sound) - playsound(vendor.loc, vendor.vend_sound, 25, 1, 2) //heard only near vendor - sleep(vendor.vend_delay) + if(vend_delay) + overlays.Cut() + icon_state = "[initial(icon_state)]_vend" + if(vend_sound) + playsound(loc, vend_sound, 25, 1, 2) //heard only near vendor + sleep(vend_delay) var/prod_type = itemspec[3] if(islist(prod_type)) for(var/each_type in prod_type) - vendor_successful_vend_one(vendor, each_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) + vendor_successful_vend_one(each_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) + SEND_SIGNAL(src, COMSIG_VENDOR_SUCCESSFUL_VEND, src, itemspec, user) else - vendor_successful_vend_one(vendor, prod_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) + vendor_successful_vend_one(prod_type, user, target_turf, itemspec[4] == MARINE_CAN_BUY_UNIFORM) + SEND_SIGNAL(src, COMSIG_VENDOR_SUCCESSFUL_VEND, src, itemspec, user) if(vend_flags & VEND_LIMITED_INVENTORY) itemspec[2]-- if(vend_flags & VEND_LOAD_AMMO_BOXES) - vendor.update_derived_ammo_and_boxes(itemspec) + update_derived_ammo_and_boxes(itemspec) else to_chat(user, SPAN_WARNING("ERROR: itemspec is missing. Please report this to admins.")) sleep(15) - vendor.stat &= ~IN_USE - vendor.icon_state = initial(vendor.icon_state) - vendor.update_icon() + stat &= ~IN_USE + icon_state = initial(icon_state) + update_icon() -/proc/vendor_successful_vend_one(obj/structure/machinery/cm_vending/vendor, prod_type, mob/living/carbon/human/user, turf/target_turf, insignas_override) +/obj/structure/machinery/cm_vending/proc/vendor_successful_vend_one(prod_type, mob/living/carbon/human/user, turf/target_turf, insignas_override) var/obj/item/new_item - var/vend_flags = vendor.vend_flags if(ispath(prod_type, /obj/item)) if(ispath(prod_type, /obj/item/weapon/gun)) new_item = new prod_type(target_turf, TRUE) else if(prod_type == /obj/item/device/radio/headset/almayer/marine) - prod_type = vendor.headset_type + prod_type = headset_type else if(prod_type == /obj/item/clothing/gloves/marine) - prod_type = vendor.gloves_type + prod_type = gloves_type new_item = new prod_type(target_turf) new_item.add_fingerprint(user) else @@ -1224,13 +1295,13 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( if(vend_flags & VEND_TO_HAND) if(user.client?.prefs && (user.client?.prefs?.toggle_prefs & TOGGLE_VEND_ITEM_TO_HAND)) - if(vendor.Adjacent(user)) + if(Adjacent(user)) user.put_in_any_hand_if_possible(new_item, disable_warning = TRUE) new_item.post_vendor_spawn_hook(user) -/proc/handle_vend(obj/structure/machinery/cm_vending/vendor, list/listed_products, mob/living/carbon/human/vending_human) - if(vendor.vend_flags & VEND_USE_VENDOR_FLAGS) +/obj/structure/machinery/cm_vending/proc/handle_vend(list/listed_products, mob/living/carbon/human/vending_human) + if(vend_flags & VEND_USE_VENDOR_FLAGS) return TRUE var/buying_category = listed_products[4] if(buying_category) @@ -1266,62 +1337,3 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( stat &= ~IN_USE if(destroy) qdel(src) - -//------------HACKING--------------- - -//Hacking code from old vendors, in case someone will actually would like to add complex hacking in future. For now, simple access hacking I believe sufficient. -/* -/obj/structure/machinery/vending/proc/get_wire_descriptions() - return list( - VENDING_WIRE_EXTEND = "Inventory control computer", - VENDING_WIRE_IDSCAN = "ID scanner", - VENDING_WIRE_SHOCK = "Ground safety", - VENDING_WIRE_SHOOT_INV = "Dispenser motor control" - ) - -/obj/structure/machinery/vending/proc/isWireCut(wire) - return !(wires & getWireFlag(wire)) - -/obj/structure/machinery/vending/proc/cut(wire) - wires ^= getWireFlag(wire) - - switch(wire) - if(VENDING_WIRE_EXTEND) - src.extended_inventory = 0 - visible_message(SPAN_NOTICE("A weak yellow light turns off underneath \the [src].")) - if(VENDING_WIRE_SHOCK) - src.seconds_electrified = -1 - visible_message(SPAN_DANGER("Electric arcs shoot off from \the [src]!")) - if (VENDING_WIRE_SHOOT_INV) - if(!src.shoot_inventory) - src.shoot_inventory = TRUE - visible_message(SPAN_WARNING("\The [src] begins whirring noisily.")) - -/obj/structure/machinery/vending/proc/mend(wire) - wires |= getWireFlag(wire) - - switch(wire) - if(VENDING_WIRE_EXTEND) - src.extended_inventory = 1 - visible_message(SPAN_NOTICE("A weak yellow light turns on underneath \the [src].")) - if(VENDING_WIRE_SHOCK) - src.seconds_electrified = 0 - if (VENDING_WIRE_SHOOT_INV) - src.shoot_inventory = FALSE - visible_message(SPAN_NOTICE("\The [src] stops whirring.")) - -/obj/structure/machinery/vending/proc/pulse(wire) - switch(wire) - if(VENDING_WIRE_EXTEND) - src.extended_inventory = !src.extended_inventory - visible_message(SPAN_NOTICE("A weak yellow light turns [extended_inventory ? "on" : "off"] underneath \the [src].")) - if (VENDING_WIRE_SHOCK) - src.seconds_electrified = 30 - visible_message(SPAN_DANGER("Electric arcs shoot off from \the [src]!")) - if (VENDING_WIRE_SHOOT_INV) - src.shoot_inventory = !src.shoot_inventory - if(shoot_inventory) - visible_message(SPAN_WARNING("\The [src] begins whirring noisily.")) - else - visible_message(SPAN_NOTICE("\The [src] stops whirring.")) -*/ diff --git a/code/game/machinery/vending/vending.dm b/code/game/machinery/vending/vending.dm index a74dd923cbe7..8629ce2bb2be 100644 --- a/code/game/machinery/vending/vending.dm +++ b/code/game/machinery/vending/vending.dm @@ -208,23 +208,23 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending update_icon() return TRUE else if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src].")) + to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src.name].")) return FALSE else if(stat & BROKEN) - to_chat(user, SPAN_NOTICE("You start to unscrew the [src]'s broken panel.")) + to_chat(user, SPAN_NOTICE("You start to unscrew [src]'s broken panel.")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 3)) - to_chat(user, SPAN_WARNING("You stop unscrewing the [src]'s broken panel.")) + to_chat(user, SPAN_WARNING("You stop unscrewing [src]'s broken panel.")) return FALSE - to_chat(user, SPAN_NOTICE("You unscrew the [src]'s broken panel and remove it, exposing many broken wires.")) + to_chat(user, SPAN_NOTICE("You unscrew [src]'s broken panel and remove it, exposing many broken wires.")) stat &= ~BROKEN stat |= REPAIR_STEP_ONE return TRUE else if(stat & REPAIR_STEP_FOUR) - to_chat(user, SPAN_NOTICE("You start to fasten the [src]'s new panel.")) + to_chat(user, SPAN_NOTICE("You start to fasten [src]'s new panel.")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 3)) - to_chat(user, SPAN_WARNING("You stop fastening the [src]'s new panel.")) + to_chat(user, SPAN_WARNING("You stop fastening [src]'s new panel.")) return FALSE - to_chat(user, SPAN_NOTICE("You fasten the [src]'s new panel, fully repairing the vendor.")) + to_chat(user, SPAN_NOTICE("You fasten [src]'s new panel, fully repairing the vendor.")) stat &= ~REPAIR_STEP_FOUR stat |= FULLY_REPAIRED update_icon() @@ -235,17 +235,17 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending return FALSE else if(HAS_TRAIT(item, TRAIT_TOOL_WIRECUTTERS)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src].")) + to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src.name].")) return FALSE else if(stat == WORKING && panel_open) attack_hand(user) return else if(stat & REPAIR_STEP_ONE) - to_chat(user, SPAN_NOTICE("You start to remove the [src]'s broken wires.")) + to_chat(user, SPAN_NOTICE("You start to remove [src]'s broken wires.")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 3)) - to_chat(user, SPAN_WARNING("You stop removing the [src]'s broken wires.")) + to_chat(user, SPAN_WARNING("You stop removing [src]'s broken wires.")) return FALSE - to_chat(user, SPAN_NOTICE("You remove the [src]'s broken broken wires.")) + to_chat(user, SPAN_NOTICE("You remove [src]'s broken broken wires.")) stat &= ~REPAIR_STEP_ONE stat |= REPAIR_STEP_TWO return TRUE @@ -255,20 +255,20 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending return FALSE else if(istype(item, /obj/item/stack/cable_coil)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src].")) + to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src.name].")) return FALSE var/obj/item/stack/cable_coil/CC = item if(stat & REPAIR_STEP_TWO) if(CC.amount < 5) to_chat(user, SPAN_WARNING("You need more cable coil to replace the removed wires.")) - to_chat(user, SPAN_NOTICE("You start to replace the [src]'s removed wires.")) + to_chat(user, SPAN_NOTICE("You start to replace [src]'s removed wires.")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 3)) - to_chat(user, SPAN_WARNING("You stop replacing the [src]'s removed wires.")) + to_chat(user, SPAN_WARNING("You stop replacing [src]'s removed wires.")) return FALSE if(!CC || !CC.use(5)) to_chat(user, SPAN_WARNING("You need more cable coil to replace the removed wires.")) return FALSE - to_chat(user, SPAN_NOTICE("You remove the [src]'s broken broken wires.")) + to_chat(user, SPAN_NOTICE("You remove [src]'s broken broken wires.")) stat &= ~REPAIR_STEP_TWO stat |= REPAIR_STEP_THREE return TRUE @@ -278,18 +278,18 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending return else if(istype(item, /obj/item/stack/sheet/metal)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src].")) + to_chat(user, SPAN_WARNING("You do not understand how to repair the broken [src.name].")) return FALSE var/obj/item/stack/sheet/metal/M = item if(stat & REPAIR_STEP_THREE) - to_chat(user, SPAN_NOTICE("You start to construct a new panel for the [src].")) + to_chat(user, SPAN_NOTICE("You start to construct a new panel for [src].")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 3)) - to_chat(user, SPAN_WARNING("You stop constructing a new panel for the [src].")) + to_chat(user, SPAN_WARNING("You stop constructing a new panel for [src].")) return FALSE if(!M || !M.use(1)) to_chat(user, SPAN_WARNING("You a sheet of metal to construct a new panel.")) return FALSE - to_chat(user, SPAN_NOTICE("You construct a new panel for the [src].")) + to_chat(user, SPAN_NOTICE("You construct a new panel for [src].")) stat &= ~REPAIR_STEP_THREE stat |= REPAIR_STEP_FOUR return TRUE @@ -306,9 +306,9 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending switch (anchored) if (0) anchored = TRUE - user.visible_message("[user] tightens the bolts securing the [src] to the floor.", "You tighten the bolts securing the [src] to the floor.") + user.visible_message("[user] tightens the bolts securing [src] to the floor.", "You tighten the bolts securing [src] to the floor.") if (1) - user.visible_message("[user] unfastens the bolts securing the [src] to the floor.", "You unfasten the bolts securing the [src] to the floor.") + user.visible_message("[user] unfastens the bolts securing [src] to the floor.", "You unfasten the bolts securing [src] to the floor.") anchored = FALSE return else if(HAS_TRAIT(item, TRAIT_TOOL_MULTITOOL) || HAS_TRAIT(item, TRAIT_TOOL_WIRECUTTERS)) @@ -321,7 +321,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending return if(user.drop_inv_item_to_loc(item, src)) coin = item - to_chat(user, SPAN_NOTICE(" You insert the [item] into the [src]")) + to_chat(user, SPAN_NOTICE("You insert [item] into [src]")) tgui_interact(user) return else if(istype(item, /obj/item/spacecash)) @@ -343,7 +343,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending if (CH) // Only proceed if card contains proper account number. if(!CH.suspended) if(CH.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2) - if(vendor_account) + if(GLOB.vendor_account) var/attempt_pin = tgui_input_number(usr, "Enter pin code", "Vendor transaction") var/datum/money_account/D = attempt_account_access(card.associated_account_number, attempt_pin, 2) transfer_and_vend(D) @@ -364,18 +364,18 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending //transfer the money acc.money -= transaction_amount - vendor_account.money += transaction_amount + GLOB.vendor_account.money += transaction_amount //create entries in the two account transaction logs var/datum/transaction/T = new() - T.target_name = "[vendor_account.owner_name] (via [name])" + T.target_name = "[GLOB.vendor_account.owner_name] (via [name])" T.purpose = "Purchase of [currently_vending.product_name]" if(transaction_amount > 0) T.amount = "([transaction_amount])" else T.amount = "[transaction_amount]" T.source_terminal = name - T.date = current_date_string + T.date = GLOB.current_date_string T.time = worldtime2text() acc.transaction_log.Add(T) // @@ -384,9 +384,9 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending T.purpose = "Purchase of [currently_vending.product_name]" T.amount = "[transaction_amount]" T.source_terminal = name - T.date = current_date_string + T.date = GLOB.current_date_string T.time = worldtime2text() - vendor_account.transaction_log.Add(T) + GLOB.vendor_account.transaction_log.Add(T) // Vend the item vend(currently_vending, usr) @@ -398,36 +398,33 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending /obj/structure/machinery/vending/proc/GetProductIndex(datum/data/vending_product/product) var/list/plist - switch(product.category) - if(CAT_NORMAL) - plist=product_records - if(CAT_HIDDEN) - plist=hidden_records - if(CAT_COIN) - plist=coin_records - else - warning("UNKNOWN CATEGORY [product.category] IN TYPE [product.product_path] INSIDE [type]!") + if(product.category == CAT_NORMAL) + plist = product_records + else if(product.category == CAT_HIDDEN) + plist = hidden_records + else if(product.category == CAT_COIN) + plist = coin_records + else + warning("UNKNOWN CATEGORY [product.category] IN TYPE [product.product_path] INSIDE [type]!") return plist.Find(product) /obj/structure/machinery/vending/proc/GetProductByID(pid, category) - switch(category) - if(CAT_NORMAL) - return product_records[pid] - if(CAT_HIDDEN) - return hidden_records[pid] - if(CAT_COIN) - return coin_records[pid] - else - warning("UNKNOWN PRODUCT: PID: [pid], CAT: [category] INSIDE [type]!") - return null + if(category == CAT_NORMAL) + return product_records[pid] + else if(category == CAT_HIDDEN) + return hidden_records[pid] + else if(category == CAT_COIN) + return coin_records[pid] + else + warning("UNKNOWN PRODUCT: PID: [pid], CAT: [category] INSIDE [type]!") /obj/structure/machinery/vending/attack_hand(mob/user) if(is_tipped_over) if(user.action_busy) return - user.visible_message(SPAN_NOTICE("[user] begins to heave the [src] back into place!"), SPAN_NOTICE("You start heaving the [src] back into place...")) + user.visible_message(SPAN_NOTICE("[user] begins to heave [src] back into place!"), SPAN_NOTICE("You start heaving [src] back into place...")) if(do_after(user, 80, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY)) - user.visible_message(SPAN_NOTICE("[user] rights the [src]!"), SPAN_NOTICE("You right the [src]!")) + user.visible_message(SPAN_NOTICE("[user] rights [src]!"), SPAN_NOTICE("You right [src]!")) flip_back() return @@ -537,7 +534,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending return if(coin.string_attached) if(prob(50)) - to_chat(user, SPAN_NOTICE("You successfully pull the coin out before the [src] could swallow it.")) + to_chat(user, SPAN_NOTICE("You successfully pull the coin out before [src] could swallow it.")) user.put_in_hands(coin) else to_chat(user, SPAN_NOTICE("You weren't able to pull the coin out fast enough, the machine ate it, string and all.")) @@ -625,18 +622,18 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending //transfer the money user_account.money -= transaction_amount - vendor_account.money += transaction_amount + GLOB.vendor_account.money += transaction_amount //create entries in the two account transaction logs var/datum/transaction/new_transaction = new() - new_transaction.target_name = "[vendor_account.owner_name] (via [name])" + new_transaction.target_name = "[GLOB.vendor_account.owner_name] (via [name])" new_transaction.purpose = "Purchase of [currently_vending.product_name]" if(transaction_amount > 0) new_transaction.amount = "([transaction_amount])" else new_transaction.amount = "[transaction_amount]" new_transaction.source_terminal = name - new_transaction.date = current_date_string + new_transaction.date = GLOB.current_date_string new_transaction.time = worldtime2text() user_account.transaction_log.Add(new_transaction) @@ -645,9 +642,9 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending new_transaction.purpose = "Purchase of [currently_vending.product_name]" new_transaction.amount = "[transaction_amount]" new_transaction.source_terminal = name - new_transaction.date = current_date_string + new_transaction.date = GLOB.current_date_string new_transaction.time = worldtime2text() - vendor_account.transaction_log.Add(new_transaction) + GLOB.vendor_account.transaction_log.Add(new_transaction) return TRUE @@ -658,7 +655,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending //transfer the money cash.worth -= transaction_amount - vendor_account.money += transaction_amount + GLOB.vendor_account.money += transaction_amount //consume the cash if needed if(!cash.worth) @@ -670,9 +667,9 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending new_transaction.purpose = "Purchase of [currently_vending.product_name]" new_transaction.amount = "[transaction_amount]" new_transaction.source_terminal = name - new_transaction.date = current_date_string + new_transaction.date = GLOB.current_date_string new_transaction.time = worldtime2text() - vendor_account.transaction_log.Add(new_transaction) + GLOB.vendor_account.transaction_log.Add(new_transaction) return TRUE @@ -823,7 +820,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending if(inoperable()) return - if(user.stat || user.is_mob_restrained() || user.lying) + if(user.stat || user.is_mob_restrained()) return if(get_dist(user, src) > 1 || get_dist(src, A) > 1) @@ -885,8 +882,8 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending S.remove_from_storage(item_to_stock, user.loc) qdel(item_to_stock) - user.visible_message(SPAN_NOTICE("[user] stocks the [src] with \a [product.product_name]."), - SPAN_NOTICE("You stock the [src] with \a [product.product_name].")) + user.visible_message(SPAN_NOTICE("[user] stocks [src] with \a [product.product_name]."), + SPAN_NOTICE("You stock [src] with \a [product.product_name].")) product.amount++ return //We found our item, no reason to go on. @@ -970,7 +967,7 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending if (!throw_item) return 0 INVOKE_ASYNC(throw_item, /atom/movable/proc/throw_atom, target, 16, SPEED_AVERAGE, src) - visible_message(SPAN_WARNING("The [src] launches \the [throw_item] at [target]!")) + visible_message(SPAN_WARNING("[src] launches [throw_item] at [target]!")) playsound(src, "sound/machines/vending.ogg", 40, TRUE) return 1 @@ -991,14 +988,14 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending switch(wire) if(VENDING_WIRE_EXTEND) extended_inventory = TRUE - visible_message(SPAN_NOTICE("A weak yellow light turns off underneath the [src].")) + visible_message(SPAN_NOTICE("A weak yellow light turns off underneath [src].")) if(VENDING_WIRE_SHOCK) seconds_electrified = -1 - visible_message(SPAN_DANGER("Electric arcs shoot off from the [src]!")) + visible_message(SPAN_DANGER("Electric arcs shoot off from [src]!")) if (VENDING_WIRE_SHOOT_INV) if(!shoot_inventory) shoot_inventory = TRUE - visible_message(SPAN_WARNING("The [src] begins whirring noisily.")) + visible_message(SPAN_WARNING("[src] begins whirring noisily.")) /obj/structure/machinery/vending/proc/mend(wire) wires |= getWireFlag(wire) @@ -1006,24 +1003,24 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending switch(wire) if(VENDING_WIRE_EXTEND) extended_inventory = FALSE - visible_message(SPAN_NOTICE("A weak yellow light turns on underneath the [src].")) + visible_message(SPAN_NOTICE("A weak yellow light turns on underneath [src].")) if(VENDING_WIRE_SHOCK) seconds_electrified = 0 if (VENDING_WIRE_SHOOT_INV) shoot_inventory = FALSE - visible_message(SPAN_NOTICE("The [src] stops whirring.")) + visible_message(SPAN_NOTICE("[src] stops whirring.")) /obj/structure/machinery/vending/proc/pulse(wire) switch(wire) if(VENDING_WIRE_EXTEND) extended_inventory = !extended_inventory - visible_message(SPAN_NOTICE("A weak yellow light turns [extended_inventory ? "on" : "off"] underneath the [src].")) + visible_message(SPAN_NOTICE("A weak yellow light turns [extended_inventory ? "on" : "off"] underneath [src].")) if (VENDING_WIRE_SHOCK) seconds_electrified = 30 - visible_message(SPAN_DANGER("Electric arcs shoot off from the [src]!")) + visible_message(SPAN_DANGER("Electric arcs shoot off from [src]!")) if (VENDING_WIRE_SHOOT_INV) shoot_inventory = !shoot_inventory if(shoot_inventory) - visible_message(SPAN_WARNING("The [src] begins whirring noisily.")) + visible_message(SPAN_WARNING("[src] begins whirring noisily.")) else - visible_message(SPAN_NOTICE("The [src] stops whirring.")) + visible_message(SPAN_NOTICE("[src] stops whirring.")) diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index a61934324491..90947684bee1 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -252,6 +252,23 @@ ) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/storage/donut_box = 2) +/obj/structure/machinery/vending/security/riot + name = "\improper RiotTech" + desc = "A security riot equipment vendor." + hacking_safety = TRUE + wrenchable = FALSE + products = list( + /obj/item/handcuffs/zip = 40, + /obj/item/explosive/grenade/flashbang = 20, + /obj/item/explosive/grenade/custom/teargas = 40, + /obj/item/ammo_magazine/smg/m39/rubber = 40, + /obj/item/ammo_magazine/pistol/rubber = 40, + /obj/item/ammo_magazine/pistol/mod88/rubber = 40, + /obj/item/ammo_magazine/rifle/rubber = 40, + /obj/item/ammo_magazine/rifle/m4ra/rubber = 40, + /obj/item/clothing/head/helmet/marine/MP = 8, + ) + /obj/structure/machinery/vending/sea name = "\improper SeaTech" desc = "An equipment vendor designed to save lives" @@ -411,6 +428,13 @@ /obj/item/device/camera = 5, /obj/item/device/camera_film = 10, /obj/item/notepad = 5, + /obj/item/device/toner = 5, + /obj/item/paper/colonial_grunts = 15, + /obj/item/toy/dice/d20 = 10, + /obj/item/tool/pen = 10, + /obj/item/tool/pen/blue = 10, + /obj/item/tool/pen/red = 10, + /obj/item/tool/pen/fountain = 3, ) contraband = list(/obj/item/toy/sword = 2) @@ -431,5 +455,78 @@ /obj/item/toy/deck = 20, /obj/item/toy/deck/uno = 15, /obj/item/device/camera = 30, + /obj/item/device/toner = 15, + /obj/item/paper/colonial_grunts = 5, + /obj/item/toy/dice/d20 = 1, + /obj/item/tool/pen = 2, + /obj/item/tool/pen/blue = 2, + /obj/item/tool/pen/red = 2, + /obj/item/tool/pen/fountain = 30, ) product_type = VENDOR_PRODUCT_TYPE_RECREATIONAL + +//vendor of ingredients for kitchen +/obj/structure/machinery/vending/ingredients + name = "\improper Galley Auxiliary Storage Requisition System" + desc = "A vending machine meant to be use for cooks." + product_ads = "If your out of ingredients i am here for you;all my organic produce are fresh;don't let my potatoes go stale time for you to cook some fries" + icon_state = "snack" + hacking_safety = TRUE + products = list( + /obj/item/storage/fancy/egg_box = 12, + /obj/item/storage/box/fish = 12, + /obj/item/storage/box/meat = 12, + /obj/item/storage/box/milk = 12, + /obj/item/storage/box/soymilk = 12, + /obj/item/storage/box/enzyme = 12, + /obj/item/storage/box/flour = 12, + /obj/item/storage/box/sugar = 12, + /obj/item/storage/box/saltshaker = 12, + /obj/item/storage/box/peppermill = 12, + /obj/item/storage/box/mint = 12, + /obj/item/storage/box/apple = 12, + /obj/item/storage/box/banana = 12, + /obj/item/storage/box/chanterelle = 12, + /obj/item/storage/box/cherries = 12, + /obj/item/storage/box/chili = 12, + /obj/item/storage/box/cabbage = 12, + /obj/item/storage/box/carrot = 12, + /obj/item/storage/box/corn = 12, + /obj/item/storage/box/eggplant = 12, + /obj/item/storage/box/lemon = 12, + /obj/item/storage/box/lime = 12, + /obj/item/storage/box/orange = 12, + /obj/item/storage/box/potato = 12, + /obj/item/storage/box/tomato = 12, + /obj/item/storage/box/whitebeet = 12, + ) + + prices = list( + /obj/item/storage/fancy/egg_box = 1, + /obj/item/storage/box/fish = 1, + /obj/item/storage/box/meat = 1, + /obj/item/storage/box/milk =1, + /obj/item/storage/box/soymilk = 1, + /obj/item/storage/box/enzyme = 1, + /obj/item/storage/box/flour = 1, + /obj/item/storage/box/sugar = 1, + /obj/item/storage/box/saltshaker = 1, + /obj/item/storage/box/peppermill = 1, + /obj/item/storage/box/mint = 1, + /obj/item/storage/box/apple = 1, + /obj/item/storage/box/banana = 2, + /obj/item/storage/box/chanterelle = 2, + /obj/item/storage/box/cherries = 2, + /obj/item/storage/box/chili = 2, + /obj/item/storage/box/cabbage = 2, + /obj/item/storage/box/carrot = 2, + /obj/item/storage/box/corn = 2, + /obj/item/storage/box/eggplant = 2, + /obj/item/storage/box/lemon = 2, + /obj/item/storage/box/lime = 2, + /obj/item/storage/box/orange = 2, + /obj/item/storage/box/potato = 2, + /obj/item/storage/box/tomato = 2, + /obj/item/storage/box/whitebeet = 2, + ) + product_type = VENDOR_PRODUCT_TYPE_FOOD diff --git a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm index 830511ad4b19..d7d49a8ae044 100644 --- a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm @@ -1,9 +1,9 @@ //------------GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( - list("COMMANDING OFFICER'S PRIMARY (CHOOSE 1)", 0, null, null, null), - list("M46C pulse rifle", 0, /obj/effect/essentials_set/co/riflepreset, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("M56C Smartgun", 0, /obj/item/storage/box/m56c_system, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + list("COMMANDER'S PRIMARY (CHOOSE 1)", 0, null, null, null), + list("M46C Pulse Rifle", 0, /obj/effect/essentials_set/co/riflepreset, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY), + list("M56C Smartgun", 0, /obj/item/storage/box/m56c_system, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY), list("PRIMARY AMMUNITION", 0, null, null, null), list("M41A MK1 Magazine", 30, /obj/item/ammo_magazine/rifle/m41aMK1, null, VENDOR_ITEM_RECOMMENDED), @@ -28,11 +28,19 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( list("M41A Rubber Shot Magazine", 10, /obj/item/ammo_magazine/rifle/rubber, null, VENDOR_ITEM_REGULAR), list("Beanbag Slugs", 10, /obj/item/ammo_magazine/shotgun/beanbag, null, VENDOR_ITEM_REGULAR), + list("EXPLOSIVES", 0, null, null, null), + list("HEDP Grenade Pack", 15, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), + list("HEFA Grenade Pack", 15, /obj/item/storage/box/packet/hefa, null, VENDOR_ITEM_REGULAR), + list("WP Grenade Pack", 15, /obj/item/storage/box/packet/phosphorus, null, VENDOR_ITEM_REGULAR), + list("RAIL ATTACHMENTS", 0, null, null, null), list("Red-Dot Sight", 15, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR), list("Reflex Sight", 15, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR), list("S4 2x Telescopic Mini-Scope", 15, /obj/item/attachable/scope/mini, null, VENDOR_ITEM_REGULAR), + list("Helmet Visors", 0, null, null, null), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_RECOMMENDED), + list("UNDERBARREL ATTACHMENTS", 0, null, null, null), list("Laser Sight", 15, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR), list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), @@ -40,12 +48,13 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( list("Underbarrel Shotgun", 15, /obj/item/attachable/attached_gun/shotgun, null, VENDOR_ITEM_REGULAR), list("Underbarrel Extinguisher", 15, /obj/item/attachable/attached_gun/extinguisher, null, VENDOR_ITEM_REGULAR), list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Grenade Launcher", 5, /obj/item/attachable/attached_gun/grenade, null, VENDOR_ITEM_REGULAR), list("BARREL ATTACHMENTS", 0, null, null, null), - list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR), - )) + list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), + )) /obj/structure/machinery/cm_vending/gear/commanding_officer name = "\improper ColMarTech Commanding Officer Weapon Rack" @@ -63,9 +72,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom/cdrcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Satchel", 0, /obj/item/storage/backpack/satchel/lockable, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("COMMANDING OFFICER ESSENTIALS KIT (TAKE ALL)", 0, null, null, null), + list("Commanding Officer Essentials Kit", 0, /obj/effect/essentials_set/commanding_officer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("BAGS (CHOOSE 1)", 0, null, null, null), + list("Commanding Officer Backpack", 0, /obj/item/storage/backpack/mcommander, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), + list("Secure Satchel", 0, /obj/item/storage/backpack/satchel/lockable, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Commanding Officer's M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/CO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Commanding Officer's M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/CO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), @@ -84,8 +99,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), list("Security HUD Glasses", 0, /obj/item/clothing/glasses/sunglasses/sechud, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), - list("BELTS (TAKE ALL)", 0, null, null, null), + list("BELTS (CHOOSE 1)", 0, null, null, null), list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("Military Police Belt", 0, /obj/item/storage/belt/security/MP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Holster Toolrig", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -110,6 +130,15 @@ GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( /obj/structure/machinery/cm_vending/clothing/commanding_officer/get_listed_products(mob/user) return GLOB.cm_vending_clothing_commanding_officer +/obj/effect/essentials_set/commanding_officer + spawned_gear_list = list( + /obj/item/device/binoculars/range/designator, + /obj/item/map/current_map, + /obj/item/device/whistle, + /obj/item/weapon/gun/energy/taser, + /obj/item/device/megaphone, + ) + // This gets around the COs' weapon not spawning without incendiary mag. /obj/effect/essentials_set/co/riflepreset spawned_gear_list = list( diff --git a/code/game/machinery/vending/vendor_types/crew/sea.dm b/code/game/machinery/vending/vendor_types/crew/sea.dm index 0da9181beb97..44f530271037 100644 --- a/code/game/machinery/vending/vendor_types/crew/sea.dm +++ b/code/game/machinery/vending/vendor_types/crew/sea.dm @@ -54,8 +54,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_sea, list( list("COMBAT ARMOR (CHOOSE 1)", 0, null, null, null), list("M3-VL Pattern Ballistics Vest", 0, /obj/item/clothing/suit/storage/marine/light/vest, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), - list("M3 Pattern Padded Armor", 0, /obj/item/clothing/suit/storage/marine/padded, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padded, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("Bulletproof Vest", 0, /obj/item/clothing/suit/armor/bulletproof, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("USCM Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm index 88a3647777d4..9d9c519c285f 100644 --- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm +++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm @@ -268,6 +268,67 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( //------------ EXECUTIVE OFFFICER --------------- + +//------------WEAPON VENDOR--------------- +GLOBAL_LIST_INIT(cm_vending_gear_xo, list( + list("CAPTAIN'S PRIMARY (CHOOSE 1)", 0, null, null, null), + list("M41A MK1 Pulse Rifle", 0, /obj/item/storage/box/guncase/m41aMK1AP, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), + list("MK221 Tactical Shotgun", 0, /obj/effect/essentials_set/xo/shotgunpreset, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), + + list("PRIMARY AMMUNITION", 0, null, null, null), + list("M41A MK1 Magazine", 40, /obj/item/ammo_magazine/rifle/m41aMK1, null, VENDOR_ITEM_RECOMMENDED), + list("M41A MK1 AP Magazine", 60, /obj/item/ammo_magazine/rifle/m41aMK1/ap, null, VENDOR_ITEM_RECOMMENDED), + list("Buckshot Shells", 20, /obj/item/ammo_magazine/shotgun/buckshot, null, VENDOR_ITEM_REGULAR), + list("Shotgun Slugs", 20, /obj/item/ammo_magazine/shotgun/slugs, null, VENDOR_ITEM_REGULAR), + list("Flechette Shells", 20, /obj/item/ammo_magazine/shotgun/flechette, null, VENDOR_ITEM_REGULAR), + + list("EXPLOSIVES", 0, null, null, null), + list("HEDP Grenade Pack", 15, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), + list("HEFA Grenade Pack", 15, /obj/item/storage/box/packet/hefa, null, VENDOR_ITEM_REGULAR), + list("WP Grenade Pack", 15, /obj/item/storage/box/packet/phosphorus, null, VENDOR_ITEM_REGULAR), + + list("RAIL ATTACHMENTS", 0, null, null, null), + list("Red-Dot Sight", 15, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR), + list("Reflex Sight", 15, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR), + list("S4 2x Telescopic Mini-Scope", 15, /obj/item/attachable/scope/mini, null, VENDOR_ITEM_REGULAR), + + list("Helmet Visors", 0, null, null, null), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_RECOMMENDED), + + list("UNDERBARREL ATTACHMENTS", 0, null, null, null), + list("Laser Sight", 15, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR), + list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), + list("Vertical Grip", 15, /obj/item/attachable/verticalgrip, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Shotgun", 15, /obj/item/attachable/attached_gun/shotgun, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Extinguisher", 15, /obj/item/attachable/attached_gun/extinguisher, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Grenade Launcher", 5, /obj/item/attachable/attached_gun/grenade, null, VENDOR_ITEM_REGULAR), + + list("BARREL ATTACHMENTS", 0, null, null, null), + list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), + list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR), + list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), + )) + +/obj/effect/essentials_set/xo/shotgunpreset + spawned_gear_list = list( + /obj/item/weapon/gun/shotgun/combat, + /obj/item/ammo_magazine/shotgun/buckshot, + /obj/item/ammo_magazine/shotgun/slugs, + ) + +/obj/structure/machinery/cm_vending/gear/executive_officer + name = "\improper ColMarTech Executive Officer Weapon Rack" + desc = "An automated weapons rack for the Executive Officer. It features a decent selection of weaponry meant only for the second in command of a ship." + req_access = list(ACCESS_MARINE_SENIOR) + vendor_role = list(JOB_XO) + icon_state = "guns" + use_snowflake_points = TRUE + +/obj/structure/machinery/cm_vending/gear/executive_officer/get_listed_products(mob/user) + return GLOB.cm_vending_gear_xo + +//------------UNIFORM/GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), @@ -284,7 +345,14 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), - list("Ceremonial Sword", 0, /obj/item/storage/large_holster/ceremonial_sword/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), + + list("BELTS (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("Military Police Belt", 0, /obj/item/storage/belt/security/MP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Holster Toolrig", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), @@ -313,7 +381,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), @@ -337,10 +404,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_auxiliary_officer, list( list("Insulated Gloves", 0, /obj/item/clothing/gloves/yellow, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Officer Uniform", 0, /obj/item/clothing/under/marine/officer/bridge, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/qm, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Satchel", 0, /obj/item/storage/backpack/marine/satchel/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), list("Patrol Cap", 0, /obj/item/clothing/head/cmcap, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), list("Auxiliary Support Officer Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service/aso, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("BAG (CHOOSE 1)", 0, null, null, null), + list("USCM Technician Chestrig", 0, /obj/item/storage/backpack/marine/satchel/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), + list("Leather Satchel", 0, /obj/item/storage/backpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), @@ -352,16 +422,19 @@ GLOBAL_LIST_INIT(cm_vending_clothing_auxiliary_officer, list( list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Tools Pouch (Empty)", 0, /obj/item/storage/pouch/tools, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), + list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), )) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm index 85a8a58d162e..50b83ccdc54f 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm @@ -13,13 +13,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Service Uniform", 0, /obj/item/clothing/under/marine/officer/bridge, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Operations Uniform", 0, /obj/item/clothing/under/marine/officer/boiler, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), list("JACKET (CHOOSE 1)", 0, null, null, null), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), @@ -33,66 +33,21 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), - list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("BELT (CHOOSE 1)", 0, null, null, null), - list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - - list("POUCHES (CHOOSE 2)", 0, null, null, null), - list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), - list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), - list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - - list("MASK (CHOOSE 1)", 0, null, null, null), - list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("OTHER SUPPLIES", 0, null, null, null), list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), - list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), - list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", 2, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) )) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm new file mode 100644 index 000000000000..ac7b22b4e0a0 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm @@ -0,0 +1,83 @@ +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory + name = "\improper ColMarTech Staff Officer Armory Equipment Rack" + desc = "An automated combat equipment vendor for Staff Officers." + req_access = list(ACCESS_MARINE_COMMAND) + icon_state = "mar_rack" + vendor_role = list(JOB_SO) + +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_staff_officer_armory + +//------------GEAR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_COMBAT_HELMET, VENDOR_ITEM_MANDATORY), + list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), + list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("Aviator Shades", 0, /obj/item/clothing/glasses/sunglasses/aviator, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + + list("SPECIALISATION KIT (CHOOSE 1)", 0, null, null, null), + list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + + list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + + list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), + list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), + list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + + list("MASK (CHOOSE 1)", 0, null, null, null), + list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + + list("OTHER SUPPLIES", 0, null, null, null), + list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), + list("Magnetic Harness", 12, /obj/item/attachable/magnetic_harness, null, VENDOR_ITEM_REGULAR), + list("Radio Telephone Pack", 15, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_RECOMMENDED), + list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), + list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), + list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), + list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), + list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) + )) diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 941b73edf5d2..2395d572bad7 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -101,7 +101,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Surgical Webbing Vest", 0, /obj/item/clothing/accessory/storage/surg_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Surgical Webbing Vest (Blue)", 0, /obj/item/clothing/accessory/storage/surg_vest/blue, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Tool Webbing", 0, /obj/item/clothing/accessory/storage/black_vest/tool_webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Surgical Drop Pouch", 0, /obj/item/clothing/accessory/storage/surg_vest/drop_green, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Surgical Drop Pouch (Blue)", 0, /obj/item/clothing/accessory/storage/surg_vest/drop_blue, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Surgical Drop Pouch (Black)", 0, /obj/item/clothing/accessory/storage/surg_vest/drop_black, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Tool Webbing", 0, /obj/item/clothing/accessory/storage/tool_webbing/equipped, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), list("SHOES (CHOOSE 1)", 0, null, null, null), @@ -185,9 +188,11 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR), list("USCM Service Uniform", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), list("USCM Flightsuit", 12, /obj/item/clothing/under/rank/synthetic/flight, null, VENDOR_ITEM_REGULAR), - list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer, null, VENDOR_ITEM_REGULAR), + list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer/standard, null, VENDOR_ITEM_REGULAR), + list("USCM Engineers Uniform (Darker)", 12, /obj/item/clothing/under/marine/engineer/darker, null, VENDOR_ITEM_REGULAR), list("USCM Engineering Officers Uniform", 12, /obj/item/clothing/under/marine/officer/engi, null, VENDOR_ITEM_REGULAR), - list("USCM Military Police Uniform", 12, /obj/item/clothing/under/marine/mp, null, VENDOR_ITEM_REGULAR), + list("USCM Military Police Uniform", 12, /obj/item/clothing/under/marine/mp/standard, null, VENDOR_ITEM_REGULAR), + list("USCM Military Police Uniform (Darker)", 12, /obj/item/clothing/under/marine/mp/darker, null, VENDOR_ITEM_REGULAR), list("NON-STANDARD UNIFORMS", 0, null, null, null), list("White T-Shirt and Brown Jeans", 12, /obj/item/clothing/under/tshirt/w_br, null, VENDOR_ITEM_REGULAR), @@ -232,6 +237,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), + list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/blue, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/purple, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 12, /obj/item/clothing/head/surgery/green, null, VENDOR_ITEM_REGULAR), @@ -274,7 +281,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Labcoat, Researcher", 12, /obj/item/clothing/suit/storage/labcoat/researcher, null, VENDOR_ITEM_REGULAR), list("Quartermaster Jacket", 12, /obj/item/clothing/suit/storage/RO, null, VENDOR_ITEM_REGULAR), list("Bio Suit", 12, /obj/item/clothing/suit/storage/synthbio, null, VENDOR_ITEM_REGULAR), - list("USCM Poncho", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Mission-Specific Camo)", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Green)", 12, /obj/item/clothing/accessory/poncho/green, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Brown)", 12, /obj/item/clothing/accessory/poncho/brown, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Black)", 12, /obj/item/clothing/accessory/poncho/black, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Blue)", 12, /obj/item/clothing/accessory/poncho/blue, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Purple)", 12, /obj/item/clothing/accessory/poncho/purple, null, VENDOR_ITEM_REGULAR), + list("BACKPACK", 0, null, null, null), list("Backpack, Industrial", 12, /obj/item/storage/backpack/industrial, null, VENDOR_ITEM_REGULAR), @@ -322,28 +335,30 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( req_access = list(ACCESS_MARINE_SYNTH) vendor_role = list(JOB_SYNTH) -/obj/structure/machinery/cm_vending/own_points/experimental_tools/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/coin/marine/synth)) - if(user.drop_inv_item_to_loc(W, src)) +/obj/structure/machinery/cm_vending/own_points/experimental_tools/redeem_token(obj/item/coin/marine/token, mob/user) + if(token.token_type == VEND_TOKEN_SYNTH) + if(user.drop_inv_item_to_loc(token, src)) available_points = 30 available_points_to_display = available_points - to_chat(user, SPAN_NOTICE("You insert \the [W] into \the [src].")) - return + to_chat(user, SPAN_NOTICE("You insert \the [token] into \the [src].")) + return TRUE return ..() /obj/structure/machinery/cm_vending/own_points/experimental_tools/get_listed_products(mob/user) - return list( - list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), - list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), - list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), - list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), - list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), - list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), - list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), - list("Maintenance Jack", 15, /obj/item/maintenance_jack, null, VENDOR_ITEM_REGULAR), - list("Portable Dialysis Machine", 15, /obj/item/tool/portadialysis, null, VENDOR_ITEM_REGULAR), - list("Telescopic Baton", 15, /obj/item/weapon/telebaton, null, VENDOR_ITEM_REGULAR), - ) + return GLOB.cm_vending_synth_tools + +GLOBAL_LIST_INIT(cm_vending_synth_tools, list( + list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), + list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), + list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), + list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), + list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), + list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), + list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), + list("Maintenance Jack", 15, /obj/item/maintenance_jack, null, VENDOR_ITEM_REGULAR), + list("Portable Dialysis Machine", 15, /obj/item/tool/portadialysis, null, VENDOR_ITEM_REGULAR), + list("Telescopic Baton", 15, /obj/item/weapon/telebaton, null, VENDOR_ITEM_REGULAR), +)) //------------EXPERIMENTAL TOOL KITS--------------- /obj/effect/essentials_set/cnailgun diff --git a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm index 891a2a907b39..6877c2b4b5b3 100644 --- a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm +++ b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm @@ -26,12 +26,12 @@ /obj/structure/machinery/cm_vending/gear/vehicle_crew/Initialize(mapload, ...) . = ..() RegisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED, PROC_REF(populate_products)) - if(!VehicleGearConsole) - VehicleGearConsole = src + if(!GLOB.VehicleGearConsole) + GLOB.VehicleGearConsole = src /obj/structure/machinery/cm_vending/gear/vehicle_crew/Destroy() UnregisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED) - VehicleGearConsole = null + GLOB.VehicleGearConsole = null return ..() /obj/structure/machinery/cm_vending/gear/vehicle_crew/get_appropriate_vend_turf(mob/living/carbon/human/H) @@ -55,8 +55,10 @@ SIGNAL_HANDLER UnregisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED) - selected_vehicle = "APC" - available_categories &= ~(VEHICLE_ARMOR_AVAILABLE|VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section + if(!selected_vehicle) + selected_vehicle = "APC" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC + if(selected_vehicle == "APC") + available_categories &= ~(VEHICLE_ARMOR_AVAILABLE|VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section /obj/structure/machinery/cm_vending/gear/vehicle_crew/get_listed_products(mob/user) var/list/display_list = list() @@ -85,9 +87,9 @@ . = list() . += ui_static_data(user) - if(supply_controller.tank_points) //we steal points from supply_controller, meh-he-he. Solely to be able to modify amount of points in vendor if needed by just changing one var. - available_points_to_display = supply_controller.tank_points - supply_controller.tank_points = 0 + if(GLOB.supply_controller.tank_points) //we steal points from GLOB.supply_controller, meh-he-he. Solely to be able to modify amount of points in vendor if needed by just changing one var. + available_points_to_display = GLOB.supply_controller.tank_points + GLOB.supply_controller.tank_points = 0 .["current_m_points"] = available_points_to_display var/list/ui_listed_products = get_listed_products(user) diff --git a/code/game/machinery/vending/vendor_types/dress.dm b/code/game/machinery/vending/vendor_types/dress.dm index aff221260d03..d49361d912a0 100644 --- a/code/game/machinery/vending/vendor_types/dress.dm +++ b/code/game/machinery/vending/vendor_types/dress.dm @@ -6,11 +6,11 @@ /obj/structure/machinery/cm_vending/clothing/dress/proc/get_listed_products_for_role(list/role_specific_uniforms) . = list() - for(var/category_type in uniform_categories) + for(var/category_type in GLOB.uniform_categories) var/display_category = FALSE - if(!uniform_categories[category_type]) + if(!GLOB.uniform_categories[category_type]) continue - for(var/category in uniform_categories[category_type]) + for(var/category in GLOB.uniform_categories[category_type]) if((category in role_specific_uniforms) && role_specific_uniforms[category]) display_category = TRUE break @@ -19,7 +19,7 @@ . += list( list(category_type, 0, null, null, null) ) - for(var/object_type in uniform_categories[category_type]) + for(var/object_type in GLOB.uniform_categories[category_type]) if(!role_specific_uniforms[object_type]) continue for(var/uniform_path in role_specific_uniforms[object_type]) @@ -52,11 +52,11 @@ if(istype(id_card)) role_specific_uniforms = id_card.uniform_sets vended_items = id_card.vended_items - for(var/category_type in uniform_categories) + for(var/category_type in GLOB.uniform_categories) var/display_category = FALSE - if(!uniform_categories[category_type]) + if(!GLOB.uniform_categories[category_type]) continue - for(var/category in uniform_categories[category_type]) + for(var/category in GLOB.uniform_categories[category_type]) if((category in role_specific_uniforms) && role_specific_uniforms[category]) display_category = TRUE break @@ -65,7 +65,7 @@ display_list += list( list(category_type, 0, null, null, null) ) - for(var/object_type in uniform_categories[category_type]) + for(var/object_type in GLOB.uniform_categories[category_type]) if(!role_specific_uniforms[object_type]) continue for(var/uniform_path in role_specific_uniforms[object_type]) @@ -134,10 +134,10 @@ to_chat(H, SPAN_WARNING("This machine isn't for you.")) return - for(var/category in uniform_categories) // Very Hacky fix + for(var/category in GLOB.uniform_categories) // Very Hacky fix if(!exploiting) break - for(var/specific_category in uniform_categories[category]) + for(var/specific_category in GLOB.uniform_categories[category]) if(!exploiting) break if(!(specific_category in id_card.uniform_sets)) diff --git a/code/game/machinery/vending/vendor_types/food.dm b/code/game/machinery/vending/vendor_types/food.dm index 51749ab2a010..62ed5124727e 100644 --- a/code/game/machinery/vending/vendor_types/food.dm +++ b/code/game/machinery/vending/vendor_types/food.dm @@ -25,6 +25,27 @@ list("W-Y Flask", 5, /obj/item/reagent_container/food/drinks/flask/weylandyutani, VENDOR_ITEM_REGULAR) ) +/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial + hackable = FALSE + wrenchable = FALSE + req_access = list(ACCESS_TUTORIAL_LOCKED) + +/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial/populate_product_list(scale) + listed_products = list( + list("PREPARED MEALS", -1, null, null), + list("USCM Prepared Meal (Chicken)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal5, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Cornbread)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal1, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pasta)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal3, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pizza)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal4, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Pork)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal2, VENDOR_ITEM_REGULAR), + list("USCM Prepared Meal (Tofu)", 0, /obj/item/reagent_container/food/snacks/mre_pack/meal6, VENDOR_ITEM_REGULAR), + list("USCM Protein Bar", 1, /obj/item/reagent_container/food/snacks/protein_pack, VENDOR_ITEM_RECOMMENDED), + list("FLASKS", -1, null, null), + list("Canteen", 0, /obj/item/reagent_container/food/drinks/flask/canteen, VENDOR_ITEM_REGULAR), + list("Metal Flask", 0, /obj/item/reagent_container/food/drinks/flask, VENDOR_ITEM_REGULAR), + list("USCM Flask", 0, /obj/item/reagent_container/food/drinks/flask/marine, VENDOR_ITEM_REGULAR), + list("W-Y Flask", 0, /obj/item/reagent_container/food/drinks/flask/weylandyutani, VENDOR_ITEM_REGULAR) + ) //------------BOOZE-O-MAT VENDOR--------------- /obj/structure/machinery/cm_vending/sorted/boozeomat @@ -38,8 +59,8 @@ unslashable = FALSE wrenchable = TRUE -/obj/structure/machinery/cm_vending/sorted/boozeomat/get_listed_products(mob/user) - return list( +/obj/structure/machinery/cm_vending/sorted/boozeomat/populate_product_list(scale) + listed_products = list( list("ALCOHOL", -1, null, null), list("Ale", 6, /obj/item/reagent_container/food/drinks/cans/ale, VENDOR_ITEM_REGULAR), list("Beer", 6, /obj/item/reagent_container/food/drinks/cans/beer, VENDOR_ITEM_REGULAR), @@ -97,8 +118,8 @@ unslashable = FALSE wrenchable = TRUE -/obj/structure/machinery/cm_vending/sorted/boozeomat/chess/get_listed_products(mob/user) - return list( +/obj/structure/machinery/cm_vending/sorted/boozeomat/chess/populate_product_list(scale) + listed_products = list( list("White Pieces", -1, null, null), list("Pawn", 2, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_pawn, VENDOR_ITEM_REGULAR), list("Bishop", 2, /obj/item/reagent_container/food/drinks/bottle/vodka/chess/w_bishop, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm index 46394bea8c2c..6446d17e2db7 100644 --- a/code/game/machinery/vending/vendor_types/intelligence_officer.dm +++ b/code/game/machinery/vending/vendor_types/intelligence_officer.dm @@ -4,26 +4,11 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("INTELLIGENCE SET (MANDATORY)", 0, null, null, null), list("Essential Intelligence Set", 0, /obj/effect/essentials_set/intelligence_officer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("SUPPLIES", 0, null, null, null), + list("ENGINEERING SUPPLIES", 0, null, null, null), list("Power Control Module", 5, /obj/item/circuitboard/apc, null, VENDOR_ITEM_REGULAR), - list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), - list("M2 Night Vision Goggles", 25, /obj/item/prop/helmetgarb/helmet_nvg, null, VENDOR_ITEM_RECOMMENDED), - list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), - list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, null, VENDOR_ITEM_REGULAR), - list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), - list("Fulton Recovery Device", 10, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Plastic Explosive", 10, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), - list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), - list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR), - list("POUCHES", 0, null, null, null), - list("Large Magazine Pouch", 10, /obj/item/storage/pouch/magazine/large, null, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", 10, /obj/item/storage/pouch/shotgun/large, null, VENDOR_ITEM_REGULAR), - list("Autoinjector Pouch (Full)", 15, /obj/item/storage/pouch/autoinjector/full, null, VENDOR_ITEM_RECOMMENDED), - list("Machete Pouch (Full)", 10, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), - list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), @@ -35,7 +20,32 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), - list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR) + list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + + list("POUCHES", 0, null, null, null), + list("Large Magazine Pouch", 10, /obj/item/storage/pouch/magazine/large, null, VENDOR_ITEM_REGULAR), + list("Large Shotgun Shell Pouch", 10, /obj/item/storage/pouch/shotgun/large, null, VENDOR_ITEM_REGULAR), + list("Autoinjector Pouch (Full)", 15, /obj/item/storage/pouch/autoinjector/full, null, VENDOR_ITEM_RECOMMENDED), + list("Machete Pouch (Full)", 10, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), + + list("UTILITIES", 0, null, null, null), + list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), + list("Fulton Device Stack", 10, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), + list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), + + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + + list("HELMET OPTICS", 0, null, null, null), + list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), + list("Night Vision Optic", 25, /obj/item/device/helmet_visor/night_vision, null, VENDOR_ITEM_RECOMMENDED), + + list("RADIO KEYS", 0, null, null, null), + list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, null, VENDOR_ITEM_REGULAR), )) /obj/structure/machinery/cm_vending/gear/intelligence_officer @@ -57,11 +67,12 @@ GLOBAL_LIST_INIT(cm_vending_clothing_intelligence_officer, list( list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/medium/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Expedition Pack", 0, /obj/item/storage/backpack/marine/satchel/intel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Expedition Chestrig", 0, /obj/item/storage/backpack/marine/satchel/intel/chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto/io, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("HELMET (CHOOSE 1)", 0, null, null, null), diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 07284e7f8e71..24f58c8f6ae3 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -8,7 +8,7 @@ icon_state = "req_guns" req_access = list(ACCESS_MARINE_CARGO) vendor_theme = VENDOR_THEME_USCM - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES | VEND_STOCK_DYNAMIC /obj/structure/machinery/cm_vending/sorted/cargo_guns/vend_fail() return @@ -35,7 +35,7 @@ list("SU-6 Smart Pistol", round(scale * 3), /obj/item/storage/box/guncase/smartpistol, VENDOR_ITEM_REGULAR), list("MOU-53 Shotgun", round(scale * 2), /obj/item/storage/box/guncase/mou53, VENDOR_ITEM_REGULAR), list("XM88 Heavy Rifle", round(scale * 3), /obj/item/storage/box/guncase/xm88, VENDOR_ITEM_REGULAR), - list("M41AE2 Heavy Pulse Rifle", round(scale * 2.5), /obj/item/storage/box/guncase/lmg, VENDOR_ITEM_REGULAR), + list("M41AE2 Heavy Pulse Rifle", 2.5, /obj/item/storage/box/guncase/lmg, VENDOR_ITEM_REGULAR), list("M41A Pulse Rifle MK1", round(scale * 3), /obj/item/storage/box/guncase/m41aMK1, VENDOR_ITEM_REGULAR), list("M56D Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m56d, VENDOR_ITEM_REGULAR), list("M2C Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m2c, VENDOR_ITEM_REGULAR), @@ -50,7 +50,7 @@ list("M40 HPDP White Phosphorus Smoke Grenade", round(scale * 4), /obj/item/explosive/grenade/phosphorus, VENDOR_ITEM_REGULAR), list("M40 HSDP Smoke Grenade", round(scale * 5), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), list("M74 AGM-Frag Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst, VENDOR_ITEM_REGULAR), - list("M74 AGM-Icendiary Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/incendiary/airburst, VENDOR_ITEM_REGULAR), + list("M74 AGM-Incendiary Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/incendiary/airburst, VENDOR_ITEM_REGULAR), list("M74 AGM-Smoke Airburst Grenade", round(scale * 4), /obj/item/explosive/grenade/smokebomb/airburst, VENDOR_ITEM_REGULAR), list("M74 AGM-Star Shell", round(scale * 2), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), list("M74 AGM-Hornet Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), @@ -103,7 +103,7 @@ list("Flare Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), list("Document Pouch", round(scale * 2), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), list("Sling Pouch", round(scale * 2), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), - list("Machete Pouch (Full)", round(scale * 0.5), /obj/item/storage/pouch/machete/full, VENDOR_ITEM_REGULAR), + list("Machete Pouch (Full)", 1, /obj/item/storage/pouch/machete/full, VENDOR_ITEM_REGULAR), list("Bayonet Pouch", round(scale * 2), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), list("Medium General Pouch", round(scale * 2), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), list("Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), @@ -135,7 +135,7 @@ list("Sentry Gun Network Laptop", 4, /obj/item/device/sentry_computer, VENDOR_ITEM_REGULAR), list("JTAC Pamphlet", round(scale * 1), /obj/item/pamphlet/skill/jtac, VENDOR_ITEM_REGULAR), list("Engineering Pamphlet", round(scale * 1), /obj/item/pamphlet/skill/engineer, VENDOR_ITEM_REGULAR), - list("Powerloader Certification", round(scale * 0.1) + 1, /obj/item/pamphlet/skill/powerloader, VENDOR_ITEM_REGULAR), + list("Powerloader Certification", 0.75, /obj/item/pamphlet/skill/powerloader, VENDOR_ITEM_REGULAR), list("Spare PDT/L Battle Buddy Kit", round(scale * 4), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), list("W-Y brand rechargeable mini-battery", round(scale * 3), /obj/item/cell/crap, VENDOR_ITEM_REGULAR) ) @@ -174,25 +174,11 @@ //Special cargo-specific vendor with vending offsets /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES //We want to vend to turf not hand, since we are in requisitions - -/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/get_appropriate_vend_turf(mob/living/carbon/human/H) - var/turf/turf_to_vent_to - if(vend_x_offset != 0 || vend_y_offset != 0) //this will allow to avoid code below that suits only Almayer. - turf_to_vent_to = locate(x + vend_x_offset, y + vend_y_offset, z) - else - turf_to_vent_to = get_turf(get_step(src, NORTH)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = get_turf(get_step(src, SOUTH)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = H.loc - return turf_to_vent_to - -/obj/structure/machinery/cm_vending/sorted/cargo_guns/blend + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES | VEND_STOCK_DYNAMIC //We want to vend to turf not hand, since we are in requisitions + vend_dir = WEST + vend_dir_whitelist = list(NORTH, SOUTH) + +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend icon_state = "req_guns_wall" tiles_with = list( /obj/structure/window/framed/almayer, @@ -208,7 +194,9 @@ icon_state = "req_ammo" req_access = list(ACCESS_MARINE_CARGO) vendor_theme = VENDOR_THEME_USCM - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES | VEND_STOCK_DYNAMIC + vend_dir = WEST + vend_dir_whitelist = list(SOUTHWEST, NORTHWEST) /obj/structure/machinery/cm_vending/sorted/cargo_ammo/vend_fail() return @@ -230,29 +218,29 @@ list("ARMOR-PIERCING AMMUNITION", -1, null, null), list("88 Mod 4 AP Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M4RA AP Magazine (10x24mm)", round(scale * 15.7), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", round(scale * 11.9), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), - list("M41A MK2 AP Magazine (10x24mm)", round(scale * 10.5), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), + list("M4RA AP Magazine (10x24mm)", round(scale * 16), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), + list("M39 AP Magazine (10x20mm)", round(scale * 12), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), + list("M41A MK2 AP Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), list("M4A3 AP Magazine (9mm)", round(scale * 2), /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR), list("EXTENDED AMMUNITION", -1, null, null), - list("M39 Extended Magazine (10x20mm)", round(scale * 9.5) + 3, /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), - list("M41A MK2 Extended Magazine (10x24mm)", round(scale * 8.1), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), + list("M39 Extended Magazine (10x20mm)", round(scale * 10), /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), + list("M41A MK2 Extended Magazine (10x24mm)", round(scale * 8), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), list("SPECIAL AMMUNITION", -1, null, null), - list("M56 Battery", 4, /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), + list("M56 DV9 Battery", 4, /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), list("M56 Smartgun Drum", 4, /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), - list("M44 Heavy Speed Loader (.44)", round(scale * 10.5), /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), - list("M44 Marksman Speed Loader (.44)", round(scale * 5.7), /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), + list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), + list("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), list("M4A3 HP Magazine (9mm)", round(scale * 2), /obj/item/ammo_magazine/pistol/hp, VENDOR_ITEM_REGULAR), list("M41AE2 Holo Target Rounds (10x24mm)", round(scale * 2), /obj/item/ammo_magazine/rifle/lmg/holo_target, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARM AMMUNITION", -1, null, null), - list("VP78 Magazine", round(scale * 11.2), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), - list("SU-6 Smartpistol Magazine (.45)", round(scale * 12,8), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 11, /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), + list("SU-6 Smartpistol Magazine (.45)", 13, /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), list("M240 Incinerator Tank", round(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), list("M41AE2 Box Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/lmg, VENDOR_ITEM_REGULAR), - list("M41A MK1 Magazine (10x24mm)", round(scale * 4.5), /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), + list("M41A MK1 Magazine (10x24mm)", 4.5, /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), list("M41A MK1 AP Magazine (10x24mm)", round(scale * 2), /obj/item/ammo_magazine/rifle/m41aMK1/ap, VENDOR_ITEM_REGULAR), list("M56D Drum Magazine", round(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), @@ -296,7 +284,7 @@ updateUsrDialog() return //We found our item, no reason to go on. -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/blend +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend icon_state = "req_ammo_wall" tiles_with = list( /obj/structure/window/framed/almayer, @@ -305,23 +293,7 @@ //Special cargo-specific vendor with vending offsets /obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES //We want to vend to turf not hand, since we are in requisitions - -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/get_appropriate_vend_turf(mob/living/carbon/human/H) - var/turf/turf_to_vent_to - if(vend_x_offset != 0 || vend_y_offset != 0) //this will allow to avoid code below that suits only Almayer. - turf_to_vent_to = locate(x + vend_x_offset, y + vend_y_offset, z) - else - turf_to_vent_to = get_turf(get_step(src, NORTHWEST)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = get_turf(get_step(src, SOUTHWEST)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = H.loc - return turf_to_vent_to + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_LOAD_AMMO_BOXES | VEND_STOCK_DYNAMIC //We want to vend to turf not hand, since we are in requisitions //------------ATTACHMENTS VENDOR--------------- @@ -331,6 +303,9 @@ req_access = list(ACCESS_MARINE_CARGO) vendor_theme = VENDOR_THEME_USCM icon_state = "req_attach" + vend_dir = WEST + vend_dir_whitelist = list(SOUTHEAST, NORTHEAST) + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_STOCK_DYNAMIC //We want to vend to turf not hand, since we are in requisitions /obj/structure/machinery/cm_vending/sorted/attachments/vend_fail() return @@ -341,60 +316,44 @@ /obj/structure/machinery/cm_vending/sorted/attachments/populate_product_list(scale) listed_products = list( list("BARREL", -1, null, null), - list("Extended Barrel", round(scale * 6.5), /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR), - list("M5 Bayonet", round(scale * 10.5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), - list("Recoil Compensator", round(scale * 6.5), /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), - list("Suppressor", round(scale * 6.5), /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), + list("Extended Barrel", 6.5, /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR), + list("M5 Bayonet", 10.5, /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), + list("Recoil Compensator", 6.5, /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), + list("Suppressor", 6.5, /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), list("RAIL", -1, null, null), - list("B8 Smart-Scope", round(scale * 3.5), /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), - list("Magnetic Harness", round(scale * 8.5), /obj/item/attachable/magnetic_harness, VENDOR_ITEM_REGULAR), - list("Rail Flashlight", round(scale * 10.5), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), - list("S4 2x Telescopic Mini-Scope", round(scale * 4.5), /obj/item/attachable/scope/mini, VENDOR_ITEM_REGULAR), - list("S5 Red-Dot Sight", round(scale * 9.5), /obj/item/attachable/reddot, VENDOR_ITEM_REGULAR), - list("S6 Reflex Sight", round(scale * 9.5), /obj/item/attachable/reflex, VENDOR_ITEM_REGULAR), - list("S8 4x Telescopic Scope", round(scale * 4.5), /obj/item/attachable/scope, VENDOR_ITEM_REGULAR), + list("B8 Smart-Scope", 3.5, /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), + list("Magnetic Harness", 8.5, /obj/item/attachable/magnetic_harness, VENDOR_ITEM_REGULAR), + list("Rail Flashlight", 10.5, /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), + list("S4 2x Telescopic Mini-Scope", 4.5, /obj/item/attachable/scope/mini, VENDOR_ITEM_REGULAR), + list("S5 Red-Dot Sight", 9.5, /obj/item/attachable/reddot, VENDOR_ITEM_REGULAR), + list("S6 Reflex Sight", 9.5, /obj/item/attachable/reflex, VENDOR_ITEM_REGULAR), + list("S8 4x Telescopic Scope", 4.5, /obj/item/attachable/scope, VENDOR_ITEM_REGULAR), list("UNDERBARREL", -1, null, null), - list("Angled Grip", round(scale * 6.5), /obj/item/attachable/angledgrip, VENDOR_ITEM_REGULAR), - list("Bipod", round(scale * 6.5), /obj/item/attachable/bipod, VENDOR_ITEM_REGULAR), - list("Burst Fire Assembly", round(scale * 4.5), /obj/item/attachable/burstfire_assembly, VENDOR_ITEM_REGULAR), - list("Gyroscopic Stabilizer", round(scale * 4.5), /obj/item/attachable/gyro, VENDOR_ITEM_REGULAR), - list("Laser Sight", round(scale * 9.5), /obj/item/attachable/lasersight, VENDOR_ITEM_REGULAR), - list("Mini Flamethrower", round(scale * 4.5), /obj/item/attachable/attached_gun/flamer, VENDOR_ITEM_REGULAR), - list("XM-VESG-1 Flamer Nozzle", round(scale * 4.5), /obj/item/attachable/attached_gun/flamer_nozzle, VENDOR_ITEM_REGULAR), - list("U7 Underbarrel Shotgun", round(scale * 4.5), /obj/item/attachable/attached_gun/shotgun, VENDOR_ITEM_REGULAR), - list("Underbarrel Extinguisher", round(scale * 4.5), /obj/item/attachable/attached_gun/extinguisher, VENDOR_ITEM_REGULAR), - list("Underbarrel Flashlight Grip", round(scale * 9.5), /obj/item/attachable/flashlight/grip, VENDOR_ITEM_REGULAR), - list("Underslung Grenade Launcher", round(scale * 9.5), /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), - list("Vertical Grip", round(scale * 9.5), /obj/item/attachable/verticalgrip, VENDOR_ITEM_REGULAR), + list("Angled Grip", 6.5, /obj/item/attachable/angledgrip, VENDOR_ITEM_REGULAR), + list("Bipod", 6.5, /obj/item/attachable/bipod, VENDOR_ITEM_REGULAR), + list("Burst Fire Assembly", 4.5, /obj/item/attachable/burstfire_assembly, VENDOR_ITEM_REGULAR), + list("Gyroscopic Stabilizer", 4.5, /obj/item/attachable/gyro, VENDOR_ITEM_REGULAR), + list("Laser Sight", 9.5, /obj/item/attachable/lasersight, VENDOR_ITEM_REGULAR), + list("Mini Flamethrower", 4.5, /obj/item/attachable/attached_gun/flamer, VENDOR_ITEM_REGULAR), + list("XM-VESG-1 Flamer Nozzle", 4.5, /obj/item/attachable/attached_gun/flamer_nozzle, VENDOR_ITEM_REGULAR), + list("U7 Underbarrel Shotgun", 4.5, /obj/item/attachable/attached_gun/shotgun, VENDOR_ITEM_REGULAR), + list("Underbarrel Extinguisher", 4.5, /obj/item/attachable/attached_gun/extinguisher, VENDOR_ITEM_REGULAR), + list("Underbarrel Flashlight Grip", 9.5, /obj/item/attachable/flashlight/grip, VENDOR_ITEM_REGULAR), + list("Underslung Grenade Launcher", 9.5, /obj/item/attachable/attached_gun/grenade, VENDOR_ITEM_REGULAR), + list("Vertical Grip", 9.5, /obj/item/attachable/verticalgrip, VENDOR_ITEM_REGULAR), list("STOCK", -1, null, null), - list("M37 Wooden Stock", round(scale * 4.5), /obj/item/attachable/stock/shotgun, VENDOR_ITEM_REGULAR), - list("M39 Arm Brace", round(scale * 4.5), /obj/item/attachable/stock/smg/collapsible/brace, VENDOR_ITEM_REGULAR), - list("M39 Folding Stock", round(scale * 4.5), /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), - list("M39 Stock", round(scale * 4.5), /obj/item/attachable/stock/smg, VENDOR_ITEM_REGULAR), - list("M41A Solid Stock", round(scale * 4.5), /obj/item/attachable/stock/rifle, VENDOR_ITEM_REGULAR), - list("M41A Folding Stock", round(scale * 4.5), /obj/item/attachable/stock/rifle/collapsible, VENDOR_ITEM_REGULAR), - list("M44 Magnum Sharpshooter Stock", round(scale * 4.5), /obj/item/attachable/stock/revolver, VENDOR_ITEM_REGULAR) + list("M37 Wooden Stock", 4.5, /obj/item/attachable/stock/shotgun, VENDOR_ITEM_REGULAR), + list("M39 Arm Brace", 4.5, /obj/item/attachable/stock/smg/collapsible/brace, VENDOR_ITEM_REGULAR), + list("M39 Folding Stock", 4.5, /obj/item/attachable/stock/smg/collapsible, VENDOR_ITEM_REGULAR), + list("M39 Stock", 4.5, /obj/item/attachable/stock/smg, VENDOR_ITEM_REGULAR), + list("M41A Solid Stock", 4.5, /obj/item/attachable/stock/rifle, VENDOR_ITEM_REGULAR), + list("M41A Folding Stock", 4.5, /obj/item/attachable/stock/rifle/collapsible, VENDOR_ITEM_REGULAR), + list("M44 Magnum Sharpshooter Stock", 4.5, /obj/item/attachable/stock/revolver, VENDOR_ITEM_REGULAR) ) -/obj/structure/machinery/cm_vending/sorted/attachments/get_appropriate_vend_turf(mob/living/carbon/human/H) - var/turf/turf_to_vent_to - if(vend_x_offset != 0 || vend_y_offset != 0) //this will allow to avoid code below that suits only Almayer. - turf_to_vent_to = locate(x + vend_x_offset, y + vend_y_offset, z) - else - turf_to_vent_to = get_turf(get_step(src, NORTHEAST)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = get_turf(get_step(src, SOUTHEAST)) - if(H.loc == turf_to_vent_to) - turf_to_vent_to = get_turf(get_step(H.loc, WEST)) - else - turf_to_vent_to = loc - return turf_to_vent_to - /obj/structure/machinery/cm_vending/sorted/attachments/blend icon_state = "req_attach_wall" tiles_with = list( @@ -402,7 +361,6 @@ /obj/structure/machinery/door/airlock, /turf/closed/wall/almayer, ) - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY //We want to vend to turf not hand, since we are in requisitions //------------UNIFORM VENDOR--------------- @@ -427,11 +385,11 @@ list("M10 Pattern Marine Helmet", 20, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), list("M10 Pattern Technician Helmet", 20, /obj/item/clothing/head/helmet/marine/tech, VENDOR_ITEM_REGULAR), list("M10 Pattern Corpman Helmet", 20, /obj/item/clothing/head/helmet/marine/medic, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", 10, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 10, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), @@ -455,6 +413,9 @@ list("MASKS", -1, null, null, null), list("Gas Mask", 20, /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), list("Heat Absorbent Coif", 10, /obj/item/clothing/mask/rebreather/scarf, VENDOR_ITEM_REGULAR), + + list("MISCELLANEOUS", -1, null, null), + list("Bedroll", 30, /obj/item/roller/bedroll, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/uniform_supply/ui_state(mob/user) diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm index 543c601bda37..6d015c203bd7 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_engineer.dm @@ -20,11 +20,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, VENDOR_ITEM_RECOMMENDED), list("Plastic Explosive", 3, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), list("Breaching Charge", 5, /obj/item/explosive/plastic/breaching_charge, null, VENDOR_ITEM_RECOMMENDED), - list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED), list("Super-Capacity Power Cell", 10, /obj/item/cell/super, null, VENDOR_ITEM_REGULAR), - list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR), list("ES-11 Mobile Fuel Canister", 4, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), list("EXPLOSIVES", 0, null, null, null), @@ -47,8 +44,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), @@ -62,7 +59,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("Machete Pouch (Full)", 8, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), list("USCM Radio Telephone Pack", 15, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_REGULAR), list("Fuel Tank Strap Pouch", 4, /obj/item/storage/pouch/flamertank, null, VENDOR_ITEM_REGULAR), - list("Welding Goggles", 3, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR), list("Sling Pouch", 6, /obj/item/storage/pouch/sling, null, VENDOR_ITEM_REGULAR), list("Large General Pouch", 6, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR), list("M276 Pattern Combat Toolbelt Rig", 15, /obj/item/storage/belt/gun/utility, null, VENDOR_ITEM_REGULAR), @@ -74,6 +70,11 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("Motion Detector", 8, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), list("Whistle", 3, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 12, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), @@ -100,11 +101,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( GLOBAL_LIST_INIT(cm_vending_clothing_engi, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine/engineer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/tech, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/engineer, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/tech), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm index ea3423260ec0..6c7cbf2db740 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_leader.dm @@ -16,25 +16,28 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( list("Basic Engineering Supplies", 0, /obj/item/storage/box/kit/engineering_supply_kit, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 4, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", 4, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), list("USCM Radio Telephone Pack", 5, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_REGULAR), list("M276 Pattern Combat Toolbelt Rig", 15, /obj/item/storage/belt/gun/utility, null, VENDOR_ITEM_REGULAR), - list("M2 Night Vision Goggles", 20, /obj/item/prop/helmetgarb/helmet_nvg, null, VENDOR_ITEM_RECOMMENDED), list("UTILITIES", 0, null, null, null), list("Whistle", 3, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), - list("Range Finder", 3, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 5, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 3, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Range Finder", 3, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 5, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), + list("Medical Helmet Optic", 4, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_RECOMMENDED), + list("Night Vision Optic", 20, /obj/item/device/helmet_visor/night_vision, null, VENDOR_ITEM_RECOMMENDED), list("ENGINEERING SUPPLIES", 0, null, null, null), list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR), @@ -74,7 +77,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( list("Injector (Tricord)", 1, /obj/item/reagent_container/hypospray/autoinjector/tricord, null, VENDOR_ITEM_REGULAR), list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), - list("Medical Helmet Optic", 4, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_RECOMMENDED), list("Roller Bed", 2, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("SPECIAL AMMUNITION", 0, null, null, null), @@ -114,12 +116,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( GLOBAL_LIST_INIT(cm_vending_clothing_leader, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Armor", 0, /obj/item/clothing/suit/storage/marine/leader, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/leader, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/leader), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("B12 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/medium/leader, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index 1b634335f5d2..6b4954ee5e92 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -66,8 +66,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 28, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 28, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 28, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 28, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 8, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), @@ -81,12 +81,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("Welding Goggles", 3, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR), list("UTILITIES", 0, null, null, null), - list("Range Finder", 6, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 8, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 3, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Motion Detector", 8, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), list("Whistle", 3, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), @@ -116,11 +119,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine/medic, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/medic, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index 94768340c60e..e021b6fe0879 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -53,6 +53,34 @@ list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) ) +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial + name = "\improper ColMarTech Automated Weapons Rack" + desc = "An automated weapon rack hooked up to a big storage of standard-issue weapons." + icon_state = "guns" + req_access = list(ACCESS_TUTORIAL_LOCKED) + req_one_access = list() + hackable = FALSE + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND + +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/populate_product_list(scale) + listed_products = list( + list("PRIMARY FIREARMS", -1, null, null), + list("M41A Pulse Rifle MK2", 1, /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + + list("PRIMARY AMMUNITION", -1, null, null), + list("M41A Magazine (10x24mm)", 1, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_RECOMMENDED), + ) + +/// Called if the tutorial mob somehow uses an entire magazine without the xeno dying +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial/proc/load_ammo() + listed_products = list( + list("PRIMARY FIREARMS", -1, null, null), + list("M41A Pulse Rifle MK2", 0, /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_RECOMMENDED), + + list("PRIMARY AMMUNITION", -1, null, null), + list("M41A Magazine (10x24mm)", 99, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_RECOMMENDED), + ) + //------------SQUAD PREP UNIFORM VENDOR--------------- @@ -63,6 +91,7 @@ req_one_access = list() listed_products = list() hackable = TRUE + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_STOCK_DYNAMIC /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_strict_state @@ -71,26 +100,28 @@ listed_products = list( list("STANDARD EQUIPMENT", -1, null, null, null), list("Marine Combat Boots", round(scale * 15), /obj/item/clothing/shoes/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Boots", round(scale * 15), /obj/item/clothing/shoes/marine/brown, VENDOR_ITEM_REGULAR), list("USCM Uniform", round(scale * 15), /obj/item/clothing/under/marine, VENDOR_ITEM_REGULAR), list("Marine Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine, VENDOR_ITEM_REGULAR), + list("Marine Brown Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine/brown, VENDOR_ITEM_REGULAR), list("Marine Black Combat Gloves", round(scale * 15), /obj/item/clothing/gloves/marine/black, VENDOR_ITEM_REGULAR), list("Marine Radio Headset", round(scale * 15), /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), list("M10 Pattern Marine Helmet", round(scale * 15), /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), list("WEBBINGS", -1, null, null), - list("Brown Webbing Vest", round(scale * 1.25), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), - list("Black Webbing Vest", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), + list("Brown Webbing Vest", 1, /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), + list("Black Webbing Vest", 1, /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), list("Webbing", round(scale * 2), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), - list("Drop Pouch", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), + list("Drop Pouch", 0.75, /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", 0.75, /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), list("ARMOR", -1, null, null), - list("M3 Pattern Carrier Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), - list("M3 Pattern Smooth Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/smooth, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Smooth Marine Armor", round(scale * 15), /obj/item/clothing/suit/storage/marine/medium/smooth, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", round(scale * 10), /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", round(scale * 10), /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), @@ -105,9 +136,9 @@ list("Shotgun Scabbard", round(scale * 5), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), list("RESTRICTED BACKPACKS", -1, null, null), - list("USCM Technician Welderpack", round(scale * 1.25), /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), + list("USCM Technician Welderpack", 1.25, /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), list("Technician Welder-Satchel", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack/satchel, VENDOR_ITEM_REGULAR), - list("Radio Telephone Backpack", round(max(1,(scale * 0.5))), /obj/item/storage/backpack/marine/satchel/rto, VENDOR_ITEM_REGULAR), + list("Radio Telephone Backpack", 0.75, /obj/item/storage/backpack/marine/satchel/rto, VENDOR_ITEM_REGULAR), list("BELTS", -1, null, null), list("M276 Pattern Ammo Load Rig", round(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), @@ -134,12 +165,12 @@ list("Pistol Pouch", round(scale * 15), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), list("RESTRICTED POUCHES", -1, null, null, null), - list("Construction Pouch", round(scale * 1.25), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), - list("Explosive Pouch", round(scale * 1.25), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), - list("First Responder Pouch (Empty)", round(scale * 2.5), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), + list("Construction Pouch", 1.25, /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), + list("Explosive Pouch", 1.25, /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), + list("First Responder Pouch (Empty)", 2.5, /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", round(scale * 2), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), - list("Tools Pouch", round(scale * 1.25), /obj/item/storage/pouch/tools, VENDOR_ITEM_REGULAR), - list("Sling Pouch", round(scale * 1.25), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), + list("Tools Pouch", 1.25, /obj/item/storage/pouch/tools, VENDOR_ITEM_REGULAR), + list("Sling Pouch", 1.25, /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), list("MASK", -1, null, null, null), list("Gas Mask", round(scale * 15), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), @@ -148,6 +179,7 @@ list("MISCELLANEOUS", -1, null, null, null), list("Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles, VENDOR_ITEM_REGULAR), + list("M1A1 Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR), list("Prescription ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR), list("Marine RPG glasses", round(scale * 10), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR), list("M5 Integrated Gas Mask", round(scale * 10), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR), @@ -157,6 +189,7 @@ list("USCM Flair", round(scale * 15), /obj/item/prop/helmetgarb/flair_uscm, VENDOR_ITEM_REGULAR), list("Falling Falcons Shoulder Patch", round(scale * 15), /obj/item/clothing/accessory/patch/falcon, VENDOR_ITEM_REGULAR), list("USCM Shoulder Patch", round(scale * 15), /obj/item/clothing/accessory/patch, VENDOR_ITEM_REGULAR), + list("Bedroll", round(scale * 20), /obj/item/roller/bedroll, VENDOR_ITEM_REGULAR), ) //--------------SQUAD SPECIFIC VERSIONS-------------- @@ -211,7 +244,7 @@ req_access = list(ACCESS_MARINE_ALPHA) req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_SPECPREP, ACCESS_MARINE_RO) hackable = TRUE - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_STOCK_DYNAMIC vend_x_offset = 2 @@ -222,13 +255,13 @@ /obj/structure/machinery/cm_vending/sorted/cargo_ammo/squad/populate_product_list(scale) listed_products = list( list("ARMOR-PIERCING AMMUNITION", -1, null, null), - list("M4RA AP Magazine (10x24mm)", round(scale * 3.5), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), + list("M4RA AP Magazine (10x24mm)", 3.5, /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", round(scale * 3), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), list("EXTENDED AMMUNITION", -1, null, null), - list("M39 Extended Magazine (10x20mm)", round(scale * 1.8), /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), - list("M41A Extended Magazine (10x24mm)", round(scale * 1.9), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), + list("M39 Extended Magazine (10x20mm)", 1.8, /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), + list("M41A Extended Magazine (10x24mm)", 1.9, /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), list("SPECIAL AMMUNITION", -1, null, null), list("M56 Smartgun Drum", 1, /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), @@ -257,7 +290,7 @@ vend_x_offset = 2 vend_y_offset = 1 - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_STOCK_DYNAMIC /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_strict_state @@ -305,6 +338,7 @@ req_access = list(ACCESS_MARINE_ALPHA) req_one_access = list(ACCESS_MARINE_LEADER, ACCESS_MARINE_SPECPREP, ACCESS_MARINE_RO) hackable = TRUE + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_STOCK_DYNAMIC vend_y_offset = 1 @@ -314,36 +348,36 @@ /obj/structure/machinery/cm_vending/sorted/attachments/squad/populate_product_list(scale) listed_products = list( list("BARREL", -1, null, null), - list("Extended Barrel", round(scale * 2.5), /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR), - list("Recoil Compensator", round(scale * 2.5), /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), - list("Suppressor", round(scale * 2.5), /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), + list("Extended Barrel", 2.5, /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR), + list("Recoil Compensator", 2.5, /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), + list("Suppressor", 2.5, /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), list("RAIL", -1, null, null), - list("B8 Smart-Scope", round(scale * 1.5), /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), - list("Magnetic Harness", round(scale * 4), /obj/item/attachable/magnetic_harness, VENDOR_ITEM_REGULAR), - list("S4 2x Telescopic Mini-Scope", round(scale * 2), /obj/item/attachable/scope/mini, VENDOR_ITEM_REGULAR), - list("S5 Red-Dot Sight", round(scale * 3), /obj/item/attachable/reddot, VENDOR_ITEM_REGULAR), - list("S6 Reflex Sight", round(scale * 3), /obj/item/attachable/reflex, VENDOR_ITEM_REGULAR), - list("S8 4x Telescopic Scope", round(scale * 2), /obj/item/attachable/scope, VENDOR_ITEM_REGULAR), + list("B8 Smart-Scope", 1.5, /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), + list("Magnetic Harness", 4, /obj/item/attachable/magnetic_harness, VENDOR_ITEM_REGULAR), + list("S4 2x Telescopic Mini-Scope", 2, /obj/item/attachable/scope/mini, VENDOR_ITEM_REGULAR), + list("S5 Red-Dot Sight", 3, /obj/item/attachable/reddot, VENDOR_ITEM_REGULAR), + list("S6 Reflex Sight", 3, /obj/item/attachable/reflex, VENDOR_ITEM_REGULAR), + list("S8 4x Telescopic Scope", 2, /obj/item/attachable/scope, VENDOR_ITEM_REGULAR), list("UNDERBARREL", -1, null, null), - list("Angled Grip", round(scale * 2.5), /obj/item/attachable/angledgrip, VENDOR_ITEM_REGULAR), - list("Bipod", round(scale * 2.5), /obj/item/attachable/bipod, VENDOR_ITEM_REGULAR), - list("Burst Fire Assembly", round(scale * 1.5), /obj/item/attachable/burstfire_assembly, VENDOR_ITEM_REGULAR), - list("Gyroscopic Stabilizer", round(scale * 1.5), /obj/item/attachable/gyro, VENDOR_ITEM_REGULAR), - list("Laser Sight", round(scale * 3), /obj/item/attachable/lasersight, VENDOR_ITEM_REGULAR), - list("Mini Flamethrower", round(scale * 1.5), /obj/item/attachable/attached_gun/flamer, VENDOR_ITEM_REGULAR), - list("XM-VESG-1 Flamer Nozzle", round(scale * 1.5), /obj/item/attachable/attached_gun/flamer_nozzle, VENDOR_ITEM_REGULAR), - list("U7 Underbarrel Shotgun", round(scale * 1.5), /obj/item/attachable/attached_gun/shotgun, VENDOR_ITEM_REGULAR), - list("Underbarrel Extinguisher", round(scale * 1.5), /obj/item/attachable/attached_gun/extinguisher, VENDOR_ITEM_REGULAR), - list("Vertical Grip", round(scale * 3), /obj/item/attachable/verticalgrip, VENDOR_ITEM_REGULAR), + list("Angled Grip", 2.5, /obj/item/attachable/angledgrip, VENDOR_ITEM_REGULAR), + list("Bipod", 2.5, /obj/item/attachable/bipod, VENDOR_ITEM_REGULAR), + list("Burst Fire Assembly", 1.5, /obj/item/attachable/burstfire_assembly, VENDOR_ITEM_REGULAR), + list("Gyroscopic Stabilizer", 1.5, /obj/item/attachable/gyro, VENDOR_ITEM_REGULAR), + list("Laser Sight", 3, /obj/item/attachable/lasersight, VENDOR_ITEM_REGULAR), + list("Mini Flamethrower", 1.5, /obj/item/attachable/attached_gun/flamer, VENDOR_ITEM_REGULAR), + list("XM-VESG-1 Flamer Nozzle", 1.5, /obj/item/attachable/attached_gun/flamer_nozzle, VENDOR_ITEM_REGULAR), + list("U7 Underbarrel Shotgun", 1.5, /obj/item/attachable/attached_gun/shotgun, VENDOR_ITEM_REGULAR), + list("Underbarrel Extinguisher", 1.5, /obj/item/attachable/attached_gun/extinguisher, VENDOR_ITEM_REGULAR), + list("Vertical Grip", 3, /obj/item/attachable/verticalgrip, VENDOR_ITEM_REGULAR), list("STOCK", -1, null, null), - list("M37 Wooden Stock", round(scale * 1.5), /obj/item/attachable/stock/shotgun, VENDOR_ITEM_REGULAR), - list("M39 Arm Brace", round(scale * 1.5), /obj/item/attachable/stock/smg/collapsible/brace, VENDOR_ITEM_REGULAR), - list("M39 Stock", round(scale * 1.5), /obj/item/attachable/stock/smg, VENDOR_ITEM_REGULAR), - list("M41A Solid Stock", round(scale * 1.5), /obj/item/attachable/stock/rifle, VENDOR_ITEM_REGULAR), - list("M44 Magnum Sharpshooter Stock", round(scale * 1.5), /obj/item/attachable/stock/revolver, VENDOR_ITEM_REGULAR) + list("M37 Wooden Stock", 1.5, /obj/item/attachable/stock/shotgun, VENDOR_ITEM_REGULAR), + list("M39 Arm Brace", 1.5, /obj/item/attachable/stock/smg/collapsible/brace, VENDOR_ITEM_REGULAR), + list("M39 Stock", 1.5, /obj/item/attachable/stock/smg, VENDOR_ITEM_REGULAR), + list("M41A Solid Stock", 1.5, /obj/item/attachable/stock/rifle, VENDOR_ITEM_REGULAR), + list("M44 Magnum Sharpshooter Stock", 1.5, /obj/item/attachable/stock/revolver, VENDOR_ITEM_REGULAR) ) //------------ESSENTIAL SETS--------------- diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm index 6a569638984b..15661cc4b661 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm @@ -45,6 +45,12 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("Rebreather", 0, /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("ENGINEERING SUPPLIES", 0, null, null, null), + list("E-Tool", 5, /obj/item/tool/shovel/etool/folded, null, VENDOR_ITEM_REGULAR), + list("Sandbags", 20, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_REGULAR), + list("ES-11 Mobile Fuel Canister", 5, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", 5, /obj/item/tool/weldingtool/simple, null, VENDOR_ITEM_REGULAR), + list("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 15, /obj/item/storage/box/guncase/vp78, null, VENDOR_ITEM_REGULAR), list("SU-6 Smart Pistol", 15, /obj/item/storage/box/guncase/smartpistol, null, VENDOR_ITEM_REGULAR), @@ -70,8 +76,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), - list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/rto, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 30, /obj/item/clothing/suit/storage/marine/medium/rto, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Webbing", 10, /obj/item/clothing/accessory/storage/webbing, null, VENDOR_ITEM_REGULAR), @@ -88,17 +94,18 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("Large General Pouch", 15, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR), list("UTILITIES", 0, null, null, null), - list("E-Tool", 5, /obj/item/tool/shovel/etool/folded, null, VENDOR_ITEM_REGULAR), - list("Sandbags", 20, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), list("Data Detector", 15, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 15, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm index 0691dfcee371..8a1b77103cad 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_smartgunner.dm @@ -29,13 +29,16 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("Large General Pouch", 6, /obj/item/storage/pouch/general/large, null, VENDOR_ITEM_REGULAR), list("UTILITIES", 0, null, null, null), - list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), - list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 15, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), @@ -66,11 +69,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( GLOBAL_LIST_INIT(cm_vending_clothing_smartgun, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm index 38c74481205d..e800fc1efd56 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_specialist.dm @@ -56,10 +56,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_spec, list( GLOBAL_LIST_INIT(cm_vending_clothing_specialist, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm index c03d79eddfd0..d9ba7ee97c26 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_tl.dm @@ -30,7 +30,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("M79 Grenade Launcher", 30, /obj/item/storage/box/guncase/m79, null, VENDOR_ITEM_REGULAR), list("ARMORS", 0, null, null, null), - list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/leader, null, VENDOR_ITEM_REGULAR), + list("M3 B12 Pattern Marine Armor", 30, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), @@ -40,18 +40,26 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("M276 Pattern Combat Toolbelt Rig", 15, /obj/item/storage/belt/gun/utility, null, VENDOR_ITEM_REGULAR), list("Autoinjector Pouch (Full)", 15, /obj/item/storage/pouch/autoinjector/full, null, VENDOR_ITEM_REGULAR), list("Insulated Gloves", 3, /obj/item/clothing/gloves/yellow, null, VENDOR_ITEM_REGULAR), - list("M2 Night Vision Goggles", 30, /obj/item/prop/helmetgarb/helmet_nvg, null, VENDOR_ITEM_RECOMMENDED), + list("Night Vision Optic", 30, /obj/item/device/helmet_visor/night_vision, null, VENDOR_ITEM_RECOMMENDED), - list("UTILITIES", 0, null, null, null), - list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), + list("ENGINEERING SUPPLIES", 0, null, null, null), list("Plastic Explosive", 10, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), list("Breaching Charge", 10, /obj/item/explosive/plastic/breaching_charge, null, VENDOR_ITEM_REGULAR), + list("ES-11 Mobile Fuel Canister", 5, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), + list("ME3 Hand Welder", 5, /obj/item/tool/weldingtool/simple, null, VENDOR_ITEM_REGULAR), + + list("UTILITIES", 0, null, null, null), + list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("BINOCULARS", 0, null, null, null), + list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Range Finder", 10, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 15, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_REGULAR), + list("HELMET OPTICS", 0, null, null, null), list("Medical Helmet Optic", 15, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), @@ -78,12 +86,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( GLOBAL_LIST_INIT(cm_vending_clothing_tl, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), - list("Uniform", 0, /obj/item/clothing/under/marine, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("M4 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/rto, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/marine, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/rto, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/rto), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("M4 Pattern Armor", 0, /obj/item/clothing/suit/storage/marine/medium/rto, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), list("Essential Fireteam Leader Utilities", 0, /obj/effect/essentials_set/tl, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm b/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm new file mode 100644 index 000000000000..c1cedd85c7fc --- /dev/null +++ b/code/game/machinery/vending/vendor_types/squad_prep/tutorial.dm @@ -0,0 +1,30 @@ +GLOBAL_LIST_INIT(cm_vending_clothing_tutorial, list( + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/clothing/head/helmet/marine), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + + list("ARMOR (CHOOSE 1)", 0, null, null, null), + list("Medium Armor", 0, /obj/item/clothing/suit/storage/marine/medium, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("BACKPACK (CHOOSE 1)", 0, null, null, null), + list("Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + + list("POUCHES (CHOOSE 1)", 0, null, null, null), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + + )) // The pouch uses a different category so they only get one + +/obj/structure/machinery/cm_vending/clothing/tutorial + name = "\improper ColMarTech Automated Marine Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Marine Rifleman standard-issue equipment." + icon_state = "mar_rack" + show_points = TRUE + vendor_theme = VENDOR_THEME_USCM + req_access = list(ACCESS_TUTORIAL_LOCKED) + + vendor_role = list() + +/obj/structure/machinery/cm_vending/clothing/tutorial/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_tutorial diff --git a/code/game/machinery/vending/vendor_types/wo_vendors.dm b/code/game/machinery/vending/vendor_types/wo_vendors.dm index 645640f9dc84..160e808a4a50 100644 --- a/code/game/machinery/vending/vendor_types/wo_vendors.dm +++ b/code/game/machinery/vending/vendor_types/wo_vendors.dm @@ -47,12 +47,12 @@ list("ARMOR", -1, null, null), list("M10 Pattern Marine Helmet", 20, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), - list("M3 Pattern Smooth Marine Armor", 20, /obj/item/clothing/suit/storage/marine/smooth, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Smooth Marine Armor", 20, /obj/item/clothing/suit/storage/marine/medium/smooth, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", 10, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 10, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), @@ -66,7 +66,7 @@ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo req_access = list() req_one_access = list() - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES + vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND | VEND_LOAD_AMMO_BOXES | VEND_STOCK_DYNAMIC /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/wo/populate_product_list(scale) listed_products = list( @@ -110,52 +110,13 @@ ) //------------REQ AMMUNITION VENDOR--------------- -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/wo +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/wo req_access = list(ACCESS_MARINE_CARGO) req_one_access = list() -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/wo/populate_product_list(scale) - listed_products = list( - list("REGULAR AMMUNITION", -1, null, null), - list("Box Of Buckshot Shells", round(scale * 5), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box Of Flechette Shells", round(scale * 5), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box Of Shotgun Slugs", round(scale * 5), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", round(scale * 10), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A MK1 Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), - list("M41A MK2 Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), - list("M44 Speed Loader (.44)", round(scale * 10), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", round(scale * 10), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), - - list("ARMOR-PIERCING AMMUNITION", -1, null, null), - list("88 Mod 4 AP Magazine (9mm)", round(scale * 5), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M4RA AP Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", round(scale * 5), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR), - list("M41A MK1 AP Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/m41aMK1/ap, VENDOR_ITEM_REGULAR), - list("M41A MK2 AP Magazine (10x24mm)", round(scale * 10), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR), - list("M4A3 AP Magazine (9mm)", round(scale * 5), /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR), - - list("EXTENDED AMMUNITION", -1, null, null), - list("M39 Extended Magazine (10x20mm)", round(scale * 1), /obj/item/ammo_magazine/smg/m39/extended, VENDOR_ITEM_REGULAR), - list("M41A MK2 Extended Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/extended, VENDOR_ITEM_REGULAR), - - list("INCENDIARY AMMUNITION", -1, null, null), - list("M4RA Incendiary Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/m4ra/incendiary, VENDOR_ITEM_REGULAR), - list("M39 Incendiary Magazine (10x20mm)", round(scale * 2), /obj/item/ammo_magazine/smg/m39/incendiary, VENDOR_ITEM_REGULAR), - list("M41A MK2 Incendiary Magazine (10x24mm)", round(scale * 3), /obj/item/ammo_magazine/rifle/incendiary, VENDOR_ITEM_REGULAR), - list("M4A3 Incendiary Magazine (9mm)", round(scale * 1), /obj/item/ammo_magazine/pistol/incendiary, VENDOR_ITEM_REGULAR), - - list("SPECIAL AMMUNITION", -1, null, null), - list("Incinerator Tank", round(scale * 2.5), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), - list("M41AE2 Ammo Box (10x24mm)", round(scale * 5), /obj/item/ammo_magazine/rifle/lmg, VENDOR_ITEM_REGULAR), - list("M44 Heavy Speed Loader (.44)", round(scale * 2), /obj/item/ammo_magazine/revolver/heavy, VENDOR_ITEM_REGULAR), - list("M44 Marksman Speed Loader (.44)", round(scale * 2), /obj/item/ammo_magazine/revolver/marksman, VENDOR_ITEM_REGULAR), - list("M4A3 HP Magazine (9mm)", round(scale * 5), /obj/item/ammo_magazine/pistol/hp, VENDOR_ITEM_REGULAR), - list("M56 Battery", round(scale * 5), /obj/item/smartgun_battery, VENDOR_ITEM_REGULAR), - list("M56 Smartgun Drum", round(scale * 2), /obj/item/ammo_magazine/smartgun, VENDOR_ITEM_REGULAR), - list("SU-6 Smartpistol Magazine (.45)", round(scale * 6), /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), - list("VP78 Magazine", round(scale * 6), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), - +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/wo/populate_product_list(scale) + ..() + listed_products += list( list("EXTRA SCOUT AMMUNITION", -1, null, null, null), list("A19 High Velocity Impact Magazine (10x24mm)", round(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/impact, VENDOR_ITEM_REGULAR), list("A19 High Velocity Incendiary Magazine (10x24mm)", round(scale * 1), /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, VENDOR_ITEM_REGULAR), @@ -181,96 +142,17 @@ list("Large Incinerator Tank", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large, VENDOR_ITEM_REGULAR), list("Large Incinerator Tank (B) (Green Flame)", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/B, VENDOR_ITEM_REGULAR), list("Large Incinerator Tank (X) (Blue Flame)", round(scale * 1), /obj/item/ammo_magazine/flamer_tank/large/X, VENDOR_ITEM_REGULAR), - - list("AMMUNITION BOXES", -1, null, null), - list("Rifle Ammunition Box (10x24mm)", round(scale * 0.9), /obj/item/ammo_box/rounds, VENDOR_ITEM_REGULAR), - list("Rifle Ammunition Box (10x24mm AP)", round(scale * 0.75), /obj/item/ammo_box/rounds/ap, VENDOR_ITEM_REGULAR), - list("SMG Ammunition Box (10x20mm HV)", round(scale * 0.9), /obj/item/ammo_box/rounds/smg, VENDOR_ITEM_REGULAR), - list("SMG Ammunition Box (10x20mm AP)", round(scale * 0.75), /obj/item/ammo_box/rounds/smg/ap, VENDOR_ITEM_REGULAR), ) //------------ARMAMENTS VENDOR--------------- -/obj/structure/machinery/cm_vending/sorted/cargo_guns/wo +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/wo req_access = list(ACCESS_MARINE_CARGO) + vend_dir = NORTH + vend_dir_whitelist = list(EAST, WEST) -/obj/structure/machinery/cm_vending/sorted/cargo_guns/wo/populate_product_list(scale) - listed_products = list( - list("PRIMARY FIREARMS", -1, null, null), - list("M4RA Battle Rifle", round(scale * 20), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M37A2 Pump Shotgun", round(scale * 10), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M39 Submachinegun", round(scale * 15), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK1", round(scale * 20), /obj/item/weapon/gun/rifle/m41aMK1, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", round(scale * 20), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), - list("MK221 Tactical Shotgun", round(scale * 3), /obj/item/weapon/gun/shotgun/combat, VENDOR_ITEM_REGULAR), - - list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", round(scale * 15), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", round(scale * 10), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", round(scale * 20), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), - list("SU-6 Smartpistol", round(scale * 2), /obj/item/weapon/gun/pistol/smart, VENDOR_ITEM_REGULAR), - list("M82F Flare Gun", round(scale * 5), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR), - - list("RESTRICTED FIREARMS", -1, null, null), - list("VP78 Pistol", round(scale * 4), /obj/item/storage/box/guncase/vp78, VENDOR_ITEM_REGULAR), - list("SU-6 Smart Pistol", round(scale * 3), /obj/item/storage/box/guncase/smartpistol, VENDOR_ITEM_REGULAR), - list("M41AE2 Heavy Pulse Rifle", round(scale * 2), /obj/item/storage/box/guncase/lmg, VENDOR_ITEM_REGULAR), - list("M56D Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m56d, VENDOR_ITEM_REGULAR), - list("M2C Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m2c, VENDOR_ITEM_REGULAR), - list("M240 Incinerator Unit", round(scale * 2), /obj/item/storage/box/guncase/flamer, VENDOR_ITEM_REGULAR), - - list("EXPLOSIVES", -1, null, null), - list("M15 Fragmentation Grenade", round(scale * 2), /obj/item/explosive/grenade/high_explosive/m15, VENDOR_ITEM_REGULAR), - list("M20 Claymore Anti-Personnel Mine", round(scale * 5), /obj/item/explosive/mine, VENDOR_ITEM_REGULAR), - list("M40 HEDP Grenade Box", round(scale * 1), /obj/item/storage/box/nade_box, VENDOR_ITEM_REGULAR), - list("M40 HIDP Incendiary Grenade", round(scale * 3), /obj/item/explosive/grenade/incendiary, VENDOR_ITEM_REGULAR), - list("M40 HSDP Smoke Grenade", round(scale * 5), /obj/item/explosive/grenade/smokebomb, VENDOR_ITEM_REGULAR), - - list("BACKPACKS", -1, null, null), - list("Lightweight IMP Backpack", round(scale * 15), /obj/item/storage/backpack/marine, VENDOR_ITEM_REGULAR), - list("Shotgun Scabbard", round(scale * 10), /obj/item/storage/large_holster/m37, VENDOR_ITEM_REGULAR), - list("USCM Pyrotechnician G4-1 Fueltank", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit, VENDOR_ITEM_REGULAR), - list("USCM Technician Welderpack", round(scale * 2), /obj/item/storage/backpack/marine/engineerpack, VENDOR_ITEM_REGULAR), - - list("BELTS", -1, null, null), - list("G8-A General Utility Pouch", round(scale * 3), /obj/item/storage/backpack/general_belt, VENDOR_ITEM_REGULAR), - list("M276 Pattern Ammo Load Rig", round(scale * 15), /obj/item/storage/belt/marine, VENDOR_ITEM_REGULAR), - list("M276 Pattern General Pistol Holster Rig", round(scale * 10), /obj/item/storage/belt/gun/m4a3, VENDOR_ITEM_REGULAR), - list("M276 Pattern M39 Holster Rig", round(scale * 5), /obj/item/storage/belt/gun/m39, VENDOR_ITEM_REGULAR), - list("M276 Pattern M44 Holster Rig", round(scale * 5), /obj/item/storage/belt/gun/m44, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", round(scale * 2), /obj/item/storage/belt/gun/flaregun, VENDOR_ITEM_REGULAR), - list("M276 Pattern Shotgun Shell Loading Rig", round(scale * 10), /obj/item/storage/belt/shotgun, VENDOR_ITEM_REGULAR), - - list("WEBBINGS", -1, null, null), - list("Black Webbing Vest", round(scale * 5), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", round(scale * 5), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", round(scale * 5), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR), - list("Webbing", round(scale * 5), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR), - list("Knife Webbing", round(scale * 3), /obj/item/clothing/accessory/storage/knifeharness, VENDOR_ITEM_REGULAR), - list("Drop Pouch", round(scale * 5), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR), - - list("POUCHES", -1, null, null), - list("Construction Pouch", round(scale * 2), /obj/item/storage/pouch/construction, VENDOR_ITEM_REGULAR), - list("Explosive Pouch", round(scale * 2), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/firstaid/full, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", round(scale * 2), /obj/item/storage/pouch/first_responder, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", round(scale * 4), /obj/item/storage/pouch/flamertank, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine/pistol/large, VENDOR_ITEM_REGULAR), - list("Magazine Pouch", round(scale * 5), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), - list("Medical Pouch", round(scale * 2), /obj/item/storage/pouch/medical, VENDOR_ITEM_REGULAR), - list("Medium General Pouch", round(scale * 2), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), - list("Medkit Pouch", round(scale * 2), /obj/item/storage/pouch/medkit, VENDOR_ITEM_REGULAR), - list("Sidearm Pouch", round(scale * 15), /obj/item/storage/pouch/pistol, VENDOR_ITEM_REGULAR), - list("Syringe Pouch", round(scale * 2), /obj/item/storage/pouch/syringe, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", round(scale * 2), /obj/item/storage/pouch/tools/full, VENDOR_ITEM_REGULAR), - - list("MISCELLANEOUS", -1, null, null), - list("Combat Flashlight", round(scale * 5), /obj/item/device/flashlight/combat, VENDOR_ITEM_REGULAR), - list("Entrenching Tool (ET)", round(scale * 4), /obj/item/tool/shovel/etool, VENDOR_ITEM_REGULAR), - list("Gas Mask", round(scale * 10), /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), - list("M89-S Signal Flare Pack", round(scale * 2), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare Pack", round(scale * 10), /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", round(scale * 20), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), - list("MB-6 Folding Barricades (x3)", round(scale * 1), /obj/item/stack/folding_barricade/three, VENDOR_ITEM_REGULAR) - ) +//---- ATTACHIES +/obj/structure/machinery/cm_vending/sorted/attachments/wo + req_access = list(ACCESS_MARINE_CARGO) + vend_dir = NORTH + vend_dir_whitelist = list(SOUTHWEST, SOUTHEAST) diff --git a/code/game/machinery/weather_siren.dm b/code/game/machinery/weather_siren.dm index c7752a3dccf1..7816a33391e3 100644 --- a/code/game/machinery/weather_siren.dm +++ b/code/game/machinery/weather_siren.dm @@ -11,11 +11,11 @@ health = 0 /obj/structure/machinery/weather_siren/Initialize() - weather_notify_objects += src + GLOB.weather_notify_objects += src return ..() /obj/structure/machinery/weather_siren/Destroy() - weather_notify_objects -= src + GLOB.weather_notify_objects -= src . = ..() /obj/structure/machinery/weather_siren/power_change() diff --git a/code/game/objects/effects/acid_hole.dm b/code/game/objects/effects/acid_hole.dm index 415df0e7e5a7..a4db9ef5c0e0 100644 --- a/code/game/objects/effects/acid_hole.dm +++ b/code/game/objects/effects/acid_hole.dm @@ -50,18 +50,18 @@ return XENO_NO_DELAY_ACTION /obj/effect/acid_hole/proc/expand_hole(mob/living/carbon/xenomorph/user) - if(user.action_busy || user.lying) + if(user.action_busy || user.is_mob_incapacitated()) return playsound(src, "pry", 25, 1) xeno_attack_delay(user) - if(do_after(user, 60, INTERRUPT_ALL, BUSY_ICON_GENERIC) && !QDELETED(src) && holed_wall && !user.lying && istype(holed_wall)) + if(do_after(user, 60, INTERRUPT_ALL, BUSY_ICON_GENERIC) && !QDELETED(src) && holed_wall && istype(holed_wall)) holed_wall.take_damage(rand(2000,3500)) user.emote("roar") -/obj/effect/acid_hole/proc/use_wall_hole(mob/user) +/obj/effect/acid_hole/proc/use_wall_hole(mob/living/user) - if(user.mob_size >= MOB_SIZE_BIG || user.is_mob_incapacitated() || user.lying || user.buckled || user.anchored) + if(user.mob_size >= MOB_SIZE_BIG || user.is_mob_incapacitated() || user.buckled || user.anchored) return FALSE var/mob_dir = get_dir(user, src) @@ -95,7 +95,7 @@ to_chat(user, SPAN_NOTICE("You start crawling through the hole.")) if(do_after(user, 15, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) - if(!user.is_mob_incapacitated() && !user.lying && !user.buckled) + if(!user.is_mob_incapacitated() && !user.buckled) if (T.density) return for(var/obj/O in T) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 49d758b52b19..7fa61c474ea1 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -160,7 +160,7 @@ //damages human that comes in contact /obj/effect/xenomorph/spray/proc/apply_spray(mob/living/carbon/H, should_stun = TRUE) - if(!H.lying) + if(H.body_position == STANDING_UP) to_chat(H, SPAN_DANGER("Your feet scald and burn! Argh!")) if(ishuman(H)) H.emote("pain") @@ -264,7 +264,7 @@ else PAS.increment_stack_count(2) - if(!H.lying) + if(H.body_position == STANDING_UP) to_chat(H, SPAN_DANGER("Your feet scald and burn! Argh!")) H.emote("pain") H.last_damage_data = cause_data @@ -287,19 +287,23 @@ opacity = FALSE anchored = TRUE unacidable = TRUE + /// Target the acid is melting var/atom/acid_t - var/ticks = 0 - var/acid_strength = 1 //100% speed, normal - var/barricade_damage = 40 + /// Duration left to next acid stage + var/remaining = 0 + /// Acid stages left to complete melting + var/ticks_left = 3 + /// Factor of duration between acid progression + var/acid_delay = 1 /// How much fuel the acid drains from the flare every acid tick var/flare_damage = 500 - var/barricade_damage_ticks = 10 // tick is once per 5 seconds. This tells us how many times it will try damaging barricades + var/barricade_damage = 40 var/in_weather = FALSE //Sentinel weakest acid /obj/effect/xenomorph/acid/weak name = "weak acid" - acid_strength = 2.5 //250% normal speed + acid_delay = 2.5 //250% delay (40% speed) barricade_damage = 20 flare_damage = 150 icon_state = "acid_weak" @@ -307,24 +311,32 @@ //Superacid /obj/effect/xenomorph/acid/strong name = "strong acid" - acid_strength = 0.4 //40% normal speed + acid_delay = 0.4 //40% delay (250% speed) barricade_damage = 100 flare_damage = 1875 icon_state = "acid_strong" -/obj/effect/xenomorph/acid/New(loc, target) - ..(loc) +/obj/effect/xenomorph/acid/Initialize(mapload, atom/target) + . = ..() acid_t = target - var/strength_t = isturf(acid_t) ? 8:4 // Turf take twice as long to take down. + if(isturf(acid_t)) + ticks_left = 7 // Turf take twice as long to take down. + else if(istype(acid_t, /obj/structure/barricade)) + ticks_left = 9 handle_weather() - tick(strength_t) - RegisterSignal(SSdcs, COMSIG_GLOB_WEATHER_CHANGE, PROC_REF(handle_weather)) + RegisterSignal(acid_t, COMSIG_PARENT_QDELETING, PROC_REF(cleanup)) + START_PROCESSING(SSoldeffects, src) /obj/effect/xenomorph/acid/Destroy() acid_t = null + STOP_PROCESSING(SSoldeffects, src) . = ..() +/obj/effect/xenomorph/acid/proc/cleanup() + SIGNAL_HANDLER + qdel(src) + /obj/effect/xenomorph/acid/proc/handle_weather() SIGNAL_HANDLER @@ -333,76 +345,85 @@ return if(SSweather.is_weather_event && locate(acids_area) in SSweather.weather_areas) - acid_strength = acid_strength + (SSweather.weather_event_instance.fire_smothering_strength * 0.33) //smothering_strength is 1-10, acid strength is a multiplier + acid_delay = acid_delay + (SSweather.weather_event_instance.fire_smothering_strength * 0.33) //smothering_strength is 1-10, acid strength is a multiplier in_weather = SSweather.weather_event_instance.fire_smothering_strength else - acid_strength = initial(acid_strength) + acid_delay = initial(acid_delay) in_weather = FALSE /obj/effect/xenomorph/acid/proc/handle_barricade() + if(prob(in_weather)) + visible_message(SPAN_XENOWARNING("Acid on \The [acid_t] subsides!")) + return NONE var/obj/structure/barricade/cade = acid_t - if(istype(cade)) - cade.take_acid_damage(barricade_damage) - -/obj/effect/xenomorph/acid/proc/tick(strength_t) - set waitfor = 0 - if(!acid_t || !acid_t.loc) - qdel(src) + cade.take_acid_damage(barricade_damage) + return (5 SECONDS) + +/obj/effect/xenomorph/acid/proc/handle_flashlight() + var/obj/item/device/flashlight/flare/flare = acid_t + if(flare.fuel <= 0) + return NONE + flare.fuel -= flare_damage + return (rand(15, 25) SECONDS) * acid_delay + +/obj/effect/xenomorph/acid/process(delta_time) + remaining -= delta_time * (1 SECONDS) + if(remaining > 0) return + ticks_left -= 1 - if(istype(acid_t,/obj/structure/barricade)) - if(++ticks >= barricade_damage_ticks || prob(in_weather)) - visible_message(SPAN_XENOWARNING("Acid on \The [acid_t] subsides!")) - qdel(src) - return - handle_barricade() - sleep(50) - .() - return - if(istype(acid_t, /obj/item/device/flashlight/flare)) - var/obj/item/device/flashlight/flare/flare = acid_t - if(flare.fuel > 0) //Flares that have fuel in them lose fuel instead of melting - flare.fuel -= flare_damage - sleep(rand(150,250) * (acid_strength)) - return .() - - if(++ticks >= strength_t) - visible_message(SPAN_XENODANGER("[acid_t] collapses under its own weight into a puddle of goop and undigested debris!")) - playsound(src, "acid_hit", 25, TRUE) - - if(istype(acid_t, /turf)) - if(istype(acid_t, /turf/closed/wall)) - var/turf/closed/wall/W = acid_t - new /obj/effect/acid_hole (W) - else - var/turf/T = acid_t - T.ScrapeAway() - else if (istype(acid_t, /obj/structure/girder)) - var/obj/structure/girder/G = acid_t - G.dismantle() - else if(istype(acid_t, /obj/structure/window/framed)) - var/obj/structure/window/framed/WF = acid_t - WF.deconstruct(disassembled = FALSE) - else if(istype(acid_t,/obj/item/explosive/plastic)) - qdel(acid_t) + var/return_delay = NONE + if(istype(acid_t, /obj/structure/barricade)) + return_delay = handle_barricade() + else if(istype(acid_t, /obj/item/device/flashlight/flare)) + return_delay = handle_flashlight() + else + return_delay = (rand(20, 30) SECONDS) * acid_delay - else - if(acid_t.contents.len) //Hopefully won't auto-delete things inside melted stuff.. - for(var/mob/M in acid_t.contents) - if(acid_t.loc) M.forceMove(acid_t.loc) - QDEL_NULL(acid_t) + if(!ticks_left) + finish_melting() + return PROCESS_KILL + if(!return_delay) qdel(src) - return + return PROCESS_KILL + + remaining = return_delay - switch(strength_t - ticks) + switch(ticks_left) if(6) visible_message(SPAN_XENOWARNING("\The [acid_t] is barely holding up against the acid!")) if(4) visible_message(SPAN_XENOWARNING("\The [acid_t]\s structure is being melted by the acid!")) if(2) visible_message(SPAN_XENOWARNING("\The [acid_t] is struggling to withstand the acid!")) if(0 to 1) visible_message(SPAN_XENOWARNING("\The [acid_t] begins to crumble under the acid!")) - sleep(rand(200,300) * (acid_strength)) - .() +/obj/effect/xenomorph/acid/proc/finish_melting() + visible_message(SPAN_XENODANGER("[acid_t] collapses under its own weight into a puddle of goop and undigested debris!")) + playsound(src, "acid_hit", 25, TRUE) + + if(istype(acid_t, /turf)) + if(istype(acid_t, /turf/closed/wall)) + var/turf/closed/wall/wall = acid_t + new /obj/effect/acid_hole(wall) + else + var/turf/turf = acid_t + turf.ScrapeAway() + + else if (istype(acid_t, /obj/structure/girder)) + var/obj/structure/girder/girder = acid_t + girder.dismantle() + + else if(istype(acid_t, /obj/structure/window/framed)) + var/obj/structure/window/framed/window = acid_t + window.deconstruct(disassembled = FALSE) + + else if(istype(acid_t, /obj/structure/barricade)) + pass() // Don't delete it, just damaj + + else + for(var/mob/mob in acid_t) + mob.forceMove(loc) + qdel(acid_t) + qdel(src) /obj/effect/xenomorph/boiler_bombard name = "???" @@ -468,30 +489,33 @@ /obj/effect/xenomorph/xeno_telegraph name = "???" desc = "" - icon_state = "xeno_telegraph_red" + icon_state = "xeno_telegraph_base" mouse_opacity = MOUSE_OPACITY_TRANSPARENT -/obj/effect/xenomorph/xeno_telegraph/New(loc, ttl = 10) +/// Icon is by default a white sprite, provide an rgb hex code #RRGGBB argument to change. +/obj/effect/xenomorph/xeno_telegraph/New(loc, ttl = 10, color = null) ..(loc) + if(color) + src.color = color QDEL_IN(src, ttl) /obj/effect/xenomorph/xeno_telegraph/red - icon_state = "xeno_telegraph_red" + color = COLOR_DARK_RED /obj/effect/xenomorph/xeno_telegraph/brown - icon_state = "xeno_telegraph_brown" + color = COLOR_BROWN /obj/effect/xenomorph/xeno_telegraph/green - icon_state = "xeno_telegraph_green" + color = COLOR_LIGHT_GREEN -/obj/effect/xenomorph/xeno_telegraph/brown/abduct_hook +/// This has a brown icon state and does not have a color overlay by default. +/obj/effect/xenomorph/xeno_telegraph/abduct_hook icon_state = "xeno_telegraph_abduct_hook_anim" -/obj/effect/xenomorph/xeno_telegraph/brown/lash +/// This has a brown icon state and does not have a color overlay by default. +/obj/effect/xenomorph/xeno_telegraph/lash icon_state = "xeno_telegraph_lash" - - /obj/effect/xenomorph/acid_damage_delay name = "???" desc = "" diff --git a/code/game/objects/effects/decals/cleanable/blood/tracks.dm b/code/game/objects/effects/decals/cleanable/blood/tracks.dm index 32593f6f30fa..c764259a6252 100644 --- a/code/game/objects/effects/decals/cleanable/blood/tracks.dm +++ b/code/game/objects/effects/decals/cleanable/blood/tracks.dm @@ -14,6 +14,9 @@ var/list/overlay_images = list() + /// Amount of pixels to shift either way in an attempt to make the tracks more organic + var/transverse_amplitude = 3 + /obj/effect/decal/cleanable/blood/tracks/Crossed() return @@ -21,19 +24,27 @@ return FALSE /obj/effect/decal/cleanable/blood/tracks/proc/add_tracks(direction, tcolor, out) - var/image/I = image(icon = icon, icon_state = out ? going_state : coming_state, dir = direction) - var/mutable_appearance/MA = new(I) + var/image/image = image(icon = icon, icon_state = out ? going_state : coming_state, dir = direction) + + var/mutable_appearance/MA = new(image) MA.color = tcolor MA.layer = layer MA.appearance_flags |= RESET_COLOR - I.appearance = MA + image.appearance = MA + + switch(direction) + if(NORTH, SOUTH) + image.pixel_x += rand(-transverse_amplitude, transverse_amplitude) + if(EAST, WEST) + image.pixel_y += rand(-transverse_amplitude, transverse_amplitude) + if(out) - LAZYSET(steps_out, "[direction]", I) + LAZYSET(steps_out, "[direction]", image) else - LAZYSET(steps_in, "[direction]", I) + LAZYSET(steps_in, "[direction]", image) - overlay_images += I - cleanable_turf.overlays += I + overlay_images += image + cleanable_turf.overlays += image /obj/effect/decal/cleanable/blood/tracks/clear_overlay() if(length(overlay_images)) diff --git a/code/game/objects/effects/decals/cleanable/fuel.dm b/code/game/objects/effects/decals/cleanable/fuel.dm index 3e245f760e21..a3f5f2d4e1a7 100644 --- a/code/game/objects/effects/decals/cleanable/fuel.dm +++ b/code/game/objects/effects/decals/cleanable/fuel.dm @@ -24,7 +24,7 @@ if(amount < 5.0) return var/turf/S = loc if(!istype(S)) return - for(var/d in cardinal) + for(var/d in GLOB.cardinals) if(rand(25)) var/turf/target = get_step(src, d) var/turf/origin = get_turf(src) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 9cf2aa3d8e09..a88b4ea5c5ea 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -36,7 +36,7 @@ acid_damage = 1 icon_state = "greenglow" light_range = 1 - light_color = COLOUR_GREEN + light_color = COLOR_LIGHT_GREEN /obj/effect/decal/cleanable/flour name = "flour" desc = "It's still good. Four second rule!" @@ -55,7 +55,7 @@ anchored = TRUE layer = TURF_LAYER light_range = 1 - light_color = COLOUR_GREEN + light_color = COLOR_LIGHT_GREEN icon = 'icons/effects/effects.dmi' icon_state = "greenglow" diff --git a/code/game/objects/effects/decals/posters.dm b/code/game/objects/effects/decals/posters.dm index c688c4e6fb67..7a8054efce1a 100644 --- a/code/game/objects/effects/decals/posters.dm +++ b/code/game/objects/effects/decals/posters.dm @@ -184,6 +184,12 @@ serial_number = pick(27,28,30,31) .=..() +/obj/structure/sign/poster/io + icon_state = "poster14" + +/obj/structure/sign/poster/io/Initialize() + serial_number = 14 + . = ..() //////////////// //Hero Posters// //////////////// diff --git a/code/game/objects/effects/decals/warning_stripes.dm b/code/game/objects/effects/decals/warning_stripes.dm index ce0802d72d8e..20c96c2ac737 100644 --- a/code/game/objects/effects/decals/warning_stripes.dm +++ b/code/game/objects/effects/decals/warning_stripes.dm @@ -91,6 +91,20 @@ /obj/effect/decal/sand_overlay/sand2/corner2 icon_state = "sand2_c" +/obj/effect/decal/grass_overlay + name = "grass edge" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + unacidable = TRUE + icon = 'icons/turf/floors/auto_strata_grass.dmi' + layer = TURF_LAYER + +/obj/effect/decal/grass_overlay/grass1 + icon_state = "grass_outercorner" + +/obj/effect/decal/grass_overlay/grass1/inner + name = "grass edge" + icon_state = "grass_innercorner" + /obj/effect/decal/siding name = "siding" icon = 'icons/turf/floors/floors.dmi' diff --git a/code/game/objects/effects/effect_system/chemsmoke.dm b/code/game/objects/effects/effect_system/chemsmoke.dm index eeb17f7c98d0..0c74912ceb25 100644 --- a/code/game/objects/effects/effect_system/chemsmoke.dm +++ b/code/game/objects/effects/effect_system/chemsmoke.dm @@ -195,7 +195,7 @@ chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / dist, safety = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents smoke.icon = I smoke.layer = FLY_LAYER - smoke.setDir(pick(cardinal)) + smoke.setDir(pick(GLOB.cardinals)) smoke.pixel_x = -32 + rand(-8,8) smoke.pixel_y = -32 + rand(-8,8) walk_to(smoke, T) @@ -229,7 +229,7 @@ while(pending.len) for(var/turf/current in pending) - for(var/D in cardinal) + for(var/D in GLOB.cardinals) var/turf/target = get_step(current, D) if(wallList) if(istype(target, /turf/closed/wall)) diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 49342af8514f..2e2203682798 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -41,10 +41,10 @@ would spawn and follow the beaker, even if it is carried or thrown. // will always spawn at the items location, even if it's moved. /* Example: -var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system -steam.set_up(5, 0, mob.loc) -- sets up variables -OPTIONAL: steam.attach(mob) -steam.start() -- spawns the effect + var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system + steam.set_up(5, 0, mob.loc) -- sets up variables + OPTIONAL: steam.attach(mob) + steam.start() -- spawns the effect */ ///////////////////////////////////////////// /obj/effect/particle_effect/steam @@ -71,9 +71,9 @@ steam.start() -- spawns the effect var/obj/effect/particle_effect/steam/steam = new /obj/effect/particle_effect/steam(location) var/direction if(cardinals) - direction = pick(cardinal) + direction = pick(GLOB.cardinals) else - direction = pick(alldirs) + direction = pick(GLOB.alldirs) for(i=0, i0) S.spread_smoke() @@ -548,7 +548,7 @@ if(QDELETED(src)) return var/turf/U = get_turf(src) if(!U) return - for(var/i in cardinal) + for(var/i in GLOB.cardinals) if(direction && i != direction) continue var/turf/T = get_step(U, i) @@ -569,7 +569,7 @@ if(istype(A, /obj/flamer_fire)) qdel(A) - S.setDir(pick(cardinal)) + S.setDir(pick(GLOB.cardinals)) S.time_to_live = time_to_live if(S.amount>0) S.spread_smoke() diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index bebe0ec8b27f..aa5e2ec400e2 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -46,7 +46,7 @@ set background = 1 var/direction = 16 - for(var/wallDir in cardinal) + for(var/wallDir in GLOB.cardinals) var/turf/newTurf = get_step(location,wallDir) if(istype(newTurf, /turf/closed/wall)) direction |= wallDir @@ -95,8 +95,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/effect/glowshroom/fire_act(exposed_temperature, exposed_volume) if(exposed_temperature > 300) diff --git a/code/game/objects/effects/landmarks/corpsespawner.dm b/code/game/objects/effects/landmarks/corpsespawner.dm index fe338bceabfe..27a717f58ba8 100644 --- a/code/game/objects/effects/landmarks/corpsespawner.dm +++ b/code/game/objects/effects/landmarks/corpsespawner.dm @@ -135,7 +135,7 @@ /obj/effect/landmark/corpsespawner/wy/manager/burst name = "Burst Corporate Supervisor" - equip_path = /datum/equipment_preset/corpse/ua_riot/burst + equip_path = /datum/equipment_preset/corpse/wy/manager/burst ///////////Faction Specific Corpses////////////////////// diff --git a/code/game/objects/effects/landmarks/item_pool.dm b/code/game/objects/effects/landmarks/item_pool.dm index e01a6bbc3fd0..a5e628cd656b 100644 --- a/code/game/objects/effects/landmarks/item_pool.dm +++ b/code/game/objects/effects/landmarks/item_pool.dm @@ -13,10 +13,10 @@ /obj/effect/landmark/item_pool_spawner/Initialize(mapload, ...) . = ..() - item_pool_landmarks += src + GLOB.item_pool_landmarks += src /obj/effect/landmark/item_pool_spawner/Destroy() - item_pool_landmarks -= src + GLOB.item_pool_landmarks -= src . = ..() /obj/effect/landmark/item_pool_spawner/corsat_bio_lock diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 5f4a374ba31c..45cc6fd8b5fa 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -508,3 +508,7 @@ /// In landmarks.dm and not unit_test.dm so it is always active in the mapping tools. /obj/effect/landmark/unit_test_top_right name = "unit test zone top right" + +/// Marks the bottom left of the tutorial zone. +/obj/effect/landmark/tutorial_bottom_left + name = "tutorial bottom left" diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index 25cc1a80d0b4..a53fead0d3bf 100644 --- a/code/game/objects/effects/landmarks/survivor_spawner.dm +++ b/code/game/objects/effects/landmarks/survivor_spawner.dm @@ -8,6 +8,8 @@ var/roundstart_damage_min = 0 var/roundstart_damage_max = 0 var/roundstart_damage_times = 1 + /// Whether or not the spawner is for an inherently hostile survivor subtype. + var/hostile = FALSE var/spawn_priority = LOWEST_SPAWN_PRIORITY @@ -27,6 +29,7 @@ return TRUE /obj/effect/landmark/survivor_spawner/lv624_crashed_clf + hostile = TRUE equipment = /datum/equipment_preset/survivor/clf synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

    You are a survivor of a crash landing!

    ",\ @@ -40,6 +43,7 @@ spawn_priority = SPAWN_PRIORITY_HIGH /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer + hostile = TRUE equipment = /datum/equipment_preset/clf/engineer synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

    You are a survivor of a crash landing!

    ",\ @@ -53,6 +57,7 @@ spawn_priority = SPAWN_PRIORITY_VERY_HIGH /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_medic + hostile = TRUE equipment = /datum/equipment_preset/clf/medic synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

    You are a survivor of a crash landing!

    ",\ @@ -145,7 +150,7 @@ intro_text = list("

    You are a member of a UPP recon force!

    ",\ "You ARE aware of the xenomorph threat.",\ "Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons") - story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?" + story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route." spawn_priority = SPAWN_PRIORITY_LOW /obj/effect/landmark/survivor_spawner/upp_sapper @@ -154,7 +159,7 @@ intro_text = list("

    You are a member of a UPP recon force!

    ",\ "You ARE aware of the xenomorph threat.",\ "Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons") - story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?" + story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route." spawn_priority = SPAWN_PRIORITY_MEDIUM /obj/effect/landmark/survivor_spawner/upp_medic @@ -163,7 +168,7 @@ intro_text = list("

    You are a member of a UPP recon force!

    ",\ "You ARE aware of the xenomorph threat.",\ "Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons") - story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?" + story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route." spawn_priority = SPAWN_PRIORITY_MEDIUM /obj/effect/landmark/survivor_spawner/upp_specialist @@ -172,7 +177,7 @@ intro_text = list("

    You are a member of a UPP recon force!

    ",\ "You ARE aware of the xenomorph threat.",\ "Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons") - story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?" + story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route." spawn_priority = SPAWN_PRIORITY_HIGH /obj/effect/landmark/survivor_spawner/squad_leader @@ -181,5 +186,5 @@ intro_text = list("

    You are a member of a UPP recon force!

    ",\ "You ARE aware of the xenomorph threat.",\ "Your primary objective is to survive. You believe a second dropship crashed somewhere to the south east, which was carrying additional weapons") - story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route, but is the enemy of my enemy truly your friend?" + story_text = "Your orders were simple, Recon the site, ascertain if there is a biological weapons program in the area, and if so to secure the colony and retrieve a sample. However your team failed to account for an active anti-air battery near the area. Both your craft and your sister ship crashed. Barely having a chance to catch your breath, you found yourself being assailed by vile xenomorphs! You and your team have barely held your ground, at the cost of four of your own, but more are coming and ammo is low. You believe an American rescue force is en route." spawn_priority = SPAWN_PRIORITY_VERY_HIGH diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 16f30eaf0fd2..ce0fd5506cd7 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -176,17 +176,17 @@ user = _user if(squad_name) name = "[squad_name] laser" - if(user && user.faction && cas_groups[user.faction]) + if(user && user.faction && GLOB.cas_groups[user.faction]) signal = new(src) signal.name = name signal.target_id = tracking_id signal.linked_cam = new(loc, name) - cas_groups[user.faction].add_signal(signal) + GLOB.cas_groups[user.faction].add_signal(signal) /obj/effect/overlay/temp/laser_target/Destroy() if(signal) - cas_groups[user.faction].remove_signal(signal) + GLOB.cas_groups[user.faction].remove_signal(signal) if(signal.linked_cam) qdel(signal.linked_cam) signal.linked_cam = null @@ -225,7 +225,7 @@ effect_duration = 10 /obj/effect/overlay/temp/emp_sparks/New(loc) - setDir(pick(cardinal)) + setDir(pick(GLOB.cardinals)) ..() /obj/effect/overlay/temp/emp_pulse diff --git a/code/game/objects/effects/spawners/faction_spawners.dm b/code/game/objects/effects/spawners/faction_spawners.dm new file mode 100644 index 000000000000..2daf6392e5e7 --- /dev/null +++ b/code/game/objects/effects/spawners/faction_spawners.dm @@ -0,0 +1,197 @@ +/* + * USCM weapons + */ +/obj/effect/spawner/random/gun/uscm_primary + name = "USCM primary weapon spawner" + desc = "spawns USCM primary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/rifle/m41a = /obj/item/ammo_magazine/rifle, + /obj/item/weapon/gun/rifle/m41a/tactical = /obj/item/ammo_magazine/rifle, + /obj/item/weapon/gun/smg/m39 = /obj/item/ammo_magazine/smg/m39, + /obj/item/weapon/gun/smg/m39 = /obj/item/ammo_magazine/smg/m39, + /obj/item/weapon/gun/shotgun/pump = /datum/ammo/bullet/shotgun/buckshot + ) + +/obj/effect/spawner/random/gun/uscm_primary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_20" + +/obj/effect/spawner/random/gun/uscm_primary/midchance + spawn_nothing_percentage = 50 + icon_state = "loot_rifle_50" + +/obj/effect/spawner/random/gun/uscm_primary/highchance + spawn_nothing_percentage = 20 + icon_state = "loot_rifle_80" + +/obj/effect/spawner/random/gun/uscm_secondary + name = "USCM secondary weapon spawner" + desc = "spawns USCM secondary weapons" + spawn_nothing_percentage = 0 + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/pistol/m4a3 = /obj/item/ammo_magazine/pistol, + /obj/item/weapon/gun/revolver/m44 = /obj/item/ammo_magazine/handful/revolver/marksman + ) + +/obj/effect/spawner/random/gun/uscm_secondary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_pistol_20" + +/obj/effect/spawner/random/gun/uscm_secondary/midchance + spawn_nothing_percentage = 50 + icon_state = "loot_pistol_50" + +/obj/effect/spawner/random/gun/uscm_secondary/highchance + spawn_nothing_percentage = 80 + icon_state = "loot_pistol_80" + + +/* + * UPP weapons + */ +/obj/effect/spawner/random/gun/upp_primary + name = "UPP primary weapon spawner" + desc = "spawns UPP primary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/smg/bizon/upp = /obj/item/ammo_magazine/smg/bizon, + /obj/item/weapon/gun/rifle/type71 = /obj/item/ammo_magazine/rifle/type71, + /obj/item/weapon/gun/rifle/type71/carbine = /obj/item/ammo_magazine/rifle/type71 + ) + +/obj/effect/spawner/random/gun/upp_primary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_20" + +/obj/effect/spawner/random/gun/upp_primary/midchance + spawn_nothing_percentage = 50 + icon_state = "loot_rifle_50" + +/obj/effect/spawner/random/gun/upp_primary/highchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_80" + +/obj/effect/spawner/random/gun/upp_secondary + name = "UPP secondary weapon spawner" + desc = "spawns UPP secondary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/pistol/t73 = /obj/item/ammo_magazine/pistol/t73, + /obj/item/weapon/gun/pistol/np92 = /obj/item/ammo_magazine/pistol/np92, + /obj/item/weapon/gun/revolver/upp = /obj/item/ammo_magazine/revolver/upp + ) + +/obj/effect/spawner/random/gun/upp_secondary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_pistol_20" + +/obj/effect/spawner/random/gun/upp_secondary/medchance + spawn_nothing_percentage = 50 + icon_state = "loot_pistol_50" + +/obj/effect/spawner/random/gun/upp_secondary/highchance + spawn_nothing_percentage = 20 + icon_state = "loot_pistol_80" +/* + * PMC weapons + */ +/obj/effect/spawner/random/gun/pmc_primary + name = "PMC primary weapon spawner" + desc = "spawns PMC primary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/rifle/m41a/elite = /obj/item/ammo_magazine/rifle/ap, + /obj/item/weapon/gun/rifle/m41a/elite = /obj/item/ammo_magazine/rifle/extended, + /obj/item/weapon/gun/smg/m39/elite = /obj/item/ammo_magazine/smg/m39/ap, + /obj/item/weapon/gun/smg/m39/elite = /obj/item/ammo_magazine/smg/m39/extended, + /obj/item/weapon/gun/rifle/nsg23 = /obj/item/ammo_magazine/rifle/nsg23/ap, + /obj/item/weapon/gun/rifle/nsg23 = /obj/item/ammo_magazine/rifle/nsg23/extended + ) + +/obj/effect/spawner/random/gun/pmc_primary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_20" + +/obj/effect/spawner/random/gun/pmc_primary/midchance + spawn_nothing_percentage = 50 + icon_state = "loot_rifle_50" + +/obj/effect/spawner/random/gun/pmc_primary/highchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_80" + +/obj/effect/spawner/random/gun/pmc_secondary + name = "PMC secondary weapon spawner" + desc = "spawns PMC secondary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/pistol/vp78 = /obj/item/ammo_magazine/pistol/vp78, + /obj/item/weapon/gun/pistol/mod88 = /obj/item/ammo_magazine/pistol/mod88 + ) + +/obj/effect/spawner/random/gun/pmc_secondary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_pistol_20" + +/obj/effect/spawner/random/gun/pmc_secondary/medchance + spawn_nothing_percentage = 50 + icon_state = "loot_pistol_50" + +/obj/effect/spawner/random/gun/pmc_secondary/highchance + spawn_nothing_percentage = 20 + icon_state = "loot_pistol_80" + +/* + * CLF weapons + */ +/obj/effect/spawner/random/gun/clf_primary + name = "CLF primary weapon spawner" + desc = "spawns CLF primary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/rifle/m16 = /obj/item/ammo_magazine/rifle/m16, + /obj/item/weapon/gun/rifle/mar40/carbine = /obj/item/ammo_magazine/rifle/mar40 + ) + +/obj/effect/spawner/random/gun/clf_primary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_20" + +/obj/effect/spawner/random/gun/clf_primary/midchance + spawn_nothing_percentage = 50 + icon_state = "loot_rifle_50" + +/obj/effect/spawner/random/gun/clf_primary/highchance + spawn_nothing_percentage = 80 + icon_state = "loot_rifle_80" + +/obj/effect/spawner/random/gun/clf_secondary + name = "CLF secondary weapon spawner" + desc = "spawns CLF secondary weapons" + mags_max = 2 + mags_min = 1 + guns = list( + /obj/item/weapon/gun/pistol/kt42 = /obj/item/ammo_magazine/pistol/kt42, + /obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs + ) + +/obj/effect/spawner/random/gun/clf_secondary/lowchance + spawn_nothing_percentage = 80 + icon_state = "loot_pistol_20" + +/obj/effect/spawner/random/gun/clf_secondary/medchance + spawn_nothing_percentage = 50 + icon_state = "loot_pistol_50" + +/obj/effect/spawner/random/gun/clf_secondary/highchance + spawn_nothing_percentage = 20 + icon_state = "loot_pistol_80" diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 382b92489baa..77b69f79e86f 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -99,7 +99,7 @@ gibamounts = list(1,1,1) /obj/effect/spawner/gibspawner/human/Initialize(mapload, list/viruses, mob/living/ml, fleshcolor, bloodcolor) - gibdirections = list(alldirs, alldirs, list()) + gibdirections = list(GLOB.alldirs, GLOB.alldirs, list()) . = ..() /obj/effect/spawner/gibspawner/xeno @@ -107,7 +107,7 @@ gibamounts = list(1,1,1) /obj/effect/spawner/gibspawner/xeno/Initialize(mapload, list/viruses, mob/living/ml, fleshcolor, bloodcolor) - gibdirections = list(alldirs, alldirs, list()) + gibdirections = list(GLOB.alldirs, GLOB.alldirs, list()) . = ..() /obj/effect/spawner/gibspawner/robot @@ -116,6 +116,6 @@ gibamounts = list(1,1,1,1,1,1) /obj/effect/spawner/gibspawner/robot/Initialize(mapload, list/viruses, mob/living/ml, fleshcolor, bloodcolor) - gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs) gibamounts[6] = pick(0,1,2) . = ..() diff --git a/code/game/objects/effects/spawners/prop_gun_spawner.dm b/code/game/objects/effects/spawners/prop_gun_spawner.dm index b04f6cffffe1..5e620994e7fb 100644 --- a/code/game/objects/effects/spawners/prop_gun_spawner.dm +++ b/code/game/objects/effects/spawners/prop_gun_spawner.dm @@ -17,7 +17,7 @@ stack_trace("[src] using incorrect typepath, \"[prop_gun_type]\".") //Can't make a prop gun of something not a gun qdel(src) return - if(!spawn_prob) + if(!prob(spawn_prob)) qdel(src) return if(!mapload) @@ -71,6 +71,7 @@ pixel_x = source_gun.pixel_x pixel_y = source_gun.pixel_y layer = source_gun.layer + overlays = source_gun.overlays /obj/item/prop/prop_gun/attack_self(mob/user) //Mimic wielding of real guns . = ..() diff --git a/code/game/objects/effects/spawners/random.dm b/code/game/objects/effects/spawners/random.dm index 450981377a73..388e9f289cd7 100644 --- a/code/game/objects/effects/spawners/random.dm +++ b/code/game/objects/effects/spawners/random.dm @@ -57,10 +57,13 @@ icon_state = "atmos" /obj/effect/spawner/random/technology_scanner/item_to_spawn() - return pick(prob(5);/obj/item/device/t_scanner,\ - prob(2);/obj/item/device/radio,\ - prob(5);/obj/item/device/analyzer) - + return pick_weight(list( + "none" = 10, + /obj/item/device/t_scanner = 10, + /obj/item/device/radio = 8, + /obj/item/device/analyzer = 10, + /obj/item/device/black_market_hacking_device = 2, + )) /obj/effect/spawner/random/powercell name = "Random Powercell" @@ -339,38 +342,37 @@ var/gunpath = pick(guns) var/ammopath if(istype(gunpath, /obj/item/weapon/gun/shotgun)) - ammopath = pick(shotgun_boxes_12g) + ammopath = pick(GLOB.shotgun_boxes_12g) else if(istype(gunpath, /obj/item/weapon/gun/launcher/grenade)) - ammopath = pick(grenade_packets) + ammopath = pick(GLOB.grenade_packets) else ammopath = guns[gunpath] spawn_weapon_on_floor(gunpath, ammopath, rand(mags_min, mags_max)) /obj/effect/spawner/random/gun/proc/spawn_weapon_on_floor(gunpath, ammopath, ammo_amount = 1) - var/atom/spawnloc = src - spawnloc = get_turf(spawnloc) + var/turf/spawnloc = get_turf(src) var/obj/gun var/obj/ammo if(gunpath) gun = new gunpath(spawnloc) if(scatter) - var/direction = pick(alldirs) - var/turf/T = get_step(gun, direction) - if(!T || T.density) + var/direction = pick(GLOB.alldirs) + var/turf/turf = get_step(gun, direction) + if(!turf || turf.density) return - gun.loc = T + gun.forceMove(turf) if(ammopath) for(var/i in 0 to ammo_amount-1) ammo = new ammopath(spawnloc) if(scatter) for(i=0, i\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? "by [user]." : ".")]")) else visible_message(SPAN_DANGER("\The [src] have been attacked with \the [W][(user ? "by [user]." : ".")]")) diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 2499810cbd3f..ab3c248c797f 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -50,7 +50,7 @@ if(ismob(AM)) var/mob/M = AM if(immobilize) - M.canmove = 0 + ADD_TRAIT(M, TRAIT_IMMOBILIZED, STEP_TRIGGER_TRAIT) affecting.Add(AM) while(AM && !stopthrow) @@ -87,7 +87,7 @@ if(ismob(AM)) var/mob/M = AM if(immobilize) - M.canmove = 1 + REMOVE_TRAIT(M, TRAIT_IMMOBILIZED, STEP_TRIGGER_TRAIT) /* Stops things thrown by a thrower, doesn't do anything */ diff --git a/code/game/objects/explosion_recursive.dm b/code/game/objects/explosion_recursive.dm index 1f52901c21a6..2ec61b0cc1f1 100644 --- a/code/game/objects/explosion_recursive.dm +++ b/code/game/objects/explosion_recursive.dm @@ -139,7 +139,7 @@ explosion resistance exactly as much as their health //spread in each ordinal direction var/direction_angle = dir2angle(direction) - for(var/spread_direction in alldirs) + for(var/spread_direction in GLOB.alldirs) var/spread_power = power if(direction) //false if, for example, this turf was the explosion source @@ -149,7 +149,7 @@ explosion resistance exactly as much as their health switch(angle) //this reduces power when the explosion is going around corners if (0) - //no change + pass() if (45) if(spread_power >= 0) spread_power *= 0.75 @@ -325,7 +325,7 @@ explosion resistance exactly as much as their health return if(!direction) - direction = pick(alldirs) + direction = pick(GLOB.alldirs) var/range = min(round(severity/src.w_class * 0.2, 1), 14) if(!direction) range = round( range/2 ,1) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 077c0a463aaa..7cb2781b253b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -156,6 +156,11 @@ var/list/inherent_traits + /// How much to offset the item randomly either way alongside X visually + var/ground_offset_x = 0 + /// How much to offset the item randomly either way alongside Y visually + var/ground_offset_y = 0 + /obj/item/Initialize(mapload, ...) . = ..() @@ -175,6 +180,8 @@ if(flags_item & MOB_LOCK_ON_EQUIP) AddComponent(/datum/component/id_lock) + scatter_item() + /obj/item/Destroy() flags_item &= ~DELONDROP //to avoid infinite loop of unequip, delete, unequip, delete. flags_item &= ~NODROP //so the item is properly unequipped if on a mob. @@ -268,7 +275,6 @@ cases. Override_icon_state should be a list.*/ size = "huge" if(SIZE_MASSIVE) size = "massive" - else . += "This is a [blood_color ? blood_color != "#030303" ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." if(desc) . += desc @@ -358,6 +364,7 @@ cases. Override_icon_state should be a list.*/ qdel(src) SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) + SEND_SIGNAL(user, COMSIG_MOB_ITEM_DROPPED, src) if(drop_sound && (src.loc?.z)) playsound(src, drop_sound, dropvol, drop_vary) src.do_drop_animation(user) @@ -459,27 +466,32 @@ cases. Override_icon_state should be a list.*/ /obj/item/proc/item_action_slot_check(mob/user, slot) return TRUE +/obj/item/proc/scatter_item() + if(!pixel_x && !pixel_y) + pixel_x = rand(-ground_offset_x, ground_offset_x) + pixel_y = rand(-ground_offset_y, ground_offset_y) + // The mob M is attempting to equip this item into the slot passed through as 'slot'. return TRUE if it can do this and 0 if it can't. // If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. // Set disable_warning to TRUE if you wish it to not give you outputs. // warning_text is used in the case that you want to provide a specific warning for why the item cannot be equipped. -/obj/item/proc/mob_can_equip(mob/M, slot, disable_warning = FALSE) +/obj/item/proc/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE) if(!slot) return FALSE - if(!M) + if(!equipping_mob) return FALSE - if(SEND_SIGNAL(src, COMSIG_ITEM_ATTEMPTING_EQUIP, M) & COMPONENT_CANCEL_EQUIP) + if(SEND_SIGNAL(src, COMSIG_ITEM_ATTEMPTING_EQUIP, equipping_mob, slot) & COMPONENT_CANCEL_EQUIP) return FALSE - if(ishuman(M)) + if(ishuman(equipping_mob)) //START HUMAN - var/mob/living/carbon/human/H = M + var/mob/living/carbon/human/human = equipping_mob var/list/mob_equip = list() - if(H.hud_used && H.hud_used.equip_slots) - mob_equip = H.hud_used.equip_slots + if(human.hud_used && human.hud_used.equip_slots) + mob_equip = human.hud_used.equip_slots - if(H.species && !(slot in mob_equip)) + if(human.species && !(slot in mob_equip)) return FALSE if(uniform_restricted) @@ -490,136 +502,136 @@ cases. Override_icon_state should be a list.*/ required_clothing += initial(restriction_type.name) // You can't replace this with a switch(), flags_equip_slot is a bitfield if(valid_equip_slots & SLOT_ICLOTHING) - if(istype(H.w_uniform, restriction_type)) + if(istype(human.w_uniform, restriction_type)) restriction_satisfied = TRUE break if(valid_equip_slots & SLOT_OCLOTHING) - if(istype(H.wear_suit, restriction_type)) + if(istype(human.wear_suit, restriction_type)) restriction_satisfied = TRUE break if(!restriction_satisfied) if(!disable_warning) - to_chat(H, SPAN_WARNING("You cannot wear this without wearing one of the following; [required_clothing.Join(", ")].")) + to_chat(human, SPAN_WARNING("You cannot wear this without wearing one of the following; [required_clothing.Join(", ")].")) return FALSE switch(slot) if(WEAR_L_HAND) - if(H.l_hand) + if(human.l_hand) return FALSE - if(H.lying) - to_chat(H, SPAN_WARNING("You can't equip that while lying down.")) + if(human.body_position == LYING_DOWN) + to_chat(human, SPAN_WARNING("You can't equip that while lying down.")) return return TRUE if(WEAR_R_HAND) - if(H.r_hand) + if(human.r_hand) return FALSE - if(H.lying) - to_chat(H, SPAN_WARNING("You can't equip that while lying down.")) + if(human.body_position == LYING_DOWN) + to_chat(human, SPAN_WARNING("You can't equip that while lying down.")) return return TRUE if(WEAR_FACE) - if(H.wear_mask) + if(human.wear_mask) return FALSE if(!(flags_equip_slot & SLOT_FACE)) return FALSE return TRUE if(WEAR_BACK) - if(H.back) + if(human.back) return FALSE if(!(flags_equip_slot & SLOT_BACK)) return FALSE return TRUE if(WEAR_JACKET) - if(H.wear_suit) + if(human.wear_suit) return FALSE if(!(flags_equip_slot & SLOT_OCLOTHING)) return FALSE return TRUE if(WEAR_HANDS) - if(H.gloves) + if(human.gloves) return FALSE if(!(flags_equip_slot & SLOT_HANDS)) return FALSE return TRUE if(WEAR_FEET) - if(H.shoes) + if(human.shoes) return FALSE if(!(flags_equip_slot & SLOT_FEET)) return FALSE return TRUE if(WEAR_WAIST) - if(H.belt) + if(human.belt) return FALSE - if(!H.w_uniform && (WEAR_BODY in mob_equip)) + if(!human.w_uniform && (WEAR_BODY in mob_equip)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) + to_chat(human, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) return FALSE if(!(flags_equip_slot & SLOT_WAIST)) return return TRUE if(WEAR_EYES) - if(H.glasses) + if(human.glasses) return FALSE if(!(flags_equip_slot & SLOT_EYES)) return FALSE return TRUE if(WEAR_HEAD) - if(H.head) + if(human.head) return FALSE if(!(flags_equip_slot & SLOT_HEAD)) return FALSE return TRUE if(WEAR_L_EAR) - if(H.wear_l_ear) + if(human.wear_l_ear) return FALSE if(HAS_TRAIT(src, TRAIT_ITEM_EAR_EXCLUSIVE)) - if(H.wear_r_ear && HAS_TRAIT(H.wear_r_ear, TRAIT_ITEM_EAR_EXCLUSIVE)) + if(human.wear_r_ear && HAS_TRAIT(human.wear_r_ear, TRAIT_ITEM_EAR_EXCLUSIVE)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You can't wear [src] while you have [H.wear_r_ear] in your right ear!")) + to_chat(human, SPAN_WARNING("You can't wear [src] while you have [human.wear_r_ear] in your right ear!")) return FALSE if(!(flags_equip_slot & SLOT_EAR)) return FALSE return TRUE if(WEAR_R_EAR) - if(H.wear_r_ear) + if(human.wear_r_ear) return FALSE if(HAS_TRAIT(src, TRAIT_ITEM_EAR_EXCLUSIVE)) - if(H.wear_l_ear && HAS_TRAIT(H.wear_l_ear, TRAIT_ITEM_EAR_EXCLUSIVE)) + if(human.wear_l_ear && HAS_TRAIT(human.wear_l_ear, TRAIT_ITEM_EAR_EXCLUSIVE)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You can't wear [src] while you have [H.wear_l_ear] in your left ear!")) + to_chat(human, SPAN_WARNING("You can't wear [src] while you have [human.wear_l_ear] in your left ear!")) return FALSE if(!(flags_equip_slot & SLOT_EAR)) return FALSE return TRUE if(WEAR_BODY) - if(H.w_uniform) + if(human.w_uniform) return FALSE if(!(flags_equip_slot & SLOT_ICLOTHING)) return FALSE return TRUE if(WEAR_ID) - if(H.wear_id) + if(human.wear_id) return FALSE if(!(flags_equip_slot & SLOT_ID)) return FALSE return TRUE if(WEAR_L_STORE) - if(H.l_store) + if(human.l_store) return FALSE - if(!H.w_uniform && (WEAR_BODY in mob_equip)) + if(!human.w_uniform && (WEAR_BODY in mob_equip)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) + to_chat(human, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) return FALSE if(flags_equip_slot & SLOT_NO_STORE) return FALSE if(w_class <= SIZE_SMALL || (flags_equip_slot & SLOT_STORE)) return TRUE if(WEAR_R_STORE) - if(H.r_store) + if(human.r_store) return FALSE - if(!H.w_uniform && (WEAR_BODY in mob_equip)) + if(!human.w_uniform && (WEAR_BODY in mob_equip)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) + to_chat(human, SPAN_WARNING("You need a jumpsuit before you can attach this [name].")) return FALSE if(flags_equip_slot & SLOT_NO_STORE) return FALSE @@ -627,109 +639,107 @@ cases. Override_icon_state should be a list.*/ return TRUE return FALSE if(WEAR_ACCESSORY) - for(var/obj/item/clothing/C in H.contents) - if(C.can_attach_accessory(src)) + for(var/obj/item/clothing/clothes in human.contents) + if(clothes.can_attach_accessory(src)) return TRUE return FALSE if(WEAR_J_STORE) - if(H.s_store) + if(human.s_store) return FALSE if(flags_equip_slot & SLOT_SUIT_STORE) return TRUE if(flags_equip_slot & SLOT_BLOCK_SUIT_STORE) return FALSE - if(!H.wear_suit && (WEAR_JACKET in mob_equip)) + if(!human.wear_suit && (WEAR_JACKET in mob_equip)) if(!disable_warning) - to_chat(H, SPAN_WARNING("You need a suit before you can attach this [name].")) + to_chat(human, SPAN_WARNING("You need a suit before you can attach this [name].")) return FALSE - if(H.wear_suit && !H.wear_suit.allowed) + if(human.wear_suit && !human.wear_suit.allowed) if(!disable_warning) to_chat(usr, "You somehow have a suit with no defined allowed items for suit storage, stop that.") return FALSE - if(H.wear_suit && is_type_in_list(src, H.wear_suit.allowed)) + if(human.wear_suit && is_type_in_list(src, human.wear_suit.allowed)) return TRUE return FALSE if(WEAR_HANDCUFFS) - if(H.handcuffed) + if(human.handcuffed) return FALSE if(!istype(src, /obj/item/handcuffs)) return FALSE return TRUE if(WEAR_LEGCUFFS) - if(H.legcuffed) + if(human.legcuffed) return FALSE if(!istype(src, /obj/item/legcuffs)) return FALSE return TRUE if(WEAR_IN_ACCESSORY) - if(H.w_uniform) - for(var/A in H.w_uniform.accessories) - if(istype(A, /obj/item/clothing/accessory/storage)) - var/obj/item/clothing/accessory/storage/S = A - if(S.hold.can_be_inserted(src, M, TRUE)) + if(human.w_uniform) + for(var/accessory in human.w_uniform.accessories) + if(istype(accessory, /obj/item/clothing/accessory/storage)) + var/obj/item/clothing/accessory/storage/holster = accessory + if(holster.hold.can_be_inserted(src, human, TRUE)) return TRUE - else if(istype(A, /obj/item/storage/internal/accessory/holster)) - var/obj/item/storage/internal/accessory/holster/AH = A - if(!(AH.current_gun) && AH.can_be_inserted(src, M)) + else if(istype(accessory, /obj/item/storage/internal/accessory/holster)) + var/obj/item/storage/internal/accessory/holster/internal_storage = accessory + if(!(internal_storage.current_gun) && internal_storage.can_be_inserted(src, human)) return TRUE return FALSE if(WEAR_IN_JACKET) - if(H.wear_suit) - var/obj/item/clothing/suit/storage/S = H.wear_suit - if(istype(S) && S.pockets)//not all suits have pockits - var/obj/item/storage/internal/I = S.pockets - if(I.can_be_inserted(src, M, TRUE)) + if(human.wear_suit) + var/obj/item/clothing/suit/storage/storage = human.wear_suit + if(istype(storage) && storage.pockets)//not all suits have pockits + var/obj/item/storage/internal/internal_storage = storage.pockets + if(internal_storage.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_HELMET) - if(H.head) - var/obj/item/clothing/head/helmet/marine/HM = H.head - if(istype(HM) && HM.pockets)//not all helmuts have pockits - var/obj/item/storage/internal/I = HM.pockets - if(I.can_be_inserted(src, M, TRUE)) + if(human.head) + var/obj/item/clothing/head/helmet/marine/helmet = human.head + if(istype(helmet) && helmet.pockets)//not all helmuts have pockits + var/obj/item/storage/internal/internal_storage = helmet.pockets + if(internal_storage.can_be_inserted(src, human, TRUE)) return TRUE if(WEAR_IN_BACK) - if (H.back && isstorage(H.back)) - var/obj/item/storage/B = H.back - if(B.can_be_inserted(src, M, TRUE)) + if (human.back && isstorage(human.back)) + var/obj/item/storage/backpack = human.back + if(backpack.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_SHOES) - if(H.shoes && istype(H.shoes, /obj/item/clothing/shoes)) - var/obj/item/clothing/shoes/S = H.shoes - if(!S.stored_item && S.items_allowed && S.items_allowed.len) - for (var/i in S.items_allowed) - if(istype(src, i)) - return TRUE + if(human.shoes && istype(human.shoes, /obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/shoes = human.shoes + if(shoes.can_be_inserted(src)) + return TRUE return FALSE if(WEAR_IN_SCABBARD) - if(H.back && istype(H.back, /obj/item/storage/large_holster)) - var/obj/item/storage/large_holster/B = H.back - if(B.can_be_inserted(src, M, TRUE)) + if(human.back && istype(human.back, /obj/item/storage/large_holster)) + var/obj/item/storage/large_holster/backpack = human.back + if(backpack.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_BELT) - if(H.belt && isstorage(H.belt)) - var/obj/item/storage/B = H.belt - if(B.can_be_inserted(src, M, TRUE)) + if(human.belt && isstorage(human.belt)) + var/obj/item/storage/belt = human.belt + if(belt.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_J_STORE) - if(H.s_store && isstorage(H.s_store)) - var/obj/item/storage/B = H.s_store - if(B.can_be_inserted(src, M, TRUE)) + if(human.s_store && isstorage(human.s_store)) + var/obj/item/storage/armor = human.s_store + if(armor.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_L_STORE) - if(H.l_store && istype(H.l_store, /obj/item/storage/pouch)) - var/obj/item/storage/pouch/P = H.l_store - if(P.can_be_inserted(src, M, TRUE)) + if(human.l_store && istype(human.l_store, /obj/item/storage/pouch)) + var/obj/item/storage/pouch/pouch = human.l_store + if(pouch.can_be_inserted(src, human, TRUE)) return TRUE return FALSE if(WEAR_IN_R_STORE) - if(H.r_store && istype(H.r_store, /obj/item/storage/pouch)) - var/obj/item/storage/pouch/P = H.r_store - if(P.can_be_inserted(src, M, TRUE)) + if(human.r_store && istype(human.r_store, /obj/item/storage/pouch)) + var/obj/item/storage/pouch/pouch = human.r_store + if(pouch.can_be_inserted(src, human, TRUE)) return TRUE return FALSE return FALSE //Unsupported slot @@ -786,7 +796,7 @@ cases. Override_icon_state should be a list.*/ /obj/item/proc/showoff(mob/user) - var/list/viewers = get_mobs_in_view(world_view_size, user) + var/list/viewers = get_mobs_in_view(GLOB.world_view_size, user) user.langchat_speech("holds up [src].", viewers, GLOB.all_languages, skip_language_check = TRUE, animation_style = LANGCHAT_FAST_POP, additional_styles = list("langchat_small", "emote")) for (var/mob/M in viewers) M.show_message("[user] holds up [src]. Take a closer look.", SHOW_MESSAGE_VISIBLE) @@ -824,6 +834,8 @@ cases. Override_icon_state should be a list.*/ unzoom(user) /obj/item/proc/unzoom(mob/living/user) + if(user.interactee == src) + user.unset_interaction() var/zoom_device = zoomdevicename ? "\improper [zoomdevicename] of [src]" : "\improper [src]" INVOKE_ASYNC(user, TYPE_PROC_REF(/atom, visible_message), SPAN_NOTICE("[user] looks up from [zoom_device]."), SPAN_NOTICE("You look up from [zoom_device].")) @@ -839,7 +851,7 @@ cases. Override_icon_state should be a list.*/ UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) //General reset in case anything goes wrong, the view will always reset to default unless zooming in. if(user.client) - user.client.change_view(world_view_size, src) + user.client.change_view(GLOB.world_view_size, src) user.client.pixel_x = 0 user.client.pixel_y = 0 @@ -909,9 +921,10 @@ cases. Override_icon_state should be a list.*/ mob_state += GLOB.slot_to_contained_sprite_shorthand[slot] return mob_state -/obj/item/proc/drop_to_floor(mob/wearer) +/obj/item/proc/drop_to_floor(mob/wearer, body_position) SIGNAL_HANDLER - wearer.drop_inv_item_on_ground(src) + if(body_position == LYING_DOWN) + wearer.drop_inv_item_on_ground(src) // item animatzionen diff --git a/code/game/objects/items/XMAS.dm b/code/game/objects/items/XMAS.dm index 4b7bca2fb319..b10ea2035d96 100644 --- a/code/game/objects/items/XMAS.dm +++ b/code/game/objects/items/XMAS.dm @@ -66,7 +66,7 @@ gift_type = pick( /obj/item/weapon/gun/revolver/mateba, /obj/item/weapon/gun/pistol/heavy, - /obj/item/weapon/claymore, + /obj/item/weapon/sword, /obj/item/weapon/energy/sword/green, /obj/item/weapon/energy/sword/red, /obj/item/attachable/heavy_barrel, diff --git a/code/game/objects/items/books/manuals.dm b/code/game/objects/items/books/manuals.dm index ba2a30c35c7d..0854d2ec1b06 100644 --- a/code/game/objects/items/books/manuals.dm +++ b/code/game/objects/items/books/manuals.dm @@ -1302,9 +1302,9 @@ /obj/item/book/manual/orbital_cannon_manual/New() . = ..() - LAZYADD(objects_of_interest, src) + LAZYADD(GLOB.objects_of_interest, src) /obj/item/book/manual/orbital_cannon_manual/Destroy() . = ..() - LAZYREMOVE(objects_of_interest, src) + LAZYREMOVE(GLOB.objects_of_interest, src) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index a5e0eafe2f91..5f58a3b1d292 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -80,7 +80,7 @@ /// actual job var/rank = null /// Marine's paygrade - var/paygrade = "ME1" + var/paygrade = PAY_SHORT_CIV /// For medics and engineers to 'claim' a locker var/claimedgear = 1 @@ -97,6 +97,21 @@ . = ..() screen_loc = null +/obj/item/card/id/proc/GetJobName() //Used in secHUD icon generation + + var/job_icons = get_all_job_icons() + var/centcom = get_all_centcom_jobs() + + if(assignment in job_icons) + return assignment//Check if the job has a hud icon + if(rank in job_icons) + return rank + if(assignment in centcom) + return "Centcom"//Return with the NT logo if it is a Centcom job + if(rank in centcom) + return "Centcom" + return "Unknown" //Return unknown if none of the above apply + /obj/item/card/id/attack_self(mob/user as mob) ..() user.visible_message("[user] shows you: [icon2html(src, viewers(user))] [name]: assignment: [assignment]") @@ -129,6 +144,12 @@ to_chat(usr, "[icon2html(src, usr)] [name]: The current assignment on the card is [assignment]") to_chat(usr, "The blood type on the card is [blood_type].") +/obj/item/card/id/proc/check_biometrics(mob/living/carbon/human/target) + if(registered_ref && (registered_ref != WEAKREF(target))) + return FALSE + if(target.real_name != registered_name) + return FALSE + return TRUE /obj/item/card/id/data name = "identification holo-badge" diff --git a/code/game/objects/items/circuitboards/computer.dm b/code/game/objects/items/circuitboards/computer.dm index db19b79ac0fd..08dcfc6964a6 100644 --- a/code/game/objects/items/circuitboards/computer.dm +++ b/code/game/objects/items/circuitboards/computer.dm @@ -96,9 +96,9 @@ /obj/item/circuitboard/computer/atmos_alert name = "Circuit board (Atmospheric Alert)" build_path = /obj/structure/machinery/computer/atmos_alert -/obj/item/circuitboard/computer/pod - name = "Circuit board (Massdriver control)" - build_path = /obj/structure/machinery/computer/pod +/obj/item/circuitboard/computer/pod/old + name = "Circuit board (DoorMex)" + build_path = /obj/structure/machinery/computer/pod/old /obj/item/circuitboard/computer/robotics name = "Circuit board (Robotics Control)" build_path = /obj/structure/machinery/computer/robotics @@ -117,15 +117,6 @@ /obj/item/circuitboard/computer/powermonitor name = "Circuit board (Power Monitor)" build_path = /obj/structure/machinery/power/monitor -/obj/item/circuitboard/computer/olddoor - name = "Circuit board (DoorMex)" - build_path = /obj/structure/machinery/computer/pod/old -/obj/item/circuitboard/computer/syndicatedoor - name = "Circuit board (ProComp Executive)" - build_path = /obj/structure/machinery/computer/pod/old/syndicate -/obj/item/circuitboard/computer/swfdoor - name = "Circuit board (Magix)" - build_path = /obj/structure/machinery/computer/pod/old/swf /obj/item/circuitboard/computer/prisoner name = "Circuit board (Prisoner Management)" build_path = /obj/structure/machinery/computer/prisoner @@ -177,7 +168,11 @@ /obj/item/circuitboard/computer/supplycomp/attackby(obj/item/tool, mob/user) if(HAS_TRAIT(tool, TRAIT_TOOL_MULTITOOL)) - to_chat(user, SPAN_WARNING("You start messing around with the electronics of \the [src]...")) + to_chat(user, SPAN_WARNING("You try to pulse the circuit board, but nothing happens. Maybe you need something more specialized?")) + return + + else if(HAS_TRAIT(tool, TRAIT_TOOL_BLACKMARKET_HACKER)) + to_chat(user, SPAN_WARNING("You start messing around with the electronics of [src]...")) if(do_after(user, 8 SECONDS, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You have no idea what you're doing.")) @@ -191,8 +186,7 @@ to_chat(user, SPAN_WARNING("You weaken the broadcasting function with \the [tool], and the red light stops blinking, turning off. It's probably good now.")) contraband_enabled = FALSE - if(HAS_TRAIT(tool, TRAIT_TOOL_TRADEBAND)) - + else if(HAS_TRAIT(tool, TRAIT_TOOL_TRADEBAND)) if(!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) to_chat(user, SPAN_NOTICE("You do not know how to use [tool]")) return @@ -284,7 +278,7 @@ to_chat(usr, "No input found please hang up and try your call again.") return var/list/tempnetwork = splittext(input, ",") - tempnetwork = difflist(tempnetwork,RESTRICTED_CAMERA_NETWORKS,1) + tempnetwork = difflist(tempnetwork,GLOB.RESTRICTED_CAMERA_NETWORKS,1) if(tempnetwork.len < 1) to_chat(usr, "No network found please hang up and try your call again.") return @@ -293,14 +287,12 @@ /obj/item/circuitboard/computer/rdconsole/attackby(obj/item/I as obj, mob/user as mob) if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) - user.visible_message(SPAN_NOTICE("\the [user] adjusts the jumper on the [src]'s access protocol pins."), SPAN_NOTICE("You adjust the jumper on the access protocol pins.")) + user.visible_message(SPAN_NOTICE("[user] adjusts the jumper on [src]'s access protocol pins."), SPAN_NOTICE("You adjust the jumper on the access protocol pins.")) if(src.build_path == /obj/structure/machinery/computer/rdconsole/core) src.name = "Circuit Board (RD Console - Robotics)" src.build_path = /obj/structure/machinery/computer/rdconsole/robotics - to_chat(user, SPAN_NOTICE(" Access protocols set to robotics.")) + to_chat(user, SPAN_NOTICE("Access protocols set to robotics.")) else src.name = "Circuit Board (RD Console)" src.build_path = /obj/structure/machinery/computer/rdconsole/core - to_chat(user, SPAN_NOTICE(" Access protocols set to default.")) - - + to_chat(user, SPAN_NOTICE("Access protocols set to default.")) diff --git a/code/game/objects/items/circuitboards/machine.dm b/code/game/objects/items/circuitboards/machine.dm index ad4c31cb11e9..248d0d5c8885 100644 --- a/code/game/objects/items/circuitboards/machine.dm +++ b/code/game/objects/items/circuitboards/machine.dm @@ -141,7 +141,7 @@ to destroy them and players will be able to make replacements. if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) machine_dir = turn(machine_dir, 90) init_dirs = machine_dir - user.visible_message(SPAN_NOTICE("\The [user] adjusts the jumper on the [src]'s port configuration pins."), SPAN_NOTICE("You adjust the jumper on the port configuration pins. Now set to [dir2text(machine_dir)].")) + user.visible_message(SPAN_NOTICE("[user] adjusts the jumper on [src]'s port configuration pins."), SPAN_NOTICE("You adjust the jumper on the port configuration pins. Now set to [dir2text(machine_dir)].")) return /obj/item/circuitboard/machine/unary_atmos/get_examine_text(mob/user) @@ -300,5 +300,3 @@ to destroy them and players will be able to make replacements. // Board itself is high tech. Coils have to be ordered from cargo or salvaged from existing SMESs. frame_desc = "Requires 1 superconducting magnetic coil and 30 wires." req_components = list(/obj/item/stock_parts/smes_coil = 1, /obj/item/stack/cable_coil = 30) - - diff --git a/code/game/objects/items/circuitboards/robot_modules.dm b/code/game/objects/items/circuitboards/robot_modules.dm index 2e5185353852..04fcff10fa2b 100644 --- a/code/game/objects/items/circuitboards/robot_modules.dm +++ b/code/game/objects/items/circuitboards/robot_modules.dm @@ -9,13 +9,12 @@ var/list/stacktypes /obj/item/circuitboard/robot_module/emp_act(severity) + . = ..() if(modules) for(var/obj/O in modules) O.emp_act(severity) if(emag) emag.emp_act(severity) - ..() - return /obj/item/circuitboard/robot_module/Initialize() diff --git a/code/game/objects/items/devices/autopsy_scanner.dm b/code/game/objects/items/devices/autopsy_scanner.dm index c4c7ec665e23..6703ead88147 100644 --- a/code/game/objects/items/devices/autopsy_scanner.dm +++ b/code/game/objects/items/devices/autopsy_scanner.dm @@ -17,12 +17,12 @@ /obj/item/device/autopsy_scanner/Initialize() . = ..() - LAZYADD(objects_of_interest, src) + LAZYADD(GLOB.objects_of_interest, src) /obj/item/device/autopsy_scanner/Destroy() . = ..() - LAZYREMOVE(objects_of_interest, src) + LAZYREMOVE(GLOB.objects_of_interest, src) /datum/autopsy_data_scanner var/weapon = null // this is the DEFINITE weapon type that was used @@ -90,7 +90,7 @@ var/scan_data = "" if(timeofdeath) - scan_data += "Time of death: [worldtime2text("hh:mm", timeofdeath)] [time2text(timeofdeath, "DDD MMM DD [game_year]")]

    " + scan_data += "Time of death: [worldtime2text("hh:mm", timeofdeath)] [time2text(timeofdeath, "DDD MMM DD [GLOB.game_year]")]

    " var/n = 1 for(var/wdata_idx in wdata) @@ -139,7 +139,7 @@ if(damaging_weapon) scan_data += "Severity: [damage_desc]
    " scan_data += "Hits by weapon: [total_hits]
    " - scan_data += "Approximate time of wound infliction: [worldtime2text("hh:mm", age)] [time2text(age, "DDD MMM DD [game_year]")]
    " + scan_data += "Approximate time of wound infliction: [worldtime2text("hh:mm", age)] [time2text(age, "DDD MMM DD [GLOB.game_year]")]
    " scan_data += "Affected limbs: [D.organ_names]
    " scan_data += "Possible weapons:
    " for(var/weapon_name in weapon_chances) @@ -174,7 +174,7 @@ M.update_inv_r_hand() /obj/item/device/autopsy_scanner/attack(mob/living/carbon/human/M as mob, mob/living/carbon/user as mob) - if(!istype(M) || !M.lying) + if(!istype(M) || !M.is_mob_incapacitated()) return var/table diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index a4589fb1dd78..a9b7706bcfb7 100644 --- a/code/game/objects/items/devices/binoculars.dm +++ b/code/game/objects/items/devices/binoculars.dm @@ -38,10 +38,14 @@ /obj/item/device/binoculars/on_set_interaction(mob/user) flags_atom |= RELAY_CLICK - + RegisterSignal(user, COMSIG_HUMAN_MOVEMENT_CANCEL_INTERACTION, PROC_REF(interaction_handler)) /obj/item/device/binoculars/on_unset_interaction(mob/user) flags_atom &= ~RELAY_CLICK + UnregisterSignal(user, COMSIG_HUMAN_MOVEMENT_CANCEL_INTERACTION) + +/obj/item/device/binoculars/proc/interaction_handler() + return COMPONENT_HUMAN_MOVEMENT_KEEP_USING /obj/item/device/binoculars/civ desc = "A pair of binoculars." @@ -211,7 +215,7 @@ /obj/item/device/binoculars/range/designator/Initialize() . = ..() - tracking_id = ++cas_tracking_id_increment + tracking_id = ++GLOB.cas_tracking_id_increment /obj/item/device/binoculars/range/designator/Destroy() QDEL_NULL(laser) @@ -418,7 +422,7 @@ if(!(GLOB.character_traits[/datum/character_trait/skills/spotter] in human.traits)) to_chat(human, SPAN_WARNING("You have no idea how to use this!")) return FALSE - if(istype(human) && !human.is_mob_incapacitated() && !human.lying && (holder_item == human.r_hand || holder_item || human.l_hand)) + if(istype(human) && !human.is_mob_incapacitated() && (holder_item == human.r_hand || holder_item || human.l_hand)) return TRUE /datum/action/item_action/specialist/spotter_target/proc/use_ability(atom/targeted_atom) diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 80a0d603282f..1549fbd3739b 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -10,7 +10,7 @@ ..() var/list/cameras = new/list() - for (var/obj/structure/machinery/camera/C in cameranet.cameras) + for (var/obj/structure/machinery/camera/C in GLOB.cameranet.cameras) if (C.bugged && C.status) cameras.Add(C) if (length(cameras) == 0) diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index fc9bb015ece0..3f87b2bfbea2 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -24,7 +24,10 @@ COOLDOWN_DECLARE(distress_cooldown) /obj/item/device/cotablet/Initialize() - tacmap = new(src, minimap_type) + if(announcement_faction == FACTION_MARINE) + tacmap = new /datum/tacmap/drawing(src, minimap_type) + else + tacmap = new(src, minimap_type) // Non-drawing version if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH)) add_pmcs = FALSE else if(SSticker.current_state < GAME_STATE_PLAYING) @@ -60,8 +63,8 @@ /obj/item/device/cotablet/ui_data(mob/user) var/list/data = list() - data["alert_level"] = security_level - data["evac_status"] = EvacuationAuthority.evac_status + data["alert_level"] = GLOB.security_level + data["evac_status"] = SShijack.evac_status data["endtime"] = announcement_cooldown data["distresstime"] = distress_cooldown data["worldtime"] = world.time @@ -131,29 +134,28 @@ if(announcement_faction != FACTION_MARINE) return - if(security_level < SEC_LEVEL_RED) + if(GLOB.security_level < SEC_LEVEL_RED) to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE log_game("[key_name(usr)] has called for an emergency evacuation.") message_admins("[key_name_admin(usr)] has called for an emergency evacuation.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") + log_ares_security("Initiate Evacuation", "[usr] has called for an emergency evacuation.") . = TRUE if("distress") if(!SSticker.mode) return FALSE //Not a game mode? - if(security_level == SEC_LEVEL_DELTA) + if(GLOB.security_level == SEC_LEVEL_DELTA) to_chat(usr, SPAN_WARNING("The ship is already undergoing self destruct procedures!")) return FALSE diff --git a/code/game/objects/items/devices/cloaking.dm b/code/game/objects/items/devices/cloaking.dm index 05e7786744e2..b0c5ed799977 100644 --- a/code/game/objects/items/devices/cloaking.dm +++ b/code/game/objects/items/devices/cloaking.dm @@ -47,12 +47,12 @@ src.add_fingerprint(user) if(chameleon_on) user.alpha = 25 - to_chat(user, SPAN_NOTICE("You activate the [src].")) + to_chat(user, SPAN_NOTICE("You activate [src].")) spark_system.start() src.icon_state = "shield1" else user.alpha = initial(user.alpha) - to_chat(user, SPAN_NOTICE("You deactivate the [src].")) + to_chat(user, SPAN_NOTICE("You deactivate [src].")) src.icon_state = "shield0" spark_system.start() diff --git a/code/game/objects/items/devices/coins.dm b/code/game/objects/items/devices/coins.dm index 6ab79e3216d4..6c00364642da 100644 --- a/code/game/objects/items/devices/coins.dm +++ b/code/game/objects/items/devices/coins.dm @@ -11,11 +11,8 @@ black_market_value = 10 var/string_attached var/sides = 2 - -/obj/item/coin/Initialize() - . = ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 + ground_offset_x = 8 + ground_offset_y = 4 /obj/item/coin/gold name = "gold coin" @@ -29,6 +26,11 @@ icon_state = "coin_silver" black_market_value = 25 +//CO coin +/obj/item/coin/silver/falcon + name = "falling falcons challenge coin" + desc = "A small coin, bearing the falling falcons insignia." + /obj/item/coin/copper name = "copper coin" desc = "A familiar, but cheap form of currency." @@ -65,12 +67,6 @@ icon_state = "coin_platinum" black_market_value = 35 -/obj/item/coin/marine/synth - name = "synthetic experimental tool redemption token" - desc = "Insert this into a synthetic experimental tools vendor in order to access a variety of experimental support tools." - icon_state = "coin_synth" - black_market_value = 0 - /obj/item/coin/chitin name = "chitin coin" desc = "Durable alien chitin pressed into a coin. There are much better uses for chitin..." @@ -119,3 +115,33 @@ comment = "heads" user.visible_message(SPAN_NOTICE("[user] has thrown \the [src]. It lands on [comment]! "), \ SPAN_NOTICE("You throw \the [src]. It lands on [comment]! ")) + + +/obj/item/coin/marine + name = "marine equipment token" + desc = "I wonder what it does?" + icon_state = "coin_copper" + black_market_value = 0 + /// What is the token for? + var/token_type = VEND_TOKEN_VOID + +/obj/item/coin/marine/attackby(obj/item/W as obj, mob/user as mob) //To remove attaching a string functionality + return + +/obj/item/coin/marine/engineer + name = "marine engineer support token" + desc = "Insert this into an engineer vendor in order to access a support weapon." + icon_state = "coin_gold" + token_type = VEND_TOKEN_ENGINEER + +/obj/item/coin/marine/specialist + name = "marine specialist weapon token" + desc = "Insert this into a USCM equipment vendor in order to access a single highly dangerous weapon." + icon_state = "coin_diamond" + token_type = VEND_TOKEN_SPEC + +/obj/item/coin/marine/synth + name = "synthetic experimental tool redemption token" + desc = "Insert this into a synthetic experimental tools vendor in order to access a variety of experimental support tools." + icon_state = "coin_synth" + token_type = VEND_TOKEN_SYNTH diff --git a/code/game/objects/items/devices/device.dm b/code/game/objects/items/devices/device.dm index d3058960233c..23fe7b86bb3a 100644 --- a/code/game/objects/items/devices/device.dm +++ b/code/game/objects/items/devices/device.dm @@ -7,7 +7,7 @@ /obj/item/device/Initialize(mapload, ...) . = ..() - serial_number = "[rand(0,9)][pick(alphabet_uppercase)][rand(0,9)][rand(0,9)][rand(0,9)][rand(0,9)][pick(alphabet_uppercase)]" + serial_number = "[rand(0,9)][pick(GLOB.alphabet_uppercase)][rand(0,9)][rand(0,9)][rand(0,9)][rand(0,9)][pick(GLOB.alphabet_uppercase)]" /obj/item/device/get_examine_text(mob/user) . = ..() diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 0a7709aa6101..33a93ed18db5 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -155,6 +155,7 @@ do_flash(user = user, aoe = TRUE) /obj/item/device/flash/emp_act(severity) + . = ..() if(broken) return switch(flashes_stored) if(0 to 5) @@ -168,7 +169,6 @@ if(M.flash_eyes()) M.apply_effect(10, WEAKEN) M.visible_message(SPAN_DISARM("[M] is blinded by \the [src]!")) - ..() /obj/item/device/flash/synthetic name = "synthetic flash" diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index e795f4e28de4..58e86998f39a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -12,6 +12,8 @@ light_range = 5 light_power = 1 + ground_offset_x = 2 + ground_offset_y = 6 actions_types = list(/datum/action/item_action) var/on = FALSE @@ -33,6 +35,11 @@ else icon_state = initial(icon_state) +/obj/item/device/flashlight/animation_spin(speed = 5, loop_amount = -1, clockwise = TRUE, sections = 3, angular_offset = 0, pixel_fuzz = 0) + clockwise = pick(TRUE, FALSE) + angular_offset = rand(360) + return ..() + /obj/item/device/flashlight/proc/update_brightness(mob/user = null) if(on) set_light_range(light_range) @@ -296,8 +303,6 @@ // Causes flares to stop with a rotation offset for visual purposes /obj/item/device/flashlight/flare/animation_spin(speed = 5, loop_amount = -1, clockwise = TRUE, sections = 3, angular_offset = 0, pixel_fuzz = 0) - clockwise = pick(TRUE, FALSE) - angular_offset = rand(360) pixel_fuzz = 16 return ..() /obj/item/device/flashlight/flare/pickup() @@ -482,13 +487,13 @@ /obj/item/device/flashlight/flare/signal/activate_signal(mob/living/carbon/human/user) ..() - if(faction && cas_groups[faction]) + if(faction && GLOB.cas_groups[faction]) signal = new(src) - signal.target_id = ++cas_tracking_id_increment + signal.target_id = ++GLOB.cas_tracking_id_increment name = "[user.assigned_squad ? user.assigned_squad.name : "X"]-[signal.target_id] flare" signal.name = name signal.linked_cam = new(loc, name) - cas_groups[user.faction].add_signal(signal) + GLOB.cas_groups[user.faction].add_signal(signal) anchored = TRUE if(activate_message) visible_message(SPAN_DANGER("[src]'s flame reaches full strength. It's fully active now."), null, 5) @@ -508,14 +513,14 @@ /obj/item/device/flashlight/flare/signal/Destroy() STOP_PROCESSING(SSobj, src) if(signal) - cas_groups[faction].remove_signal(signal) + GLOB.cas_groups[faction].remove_signal(signal) QDEL_NULL(signal) return ..() /obj/item/device/flashlight/flare/signal/turn_off() anchored = FALSE if(signal) - cas_groups[faction].remove_signal(signal) + GLOB.cas_groups[faction].remove_signal(signal) qdel(signal) ..() @@ -544,9 +549,9 @@ turn_on() faction = FACTION_MARINE signal = new(src) - signal.target_id = ++cas_tracking_id_increment + signal.target_id = ++GLOB.cas_tracking_id_increment name += " [rand(100, 999)]" signal.name = name signal.linked_cam = new(loc, name) - cas_groups[FACTION_MARINE].add_signal(signal) + GLOB.cas_groups[FACTION_MARINE].add_signal(signal) anchored = TRUE diff --git a/code/game/objects/items/devices/helmet_visors.dm b/code/game/objects/items/devices/helmet_visors.dm index dd913daf7620..05d75a9fefd6 100644 --- a/code/game/objects/items/devices/helmet_visors.dm +++ b/code/game/objects/items/devices/helmet_visors.dm @@ -14,31 +14,65 @@ ///The sound when toggling off the visor var/toggle_off_sound = 'sound/handling/hud_off.ogg' - ///The icon name for our helmet's action + ///The icon name for our helmet's action, in 'icons/obj/items/clothing/helmet_visors.dmi' var/action_icon_string = "hud_sight_down" - ///The overlay name for when our visor is active + ///The overlay name for when our visor is active, in 'icons/mob/humans/onmob/helmet_garb.dmi' var/helmet_overlay = "hud_sight_right" +/obj/item/device/helmet_visor/Destroy(force) + if(!istype(loc, /obj/item/clothing/head/helmet/marine)) + return ..() + + if(!istype(loc?.loc, /mob/living/carbon/human)) + return ..() + + var/obj/item/clothing/head/helmet/marine/attached_helmet = loc + var/mob/living/carbon/human/user = loc.loc + deactivate_visor(attached_helmet, user) + . = ..() + /// Called to see if the user can even use this visor /obj/item/device/helmet_visor/proc/can_toggle(mob/living/carbon/human/user) return TRUE /// Called to see if this visor is a special non-HUD visor -/obj/item/device/helmet_visor/proc/visor_function(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user, silent = FALSE) +/obj/item/device/helmet_visor/proc/toggle_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user, silent = FALSE) if(attached_helmet == user.head && attached_helmet.active_visor == src) - var/datum/mob_hud/current_mob_hud = huds[hud_type] - current_mob_hud.add_hud_to(user, attached_helmet) + + if(!can_toggle(user)) + return FALSE + + activate_visor(attached_helmet, user) + if(!silent) to_chat(user, SPAN_NOTICE("You activate [src] on [attached_helmet].")) + playsound_client(user.client, toggle_on_sound, null, 75) + return TRUE - var/datum/mob_hud/current_mob_hud = huds[hud_type] - current_mob_hud.remove_hud_from(user, attached_helmet) + deactivate_visor(attached_helmet, user) + if(!silent) to_chat(user, SPAN_NOTICE("You deactivate [src] on [attached_helmet].")) + playsound_client(user.client, toggle_off_sound, null, 75) + return TRUE +/// Called by toggle_visor() to activate the visor's effects +/obj/item/device/helmet_visor/proc/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + var/datum/mob_hud/current_mob_hud = GLOB.huds[hud_type] + current_mob_hud.add_hud_to(user, attached_helmet) + +/// Called by toggle_visor() to deactivate the visor's effects +/obj/item/device/helmet_visor/proc/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + var/datum/mob_hud/current_mob_hud = GLOB.huds[hud_type] + current_mob_hud.remove_hud_from(user, attached_helmet) + +/// Called by /obj/item/clothing/head/helmet/marine/get_examine_text(mob/user) to get extra examine text for this visor +/obj/item/device/helmet_visor/proc/get_helmet_examine_text() + return SPAN_NOTICE("\A [name] is flipped down.") + /obj/item/device/helmet_visor/medical name = "basic medical optic" icon_state = "med_sight" @@ -50,13 +84,75 @@ name = "advanced medical optic" helmet_overlay = "med_sight_left" +/obj/item/device/helmet_visor/medical/advanced/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + . = ..() + + var/datum/action/item_action/view_publications/helmet_visor/publication_action = new(attached_helmet) + publication_action.give_to(user) + +/obj/item/device/helmet_visor/medical/advanced/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + . = ..() + + var/datum/action/item_action/view_publications/helmet_visor/publication_action = locate() in attached_helmet.actions + qdel(publication_action) + /obj/item/device/helmet_visor/medical/advanced/can_toggle(mob/living/carbon/human/user) + . = ..() + if(!.) + return + if(!skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) to_chat(user, SPAN_NOTICE("You are not skilled enough to use [src].")) return FALSE return TRUE +/obj/item/device/helmet_visor/medical/advanced/ui_state(mob/user) + return GLOB.not_incapacitated_and_adjacent_strict_state + +/obj/item/device/helmet_visor/medical/advanced/ui_data(mob/user) + var/list/data = list( + "published_documents" = GLOB.chemical_data.research_publications, + "terminal_view" = FALSE + ) + return data + +/obj/item/device/helmet_visor/medical/advanced/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "PublishedDocsHud", name) + ui.open() + +/obj/item/device/helmet_visor/medical/advanced/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + if(!ishuman(ui.user)) + return + + var/mob/living/carbon/human/user = ui.user + + if(user.stat || user.is_mob_restrained() || !in_range(src, user)) + return + + switch(action) + if ("read_document") + var/print_type = params["print_type"] + var/print_title = params["print_title"] + var/obj/item/paper/research_report/report = GLOB.chemical_data.get_report(print_type, print_title) + if(report) + report.read_paper(user) + return + +/datum/action/item_action/view_publications/helmet_visor/action_activate() + var/obj/item/device/helmet_visor/medical/advanced/medical_visor = locate() in holder_item + + if(!medical_visor) + return + + medical_visor.tgui_interact(owner) + /obj/item/device/helmet_visor/security name = "security optic" icon_state = "sec_sight" @@ -71,28 +167,159 @@ action_icon_string = "blank_hud_sight_down" helmet_overlay = "weld_visor" -/obj/item/device/helmet_visor/welding_visor/visor_function(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user, silent = FALSE) - if(attached_helmet == user.head && attached_helmet.active_visor == src) - attached_helmet.vision_impair = VISION_IMPAIR_MAX - attached_helmet.flags_inventory |= COVEREYES|COVERMOUTH - attached_helmet.flags_inv_hide |= HIDEEYES|HIDEFACE - attached_helmet.eye_protection = EYE_PROTECTION_WELDING - user.update_tint() - if(!silent) - to_chat(user, SPAN_NOTICE("You activate [src] on [attached_helmet].")) - return TRUE +/obj/item/device/helmet_visor/welding_visor/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + attached_helmet.vision_impair = VISION_IMPAIR_MAX + attached_helmet.flags_inventory |= COVEREYES|COVERMOUTH + attached_helmet.flags_inv_hide |= HIDEEYES|HIDEFACE + attached_helmet.eye_protection = EYE_PROTECTION_WELDING + user.update_tint() +/obj/item/device/helmet_visor/welding_visor/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) attached_helmet.vision_impair = VISION_IMPAIR_NONE attached_helmet.flags_inventory &= ~(COVEREYES|COVERMOUTH) attached_helmet.flags_inv_hide &= ~(HIDEEYES|HIDEFACE) attached_helmet.eye_protection = EYE_PROTECTION_NONE - if(!silent) - to_chat(user, SPAN_NOTICE("You deactivate [src] on [attached_helmet].")) user.update_tint() - return TRUE /obj/item/device/helmet_visor/welding_visor/mercenary helmet_overlay = "" /obj/item/device/helmet_visor/welding_visor/tanker helmet_overlay = "tanker_weld_visor" + +#define NVG_VISOR_USAGE(delta_time) (power_cell.use(power_use * (delta_time ? delta_time : 1))) + +/obj/item/device/helmet_visor/night_vision + name = "night vision optic" + desc = "An insertable visor HUD into a standard USCM helmet. This type gives a form of night vision and is standard issue in units with regular funding." + icon_state = "nvg_sight" + hud_type = null + action_icon_string = "nvg_sight_down" + helmet_overlay = "nvg_sight_right" + toggle_on_sound = 'sound/handling/toggle_nv1.ogg' + toggle_off_sound = 'sound/handling/toggle_nv2.ogg' + + /// The internal battery for the visor + var/obj/item/cell/high/power_cell + + /// About 5 minutes active use charge (hypothetically) + var/power_use = 33 + + /// The alpha of darkness we set to for the mob while the visor is on, not completely fullbright but see-able + var/lighting_alpha = 100 + + /// A slight glowing green light while the NVG is activated, is initialized as in the attached_helmet's contents + var/atom/movable/nvg_light/on_light + + /// Whether or not the sight uses on_light and produces light + var/visor_glows = TRUE + +/obj/item/device/helmet_visor/night_vision/Initialize(mapload, ...) + . = ..() + power_cell = new(src) + +/obj/item/device/helmet_visor/night_vision/Destroy() + power_cell = null + . = ..() + +/obj/item/device/helmet_visor/night_vision/get_examine_text(mob/user) + . = ..() + + . += SPAN_NOTICE("It is currently at [round((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") + +/obj/item/device/helmet_visor/night_vision/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + RegisterSignal(user, COMSIG_HUMAN_POST_UPDATE_SIGHT, PROC_REF(on_update_sight)) + + user.add_client_color_matrix("nvg_visor", 99, color_matrix_multiply(color_matrix_saturation(0), color_matrix_from_string("#7aff7a"))) + user.overlay_fullscreen("nvg_visor", /atom/movable/screen/fullscreen/flash/noise/nvg) + user.overlay_fullscreen("nvg_visor_blur", /atom/movable/screen/fullscreen/brute/nvg, 3) + user.update_sight() + if(visor_glows) + on_light = new(attached_helmet) + on_light.set_light_on(TRUE) + START_PROCESSING(SSobj, src) + +/obj/item/device/helmet_visor/night_vision/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + user.remove_client_color_matrix("nvg_visor", 1 SECONDS) + user.clear_fullscreen("nvg_visor", 0.5 SECONDS) + user.clear_fullscreen("nvg_visor_blur", 0.5 SECONDS) + + if(visor_glows) + qdel(on_light) + UnregisterSignal(user, COMSIG_HUMAN_POST_UPDATE_SIGHT) + + user.update_sight() + STOP_PROCESSING(SSobj, src) + +/obj/item/device/helmet_visor/night_vision/process(delta_time) + if(!NVG_VISOR_USAGE(delta_time)) + + if(!istype(loc, /obj/item/clothing/head/helmet/marine)) + return PROCESS_KILL + + if(!istype(loc?.loc, /mob/living/carbon/human)) + return PROCESS_KILL + + var/obj/item/clothing/head/helmet/marine/attached_helmet = loc + var/mob/living/carbon/human/user = loc.loc + to_chat(user, SPAN_NOTICE("[src] deactivates as the battery goes out.")) + deactivate_visor(attached_helmet, user) + return PROCESS_KILL + +/obj/item/device/helmet_visor/night_vision/can_toggle(mob/living/carbon/human/user) + . = ..() + if(!.) + return + + if(!NVG_VISOR_USAGE(FALSE)) + to_chat(user, SPAN_NOTICE("Your [src] is out of power! You'll need to recharge it.")) + return FALSE + + return TRUE + +/obj/item/device/helmet_visor/night_vision/get_helmet_examine_text() + . = ..() + + . += SPAN_NOTICE(" It is currently at [round((power_cell.charge / power_cell.maxcharge) * 100)]% charge.") + +/obj/item/device/helmet_visor/night_vision/proc/on_update_sight(mob/user) + SIGNAL_HANDLER + + if(lighting_alpha < 255) + user.see_in_dark = 12 + user.lighting_alpha = lighting_alpha + user.sync_lighting_plane_alpha() + +#undef NVG_VISOR_USAGE + +/atom/movable/nvg_light + light_power = 0.5 + light_range = 1 + light_color = COLOR_LIGHT_GREEN + light_system = MOVABLE_LIGHT + light_flags = LIGHT_ATTACHED + +/obj/item/device/helmet_visor/night_vision/marine_raider + name = "advanced night vision optic" + desc = "An insertable visor HUD into a standard USCM helmet. This type gives a form of night vision and is standard issue in special forces units." + hud_type = list(MOB_HUD_FACTION_USCM, MOB_HUD_MEDICAL_ADVANCED) + helmet_overlay = "nvg_sight_right_raider" + power_use = 0 + visor_glows = FALSE + +/obj/item/device/helmet_visor/night_vision/marine_raider/activate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + . = ..() + + for(var/type in hud_type) + var/datum/mob_hud/current_mob_hud = GLOB.huds[type] + current_mob_hud.add_hud_to(user, attached_helmet) + +/obj/item/device/helmet_visor/night_vision/marine_raider/deactivate_visor(obj/item/clothing/head/helmet/marine/attached_helmet, mob/living/carbon/human/user) + . = ..() + + for(var/type in hud_type) + var/datum/mob_hud/current_mob_hud = GLOB.huds[type] + current_mob_hud.remove_hud_from(user, attached_helmet) + +/obj/item/device/helmet_visor/night_vision/marine_raider/process(delta_time) + return PROCESS_KILL diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 40ef8792aedb..3f285b358fb2 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -121,7 +121,7 @@ if(target.status != LIGHT_OK) if(CanUse(U)) if(!Use(U)) return - to_chat(U, SPAN_NOTICE("You replace the [target.fitting] with the [src].")) + to_chat(U, SPAN_NOTICE("You replace the [target.fitting] with [src].")) if(target.status != LIGHT_EMPTY) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index c6da7d354054..114ed48b1819 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -30,9 +30,8 @@ return // we know user is a human now, so adjust user for this check var/mob/living/carbon/human/humanoid = user - if(humanoid.speech_problem_flag) - var/list/new_message = humanoid.handle_speech_problems(message) - message = new_message[1] + var/list/new_message = humanoid.handle_speech_problems(message) + message = new_message[1] message = capitalize(message) log_admin("[key_name(user)] used a megaphone to say: >[message]<") diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 273ced980b44..a92135b9d7ed 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -53,8 +53,8 @@ var/area/A = get_area(src) var/APC = A? A.get_apc() : null if(APC) - to_chat(user, SPAN_NOTICE("The local APC is located at [SPAN_BOLD("[get_dist(src, APC)] units [dir2text(get_dir(src, APC))]")].")) - user.balloon_alert(user, "[get_dist(src, APC)] units [dir2text(get_dir(src, APC))]") + to_chat(user, SPAN_NOTICE("The local APC is located at [SPAN_BOLD("[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]")].")) + user.balloon_alert(user, "[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]") else to_chat(user, SPAN_WARNING("ERROR: Could not locate local APC.")) user.balloon_alert(user, "could not locate!") diff --git a/code/game/objects/items/devices/personal_data_transmitter.dm b/code/game/objects/items/devices/personal_data_transmitter.dm index 6e8aa001cad3..98f8c60452ea 100644 --- a/code/game/objects/items/devices/personal_data_transmitter.dm +++ b/code/game/objects/items/devices/personal_data_transmitter.dm @@ -122,7 +122,7 @@ return var/dist = get_dist(self_turf, bracelet_turf) - var/direction = dir2text_short(get_dir(self_turf, bracelet_turf)) + var/direction = dir2text_short(Get_Compass_Dir(self_turf, bracelet_turf)) if(dist > 1) to_chat(user, SPAN_BOLDNOTICE("The display on \the [src] lights up: [dist]-[direction]")) else diff --git a/code/game/objects/items/devices/pinpointer.dm b/code/game/objects/items/devices/pinpointer.dm index 7ec3118ef96b..2f5d9ffe9d5f 100644 --- a/code/game/objects/items/devices/pinpointer.dm +++ b/code/game/objects/items/devices/pinpointer.dm @@ -31,7 +31,7 @@ if(!the_disk) icon_state = "pinonnull" return - setDir(get_dir(src,the_disk)) + setDir(Get_Compass_Dir(src,the_disk)) switch(get_dist(src,the_disk)) if(0) icon_state = "pinondirect" @@ -45,7 +45,7 @@ /obj/item/device/pinpointer/get_examine_text(mob/user) . = ..() - for(var/obj/structure/machinery/nuclearbomb/bomb in machines) + for(var/obj/structure/machinery/nuclearbomb/bomb in GLOB.machines) if(bomb.timing) . += "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]" @@ -80,7 +80,7 @@ if(!location) icon_state = "pinonnull" return - setDir(get_dir(src,location)) + setDir(Get_Compass_Dir(src,location)) switch(get_dist(src,location)) if(0) icon_state = "pinondirect" @@ -99,7 +99,7 @@ if(!target) icon_state = "pinonnull" return - setDir(get_dir(src,target)) + setDir(Get_Compass_Dir(src,target)) switch(get_dist(src,target)) if(0) icon_state = "pinondirect" diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 840098cbc492..a69fe64c2565 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -9,7 +9,7 @@ /obj/item/device/pipe_painter/New() ..() modes = new() - for(var/C in pipe_colors) + for(var/C in GLOB.pipe_colors) modes += "[C]" mode = pick(modes) @@ -26,7 +26,7 @@ to_chat(user, SPAN_DANGER("You must remove the plating first.")) return - P.change_color(pipe_colors[mode]) + P.change_color(GLOB.pipe_colors[mode]) /obj/item/device/pipe_painter/attack_self(mob/user) ..() diff --git a/code/game/objects/items/devices/portable_vendor.dm b/code/game/objects/items/devices/portable_vendor.dm index 65e2128a02c0..465ba0666828 100644 --- a/code/game/objects/items/devices/portable_vendor.dm +++ b/code/game/objects/items/devices/portable_vendor.dm @@ -21,10 +21,12 @@ var/use_points = TRUE var/fabricating = FALSE var/broken = FALSE + var/contraband = FALSE var/list/purchase_log = list() var/list/listed_products = list() + var/list/contraband_products = list() /// needs to be a time define var/special_prod_time_lock @@ -44,7 +46,7 @@ if(!ishuman(user)) return - var/mob/living/carbon/human/H = user + var/mob/living/carbon/human/human_user = user src.add_fingerprint(usr) @@ -56,17 +58,17 @@ to_chat(user, SPAN_WARNING("Access denied.")) return - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) //not wearing an ID - to_chat(H, SPAN_WARNING("Access denied. No ID card detected")) + var/obj/item/card/id/idcard = human_user.wear_id + if(!istype(idcard)) //not wearing an ID + to_chat(human_user, SPAN_WARNING("Access denied. No ID card detected")) return - if(I.registered_name != H.real_name) - to_chat(H, SPAN_WARNING("Wrong ID card owner detected.")) + if(!idcard.check_biometrics(human_user)) + to_chat(human_user, SPAN_WARNING("Wrong ID card owner detected.")) return - if(req_role && I.rank != req_role) - to_chat(H, SPAN_WARNING("This device isn't for you.")) + if(req_role && idcard.rank != req_role) + to_chat(human_user, SPAN_WARNING("This device isn't for you.")) return @@ -97,6 +99,22 @@ var/available = points >= product[2] || !use_points available_items += list(list("index" = index, "name" = name, "cost" = cost, "available" = available, "color" = color, "description" = description)) + if(contraband) + var/non_contraband_product_count = length(listed_products) + for(var/index in 1 to length(contraband_products)) + var/product = contraband_products[index] + + var/name = product[1] + var/cost = product[2] + var/color = product[4] + var/description = product[5] + + if(cost > 0) + name += " ([cost] points)" + + var/available = points >= product[2] || !use_points + available_items += list(list("index" = index + non_contraband_product_count, "name" = name, "cost" = cost, "available" = available, "color" = color, "description" = description)) + .["vendor_name"] = name .["show_points"] = use_points .["current_points"] = round(points) @@ -139,7 +157,13 @@ if(req_role && req_role != id.rank) to_chat(human_user, SPAN_WARNING("This device isn't for you.")) - var/list/product = listed_products[choice] + var/list/product + var/non_contraband_product_count = length(listed_products) + if(choice > non_contraband_product_count) + choice -= non_contraband_product_count + product = contraband_products[choice] + else + product = listed_products[choice] var/cost = product[2] @@ -210,6 +234,7 @@ s.start() /obj/item/device/portable_vendor/emp_act(severity) + . = ..() if (broken) return if (prob(40*severity)) @@ -273,4 +298,20 @@ list("AMMO", 0, null, null, null), list("ES-4 stun magazine", 10, /obj/item/ammo_magazine/pistol/es4, "white", "Holds 19 rounds of specialized Conductive 9mm."), + + list("RADIO KEYS", 0, null, null, null), + list("Alpha Squad", 15, /obj/item/device/encryptionkey/alpha, "white", "Radio Key for USCM Alpha Squad."), + list("Bravo Squad", 15, /obj/item/device/encryptionkey/bravo, "white", "Radio Key for USCM Bravo Squad."), + list("Charlie Squad", 15, /obj/item/device/encryptionkey/charlie, "white", "Radio Key for USCM Charlie Squad."), + list("Delta Squad", 15, /obj/item/device/encryptionkey/delta, "white", "Radio Key for USCM Delta Squad."), + list("Echo Squad", 15, /obj/item/device/encryptionkey/echo, "white", "Radio Key for USCM Echo Squad."), + list("Colony", 20, /obj/item/device/encryptionkey/colony, "white", "Pre-tuned Radio Key for local colony comms."), + ) + + contraband_products = list( + list("CONTRABAND", 0, null, null, null), + list("W-Y PMC", 20, /obj/item/device/encryptionkey/pmc, "white", "Radio Key for Weyland-Yutani PMC Combat Comms."), + list("CONTRABAND: Colonial Marshals", 40, /obj/item/device/encryptionkey/cmb, "white", "Radio Key for the CMB."), + list("CONTRABAND: Colonial Liberation Front", 40, /obj/item/device/encryptionkey/clf, "white", "Radio Key for known local CLF frequencies."), + list("CONTRABAND: Union of Progressive Peoples", 40, /obj/item/device/encryptionkey/upp, "white", "Radio Key for known UPP listening frequencies."), ) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 0b8cbc303c06..bc97cf04fdfb 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -27,7 +27,7 @@ set category = "Object" set src in usr - if ((usr.canmove && !( usr.is_mob_restrained() ))) + if (usr.is_mob_incapacitated()) src.code = t if (!( src.code )) src.code = "beacon" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 21aa96e971a1..e5c717e699f0 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -59,8 +59,8 @@ verbs += /obj/item/device/radio/headset/proc/switch_tracker_target if(frequency) - for(var/cycled_channel in radiochannels) - if(radiochannels[cycled_channel] == frequency) + for(var/cycled_channel in GLOB.radiochannels) + if(GLOB.radiochannels[cycled_channel] == frequency) default_freq = cycled_channel /obj/item/device/radio/headset/Destroy() @@ -183,7 +183,7 @@ /obj/item/device/radio/headset/proc/recalculateChannels() for(var/ch_name in channels) - SSradio.remove_object(src, radiochannels[ch_name]) + SSradio.remove_object(src, GLOB.radiochannels[ch_name]) secure_radio_connections[ch_name] = null channels = list() translate_apollo = FALSE @@ -214,14 +214,14 @@ locate_setting = initial(locate_setting) for (var/ch_name in channels) - secure_radio_connections[ch_name] = SSradio.add_object(src, radiochannels[ch_name], RADIO_CHAT) + secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) SStgui.update_uis(src) /obj/item/device/radio/headset/set_frequency(new_frequency) ..() if(frequency) - for(var/cycled_channel in radiochannels) - if(radiochannels[cycled_channel] == frequency) + for(var/cycled_channel in GLOB.radiochannels) + if(GLOB.radiochannels[cycled_channel] == frequency) default_freq = cycled_channel /obj/item/device/radio/headset/equipped(mob/living/carbon/human/user, slot) @@ -237,7 +237,7 @@ RegisterSignal(user, COMSIG_MOB_DEATH, PROC_REF(update_minimap_icon)) RegisterSignal(user, COMSIG_HUMAN_SET_UNDEFIBBABLE, PROC_REF(update_minimap_icon)) if(headset_hud_on) - var/datum/mob_hud/H = huds[hud_type] + var/datum/mob_hud/H = GLOB.huds[hud_type] H.add_hud_to(user, src) //squad leader locator is no longer invisible on our player HUD. if(user.mind && (user.assigned_squad || misc_tracking) && user.hud_used && user.hud_used.locate_leader) @@ -256,7 +256,7 @@ COMSIG_MOB_STAT_SET_ALIVE )) if(istype(user) && user.has_item_in_ears(src)) //dropped() is called before the inventory reference is update. - var/datum/mob_hud/H = huds[hud_type] + var/datum/mob_hud/H = GLOB.huds[hud_type] H.remove_hud_from(user, src) //squad leader locator is invisible again if(user.hud_used && user.hud_used.locate_leader) @@ -288,7 +288,7 @@ if(ishuman(usr)) var/mob/living/carbon/human/user = usr if(user.has_item_in_ears(src)) //worn - var/datum/mob_hud/H = huds[hud_type] + var/datum/mob_hud/H = GLOB.huds[hud_type] if(headset_hud_on) H.add_hud_to(usr, src) if(user.mind && (misc_tracking || user.assigned_squad) && user.hud_used?.locate_leader) @@ -520,6 +520,7 @@ name = "corporate liaison radio headset" desc = "Used by the CL to convince people to sign NDAs. Channels are as follows: :v - marine command, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel, :y for WY." icon_state = "wy_headset" + maximum_keys = 5 initial_keys = list(/obj/item/device/encryptionkey/mcom/cl) /obj/item/device/radio/headset/almayer/reporter @@ -808,7 +809,7 @@ set_frequency(frequency) for(var/ch_name in channels) - secure_radio_connections[ch_name] = SSradio.add_object(src, radiochannels[ch_name], RADIO_CHAT) + secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) recalculateChannels() if(H.mind && H.hud_used && H.hud_used.locate_leader) //make SL tracker visible H.hud_used.locate_leader.alpha = 255 @@ -849,6 +850,14 @@ "Corporate Liaison" = TRACKER_CL ) +/obj/item/device/radio/headset/distress/cbrn + name = "\improper CBRN headset" + desc = "A headset given to CBRN marines. Channels are as follows: :g - public, :v - marine command, :a - alpha squad, :b - bravo squad, :c - charlie squad, :d - delta squad, :n - engineering, :m - medbay, :u - requisitions, :j - JTAC, :t - intel" + frequency = CBRN_FREQ + initial_keys = list(/obj/item/device/encryptionkey/public, /obj/item/device/encryptionkey/mcom) + ignore_z = TRUE + has_hud = TRUE + /obj/item/device/radio/headset/distress/pmc/hvh desc = "A special headset used by corporate personnel. Channels are as follows: :o - colony." initial_keys = list(/obj/item/device/encryptionkey/colony, /obj/item/device/encryptionkey/WY) diff --git a/code/game/objects/items/devices/radio/listening_bugs.dm b/code/game/objects/items/devices/radio/listening_bugs.dm new file mode 100644 index 000000000000..67a91de1bd56 --- /dev/null +++ b/code/game/objects/items/devices/radio/listening_bugs.dm @@ -0,0 +1,276 @@ +#define DISGUISE_REMOVE "remove disguise" +#define DISGUISE_RADIO "radio" +#define DISGUISE_PEN "pen" +#define DISGUISE_FOUNTAIN_PEN "fountain pen" +#define DISGUISE_ACCESS_TUNER "access tuner" +#define DISGUISE_WHISTLE "whistle" +#define DISGUISE_MASS_SPEC "mass-spectrometer" +#define DISGUISE_CAMERA "camera" +#define DISGUISE_ZIPPO "zippo lighter" +#define DISGUISE_TAPE_RECORDER "tape recorder" + +/obj/item/device/radio/listening_bug + name = "listening device" + desc = "A small, and disguisable, listening device." + + icon = 'icons/obj/items/devices.dmi' + icon_state = "voice0" + item_state = "analyzer" + + w_class = SIZE_TINY + volume = RADIO_VOLUME_RAISED + + broadcasting = FALSE + listening = FALSE + frequency = BUG_A_FREQ + canhear_range = 2 + freqlock = TRUE + /// If the bug is disguised or not. + var/ready_to_disguise = FALSE + var/disguised = FALSE + /// Whether or not the bug can be used to listen to its own channel. + var/prevent_snooping = FALSE + /// The ID tag of the device, for identification. + var/nametag = "Device" + +/obj/item/device/radio/listening_bug/ui_data(mob/user) + var/list/data = list() + + data["broadcasting"] = broadcasting + data["listening"] = listening + data["frequency"] = frequency + data["freqlock"] = freqlock + + var/list/radio_channels = list() + + for(var/channel in channels) + var/channel_key = channel_to_prefix(channel) + radio_channels += list(list( + "name" = channel, + "status" = channels[channel] & FREQ_LISTENING, + "hotkey" = channel_key)) + + data["channels"] = radio_channels + + data["command"] = volume + data["useCommand"] = use_volume + data["subspace"] = subspace_transmission + data["subspaceSwitchable"] = subspace_switchable + data["headset"] = FALSE + + return data + +/obj/item/device/radio/listening_bug/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) + switch(action) + if("listen") + if(prevent_snooping) + to_chat(usr, SPAN_WARNING("This device cannot receive transmissions!")) + return + listening = !listening + return + if("subspace") + if(!ishuman(usr)) + return + var/mob/living/carbon/human/user = usr + if(!check_access(user.wear_id) && !check_access(user.get_active_hand())) + to_chat(user, SPAN_WARNING("You need an authenticated ID card to change this function!")) + return + if(subspace_switchable) + subspace_transmission = !subspace_transmission + var/initial_prevent = initial(prevent_snooping) + if(initial_prevent) + prevent_snooping = TRUE + if(!subspace_transmission) + prevent_snooping = FALSE + channels = list() + return + ..() + +/obj/item/device/radio/listening_bug/hear_talk(mob/M as mob, msg, verb = "says", datum/language/speaking = null) + var/processed_verb = "[SPAN_RED("\[LSTN [nametag]\]")] [verb]" + if(broadcasting) + if(get_dist(src, M) <= 7) + talk_into(M, msg, null, processed_verb, speaking, listening_device = TRUE) + +/obj/item/device/radio/listening_bug/afterattack(atom/target_atom, mob/user as mob, proximity) + if(!ready_to_disguise) + return ..() + + var/obj/item/target_item = target_atom + if(!istype(target_item) || target_item.anchored || target_item.w_class >= SIZE_LARGE) + to_chat(user, SPAN_WARNING("You cannot disguise the listening device as this object.")) + return FALSE + + var/confirm = tgui_alert(user, "Are you sure you wish to disguise the listening device as '[target_item]'?", "Confirm Choice", list("Yes","No"), 20 SECONDS) + if(confirm != "Yes") + return FALSE + + icon = target_item.icon + name = target_item.name + desc = target_item.desc + icon_state = target_item.icon_state + item_state = target_item.item_state + flags_equip_slot = target_item.flags_equip_slot + w_class = target_item.w_class + ready_to_disguise = FALSE + disguised = TRUE + +/obj/item/device/radio/listening_bug/get_examine_text(mob/user) + if(disguised) + . = list() + var/size + switch(w_class) + if(SIZE_TINY) + size = "tiny" + if(SIZE_SMALL) + size = "small" + if(SIZE_MEDIUM) + size = "normal-sized" + . += "This is a [blood_color ? blood_color != "#030303" ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." + if(desc) + . += desc + if(desc_lore) + . += SPAN_NOTICE("This has an extended lore description.") + else + . = ..() + . += SPAN_INFO("[src] is set to frequency [get_bug_letter()].") + if(nametag != initial(nametag)) + . += SPAN_INFO("[src]'s nametag is set to '[nametag]'") + +/obj/item/device/radio/listening_bug/verb/change_disguise() + set name = "Change Disguise" + set category = "Object" + set src in usr + + if(usr.is_mob_incapacitated()) + to_chat(usr, SPAN_WARNING("You cannot do this while incapacitated!")) + return FALSE + + var/check = tgui_alert(usr, "Do you wish to change the disguise of this listening bug?", "Change Disguise?", list("Yes", "No")) + if(check != "Yes") + return FALSE + if(disguised) + var/remove_check = tgui_alert(usr, "Do you wish to remove the current disguise?", "Remove Disguise?", list("Yes","No")) + if(remove_check == "Yes") + icon = initial(icon) + name = initial(name) + desc = initial(desc) + icon_state = initial(icon_state) + item_state = initial(item_state) + flags_equip_slot = initial(flags_equip_slot) + w_class = initial(w_class) + disguised = FALSE + return TRUE + + to_chat(usr, SPAN_HELPFUL("You can now change the disguise of the device by selecting a normal, or smaller, sized object.")) + ready_to_disguise = TRUE + return TRUE + +/obj/item/device/radio/listening_bug/proc/get_bug_letter() + switch(frequency) + if(BUG_A_FREQ) + return "A" + if(BUG_B_FREQ) + return "B" + if(SEC_FREQ) + return "MP" + if(PVST_FREQ) + return "PVST" + if(HC_FREQ) + return "HC" + if(WY_FREQ, PMC_CCT_FREQ) + return "WY" + if(PMC_CMD_FREQ) + return "WYC" + if(UPP_CCT_FREQ, UPP_KDO_FREQ) + return "UPP" + else + return "X" + +#define OPTION_REMOVE "Remove Tag" +#define OPTION_NEW "New Tag" + +/obj/item/device/radio/listening_bug/verb/set_nametag() + set name = "Set Nametag" + set category = "Object" + set src in usr + + if(usr.is_mob_incapacitated()) + to_chat(usr, SPAN_WARNING("You cannot do this while incapacitated!")) + return FALSE + + var/check = tgui_alert(usr, "Do you wish to change the name tag of this listening bug?", "Change Name tag?", list("Yes", "No")) + if(check != "Yes") + return FALSE + + + var/new_nametag + var/remove + if(nametag != initial(nametag)) + remove = tgui_alert(usr, "Do you wish to remove the current nametag?", "Remove Nametag", list("Yes", "No")) + if(remove == "Yes") + new_nametag = initial(nametag) + else + new_nametag = tgui_input_text(usr, "What new name tag do you wish to use?", "New Name", initial(nametag), 6) + + if(!new_nametag || (new_nametag == nametag)) + return FALSE + + nametag = new_nametag + log_game("[key_name(usr)] set a listening device nametag to [new_nametag].") + return TRUE + +#undef OPTION_REMOVE +#undef OPTION_NEW + +/obj/item/device/radio/listening_bug/freq_a + frequency = BUG_A_FREQ + +/obj/item/device/radio/listening_bug/freq_b + frequency = BUG_B_FREQ + +/obj/item/device/radio/listening_bug/radio_linked + prevent_snooping = TRUE + subspace_transmission = TRUE + subspace_switchable = TRUE + +/obj/item/device/radio/listening_bug/radio_linked/mp + frequency = SEC_FREQ + req_one_access = list(ACCESS_MARINE_BRIG) + +/obj/item/device/radio/listening_bug/radio_linked/hc + frequency = HC_FREQ + req_one_access = list(ACCESS_MARINE_CO) +/obj/item/device/radio/listening_bug/radio_linked/hc/pvst + frequency = PVST_FREQ + +/obj/item/device/radio/listening_bug/radio_linked/wy + frequency = WY_FREQ + req_one_access = list(ACCESS_WY_EXEC, ACCESS_WY_SECURITY) + +/obj/item/device/radio/listening_bug/radio_linked/wy/pmc + frequency = PMC_CCT_FREQ + req_one_access = list(ACCESS_WY_EXEC, ACCESS_WY_SECURITY) + +/obj/item/device/radio/listening_bug/radio_linked/upp + frequency = UPP_CCT_FREQ + req_one_access = list(ACCESS_UPP_COMMANDO, ACCESS_UPP_SECURITY) + +/obj/item/device/radio/listening_bug/radio_linked/upp/commando + frequency = UPP_KDO_FREQ + req_one_access = list(ACCESS_UPP_COMMANDO) + + +// ENCRYPTION KEYS FOR LISTENING IN! +//REQURIES SUBSPACE ACTIVATION ON THE BUGS FIRST! +/obj/item/device/encryptionkey/listening_bug + desc = "A small encryption key for listening to a secret broadcasting device! Unlikely to work if the device is not using subspace communications!" + icon_state = "stripped_key" + +/obj/item/device/encryptionkey/listening_bug/freq_a + name = "Listening Bug Encryption Key (A)" + channels = list(RADIO_CHANNEL_BUG_A = TRUE) + +/obj/item/device/encryptionkey/listening_bug/freq_b + name = "Listening Bug Encryption Key (B)" + channels = list(RADIO_CHANNEL_BUG_B = TRUE) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 2092ffa108c6..43eb1810d700 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -73,7 +73,7 @@ set_frequency(frequency) for (var/ch_name in channels) - secure_radio_connections[ch_name] = SSradio.add_object(src, radiochannels[ch_name], RADIO_CHAT) + secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) flags_atom |= USES_HEARING @@ -206,7 +206,7 @@ // If we were to send to a channel we don't have, drop it. return null -/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, verb = "says", datum/language/speaking = null) +/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, verb = "says", datum/language/speaking = null, listening_device = FALSE) if(!on) return // the device has to be on // Fix for permacell radios, but kinda eh about actually fixing them. if(!M || !message) return @@ -297,11 +297,11 @@ if(use_volume) Broadcast_Message(connection, M, voicemask, pick(M.speak_emote), src, message, displayname, jobname, real_name, M.voice_name, - filter_type, 0, target_zs, connection.frequency, verb, speaking, volume) + filter_type, 0, target_zs, connection.frequency, verb, speaking, volume, listening_device) else Broadcast_Message(connection, M, voicemask, pick(M.speak_emote), src, message, displayname, jobname, real_name, M.voice_name, - filter_type, 0, target_zs, connection.frequency, verb, speaking, RADIO_VOLUME_QUIET) + filter_type, 0, target_zs, connection.frequency, verb, speaking, RADIO_VOLUME_QUIET, listening_device) /obj/item/device/radio/proc/get_target_zs(frequency) var/turf/position = get_turf(src) @@ -425,11 +425,11 @@ else return /obj/item/device/radio/emp_act(severity) + . = ..() broadcasting = FALSE listening = FALSE for (var/ch_name in channels) channels[ch_name] = 0 - ..() /////////////////////////////// //////////Borg Radios////////// @@ -461,7 +461,7 @@ for(var/ch_name in channels) - SSradio.remove_object(src, radiochannels[ch_name]) + SSradio.remove_object(src, GLOB.radiochannels[ch_name]) secure_radio_connections[ch_name] = null @@ -509,7 +509,7 @@ src.channels[ch_name] += keyslot.channels[ch_name] for (var/ch_name in src.channels) - secure_radio_connections[ch_name] = SSradio.add_object(src, radiochannels[ch_name], RADIO_CHAT) + secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) SStgui.update_uis(src) @@ -563,11 +563,11 @@ /obj/item/device/radio/proc/config(op) for (var/ch_name in channels) - SSradio.remove_object(src, radiochannels[ch_name]) + SSradio.remove_object(src, GLOB.radiochannels[ch_name]) secure_radio_connections = new channels = op for (var/ch_name in op) - secure_radio_connections[ch_name] = SSradio.add_object(src, radiochannels[ch_name], RADIO_CHAT) + secure_radio_connections[ch_name] = SSradio.add_object(src, GLOB.radiochannels[ch_name], RADIO_CHAT) /obj/item/device/radio/off listening = 0 diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 38ff8859ef97..512ca8baad9b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -457,6 +457,16 @@ FORENSIC SCANNER playsound(user, 'sound/machines/twobeep.ogg', 15, TRUE) to_chat(user, SPAN_NOTICE("You scan [hit_atom] and notice a reading on [src]'s pad, it says: ITEM HAS [market_value] VALUE ")) +/obj/item/device/black_market_hacking_device + name = "modified security access tuner" + desc = "A security access tuner with wires and electrical pins sticking out at odd angles. A handwritten label on the bottom says something about the ASRS system." + icon_state = "bm_hacker" + item_state = "analyzer" + w_class = SIZE_SMALL + flags_atom = FPRINT + flags_equip_slot = SLOT_WAIST + inherent_traits = list(TRAIT_TOOL_BLACKMARKET_HACKER) + /obj/item/device/cmb_black_market_tradeband name = "\improper CMB Tradeband Compliance Device" desc = "A device used to reset any tampering done to trading devices' signal range. Occasionally used to fix any signal chips damaged in an accident, but often for malpractice in trading. Use this with caution, as it will also reset any evidence of potential illicit trade. Created to fulfill a joint-organization requirement for CMB-ICC teams on the frontier, where tampered machinery was difficult to move and refurbish. Smugglers beware." diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index d388e06b9fa7..e0f65a4b31ec 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -110,7 +110,7 @@ cell.add_fingerprint(user) cell.update_icon() - to_chat(user, "You remove the [src.cell].") + to_chat(user, "You remove [cell].") src.cell = null updateicon() return @@ -121,7 +121,7 @@ else turn_on() if (on) - to_chat(user, "You switch on the [src].") + to_chat(user, "You switch on [src].") /obj/item/device/suit_cooling_unit/attackby(obj/item/W as obj, mob/user as mob) if (HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) @@ -137,12 +137,12 @@ if (istype(W, /obj/item/cell)) if(cover_open) if(cell) - to_chat(user, "There is a [cell] already installed here.") + to_chat(user, "There is \a [cell] already installed here.") else if(user.drop_held_item()) W.forceMove(src) cell = W - to_chat(user, "You insert the [cell].") + to_chat(user, "You insert [cell].") updateicon() return @@ -169,7 +169,7 @@ if (cover_open) if(cell) - . += "The panel is open, exposing the [cell]." + . += "The panel is open, exposing [cell]." else . += "The panel is open." diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 01567084d5c7..9fe3521d858b 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -168,7 +168,7 @@ mytape.timestamp += mytape.used_capacity var/language_known = (M.universal_speak || (speaking && (speaking.name in known_languages))) var/mob_name = language_known ? M.GetVoice() : "Unknown" - var/message = language_known ? msg : speaking.scramble(msg) + var/message = (!speaking || language_known) ? msg : speaking.scramble(msg) mytape.storedinfo += "\[[time2text(mytape.used_capacity,"mm:ss")]\] [mob_name] [verb], \"[italics ? "" : null][message][italics ? "" : null]\"" @@ -261,7 +261,7 @@ audible_message(SPAN_MAROON("[icon2html(src, usr)] End of recording.")) break - var/list/heard = get_mobs_in_view(world_view_size, src) + var/list/heard = get_mobs_in_view(GLOB.world_view_size, src) langchat_speech(mytape.storedinfo[i], heard, GLOB.all_languages, skip_language_check = TRUE, additional_styles = list("langchat_small")) audible_message(SPAN_MAROON("[icon2html(src, usr)] [mytape.storedinfo[i]]"))//We want to display this properly, don't double encode diff --git a/code/game/objects/items/devices/teleportation.dm b/code/game/objects/items/devices/teleportation.dm index 72a5c970b18f..8dea3b872cd1 100644 --- a/code/game/objects/items/devices/teleportation.dm +++ b/code/game/objects/items/devices/teleportation.dm @@ -48,8 +48,8 @@ if (usr.stat || usr.is_mob_restrained()) return var/turf/current_location = get_turf(usr)//What turf is the user on? - if(!current_location || is_admin_level(current_location.z))//If turf was not found or they're on z level 2. - to_chat(usr, "The [src] is malfunctioning.") + if(!current_location || should_block_game_interaction(current_location))//If turf was not found or they're on z level 2. + to_chat(usr, "[src] is malfunctioning.") return if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) usr.set_interaction(src) @@ -140,11 +140,11 @@ ..() var/turf/current_location = get_turf(user)//What turf is the user on? - if(!current_location || is_admin_level(current_location.z))//If turf was not found or they're on z level 2 + if(!current_location || should_block_game_interaction(current_location))//If turf was not found or they're on z level 2 to_chat(user, SPAN_NOTICE("\The [src] is malfunctioning.")) return var/list/L = list( ) - for(var/obj/structure/machinery/teleport/hub/R in machines) + for(var/obj/structure/machinery/teleport/hub/R in GLOB.machines) var/obj/structure/machinery/computer/teleporter/com = locate(/obj/structure/machinery/computer/teleporter, locate(R.x - 2, R.y, R.z)) if (istype(com, /obj/structure/machinery/computer/teleporter) && com.locked && !com.one_time_use) if(R.icon_state == "tele1") @@ -177,4 +177,3 @@ P.creator = src src.add_fingerprint(user) return - diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index b3d433727946..6fc526936809 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -47,7 +47,7 @@ user.temp_drop_inv_item(A) attached_device = A A.forceMove(src) - to_chat(user, SPAN_NOTICE("You attach the [item] to the valve controls and secure it.")) + to_chat(user, SPAN_NOTICE("You attach [item] to the valve controls and secure it.")) A.holder = src A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). diff --git a/code/game/objects/items/explosives/explosive.dm b/code/game/objects/items/explosives/explosive.dm index 0c482e8db9e7..4483372c9b85 100644 --- a/code/game/objects/items/explosives/explosive.dm +++ b/code/game/objects/items/explosives/explosive.dm @@ -262,8 +262,8 @@ if(falloff_mode == EXPLOSION_FALLOFF_SHAPE_LINEAR) falloff_mode = EXPLOSION_FALLOFF_SHAPE_EXPONENTIAL - to_chat(usr, SPAN_NOTICE("You enable the [src]'s blast wave dampener, limiting the blast radius.")) + to_chat(usr, SPAN_NOTICE("You enable [src]'s blast wave dampener, limiting the blast radius.")) else falloff_mode = EXPLOSION_FALLOFF_SHAPE_LINEAR - to_chat(usr, SPAN_NOTICE("You disable the [src]'s blast wave dampener, restoring the blast radius to full.")) + to_chat(usr, SPAN_NOTICE("You disable [src]'s blast wave dampener, restoring the blast radius to full.")) playsound(loc, 'sound/items/Screwdriver2.ogg', 25, 0, 6) diff --git a/code/game/objects/items/explosives/grenades/chem_grenade.dm b/code/game/objects/items/explosives/grenades/chem_grenade.dm index e975603d45d8..48430aacecc9 100644 --- a/code/game/objects/items/explosives/grenades/chem_grenade.dm +++ b/code/game/objects/items/explosives/grenades/chem_grenade.dm @@ -1,5 +1,5 @@ /obj/item/explosive/grenade/custom - name = "Custom grenade" + name = "custom grenade" icon_state = "grenade_custom" desc = "A custom chemical grenade with an M40 casing. This one is made to fit into underslung grenade launchers, but can also be thrown by hand." w_class = SIZE_SMALL @@ -17,7 +17,7 @@ ..() /obj/item/explosive/grenade/custom/large - name = "Large Custom Grenade" + name = "large custom grenade" desc = "A custom chemical grenade with an M15 casing. This casing has a higher explosive capacity than the M40 variant." icon_state = "large_grenade_custom" allowed_containers = list(/obj/item/reagent_container/glass) @@ -33,7 +33,7 @@ /obj/item/explosive/grenade/custom/metal_foam - name = "Metal-Foam Grenade" + name = "metal-foam grenade" desc = "Used for emergency sealing of air breaches." assembly_stage = ASSEMBLY_LOCKED harmful = FALSE @@ -56,7 +56,7 @@ update_icon() /obj/item/explosive/grenade/custom/incendiary - name = "Incendiary Grenade" + name = "incendiary grenade" desc = "Used for clearing rooms of living things." assembly_stage = ASSEMBLY_LOCKED has_blast_wave_dampener = FALSE @@ -79,7 +79,7 @@ update_icon() /obj/item/explosive/grenade/custom/flare - name = "M40-F flare grenade" + name = "\improper M40-F flare grenade" desc = "Chemical flare in a grenade form, designed for compatibility with most standard issue launchers." assembly_stage = ASSEMBLY_LOCKED has_blast_wave_dampener = FALSE @@ -103,7 +103,7 @@ update_icon() /obj/item/explosive/grenade/custom/large/flare - name = "M15-F flare grenade" + name = "\improper M15-F flare grenade" desc = "Chemical flare in a grenade form, expanded variant. The casing is too large to fit most launchers." assembly_stage = ASSEMBLY_LOCKED has_blast_wave_dampener = FALSE diff --git a/code/game/objects/items/explosives/grenades/flashbang.dm b/code/game/objects/items/explosives/grenades/flashbang.dm index 365dfe26df89..50cb34668ae3 100644 --- a/code/game/objects/items/explosives/grenades/flashbang.dm +++ b/code/game/objects/items/explosives/grenades/flashbang.dm @@ -256,6 +256,7 @@ //decide how banged mob is var/bang_effect = 0 + var/lying = H.body_position == LYING_DOWN //flashbang effect depends on eye protection only, so we will process this case first //A bit dumb, but headsets don't have ear protection and even earmuffs are a fluff now @@ -264,7 +265,7 @@ if((get_dist(H, T) <= 1 || src.loc == H.loc || src.loc == H)) H.apply_damage(5, BRUTE) H.apply_damage(5, BURN) - if(H.lying) + if(lying) bang_effect = 1 else bang_effect = 2 @@ -277,13 +278,13 @@ H.apply_damage(5, BRUTE) H.apply_damage(5, BURN) - if(H.lying) + if(lying) bang_effect = 4 else bang_effect = 5 else if(get_dist(H, T) <= 5) - if(H.lying) + if(lying) bang_effect = 3 else bang_effect = 4 diff --git a/code/game/objects/items/explosives/grenades/grenade.dm b/code/game/objects/items/explosives/grenades/grenade.dm index 7e98e9819931..6b793233678d 100644 --- a/code/game/objects/items/explosives/grenades/grenade.dm +++ b/code/game/objects/items/explosives/grenades/grenade.dm @@ -20,12 +20,12 @@ var/hand_throwable = TRUE harmful = TRUE //Is it harmful? Are they banned for synths? antigrief_protection = TRUE //Should it be checked by antigrief? + ground_offset_x = 7 + ground_offset_y = 6 /obj/item/explosive/grenade/Initialize() . = ..() det_time = max(0, rand(det_time - 5, det_time + 5)) - pixel_y = rand(-6, 6) - pixel_x = rand(-7, 7) /obj/item/explosive/grenade/proc/can_use_grenade(mob/living/carbon/human/user) if(!hand_throwable) diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm index 742a5f314c4a..768a32c003fa 100644 --- a/code/game/objects/items/explosives/mine.dm +++ b/code/game/objects/items/explosives/mine.dm @@ -42,6 +42,7 @@ prime() //We don't care about how strong the explosion was. /obj/item/explosive/mine/emp_act() + . = ..() prime() //Same here. Don't care about the effect strength. @@ -122,7 +123,7 @@ if(prob(75)) triggered = TRUE if(tripwire) - var/direction = reverse_dir[src.dir] + var/direction = GLOB.reverse_dir[src.dir] var/step_direction = get_step(src, direction) tripwire.forceMove(step_direction) prime() @@ -240,7 +241,7 @@ //We move the tripwire randomly in either of the four cardinal directions triggered = TRUE if(tripwire) - var/direction = pick(cardinal) + var/direction = pick(GLOB.cardinals) var/step_direction = get_step(src, direction) tripwire.forceMove(step_direction) prime() @@ -308,7 +309,7 @@ map_deployed = TRUE /obj/item/explosive/mine/custom - name = "Custom mine" + name = "custom mine" desc = "A custom chemical mine built from an M20 casing." icon_state = "m20_custom" customizable = TRUE diff --git a/code/game/objects/items/explosives/plastic.dm b/code/game/objects/items/explosives/plastic.dm index 830df9659070..071ff3458a91 100644 --- a/code/game/objects/items/explosives/plastic.dm +++ b/code/game/objects/items/explosives/plastic.dm @@ -26,7 +26,7 @@ /obj/item/explosive/plastic/Destroy() disarm() - . = ..() + return ..() /obj/item/explosive/plastic/explosion_throw(severity, direction, scatter_multiplier) if(active) @@ -156,7 +156,9 @@ plant_target.overlays -= overlay qdel(overlay) plant_target.contents -= src - forceMove(get_turf(plant_target)) + var/turf/plant_turf = get_turf(plant_target) + if(plant_turf) + forceMove(plant_turf) plant_target = null if(customizable) if(active) //deactivate @@ -182,7 +184,7 @@ //vehicle interior stuff checks if(SSinterior.in_interior(target)) - to_chat(user, SPAN_WARNING("It's too cramped in here to deploy \the [src].")) + to_chat(user, SPAN_WARNING("It's too cramped in here to deploy [src].")) return FALSE if(istype(target, /obj/effect) || istype(target, /obj/structure/machinery)) @@ -193,7 +195,7 @@ if(istype(target, /turf/closed/wall)) var/turf/closed/wall/W = target if(W.hull) - to_chat(user, SPAN_WARNING("You are unable to stick \the [src] to the [W]!")) + to_chat(user, SPAN_WARNING("You are unable to stick [src] to [W]!")) return FALSE if(istype(target, /obj/structure/window)) @@ -299,7 +301,7 @@ prime(TRUE) /obj/item/explosive/plastic/custom - name = "Custom plastic explosive" + name = "custom plastic explosive" desc = "A custom plastic explosive." icon_state = "custom_plastic_explosive" overlay_image = "custom_plastic_explosive_sensing" diff --git a/code/game/objects/items/explosives/warhead.dm b/code/game/objects/items/explosives/warhead.dm index 5dfdf2a41eac..9825d7483193 100644 --- a/code/game/objects/items/explosives/warhead.dm +++ b/code/game/objects/items/explosives/warhead.dm @@ -2,11 +2,8 @@ icon = 'icons/obj/items/weapons/grenade.dmi' customizable = TRUE allowed_sensors = list() //We only need a detonator - -/obj/item/explosive/warhead/Initialize(mapload, ...) - . = ..() - pixel_y = rand(-6, 6) - pixel_x = rand(-7, 7) + ground_offset_x = 7 + ground_offset_y = 6 /obj/item/explosive/warhead/rocket name = "84mm rocket warhead" diff --git a/code/game/objects/items/frames/alarms.dm b/code/game/objects/items/frames/alarms.dm index f34b18d6825c..d665df65fc83 100644 --- a/code/game/objects/items/frames/alarms.dm +++ b/code/game/objects/items/frames/alarms.dm @@ -24,7 +24,7 @@ Code shamelessly copied from apc_frame return var/ndir = get_dir(on_wall,usr) - if (!(ndir in cardinal)) + if (!(ndir in GLOB.cardinals)) return var/turf/loc = get_turf(usr) @@ -67,7 +67,7 @@ Code shamelessly copied from apc_frame return var/ndir = get_dir(on_wall,usr) - if (!(ndir in cardinal)) + if (!(ndir in GLOB.cardinals)) return var/turf/loc = get_turf(usr) diff --git a/code/game/objects/items/frames/camera.dm b/code/game/objects/items/frames/camera.dm index e367e64e641d..efe697c3944b 100644 --- a/code/game/objects/items/frames/camera.dm +++ b/code/game/objects/items/frames/camera.dm @@ -105,9 +105,9 @@ C.auto_turn() C.network = uniquelist(tempnetwork) - tempnetwork = difflist(C.network,RESTRICTED_CAMERA_NETWORKS) + tempnetwork = difflist(C.network,GLOB.RESTRICTED_CAMERA_NETWORKS) if(!tempnetwork.len)//Camera isn't on any open network - remove its chunk from AI visibility. - cameranet.removeCamera(C) + GLOB.cameranet.removeCamera(C) C.c_tag = input @@ -167,7 +167,7 @@ to_chat(user, SPAN_WARNING("\The [WT] needs to be on!")) return 0 - to_chat(user, SPAN_NOTICE("You start to weld the [src]..")) + to_chat(user, SPAN_NOTICE("You start to weld [src]..")) playsound(src.loc, 'sound/items/Welder.ogg', 25, 1) WT.eyecheck(user) if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) diff --git a/code/game/objects/items/frames/frame.dm b/code/game/objects/items/frames/frame.dm index 9c039821cb75..06b1c14e46c8 100644 --- a/code/game/objects/items/frames/frame.dm +++ b/code/game/objects/items/frames/frame.dm @@ -23,7 +23,7 @@ if (get_dist(on_wall,usr)>1) return var/ndir = get_dir(usr,on_wall) - if (!(ndir in cardinal)) + if (!(ndir in GLOB.cardinals)) return var/turf/loc = get_turf(usr) var/area/A = get_area(loc) diff --git a/code/game/objects/items/frames/light_fixtures.dm b/code/game/objects/items/frames/light_fixtures.dm index 35f800f28fac..b52e19492cab 100644 --- a/code/game/objects/items/frames/light_fixtures.dm +++ b/code/game/objects/items/frames/light_fixtures.dm @@ -21,7 +21,7 @@ if (get_dist(on_wall,usr)>1) return var/ndir = get_dir(usr,on_wall) - if (!(ndir in cardinal)) + if (!(ndir in GLOB.cardinals)) return var/turf/loc = get_turf(usr) if (!istype(loc, /turf/open/floor)) diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm index 98987d1cd2b3..788613cf4c6e 100644 --- a/code/game/objects/items/fulton.dm +++ b/code/game/objects/items/fulton.dm @@ -1,7 +1,7 @@ // Fulton baloon deployment devices, used to gather and send crates, dead things, and other objective-based items into space for collection. /// A list of fultons currently airborne. -var/global/list/deployed_fultons = list() +GLOBAL_LIST_EMPTY(deployed_fultons) /obj/item/stack/fulton name = "fulton recovery device" @@ -36,7 +36,7 @@ var/global/list/deployed_fultons = list() attached_atom = null if(original_location) original_location = null - deployed_fultons -= src + GLOB.deployed_fultons -= src . = ..() /obj/item/stack/fulton/update_icon() @@ -90,7 +90,7 @@ var/global/list/deployed_fultons = list() var/mob/living/carbon/human/H = target_atom if(isyautja(H) && H.stat == DEAD) can_attach = TRUE - else if((H.stat != DEAD || H.mind && H.check_tod() && H.is_revivable())) + else if((H.stat != DEAD || H.check_tod() && H.is_revivable())) to_chat(user, SPAN_WARNING("You can't attach [src] to [target_atom], they still have a chance!")) return else @@ -154,7 +154,7 @@ var/global/list/deployed_fultons = list() attached_atom.forceMove(space_tile) forceMove(attached_atom) - deployed_fultons += src + GLOB.deployed_fultons += src attached_atom.overlays -= I addtimer(CALLBACK(src, PROC_REF(return_fulton), original_location), 150 SECONDS) @@ -169,11 +169,11 @@ var/global/list/deployed_fultons = list() attached_atom.anchored = FALSE playsound(attached_atom.loc,'sound/effects/bamf.ogg', 50, 1) - if(intel_system) + if(GLOB.intel_system) if (!LAZYISIN(GLOB.failed_fultons, attached_atom)) //Giving marines an objective to retrieve that fulton (so they'd know what they lost and where) var/datum/cm_objective/retrieve_item/fulton/objective = new /datum/cm_objective/retrieve_item/fulton(attached_atom) - intel_system.store_single_objective(objective) + GLOB.intel_system.store_single_objective(objective) qdel(reservation) qdel(src) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 71fb02cf3f07..2137b41d86bf 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -29,20 +29,6 @@ if(!C.handcuffed) place_handcuffs(C, user) -/obj/item/handcuffs/obj/structure/MouseDrop(mob/living/carbon/human/H) - var/mob/living/carbon/human/user = usr - if (!istype(user)) - return - if (user.stat || get_dist(user, src) > 1 || get_dist(user, H) > 1 || H.lying) - return - if (!istype(H)) - return - - if(!do_after(user, cuff_delay, INTERRUPT_ALL, BUSY_ICON_HOSTILE, H, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) - return - - // TODO: apply handcuffs - /obj/item/handcuffs/get_mob_overlay(mob/user_mob, slot) var/image/ret = ..() diff --git a/code/game/objects/items/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm index d3f99134cd23..c11a7a57c350 100644 --- a/code/game/objects/items/handheld_distress_beacon.dm +++ b/code/game/objects/items/handheld_distress_beacon.dm @@ -1,12 +1,21 @@ ///handheld distress beacons used by goon chem retrieval team to call for PMC back up /obj/item/handheld_distress_beacon - name = "handheld distress beacon" + name = "\improper PMC handheld distress beacon" desc = "A standard handheld distress beacon. Generally used by teams who may be out of regular communications range but must signal for assistance. This one is branded with a Weyland Yutani symbol and sold en masse to colonies across the Neroid Sector." icon = 'icons/obj/items/handheld_distress_beacon.dmi' icon_state = "beacon_inactive" w_class = SIZE_SMALL + ///The beacons faction that will be sent in message_admins + var/beacon_type = "PMC beacon" + ///Tells the user who the beacon will be sent to IC + var/recipient = "the USCSS Royce" + ///The name of the ERT that will be passed to get_specific_call + var/list/ert_full_name = list("Weyland-Yutani PMC (Chemical Investigation Squad)") + ///The clickable version that will be sent in message_admins + var/list/ert_short_name = list("SEND PMCs") + ///Whether beacon can be used, or has already been used var/active = FALSE /obj/item/handheld_distress_beacon/get_examine_text(mob/user) @@ -20,8 +29,8 @@ if(active) icon_state = "beacon_active" - else - icon_state = initial(icon_state) + return + icon_state = initial(icon_state) /obj/item/handheld_distress_beacon/attack_self(mob/user) . = ..() @@ -29,12 +38,29 @@ if(active) to_chat(user, "[src] is already active!") return - - for(var/client/C in GLOB.admins) - if((R_ADMIN|R_MOD) & C.admin_holder.rights) - playsound_client(C,'sound/effects/sos-morse-code.ogg',10) - message_admins("[key_name(user)] has requested a PMC Distress Beacon! [CC_MARK(user)] (SEND) (DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") - to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to the USCSS Royce.")) - active = TRUE update_icon() + + if(!ert_full_name || !ert_short_name || (length(ert_full_name) != length(ert_short_name))) //Make sure they are greater than 0, and both are same length + to_chat(user, SPAN_BOLDWARNING("[src] is broken!")) + CRASH("[src] was improperly set, and has been disabled.") //For the runtime logs + + var/beacon_call_buttons + for(var/current_ert_num in 1 to length(ert_full_name)) + beacon_call_buttons += "([ert_short_name[current_ert_num]]) " + + for(var/client/admin_client in GLOB.admins) + if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) + playsound_client(admin_client,'sound/effects/sos-morse-code.ogg',10) + message_admins("[key_name(user)] has used a [beacon_type]! [CC_MARK(user)] [beacon_call_buttons](DENY) [ADMIN_JMP_USER(user)] [CC_REPLY(user)]") + to_chat(user, SPAN_NOTICE("A distress beacon request has been sent to [recipient].")) + +/// CMB distress beacon held by CMB Marshal for signalling distress to Anchorpoint Station +/obj/item/handheld_distress_beacon/cmb + name = "\improper CMB handheld distress beacon" + desc = "An emergency beacon. This one is branded with a Colonial Marshal Bureau star and 'ANCHORPOINT STATION' is etched in stencil on the side. This device is issued to CMB Marshals and features an extended relay antenna." + + beacon_type = "CMB beacon" + recipient = "Anchorpoint Station" + ert_full_name = list("CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)") + ert_short_name = list("SEND CMB", "SEND QRF") diff --git a/code/game/objects/items/hoverpack.dm b/code/game/objects/items/hoverpack.dm index c2bfacd3c3ad..027b9d77f581 100644 --- a/code/game/objects/items/hoverpack.dm +++ b/code/game/objects/items/hoverpack.dm @@ -184,7 +184,7 @@ warning.forceMove(path[max_distance]) /obj/item/hoverpack/proc/can_use_hoverpack(mob/living/carbon/human/user) - if(user.is_mob_incapacitated() || user.lying) + if(user.is_mob_incapacitated()) to_chat(user, SPAN_WARNING("You're a bit too incapacitated for that.")) return FALSE @@ -204,7 +204,7 @@ /datum/action/item_action/hover/can_use_action() var/mob/living/carbon/human/H = owner - if(!H.is_mob_incapacitated() && !H.lying && holder_item == H.back) + if(!H.is_mob_incapacitated() && holder_item == H.back) return TRUE /datum/action/item_action/hover/action_activate() diff --git a/code/game/objects/items/implants/implant.dm b/code/game/objects/items/implants/implant.dm index d39b7e675452..e7ebe0391fae 100644 --- a/code/game/objects/items/implants/implant.dm +++ b/code/game/objects/items/implants/implant.dm @@ -82,6 +82,7 @@ Implant Specifics:
    "} return dat /obj/item/implant/tracking/emp_act(severity) + . = ..() if (malfunction) //no, dawg, you can't malfunction while you are malfunctioning return malfunction = MALFUNCTION_TEMPORARY @@ -216,6 +217,7 @@ Implant Specifics:
    "} return 1 /obj/item/implant/explosive/emp_act(severity) + . = ..() if (malfunction) return malfunction = MALFUNCTION_TEMPORARY @@ -307,6 +309,7 @@ the implant may become unstable and either pre-maturely inject the subject or si return /obj/item/implant/chem/emp_act(severity) + . = ..() if (malfunction) return malfunction = MALFUNCTION_TEMPORARY @@ -432,6 +435,7 @@ the implant may become unstable and either pre-maturely inject the subject or si STOP_PROCESSING(SSobj, src) /obj/item/implant/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this + . = ..() if (malfunction) //so I'm just going to add a meltdown chance here return malfunction = MALFUNCTION_TEMPORARY diff --git a/code/game/objects/items/implants/implantneurostim.dm b/code/game/objects/items/implants/implantneurostim.dm index a46cc31a2ca4..21ee2542649b 100644 --- a/code/game/objects/items/implants/implantneurostim.dm +++ b/code/game/objects/items/implants/implantneurostim.dm @@ -63,7 +63,7 @@ var/mob_pain_msg = "Excruciating pain shoots through [part ? "your [part.display_name]" : "you"]!" M.visible_message(SPAN_DANGER("[M] convulses in pain!"), SPAN_DANGER(mob_pain_msg)) M.flash_eyes(1, TRUE) - M.stunned += 10 + M.apply_effect(10, STUN) M.apply_effect(10, WEAKEN) M.apply_damage(100, HALLOSS, part) M.apply_damage(5, BURN, part, 0, 0, src) @@ -105,6 +105,7 @@ /obj/item/implant/neurostim/emp_act(severity) + . = ..() if (malfunction) return if (prob(80)) diff --git a/code/game/objects/items/lightstick.dm b/code/game/objects/items/lightstick.dm index 70418049994b..05f5a96c5b16 100644 --- a/code/game/objects/items/lightstick.dm +++ b/code/game/objects/items/lightstick.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/items/lighting.dmi' icon_state = "lightstick_blue0" light_range = 2 - light_color = COLOUR_BLUE + light_color = COLOR_BLUE var/s_color = "blue" var/trample_chance = 30 var/can_trample = TRUE @@ -22,7 +22,7 @@ /obj/item/lightstick/Crossed(mob/living/O) if(anchored && prob(trample_chance) && can_trample) if(!istype(O,/mob/living/carbon/xenomorph/larva)) - visible_message(SPAN_DANGER("[O] tramples the [src]!")) + visible_message(SPAN_DANGER("[O] tramples [src]!")) playsound(src, 'sound/weapons/Genhit.ogg', 25, 1) if(istype(O,/mob/living/carbon/xenomorph)) if(prob(40)) @@ -46,17 +46,17 @@ if(!anchored)//If planted return - to_chat(user, "You start pulling out \the [src].") - if(!do_after(user,20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + to_chat(user, "You start pulling out [src].") + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return anchored = FALSE - user.visible_message("[user.name] removes \the [src] from the ground.","You remove the [src] from the ground.") + user.visible_message("[user.name] removes [src] from the ground.", "You remove [src] from the ground.") icon_state = "lightstick_[s_color][anchored]" set_light(0) pixel_x = 0 pixel_y = 0 - playsound(user, 'sound/weapons/Genhit.ogg', 25, 1) + playsound(user, 'sound/weapons/Genhit.ogg', 25, TRUE) //Red /obj/item/lightstick/planted @@ -68,7 +68,7 @@ name = "red lightstick" icon_state = "lightstick_red0" s_color = "red" - light_color = COLOUR_RED + light_color = COLOR_RED /obj/item/lightstick/red/planted icon_state = "lightstick_red1" diff --git a/code/game/objects/items/misc.dm b/code/game/objects/items/misc.dm index abd8404d6e25..1699cb24ef39 100644 --- a/code/game/objects/items/misc.dm +++ b/code/game/objects/items/misc.dm @@ -134,20 +134,20 @@ return stored_item = object mobber.drop_inv_item_to_loc(object, src) - to_chat(mobber, SPAN_NOTICE("You slide the [object] into [src].")) + to_chat(mobber, SPAN_NOTICE("You slide [object] into [src].")) playsound(mobber, 'sound/weapons/gun_shotgun_shell_insert.ogg', 15, TRUE) update_icon() break . = ..() /obj/item/weapon/pole/fancy_cane/this_is_a_knife/machete - stored_item = new /obj/item/weapon/claymore/mercsword/machete + stored_item = new /obj/item/weapon/sword/machete /obj/item/weapon/pole/fancy_cane/this_is_a_knife/ceremonial_sword - stored_item = new /obj/item/weapon/claymore/mercsword/ceremonial + stored_item = new /obj/item/weapon/sword/ceremonial /obj/item/weapon/pole/fancy_cane/this_is_a_knife/katana - stored_item = new /obj/item/weapon/katana + stored_item = new /obj/item/weapon/sword/katana // IN SHOTGUNS.DM!! diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index 9089dd228ed0..c538cbf3944f 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -1,6 +1,6 @@ //NEVER USE THIS IT SUX -PETETHEGOAT -var/global/list/cached_icons = list() +GLOBAL_LIST_EMPTY(cached_icons) /obj/item/reagent_container/glass/paint desc = "It's a paint bucket." diff --git a/code/game/objects/items/pamphlets.dm b/code/game/objects/items/pamphlets.dm index 682215be67bb..763d78bd6ea6 100644 --- a/code/game/objects/items/pamphlets.dm +++ b/code/game/objects/items/pamphlets.dm @@ -84,7 +84,7 @@ if(!istype(ID)) //not wearing an ID to_chat(user, SPAN_WARNING("You should wear your ID before doing this.")) return FALSE - if(ID.registered_ref != WEAKREF(user)) + if(!ID.check_biometrics(user)) to_chat(user, SPAN_WARNING("You should wear your ID before doing this.")) return FALSE diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm index 661c8d422316..bdf140ff11c3 100644 --- a/code/game/objects/items/props/helmetgarb.dm +++ b/code/game/objects/items/props/helmetgarb.dm @@ -37,6 +37,11 @@ desc = "The more you fire these, the more you're reminded that a fragmentation grenade is probably more effective at fulfilling the same purpose. Say, aren't these supposed to eject from your gun?" icon_state = "spent_flech" +/obj/item/prop/helmetgarb/cartridge + name = "cartridge" + desc = "This is the bullet from a Type 71 Pulse Rifle. It is deformed from impact against an armored surface. It's been reduced to a lucky keepsake now." + icon_state = "cartridge" + /obj/item/prop/helmetgarb/prescription_bottle name = "prescription medication" desc = "Anti-anxiety meds? Amphetamines? The cure for Sudden Sleep Disorder? The label can't be read, leaving the now absent contents forever a mystery. The cap is screwed on tighter than any ID lock." @@ -94,10 +99,8 @@ var/nvg_maxhealth = 125 var/nvg_health = 125 - var/nvg_maxcharge = 2500 - var/nvg_charge = 2500 - var/nvg_drain = 8 // has a 5 minute duration but byond may give it a couple of irl time due to lag - var/infinite_charge = FALSE + /// How much charge the cell should have at most. -1 is infinite + var/cell_max_charge = 2500 var/activated = FALSE var/nightvision = FALSE @@ -112,6 +115,13 @@ var/mob/living/attached_mob var/lighting_alpha = 100 +/obj/item/prop/helmetgarb/helmet_nvg/Initialize(mapload, ...) + . = ..() + if(shape != NVG_SHAPE_COSMETIC) + AddComponent(/datum/component/cell, cell_max_charge, TRUE, charge_drain = 8) + RegisterSignal(src, COMSIG_CELL_TRY_RECHARGING, PROC_REF(cell_try_recharge)) + RegisterSignal(src, COMSIG_CELL_OUT_OF_CHARGE, PROC_REF(on_power_out)) + /obj/item/prop/helmetgarb/helmet_nvg/on_enter_storage(obj/item/storage/internal/S) ..() @@ -134,42 +144,30 @@ /obj/item/prop/helmetgarb/helmet_nvg/attackby(obj/item/A as obj, mob/user as mob) - if(istype(A,/obj/item/cell)) - recharge(A, user) - if(HAS_TRAIT(A, TRAIT_TOOL_SCREWDRIVER)) repair(user) else ..() -/obj/item/prop/helmetgarb/helmet_nvg/proc/recharge(obj/item/cell/C, mob/user as mob) +/obj/item/prop/helmetgarb/helmet_nvg/proc/cell_try_recharge(datum/source, mob/living/user) + SIGNAL_HANDLER + if(user.action_busy) - return + return COMPONENT_CELL_NO_RECHARGE + if(src != user.get_inactive_hand()) - to_chat(user, SPAN_WARNING("You need to hold \the [src] in hand in order to recharge them.")) - return + to_chat(user, SPAN_WARNING("You need to hold [src] in hand in order to recharge them.")) + return COMPONENT_CELL_NO_RECHARGE + if(shape == NVG_SHAPE_COSMETIC) - to_chat(user, SPAN_WARNING("There is no connector for the power cell inside \the [src].")) - return + to_chat(user, SPAN_WARNING("There is no connector for the power cell inside [src].")) + return COMPONENT_CELL_NO_RECHARGE + if(shape == NVG_SHAPE_BROKEN) - to_chat(user, SPAN_WARNING("You need to repair \the [src] first.")) - return - if(nvg_charge == nvg_maxcharge) - to_chat(user, SPAN_WARNING("\The [src] are already fully charged.")) - return + to_chat(user, SPAN_WARNING("You need to repair [src] first.")) + return COMPONENT_CELL_NO_RECHARGE - while(nvg_charge < nvg_maxcharge) - if(C.charge <= 0) - to_chat(user, SPAN_WARNING("\The [C] is completely dry.")) - break - if(!do_after(user, 1 SECONDS, (INTERRUPT_ALL & (~INTERRUPT_MOVED)), BUSY_ICON_BUILD, C, INTERRUPT_DIFF_LOC)) - to_chat(user, SPAN_WARNING("You were interrupted.")) - break - var/to_transfer = min(400, C.charge, (nvg_maxcharge - nvg_charge)) - if(C.use(to_transfer)) - nvg_charge += to_transfer - to_chat(user, "You transfer some power between \the [C] and \the [src]. The gauge now reads: [round(100.0*nvg_charge/nvg_maxcharge) ]%.") /obj/item/prop/helmetgarb/helmet_nvg/proc/repair(mob/user as mob) if(user.action_busy) @@ -197,7 +195,6 @@ to_chat(user, "You successfully patch \the [src].") nvg_maxhealth = 65 nvg_health = 65 - nvg_drain = initial(nvg_drain) * 2 return else if(nvg_health == nvg_maxhealth) @@ -207,7 +204,7 @@ to_chat(user, SPAN_WARNING("Nothing to fix.")) else if(shape == NVG_SHAPE_COSMETIC) - to_chat(user, SPAN_WARNING("it's nothing but a husk of what it used to be.")) + to_chat(user, SPAN_WARNING("It's nothing but a husk of what it used to be.")) else to_chat(user, "You begin to repair \the [src].") @@ -239,9 +236,6 @@ else if(nvg_health_procent >= 0) . += "They are falling apart." - if (get_dist(user, src) <= 1 && (shape == NVG_SHAPE_FINE || shape == NVG_SHAPE_PATCHED)) - . += "A small gauge in the corner reads: Power: [round(100.0*nvg_charge/nvg_maxcharge) ]%." - /obj/item/prop/helmetgarb/helmet_nvg/on_exit_storage(obj/item/storage/S) remove_attached_item() return ..() @@ -291,7 +285,7 @@ if(attached_mob != user && slot == WEAR_HEAD) set_attached_mob(user) - if(slot == WEAR_HEAD && !nightvision && activated && nvg_charge > 0 && shape > NVG_SHAPE_BROKEN) + if(slot == WEAR_HEAD && !nightvision && activated && !SEND_SIGNAL(src, COMSIG_CELL_CHECK_CHARGE) && shape > NVG_SHAPE_BROKEN) enable_nvg(user) else remove_nvg() @@ -314,7 +308,7 @@ attached_item.update_icon() activation.update_button_icon() - START_PROCESSING(SSobj, src) + SEND_SIGNAL(src, COMSIG_CELL_START_TICK_DRAIN) /obj/item/prop/helmetgarb/helmet_nvg/proc/update_sight(mob/M) @@ -348,20 +342,15 @@ attached_mob.update_sight() - STOP_PROCESSING(SSobj, src) + SEND_SIGNAL(src, COMSIG_CELL_STOP_TICK_DRAIN) /obj/item/prop/helmetgarb/helmet_nvg/process(delta_time) - if(nvg_charge > 0 && !infinite_charge) - nvg_charge = max(0, nvg_charge - nvg_drain * delta_time) - if(!attached_mob) return PROCESS_KILL - if(!activated || !attached_item || nvg_charge <= 0 || attached_mob.is_dead()) - if(activated && !attached_mob.is_dead()) - to_chat(attached_mob, SPAN_WARNING("\The [src] emit a low power warning and immediately shut down!")) - remove_nvg() + if(!activated || !attached_item || attached_mob.is_dead()) + on_power_out() return if(!attached_item.has_garb_overlay()) @@ -370,6 +359,13 @@ return +/obj/item/prop/helmetgarb/helmet_nvg/proc/on_power_out(datum/source) + SIGNAL_HANDLER + + if(activated && !attached_mob.is_dead()) + to_chat(attached_mob, SPAN_WARNING("[src] emit a low power warning and immediately shut down!")) + remove_nvg() + /obj/item/prop/helmetgarb/helmet_nvg/ui_action_click(mob/owner, obj/item/holder) toggle_nods(owner) @@ -405,7 +401,7 @@ if(activated) to_chat(user, SPAN_NOTICE("You flip the goggles down.")) icon_state = active_icon_state - if(nvg_charge > 0 && user.head == attached_item && shape > NVG_SHAPE_BROKEN) + if(!SEND_SIGNAL(src, COMSIG_CELL_CHECK_CHARGE) && user.head == attached_item && shape > NVG_SHAPE_BROKEN) enable_nvg(user) else icon_state = active_icon_state @@ -457,7 +453,7 @@ /obj/item/prop/helmetgarb/helmet_nvg/marsoc //for Marine Raiders name = "\improper Tactical M3 night vision goggles" desc = "With an integrated self-recharging battery, nothing can stop you. Put them on your helmet and press the button and it's go-time." - infinite_charge = TRUE + cell_max_charge = -1 #undef NVG_SHAPE_COSMETIC #undef NVG_SHAPE_BROKEN @@ -500,14 +496,38 @@ desc = "The USCM had its funding pulled for these when it became apparent that not every deployed enlisted was wearing a helmet 24/7; much to the bafflement of UA High Command." icon_state = "helmet_gasmask" +/obj/item/prop/helmetgarb/helmet_gasmask/on_enter_storage(obj/item/storage/internal/helmet_internal_inventory) + ..() + if(!istype(helmet_internal_inventory)) + return + var/obj/item/clothing/head/helmet/helmet_item = helmet_internal_inventory.master_object + + if(!istype(helmet_item)) + return + + helmet_item.flags_inventory |= BLOCKGASEFFECT + helmet_item.flags_inv_hide |= HIDEFACE + +/obj/item/prop/helmetgarb/helmet_gasmask/on_exit_storage(obj/item/storage/internal/helmet_internal_inventory) + ..() + if(!istype(helmet_internal_inventory)) + return + var/obj/item/clothing/head/helmet/helmet_item = helmet_internal_inventory.master_object + + if(!istype(helmet_item)) + return + + helmet_item.flags_inventory &= ~(BLOCKGASEFFECT) + helmet_item.flags_inv_hide &= ~(HIDEFACE) + /obj/item/prop/helmetgarb/trimmed_wire name = "trimmed barbed wire" desc = "It is a length of barbed wire that's had most of the sharp points filed down so that it is safe to handle." icon_state = "trimmed_wire" /obj/item/prop/helmetgarb/bullet_pipe - name = "10x99mm XM42B casing pipe" - desc = "The XM42B was an experimental weapons platform briefly fielded by the USCM and Wey-Yu PMC teams. It was manufactured by ARMAT systems at the Atlas weapons facility. Unfortunately the project had its funding pulled alongside the M5 integrated gasmask program. This spent casing has been converted into a pipe, but there is too much tar in the mouthpiece for it to be useable." + name = "10x99mm XM43E1 casing pipe" + desc = "The XM43E1 was an experimental weapons platform briefly fielded by the USCM and Wey-Yu PMC teams. It was manufactured by ARMAT systems at the Atlas weapons facility. Unfortunately the project had its funding pulled alongside the M5 integrated gasmask program. This spent casing has been converted into a pipe, but there is too much tar in the mouthpiece for it to be useable." icon_state = "bullet_pipe" /obj/item/prop/helmetgarb/chaplain_patch @@ -515,3 +535,83 @@ desc = "This patch is all that remains of the Chaplaincy of the USS Almayer, along with the Chaplains themselves. Both no longer exist as a result of losses suffered during Operation Tychon Tackle." icon_state = "chaplain_patch" flags_obj = OBJ_NO_HELMET_BAND + +/obj/item/prop/helmetgarb/family_photo + name = "family photo" + desc = "" + icon = 'icons/obj/items/items.dmi' + icon_state = "photo" + ///The human who spawns with the photo + var/datum/weakref/owner + ///The belonging human name + var/owner_name + ///The belonging human faction + var/owner_faction + ///Text written on the back + var/scribble + +/obj/item/prop/helmetgarb/family_photo/pickup(mob/user, silent) + . = ..() + if(!owner) + RegisterSignal(user, COMSIG_POST_SPAWN_UPDATE, PROC_REF(set_owner), override = TRUE) + + +///Sets the owner of the family photo to the human it spawns with, needs var/source for signals +/obj/item/prop/helmetgarb/family_photo/proc/set_owner(datum/source) + SIGNAL_HANDLER + UnregisterSignal(source, COMSIG_POST_SPAWN_UPDATE) + var/mob/living/carbon/human/user = source + owner = WEAKREF(user) + owner_name = user.name + owner_faction = user.faction + +/obj/item/prop/helmetgarb/family_photo/get_examine_text(mob/user) + . = ..() + if(scribble) + . += "\"[scribble]\" is written on the back of the photo." + if(user.weak_reference == owner) + . += "A photo of you and your family." + return + if(user.faction == owner_faction) + . += "A photo of [owner_name] and their family." + return + . += "A photo of a family you do not know." + +/obj/item/prop/helmetgarb/family_photo/attackby(obj/item/attacking_item, mob/user) + . = ..() + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_PEN) || istype(attacking_item, /obj/item/toy/crayon)) + if(scribble) + to_chat(user, SPAN_NOTICE("[src] has already been written on.")) + return + var/new_text = copytext(strip_html(tgui_input_text(user, "What would you like to write on the back of [src]?", "Photo Writing")), 1, 128) + + if(!loc == user) + to_chat(user, SPAN_NOTICE("You need to be holding [src] to write on it.")) + return + if(!user.stat == CONSCIOUS) + to_chat(user, SPAN_NOTICE("You cannot write on [src] in this state.")) + return + scribble = new_text + playsound(src, "paper_writing", 15, TRUE) + return TRUE + +/obj/item/prop/helmetgarb/compass + name = "compass" + desc = "It always faces north. Are you sure it is not broken?" + icon = 'icons/obj/items/items.dmi' + icon_state = "compass" + w_class = SIZE_SMALL + +/obj/item/prop/helmetgarb/compass/get_examine_text(mob/user) + . = ..() + if(is_ground_level(user.z) && !SSmapping.configs[GROUND_MAP].environment_traits[ZTRAIT_IN_SPACE]) + . += SPAN_NOTICE("It seems you are facing [dir2text(user.dir)].") + return + . += SPAN_NOTICE("The needle is not moving.") + +/obj/item/prop/helmetgarb/bug_spray + name = "insect repellent" + desc = "A store-brand insect repellent, to keep any variety of pest or mosquito away from you." + icon = 'icons/obj/items/spray.dmi' + icon_state = "pestspray" + w_class = SIZE_SMALL diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 46463e628c1d..04a3a15585ab 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -139,6 +139,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/tramadol/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Tramadol, a weak but effective painkiller for normal wounds. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/oxycodone name = "oxycodone autoinjector (EXTREME PAINKILLER)" chemname = "oxycodone" @@ -164,6 +170,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/kelotane/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Kelotane, a common burn medicine. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/bicaridine name = "bicaridine autoinjector" chemname = "bicaridine" @@ -180,6 +192,12 @@ item_state = "emptyskill" skilllock = SKILL_MEDICAL_DEFAULT +/obj/item/reagent_container/hypospray/autoinjector/bicaridine/skillless/one_use + desc = "An EZ autoinjector loaded with 1 use of Bicaridine, a common brute and circulatory damage medicine. Doesn't require any training to use." + volume = 15 + amount_per_transfer_from_this = 15 + uses_left = 1 + /obj/item/reagent_container/hypospray/autoinjector/inaprovaline name = "inaprovaline autoinjector" chemname = "inaprovaline" diff --git a/code/game/objects/items/reagent_containers/blood_pack.dm b/code/game/objects/items/reagent_containers/blood_pack.dm index 0879dcffdc68..92c68e81c9d2 100644 --- a/code/game/objects/items/reagent_containers/blood_pack.dm +++ b/code/game/objects/items/reagent_containers/blood_pack.dm @@ -163,7 +163,7 @@ if(!istype(usr, /mob/living)) return - if(usr.stat || usr.lying) + if(usr.stat || usr.is_mob_incapacitated()) return mode = !mode diff --git a/code/game/objects/items/reagent_containers/borghydro.dm b/code/game/objects/items/reagent_containers/borghydro.dm index 30a9bdbd3c65..4f1f5540988b 100644 --- a/code/game/objects/items/reagent_containers/borghydro.dm +++ b/code/game/objects/items/reagent_containers/borghydro.dm @@ -22,7 +22,7 @@ for(var/T in reagent_ids) reagent_volumes[T] = volume - var/datum/reagent/R = chemical_reagents_list[T] + var/datum/reagent/R = GLOB.chemical_reagents_list[T] reagent_names += R.name START_PROCESSING(SSobj, src) @@ -71,7 +71,7 @@ ..() var/selection = tgui_input_list(usr, "Please select a reagent:", "Reagent", reagent_ids) if(!selection) return - var/datum/reagent/R = chemical_reagents_list[selection] + var/datum/reagent/R = GLOB.chemical_reagents_list[selection] to_chat(user, SPAN_NOTICE(" Synthesizer is now producing '[R.name]'.")) mode = reagent_ids.Find(selection) playsound(src.loc, 'sound/effects/pop.ogg', 15, 0) @@ -81,6 +81,6 @@ . = ..() if (user != loc) return - var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_ids[mode]] . += SPAN_NOTICE("It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.") diff --git a/code/game/objects/items/reagent_containers/dropper.dm b/code/game/objects/items/reagent_containers/dropper.dm index eaf28f66b012..f36145e285cd 100644 --- a/code/game/objects/items/reagent_containers/dropper.dm +++ b/code/game/objects/items/reagent_containers/dropper.dm @@ -32,7 +32,7 @@ if(ismob(target)) var/time = 20 //2/3rds the time of a syringe - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] is trying to squirt something into [target]'s eyes!"), SHOW_MESSAGE_VISIBLE) if(!do_after(user, time, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, target, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) return @@ -56,7 +56,7 @@ safe_thing.create_reagents(100) trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this) - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] tries to squirt something into [target]'s eyes, but fails!"), SHOW_MESSAGE_VISIBLE) spawn(5) src.reagents.reaction(safe_thing, TOUCH) @@ -67,7 +67,7 @@ icon_state = "dropper[filled]" return - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] squirts something into [target]'s eyes!"), SHOW_MESSAGE_VISIBLE) src.reagents.reaction(target, TOUCH) diff --git a/code/game/objects/items/reagent_containers/food/condiment.dm b/code/game/objects/items/reagent_containers/food/condiment.dm index a13489f0af1e..35944e4422c4 100644 --- a/code/game/objects/items/reagent_containers/food/condiment.dm +++ b/code/game/objects/items/reagent_containers/food/condiment.dm @@ -23,7 +23,7 @@ return FALSE if(M == user) - to_chat(M, SPAN_NOTICE(" You swallow some of contents of the [src].")) + to_chat(M, SPAN_NOTICE("You swallow some of contents of [src].")) else if(istype(M, /mob/living/carbon/human)) user.affected_message(M, @@ -80,7 +80,7 @@ to_chat(user, SPAN_DANGER("[src] is empty.")) return if(target.reagents.total_volume >= target.reagents.maximum_volume) - to_chat(user, SPAN_DANGER("you can't add anymore to [target].")) + to_chat(user, SPAN_DANGER("You can't add any more to [target].")) return var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) to_chat(user, SPAN_NOTICE(" You transfer [trans] units of the condiment to [target].")) @@ -202,7 +202,7 @@ /obj/item/reagent_container/food/condiment/hotsauce/franks name = "\improper Frank's Red Hot bottle" desc = "A bottle of Weyland-Yutani brand Frank's Red Hot hot sauce." - desc_lore = "Supposedly designed as a middle-ground flavor between ketchup and cayenne, this brand of spicy goodness achieved critical acclaim throughout UA space within both colonies and vessels alike. The sudden and widespread adoption was curiously timed with the near-simultaneous shelving of the original Frank's 'ULTRA' hot sauce." + desc_lore = "Supposedly designed as a middle-ground flavor between ketchup and cayenne, this brand of spicy goodness achieved critical acclaim throughout UA space within both colonies and vessels alike. The sudden and widespread adoption was curiously timed with the near-simultaneous shelving of the original Frank's 'ULTRA' hot sauce." icon_state = "hotsauce_franks" item_state = "hotsauce_franks" diff --git a/code/game/objects/items/reagent_containers/food/drinks.dm b/code/game/objects/items/reagent_containers/food/drinks.dm index 9f88990e5350..db83723bc8df 100644 --- a/code/game/objects/items/reagent_containers/food/drinks.dm +++ b/code/game/objects/items/reagent_containers/food/drinks.dm @@ -23,6 +23,10 @@ to_chat(user, SPAN_DANGER("The [src.name] is empty!")) return FALSE + if(HAS_TRAIT(M, TRAIT_CANNOT_EAT)) + to_chat(user, SPAN_DANGER("[user == M ? "You are" : "[M] is"] unable to drink!")) + return FALSE + if(M == user) to_chat(M, SPAN_NOTICE(" You swallow a gulp from \the [src].")) if(reagents.total_volume) diff --git a/code/game/objects/items/reagent_containers/food/fortunecookie.dm b/code/game/objects/items/reagent_containers/food/fortunecookie.dm index a878ff589dc8..6077541acd84 100644 --- a/code/game/objects/items/reagent_containers/food/fortunecookie.dm +++ b/code/game/objects/items/reagent_containers/food/fortunecookie.dm @@ -75,7 +75,7 @@ to_chat(user,SPAN_WARNING("[src] is cracked open! How are you gonna slip something in that?")) else if(!cookiefortune) - to_chat(user, SPAN_NOTICE("You slip the paper into the [src].")) + to_chat(user, SPAN_NOTICE("You slip the paper into [src].")) cookiefortune = W user.drop_inv_item_to_loc(W, src) else @@ -93,7 +93,7 @@ user.put_in_hands(cookiefortune) cookiefortune = null else - to_chat(SPAN_WARNING("You break open the fortune cookie, but there's no fortune inside! Oh no!")) + to_chat(user, SPAN_WARNING("You break open the fortune cookie, but there's no fortune inside! Oh no!")) else . = ..() @@ -109,7 +109,7 @@ user.put_in_hands(cookiefortune) cookiefortune = null else - to_chat(SPAN_WARNING("You break open the fortune cookie, but there's no fortune inside! Oh no!")) + to_chat(user, SPAN_WARNING("You break open the fortune cookie, but there's no fortune inside! Oh no!")) else . = ..() diff --git a/code/game/objects/items/reagent_containers/food/sandwich.dm b/code/game/objects/items/reagent_containers/food/sandwich.dm index 1b7d61eaddad..511c0c042be1 100644 --- a/code/game/objects/items/reagent_containers/food/sandwich.dm +++ b/code/game/objects/items/reagent_containers/food/sandwich.dm @@ -18,7 +18,7 @@ /obj/item/reagent_container/food/snacks/csandwich/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/reagent_container/food/snacks/csandwich)) //No sandwitch inception, it causes some bugs... - to_chat(user, SPAN_NOTICE(" You can't put a [W] in the [src].")) + to_chat(user, SPAN_NOTICE("You can't put \a [W] in [src].")) return var/sandwich_limit = 4 diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index 06a4d785e677..076a4f77cf01 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -21,6 +21,7 @@ //Placeholder for effect that trigger on eating that aren't tied to reagents. /obj/item/reagent_container/food/snacks/proc/On_Consume(mob/M) SEND_SIGNAL(src, COMSIG_SNACK_EATEN, M) + SEND_SIGNAL(M, COMSIG_MOB_EATEN_SNACK, src) if(!usr) return if(!reagents.total_volume) @@ -42,7 +43,7 @@ ..() if (world.time <= user.next_move) - return + return FALSE attack(user, user, "head")//zone does not matter user.next_move += attack_speed @@ -51,24 +52,24 @@ to_chat(user, SPAN_DANGER("None of [src] left, oh no!")) M.drop_inv_item_on_ground(src) //so icons update :[ qdel(src) - return 0 + return FALSE if(package) to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) - return 0 + return FALSE if(istype(M, /mob/living/carbon)) var/mob/living/carbon/C = M var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25) if(fullness > NUTRITION_HIGH && world.time < C.overeat_cooldown) to_chat(user, SPAN_WARNING("[user == M ? "You" : "They"] don't feel like eating more right now.")) - return + return FALSE if(issynth(C)) fullness = 200 //Synths never get full if(HAS_TRAIT(M, TRAIT_CANNOT_EAT)) //Do not feed the Working Joes to_chat(user, SPAN_DANGER("[user == M ? "You are" : "[M] is"] unable to eat!")) - return + return FALSE if(fullness > NUTRITION_HIGH) C.overeat_cooldown = world.time + OVEREAT_TIME @@ -120,9 +121,9 @@ reagents.trans_to_ingest(M, reagents.total_volume) bitecount++ On_Consume(M) - return 1 + return TRUE - return 0 + return FALSE /obj/item/reagent_container/food/snacks/afterattack(obj/target, mob/user, proximity) return ..() @@ -182,10 +183,9 @@ return 0 var/inaccurate = 0 - if(W.sharp == IS_SHARP_ITEM_ACCURATE) - else if(W.sharp == IS_SHARP_ITEM_BIG) + if(W.sharp == IS_SHARP_ITEM_BIG) inaccurate = 1 - else + else if(W.sharp != IS_SHARP_ITEM_ACCURATE) return 1 if ( !istype(loc, /obj/structure/surface/table) && \ (!isturf(src.loc) || \ @@ -206,7 +206,7 @@ SPAN_NOTICE("[user] crudely slices \the [src] with [W]!"), \ SPAN_NOTICE("You crudely slice \the [src] with your [W]!") \ ) - slices_lost = rand(1,min(1,round(slices_num/2))) + slices_lost = rand(1,max(1,round(slices_num/2))) var/reagents_per_slice = reagents.total_volume/slices_num for(var/i=1 to (slices_num-slices_lost)) var/obj/slice = new slice_path (src.loc) @@ -218,10 +218,10 @@ if(isanimal(M)) if(iscorgi(M)) if(bitecount == 0 || prob(50)) - M.emote("nibbles away at the [src]") + M.emote("nibbles away at [src]") bitecount++ if(bitecount >= 5) - var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where the [src] was") + var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where [src] was") if(sattisfaction_text) M.emote("[sattisfaction_text]") qdel(src) @@ -2802,7 +2802,7 @@ if( open && pizza ) user.put_in_hands( pizza ) - to_chat(user, SPAN_DANGER("You take the [src.pizza] out of the [src].")) + to_chat(user, SPAN_DANGER("You take the [src.pizza] out of [src].")) src.pizza = null update_icon() return @@ -2853,11 +2853,11 @@ box.update_icon() update_icon() - to_chat(user, SPAN_DANGER("You put the [box] ontop of the [src]!")) + to_chat(user, SPAN_DANGER("You put [box] ontop of [src]!")) else to_chat(user, SPAN_DANGER("The stack is too high!")) else - to_chat(user, SPAN_DANGER("Close the [box] first!")) + to_chat(user, SPAN_DANGER("Close [box] first!")) return @@ -2869,9 +2869,9 @@ update_icon() - to_chat(user, SPAN_DANGER("You put the [I] in the [src]!")) + to_chat(user, SPAN_DANGER("You put [I] in [src]!")) else - to_chat(user, SPAN_DANGER("You try to push the [I] through the lid but it doesn't work!")) + to_chat(user, SPAN_DANGER("You try to push [I] through the lid but it doesn't work!")) return if( istype(I, /obj/item/tool/pen/) ) @@ -3132,6 +3132,7 @@ icon_state = "packaged-burrito" bitesize = 2 package = 1 + flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB /obj/item/reagent_container/food/snacks/packaged_burrito/Initialize() . = ..() @@ -3175,6 +3176,7 @@ name = "Packaged Hotdog" desc = "A singular squishy, room temperature, hot dog. There's no time given for how long to cook it, so you assume its probably good to go. Packaged by the Weyland-Yutani Corporation." icon_state = "packaged-hotdog" + flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB bitesize = 2 package = 1 diff --git a/code/game/objects/items/reagent_containers/food/snacks/grown.dm b/code/game/objects/items/reagent_containers/food/snacks/grown.dm index 12a5a704f663..32423c121b61 100644 --- a/code/game/objects/items/reagent_containers/food/snacks/grown.dm +++ b/code/game/objects/items/reagent_containers/food/snacks/grown.dm @@ -30,7 +30,7 @@ /obj/item/reagent_container/food/snacks/grown/proc/update_from_seed()// Fill the object up with the appropriate reagents. if(!isnull(plantname)) - var/datum/seed/S = seed_types[plantname] + var/datum/seed/S = GLOB.seed_types[plantname] if(!S) return name = S.seed_name //Copies the name from the seed, important for renamed plants diff --git a/code/game/objects/items/reagent_containers/glass.dm b/code/game/objects/items/reagent_containers/glass.dm index 240809b7851f..2a7bde748fba 100644 --- a/code/game/objects/items/reagent_containers/glass.dm +++ b/code/game/objects/items/reagent_containers/glass.dm @@ -237,7 +237,7 @@ overlays += lid /obj/item/reagent_container/glass/minitank - name = "MS-11 Smart Refill Tank" + name = "\improper MS-11 Smart Refill Tank" desc = "A robust little tank capable of refilling autoinjectors that previously required a nanomed system to refill. Using the wonders of microchips, it automatically sorts the correct chemicals into most single reagent autoinjectors. It is unable to partially fill them however. A valve exists on the top to transfer reagents to another container or to flush it entirely." icon = 'icons/obj/items/tank.dmi' icon_state = "mini_reagent_tank" @@ -277,7 +277,7 @@ if(istype(W, /obj/item/reagent_container/hypospray/autoinjector)) var/obj/item/reagent_container/hypospray/autoinjector/A = W if(A.mixed_chem) - to_chat(user, SPAN_WARNING("The autoinjector doesn't fit into the [src]'s valve. It's probably not compatible.")) + to_chat(user, SPAN_WARNING("The autoinjector doesn't fit into [src]'s valve. It's probably not compatible.")) return if(reagents.has_reagent(A.chemname, A.volume)) reagents.trans_id_to(A, A.chemname, A.volume) @@ -285,10 +285,10 @@ A.update_icon() playsound(src.loc, 'sound/effects/refill.ogg', 25, 1, 3) else - to_chat(user, SPAN_WARNING("A small LED on \the [src] blinks. The tank can't refill \the [A] - it's either incompatible or out of chemicals to fill it with!")) + to_chat(user, SPAN_WARNING("A small LED on [src] blinks. The tank can't refill [A] - it's either incompatible or out of chemicals to fill it with!")) . = ..() return - to_chat(user,SPAN_INFO("You successfully refill \the [W.name] with \the [src]!")) + to_chat(user, SPAN_INFO("You successfully refill [A] with [src]!")) /obj/item/reagent_container/glass/minitank/verb/flush_tank(mob/user) set category = "Object" @@ -299,7 +299,7 @@ to_chat(user, SPAN_WARNING("It's already empty!")) return playsound(src.loc, 'sound/effects/slosh.ogg', 25, 1, 3) - to_chat(user, SPAN_WARNING("You work the flush valve and successfully flush \the [src]'s contents!")) + to_chat(user, SPAN_WARNING("You work the flush valve and successfully flush [src]'s contents!")) reagents.clear_reagents() update_icon() // just to be sure return @@ -363,11 +363,8 @@ matter = list() possible_transfer_amounts = list(5,10,15,25,30) flags_atom = FPRINT|OPENCONTAINER - -/obj/item/reagent_container/glass/beaker/vial/Initialize() - . = ..() - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) + ground_offset_x = 9 + ground_offset_y = 8 /obj/item/reagent_container/glass/beaker/vial/tricordrazine name = "tricordrazine vial" @@ -392,17 +389,17 @@ . = ..() var/random_chem if(tier) - random_chem = pick(chemical_gen_classes_list[tier]) + random_chem = pick(GLOB.chemical_gen_classes_list[tier]) else - random_chem = pick( prob(3);pick(chemical_gen_classes_list["C1"]),\ - prob(5);pick(chemical_gen_classes_list["C2"]),\ - prob(7);pick(chemical_gen_classes_list["C3"]),\ - prob(10);pick(chemical_gen_classes_list["C4"]),\ - prob(15);pick(chemical_gen_classes_list["C5"]),\ - prob(25);pick(chemical_gen_classes_list["T1"]),\ - prob(15);pick(chemical_gen_classes_list["T2"]),\ - prob(10);pick(chemical_gen_classes_list["T3"]),\ - prob(5);pick(chemical_gen_classes_list["T4"]),\ + random_chem = pick( prob(3);pick(GLOB.chemical_gen_classes_list["C1"]),\ + prob(5);pick(GLOB.chemical_gen_classes_list["C2"]),\ + prob(7);pick(GLOB.chemical_gen_classes_list["C3"]),\ + prob(10);pick(GLOB.chemical_gen_classes_list["C4"]),\ + prob(15);pick(GLOB.chemical_gen_classes_list["C5"]),\ + prob(25);pick(GLOB.chemical_gen_classes_list["T1"]),\ + prob(15);pick(GLOB.chemical_gen_classes_list["T2"]),\ + prob(10);pick(GLOB.chemical_gen_classes_list["T3"]),\ + prob(5);pick(GLOB.chemical_gen_classes_list["T4"]),\ prob(15);"") if(random_chem) reagents.add_reagent(random_chem, 30) @@ -675,5 +672,5 @@ if(istype(AM) && (src in user)) user.visible_message("[user] starts to wipe down [AM] with [src]!") if(do_after(user,30, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - user.visible_message("[user] finishes wiping off the [AM]!") + user.visible_message("[user] finishes wiping off [AM]!") AM.clean_blood() diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm index dd857d391b52..01eb751774e1 100644 --- a/code/game/objects/items/reagent_containers/glass/bottle.dm +++ b/code/game/objects/items/reagent_containers/glass/bottle.dm @@ -30,7 +30,7 @@ /obj/item/reagent_container/glass/bottle/Initialize() . = ..() if(!icon_state) - icon_state = "bottle-[rand(1.4)]" + icon_state = "bottle-[rand(1,4)]" /obj/item/reagent_container/glass/bottle/update_icon() overlays.Cut() diff --git a/code/game/objects/items/reagent_containers/hypospray.dm b/code/game/objects/items/reagent_containers/hypospray.dm index fcea8997f0b5..5e268d35a33d 100644 --- a/code/game/objects/items/reagent_containers/hypospray.dm +++ b/code/game/objects/items/reagent_containers/hypospray.dm @@ -206,6 +206,7 @@ to_chat(user, SPAN_NOTICE(" You inject [M] with [src].")) to_chat(M, SPAN_WARNING("You feel a tiny prick!")) playsound(loc, injectSFX, injectVOL, 1) + SEND_SIGNAL(M, COMSIG_LIVING_HYPOSPRAY_INJECTED, src) reagents.reaction(M, INGEST) if(M.reagents) diff --git a/code/game/objects/items/reagent_containers/pill.dm b/code/game/objects/items/reagent_containers/pill.dm index de86ad07f53a..6c71d8be3c0c 100644 --- a/code/game/objects/items/reagent_containers/pill.dm +++ b/code/game/objects/items/reagent_containers/pill.dm @@ -23,6 +23,8 @@ w_class = SIZE_TINY volume = 60 reagent_desc_override = TRUE //it has a special examining mechanic + ground_offset_x = 7 + ground_offset_y = 7 var/identificable = TRUE //can medically trained people tell what's in it? var/pill_desc = "An unknown pill." // The real description of the pill, shown when examined by a medically trained person var/pill_icon_class = "random" // Pills with the same icon class share icons diff --git a/code/game/objects/items/reagent_containers/reagent_container.dm b/code/game/objects/items/reagent_containers/reagent_container.dm index eddbf5197a9e..327f6ba1ce1c 100644 --- a/code/game/objects/items/reagent_containers/reagent_container.dm +++ b/code/game/objects/items/reagent_containers/reagent_container.dm @@ -14,6 +14,8 @@ var/transparent = FALSE //can we see what's in it? var/reagent_desc_override = FALSE //does it have a special examining mechanic that should override the normal /reagent_containers examine proc? actions_types = list(/datum/action/item_action/reagent_container/set_transfer_amount) + ground_offset_x = 7 + ground_offset_y = 7 /obj/item/reagent_container/Initialize() if(!possible_transfer_amounts) @@ -65,12 +67,6 @@ if (N) R.amount_per_transfer_from_this = N -/obj/item/reagent_container/Initialize() - . = ..() - if (!possible_transfer_amounts) - verbs -= /obj/item/reagent_container/verb/set_APTFT //which objects actually uses it? - create_reagents(volume) - /obj/item/reagent_container/Destroy() possible_transfer_amounts = null return ..() diff --git a/code/game/objects/items/reagent_containers/robodropper.dm b/code/game/objects/items/reagent_containers/robodropper.dm index 7447681f0566..694194fbef70 100644 --- a/code/game/objects/items/reagent_containers/robodropper.dm +++ b/code/game/objects/items/reagent_containers/robodropper.dm @@ -45,7 +45,7 @@ safe_thing.create_reagents(100) trans = src.reagents.trans_to(safe_thing, amount_per_transfer_from_this) - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] tries to squirt something into [target]'s eyes, but fails!"), SHOW_MESSAGE_VISIBLE) spawn(5) src.reagents.reaction(safe_thing, TOUCH) @@ -58,7 +58,7 @@ return - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] squirts something into [target]'s eyes!"), SHOW_MESSAGE_VISIBLE) src.reagents.reaction(target, TOUCH) diff --git a/code/game/objects/items/reagent_containers/syringes.dm b/code/game/objects/items/reagent_containers/syringes.dm index 06cbb559360c..2bb121740cef 100644 --- a/code/game/objects/items/reagent_containers/syringes.dm +++ b/code/game/objects/items/reagent_containers/syringes.dm @@ -258,20 +258,20 @@ return if (target != user && target.getarmor(target_zone, ARMOR_MELEE) > 5 && prob(50)) - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(text(SPAN_DANGER("[user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!")), SHOW_MESSAGE_VISIBLE) user.temp_drop_inv_item(src) qdel(src) return - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(text(SPAN_DANGER("[user] stabs [target] in \the [hit_area] with [src.name]!")), SHOW_MESSAGE_VISIBLE) if(affecting.take_damage(3)) target:UpdateDamageIcon() else - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(text(SPAN_DANGER("[user] stabs [target] with [src.name]!")), SHOW_MESSAGE_VISIBLE) target.take_limb_damage(3)// 7 is the same as crowbar punch diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index c5fa39fd100c..de2daa9a3009 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -12,7 +12,7 @@ /obj/item/robot/upgrade/proc/action(mob/living/silicon/robot/R) if(R.stat == DEAD) - to_chat(usr, SPAN_DANGER("The [src] will not function on a deceased robot.")) + to_chat(usr, SPAN_DANGER("[src] will not function on a deceased robot.")) return 1 return 0 @@ -68,7 +68,7 @@ for(var/mob/dead/observer/ghost in GLOB.observer_list) if(ghost.mind && ghost.mind.original == R) R.key = ghost.key - if(R.client) R.client.change_view(world_view_size) + if(R.client) R.client.change_view(GLOB.world_view_size) break R.set_stat(CONSCIOUS) diff --git a/code/game/objects/items/shards.dm b/code/game/objects/items/shards.dm index 84c3d5b83427..dab573e6f5a5 100644 --- a/code/game/objects/items/shards.dm +++ b/code/game/objects/items/shards.dm @@ -81,7 +81,7 @@ /obj/item/large_shrapnel/proc/on_embedded_movement(mob/living/embedded_mob) return -/obj/item/large_shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/large_shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) return /obj/item/large_shrapnel/at_rocket_dud @@ -180,14 +180,14 @@ cell_explosion(get_turf(target), 200, 150, EXPLOSION_FALLOFF_SHAPE_LINEAR, direction, create_cause_data("[cause] UXO detonation", user)) qdel(src) -/obj/item/large_shrapnel/at_rocket_dud/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/large_shrapnel/at_rocket_dud/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) if(!ishuman(embedded_mob)) return var/mob/living/carbon/human/H = embedded_mob if(H.species.flags & NO_SHRAPNEL) return if(istype(target_organ)) - target_organ.embed(src) + target_organ.embed(src, silent) /obj/item/large_shrapnel/at_rocket_dud/on_embedded_movement(mob/living/embedded_mob) if(!ishuman(embedded_mob)) @@ -212,14 +212,14 @@ source_sheet_type = null var/damage_on_move = 0.5 -/obj/item/shard/shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) +/obj/item/shard/shrapnel/proc/on_embed(mob/embedded_mob, obj/limb/target_organ, silent = FALSE) if(!ishuman(embedded_mob)) return var/mob/living/carbon/human/H = embedded_mob if(H.species.flags & NO_SHRAPNEL) return if(istype(target_organ)) - target_organ.embed(src) + target_organ.embed(src, silent) /obj/item/shard/shrapnel/proc/on_embedded_movement(mob/living/embedded_mob) if(!ishuman(embedded_mob)) @@ -228,7 +228,7 @@ if(H.species.flags & NO_SHRAPNEL) return var/obj/limb/organ = embedded_organ - if(istype(organ)) + if(istype(organ) && damage_on_move) organ.take_damage(damage_on_move * count, 0, 0, no_limb_loss = TRUE) embedded_mob.pain.apply_pain(damage_on_move * count) @@ -261,3 +261,7 @@ name = "alien bone fragments" icon_state = "alienbonechips" desc = "Sharp, jagged fragments of alien bone. Looks like the previous owner exploded violently..." + +/obj/item/shard/shrapnel/tutorial + damage_on_move = 0 + diff --git a/code/game/objects/items/stacks/cable_coil.dm b/code/game/objects/items/stacks/cable_coil.dm index 9135c793cd00..e846979c00b4 100644 --- a/code/game/objects/items/stacks/cable_coil.dm +++ b/code/game/objects/items/stacks/cable_coil.dm @@ -20,14 +20,14 @@ attack_verb = list("whipped", "lashed", "disciplined", "flogged") stack_id = "cable coil" attack_speed = 3 + ground_offset_x = 2 + ground_offset_y = 2 /obj/item/stack/cable_coil/Initialize(mapload, length = MAXCOIL, param_color = null) . = ..() src.amount = length if (param_color) // It should be red by default, so only recolor it if parameter was specified. color = param_color - pixel_x = rand(-2,2) - pixel_y = rand(-2,2) updateicon() update_wclass() @@ -276,8 +276,6 @@ /obj/item/stack/cable_coil/cut/Initialize() . = ..() src.amount = rand(1,2) - pixel_x = rand(-2,2) - pixel_y = rand(-2,2) updateicon() update_wclass() diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index f96903cfb687..5434aa006137 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -95,6 +95,9 @@ to_chat(user, SPAN_WARNING("There are no wounds on [possessive] [affecting.display_name].")) return TRUE +/obj/item/stack/medical/bruise_pack/two + amount = 2 + /obj/item/stack/medical/ointment name = "ointment" desc = "Used to treat burns, infected wounds, and relieve itching in unusual places." diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index 32e9a030462e..754a36c6012a 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -40,7 +40,7 @@ H.pain.recalculate_pain() H.updatehealth() use(1) - var/others_msg = "\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the"] [S.display_name] with \the [src]." // Needs to create vars for these messages because macro doesn't work otherwise + var/others_msg = "\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " the"] [S.display_name] with \the [src]." // Needs to create vars for these messages because macro doesn't work otherwise var/user_msg = "You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.display_name]." user.visible_message(SPAN_NOTICE("[others_msg]"),\ SPAN_NOTICE("[user_msg]")) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 972898e6449b..7c12da0707c7 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -106,7 +106,7 @@ if(AC) to_chat(usr, SPAN_WARNING("\The [src] cannot be built here!")) return TRUE - var/list/directions = new/list(cardinal) + var/list/directions = GLOB.cardinals.Copy() var/i = 0 for (var/obj/structure/window/win in user.loc) i++ @@ -114,7 +114,7 @@ to_chat(user, SPAN_DANGER("There are too many windows in this location.")) return TRUE directions-=win.dir - if(!(win.dir in cardinal)) + if(!(win.dir in GLOB.cardinals)) to_chat(user, SPAN_DANGER("Can't let you do that.")) return TRUE @@ -189,6 +189,13 @@ is_reinforced = 1 construction_options = list("One Direction", "Full Window", "Windoor") +/obj/item/stack/sheet/glass/reinforced/medium_stack + amount = 25 + +/obj/item/stack/sheet/glass/reinforced/large_stack + amount = 50 + + /obj/item/stack/sheet/glass/reinforced/cyborg matter = null diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 98a7ab036f06..a0814290ca40 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -10,7 +10,7 @@ /* * Metal */ -var/global/list/datum/stack_recipe/metal_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(metal_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("barbed wire", /obj/item/stack/barbed_wire, 1, 1, 20, time = 1 SECONDS, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_TRAINED), \ new/datum/stack_recipe("metal barricade", /obj/structure/barricade/metal, 4, time = 2 SECONDS, one_per_turf = ONE_TYPE_PER_BORDER, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_TRAINED, min_time = 1 SECONDS), \ new/datum/stack_recipe("folding metal barricade", /obj/structure/barricade/plasteel/metal, 6, time = 3 SECONDS, one_per_turf = ONE_TYPE_PER_BORDER, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI, min_time = 1.5 SECONDS), \ @@ -54,7 +54,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ null, \ new/datum/stack_recipe("metal baseball bat", /obj/item/weapon/baseballbat/metal, 10, time = 20, on_floor = 1), \ null, \ -) +)) /obj/item/stack/sheet/metal name = "metal sheets" @@ -69,6 +69,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ sheettype = "metal" stack_id = "metal" + /obj/item/stack/sheet/metal/small_stack amount = STACK_10 @@ -87,20 +88,20 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ /obj/item/stack/sheet/metal/cyborg /obj/item/stack/sheet/metal/Initialize(mapload, amount) - recipes = metal_recipes + recipes = GLOB.metal_recipes return ..() /* * Plasteel */ -var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(plasteel_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("plasteel barricade", /obj/structure/barricade/plasteel, 8, time = 4 SECONDS, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI, min_time = 2 SECONDS), null, \ new/datum/stack_recipe("reinforced window frame", /obj/structure/window_frame/colony/reinforced, 5, time = 40, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_ENGI), null, \ new/datum/stack_recipe("plasteel rod", /obj/item/stack/rods/plasteel, 1, 1, 30), new/datum/stack_recipe("metal crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = ONE_TYPE_PER_TURF), \ - ) + )) /obj/item/stack/sheet/plasteel name = "plasteel sheet" @@ -114,9 +115,11 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ amount_sprites = TRUE sheettype = "plasteel" stack_id = "plasteel" + ground_offset_x = 4 + ground_offset_y = 5 /obj/item/stack/sheet/plasteel/New(loc, amount=null) - recipes = plasteel_recipes + recipes = GLOB.plasteel_recipes return ..() @@ -138,7 +141,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ /* * Wood */ -var/global/list/datum/stack_recipe/wood_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(wood_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("pair of wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ /* @@ -153,7 +156,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ new/datum/stack_recipe("baseball bat", /obj/item/weapon/baseballbat, 10, time = 20, on_floor = 1), \ new/datum/stack_recipe("wooden cross", /obj/structure/prop/wooden_cross, 2, time = 10, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1), \ new/datum/stack_recipe("wooden pole", /obj/item/weapon/pole, 3, time = 10, one_per_turf = ONE_TYPE_PER_TURF, on_floor = 1) \ - ) + )) /obj/item/stack/sheet/wood name = "wooden plank" @@ -181,7 +184,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ icon_state = "sheet-wood" /obj/item/stack/sheet/wood/New(loc, amount=null) - recipes = wood_recipes + recipes = GLOB.wood_recipes return ..() /* @@ -198,7 +201,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ /* * Cardboard */ -var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("box", /obj/item/storage/box), \ new/datum/stack_recipe("donut box", /obj/item/storage/donut_box/empty), \ new/datum/stack_recipe("egg box", /obj/item/storage/fancy/egg_box), \ @@ -208,6 +211,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ + new/datum/stack_recipe("dartboard", /obj/item/dartboard), \ null, \ new/datum/stack_recipe_list("folders",list( \ new/datum/stack_recipe("blue folder", /obj/item/folder/blue), \ @@ -219,11 +223,13 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ null, \ new/datum/stack_recipe_list("empty ammo boxes",list( \ new/datum/stack_recipe("empty magazine box (88 Mod 4 AP)", /obj/item/ammo_box/magazine/mod88/empty), \ + new/datum/stack_recipe("empty magazine box (SU-6)", /obj/item/ammo_box/magazine/su6/empty), \ + new/datum/stack_recipe("empty magazine box (VP78)", /obj/item/ammo_box/magazine/vp78/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (M4A3)", /obj/item/ammo_box/magazine/m4a3/empty), \ new/datum/stack_recipe("empty magazine box (M4A3 AP)", /obj/item/ammo_box/magazine/m4a3/ap/empty), \ new/datum/stack_recipe("empty magazine box (M4A3 HP)", /obj/item/ammo_box/magazine/m4a3/hp/empty), \ - new/datum/stack_recipe("empty magazine box (SU-6)", /obj/item/ammo_box/magazine/su6/empty), \ - new/datum/stack_recipe("empty magazine box (VP78)", /obj/item/ammo_box/magazine/vp78/empty), \ + new/datum/stack_recipe("empty magazine box (M4A3 Incen)", /obj/item/ammo_box/magazine/m4a3/incen/empty), \ null, \ new/datum/stack_recipe("empty speed loader box (M44)", /obj/item/ammo_box/magazine/m44/empty), \ new/datum/stack_recipe("empty speed loader box (M44 Heavy)", /obj/item/ammo_box/magazine/m44/heavy/empty), \ @@ -252,10 +258,27 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("empty magazine box (M41A Incen)", /obj/item/ammo_box/magazine/incen/empty), \ new/datum/stack_recipe("empty magazine box (M41A LE)", /obj/item/ammo_box/magazine/le/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (M41A MK1)", /obj/item/ammo_box/magazine/mk1/empty), \ + new/datum/stack_recipe("empty magazine box (M41A MK1 AP)", /obj/item/ammo_box/magazine/mk1/ap/empty), \ + null, \ + new/datum/stack_recipe("empty drum box (M56B)", /obj/item/ammo_box/magazine/m56b/empty), \ + new/datum/stack_recipe("empty drum box (M56B Irradiated)", /obj/item/ammo_box/magazine/m56b/dirty/empty), \ + new/datum/stack_recipe("empty drum box (M56D)", /obj/item/ammo_box/magazine/m56d/empty), \ + null, \ + new/datum/stack_recipe("empty drum box (M2C)", /obj/item/ammo_box/magazine/m2c/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (M41AE2)", /obj/item/ammo_box/magazine/m41ae2/empty), \ + new/datum/stack_recipe("empty magazine box (M41AE2 Holo-Target)", /obj/item/ammo_box/magazine/m41ae2/holo/empty), \ + new/datum/stack_recipe("empty magazine box (M41AE2 HEAP)", /obj/item/ammo_box/magazine/m41ae2/heap/empty), \ + null, \ + new/datum/stack_recipe("empty flamer tank box (UT-Napthal)", /obj/item/ammo_box/magazine/flamer/empty), \ + new/datum/stack_recipe("empty flamer tank box (Napalm B-Gel)", /obj/item/ammo_box/magazine/flamer/bgel/empty), \ + null, \ new/datum/stack_recipe("empty shotgun shell box (Beanbag)", /obj/item/ammo_box/magazine/shotgun/beanbag/empty), \ new/datum/stack_recipe("empty shotgun shell box (Buckshot)", /obj/item/ammo_box/magazine/shotgun/buckshot/empty), \ new/datum/stack_recipe("empty shotgun shell box (Flechette)", /obj/item/ammo_box/magazine/shotgun/flechette/empty), \ new/datum/stack_recipe("empty shotgun shell box (Incendiary)", /obj/item/ammo_box/magazine/shotgun/incendiary/empty), \ + new/datum/stack_recipe("empty shotgun shell box (Incendiary Buckshot)", /obj/item/ammo_box/magazine/shotgun/incendiarybuck/empty), \ new/datum/stack_recipe("empty shotgun shell box (Slugs)", /obj/item/ammo_box/magazine/shotgun/empty), \ null, \ new/datum/stack_recipe("empty 45-70 bullets box", /obj/item/ammo_box/magazine/lever_action/empty), \ @@ -275,23 +298,48 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("empty rifle ammo box (10x24mm Incen)", /obj/item/ammo_box/rounds/incen/empty), \ new/datum/stack_recipe("empty rifle ammo box (10x24mm LE)", /obj/item/ammo_box/rounds/le/empty), \ null, \ + new/datum/stack_recipe("empty rifle ammo box (9mm)", /obj/item/ammo_box/rounds/pistol/empty), \ + new/datum/stack_recipe("empty rifle ammo box (9mm AP)", /obj/item/ammo_box/rounds/pistol/ap/empty), \ + new/datum/stack_recipe("empty rifle ammo box (9mm HP)", /obj/item/ammo_box/rounds/pistol/hp/empty), \ + new/datum/stack_recipe("empty rifle ammo box (9mm Incen)", /obj/item/ammo_box/rounds/pistol/incen/empty), \ + null, \ new/datum/stack_recipe("empty box of MREs", /obj/item/ammo_box/magazine/misc/mre/empty), \ new/datum/stack_recipe("empty box of M94 Marking Flare Packs", /obj/item/ammo_box/magazine/misc/flares/empty), \ + new/datum/stack_recipe("empty box of M89 Signal Flare Packs", /obj/item/ammo_box/magazine/misc/flares/signal/empty), \ new/datum/stack_recipe("empty box of flashlights", /obj/item/ammo_box/magazine/misc/flashlight/empty), \ new/datum/stack_recipe("empty box of High-Capacity Power Cells", /obj/item/ammo_box/magazine/misc/power_cell/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (Desert Eagle)", /obj/item/ammo_box/magazine/deagle/empty), \ + new/datum/stack_recipe("empty magazine box (Desert Eagle Heavy)", /obj/item/ammo_box/magazine/deagle/super/empty), \ + new/datum/stack_recipe("empty magazine box (Desert Eagle High-Impact)", /obj/item/ammo_box/magazine/deagle/super/highimpact/empty), \ + new/datum/stack_recipe("empty magazine box (Desert Eagle AP)", /obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (Spearhead HP)", /obj/item/ammo_box/magazine/spearhead/empty), \ + new/datum/stack_recipe("empty magazine box (Spearhead)", /obj/item/ammo_box/magazine/spearhead/normalpoint/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (M16)", /obj/item/ammo_box/magazine/M16/empty), \ new/datum/stack_recipe("empty magazine box (M16 AP)", /obj/item/ammo_box/magazine/M16/ap/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (AR10)", /obj/item/ammo_box/magazine/ar10/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (MP5)", /obj/item/ammo_box/magazine/mp5/empty), \ + null, \ + new/datum/stack_recipe("empty magazine box (NSG 23)", /obj/item/ammo_box/magazine/nsg23/empty), \ + new/datum/stack_recipe("empty magazine box (NSG 23 AP)", /obj/item/ammo_box/magazine/nsg23/ap/empty), \ + new/datum/stack_recipe("empty magazine box (NSG 23 EX)", /obj/item/ammo_box/magazine/nsg23/ex/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (Type71)", /obj/item/ammo_box/magazine/type71/empty), \ new/datum/stack_recipe("empty magazine box (Type71 AP)", /obj/item/ammo_box/magazine/type71/ap/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (Type73)", /obj/item/ammo_box/magazine/type73/empty), \ + new/datum/stack_recipe("empty magazine box (Type73 High-Impact)", /obj/item/ammo_box/magazine/type73/impact/empty), \ + null, \ new/datum/stack_recipe("empty rifle ammo box (5.45x39mm)", /obj/item/ammo_box/rounds/type71/empty), \ new/datum/stack_recipe("empty rifle ammo box (5.45x39mm AP)", /obj/item/ammo_box/rounds/type71/ap/empty), \ )) \ -) +)) /obj/item/stack/sheet/cardboard //BubbleWrap name = "cardboard" @@ -302,7 +350,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ stack_id = "cardboard" /obj/item/stack/sheet/cardboard/New(loc, amount=null) - recipes = cardboard_recipes + recipes = GLOB.cardboard_recipes return ..() /obj/item/stack/sheet/cardboard/small_stack @@ -317,9 +365,9 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ /* * Aluminum */ -var/global/list/datum/stack_recipe/aluminum_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(aluminium_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("flask", /obj/item/reagent_container/food/drinks/flask, 1) - ) + )) /obj/item/stack/sheet/aluminum name = "aluminum" @@ -332,9 +380,9 @@ var/global/list/datum/stack_recipe/aluminum_recipes = list ( \ /* * Copper */ -var/global/list/datum/stack_recipe/copper_recipes = list ( \ +GLOBAL_LIST_INIT_TYPED(copper_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("cable coil", /obj/item/stack/cable_coil, 2, 1, 20, time = 10, skill_req = SKILL_CONSTRUCTION, skill_lvl = SKILL_CONSTRUCTION_TRAINED) - ) + )) /obj/item/stack/sheet/copper name = "copper" diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index ac778c0569ed..82e091be9008 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -182,6 +182,11 @@ Also change the icon to reflect the amount of sheets, if possible.*/ to_chat(usr, SPAN_WARNING("The [R.title] cannot be built here!")) //might cause some friendly fire regarding other items like barbed wire, shouldn't be a problem? return + var/obj/structure/tunnel/tunnel = locate(/obj/structure/tunnel) in usr.loc + if(tunnel) + to_chat(usr, SPAN_WARNING("The [R.title] cannot be constructed on a tunnel!")) + return + if((R.flags & RESULT_REQUIRES_SNOW) && !(istype(usr.loc, /turf/open/snow) || istype(usr.loc, /turf/open/auto_turf/snow))) to_chat(usr, SPAN_WARNING("The [R.title] must be built on snow!")) return @@ -202,13 +207,21 @@ Also change the icon to reflect the amount of sheets, if possible.*/ if(check_one_per_turf(R,usr)) return - var/atom/O = new R.result_type(usr.loc, usr) - usr.visible_message(SPAN_NOTICE("[usr] assembles \a [O]."), - SPAN_NOTICE("You assemble \a [O].")) - O.setDir(usr.dir) + var/atom/new_item + if(ispath(R.result_type, /turf)) + var/turf/current_turf = get_turf(usr) + if(!current_turf) + return + new_item = current_turf.ChangeTurf(R.result_type) + else + new_item = new R.result_type(usr.loc, usr) + + usr.visible_message(SPAN_NOTICE("[usr] assembles \a [new_item]."), + SPAN_NOTICE("You assemble \a [new_item].")) + new_item.setDir(usr.dir) if(R.max_res_amount > 1) - var/obj/item/stack/new_item = O - new_item.amount = R.res_amount * multiplier + var/obj/item/stack/new_stack = new_item + new_stack.amount = R.res_amount * multiplier amount -= R.req_amount * multiplier update_icon() @@ -218,25 +231,25 @@ Also change the icon to reflect the amount of sheets, if possible.*/ usr.drop_inv_item_on_ground(oldsrc) qdel(oldsrc) - if(istype(O,/obj/item/stack)) //floor stacking convenience - var/obj/item/stack/S = O - for(var/obj/item/stack/F in usr.loc) - if(S.stack_id == F.stack_id && S != F) - var/diff = F.max_amount - F.amount - if (S.amount < diff) - F.amount += S.amount - qdel(S) + if(istype(new_item,/obj/item/stack)) //floor stacking convenience + var/obj/item/stack/stack_item = new_item + for(var/obj/item/stack/found_item in usr.loc) + if(stack_item.stack_id == found_item.stack_id && stack_item != found_item) + var/diff = found_item.max_amount - found_item.amount + if (stack_item.amount < diff) + found_item.amount += stack_item.amount + qdel(stack_item) else - S.amount -= diff - F.amount += diff + stack_item.amount -= diff + found_item.amount += diff break - O?.add_fingerprint(usr) + new_item?.add_fingerprint(usr) //BubbleWrap - so newly formed boxes are empty - if(isstorage(O)) - for (var/obj/item/I in O) - qdel(I) + if(isstorage(new_item)) + for (var/obj/item/found_item in new_item) + qdel(found_item) //BubbleWrap END if(src && usr.interactee == src) //do not reopen closed window INVOKE_ASYNC(src, PROC_REF(interact), usr) @@ -300,6 +313,8 @@ Also change the icon to reflect the amount of sheets, if possible.*/ if(mods["alt"]) if(!CAN_PICKUP(user, src)) return + if(amount <= 1) + return var/desired = tgui_input_number(user, "How much would you like to split off from this stack?", "How much?", 1, amount-1, 1) if(!desired) return diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 3b65811b05b3..29c4ec15d03a 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -17,6 +17,7 @@ /obj/item/storage/firstaid = list(SKILL_MEDICAL, SKILL_MEDICAL_MEDIC), /obj/item/storage/toolkit = list(SKILL_ENGINEER, SKILL_ENGINEER_ENGI), ) + drop_sound = "armorequip" var/worn_accessible = FALSE //whether you can access its content while worn on the back var/obj/item/card/id/locking_id = null var/is_id_lockable = FALSE @@ -72,9 +73,9 @@ return FALSE // Create their vis object if needed - if(!xeno.backpack_icon_carrier) - xeno.backpack_icon_carrier = new(null, xeno) - xeno.vis_contents += xeno.backpack_icon_carrier + if(!xeno.backpack_icon_holder) + xeno.backpack_icon_holder = new(null, xeno) + xeno.vis_contents += xeno.backpack_icon_holder target_mob.put_in_back(src) return FALSE @@ -460,6 +461,12 @@ icon_state = "marinebigsatch" max_storage_space = 20 +/obj/item/storage/backpack/marine/satchel/intel/chestrig + name = "\improper USCM expedition chestrig" + desc = "A heavy-duty IMP based chestrig, can quickly be accessed with only one hand. Usually issued to USCM intelligence officers." + icon_state = "intel_chestrig" + max_storage_space = 20 + /obj/item/storage/backpack/marine/satchel name = "\improper USCM satchel" desc = "A heavy-duty satchel carried by some USCM soldiers and support personnel." @@ -566,6 +573,18 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r /obj/item/storage/backpack/marine/satchel/rto/pickup(mob/user) . = ..() + autoset_phone_id(user) + +/obj/item/storage/backpack/marine/satchel/rto/equipped(mob/user, slot) + . = ..() + autoset_phone_id(user) + +/// Automatically sets the phone_id based on the current or updated user +/obj/item/storage/backpack/marine/satchel/rto/proc/autoset_phone_id(mob/user) + if(!user) + internal_transmitter.phone_id = "[src]" + internal_transmitter.enabled = FALSE + return if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.comm_title) @@ -579,13 +598,11 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r internal_transmitter.phone_id += " ([H.assigned_squad.name])" else internal_transmitter.phone_id = "[user]" - internal_transmitter.enabled = TRUE /obj/item/storage/backpack/marine/satchel/rto/dropped(mob/user) . = ..() - internal_transmitter.phone_id = "[src]" - internal_transmitter.enabled = FALSE + autoset_phone_id(null) // Disable phone when dropped /obj/item/storage/backpack/marine/satchel/rto/proc/use_phone(mob/user) internal_transmitter.attack_hand(user) @@ -745,6 +762,7 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r RegisterSignal(H, COMSIG_GRENADE_PRE_PRIME, PROC_REF(cloak_grenade_callback)) RegisterSignal(H, COMSIG_HUMAN_EXTINGUISH, PROC_REF(wrapper_fizzle_camouflage)) + RegisterSignal(H, COMSIG_MOB_EFFECT_CLOAK_CANCEL, PROC_REF(deactivate_camouflage)) camo_active = TRUE ADD_TRAIT(H, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK)) @@ -756,9 +774,9 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r H.FF_hit_evade = 1000 H.allow_gun_usage = allow_gun_usage - var/datum/mob_hud/security/advanced/SA = huds[MOB_HUD_SECURITY_ADVANCED] + var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] SA.remove_from_hud(H) - var/datum/mob_hud/xeno_infection/XI = huds[MOB_HUD_XENO_INFECTION] + var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] XI.remove_from_hud(H) anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir) @@ -774,12 +792,14 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r deactivate_camouflage(wearer, TRUE, TRUE) /obj/item/storage/backpack/marine/satchel/scout_cloak/proc/deactivate_camouflage(mob/living/carbon/human/H, anim = TRUE, forced) + SIGNAL_HANDLER if(!istype(H)) return FALSE UnregisterSignal(H, list( COMSIG_GRENADE_PRE_PRIME, - COMSIG_HUMAN_EXTINGUISH + COMSIG_HUMAN_EXTINGUISH, + COMSIG_MOB_EFFECT_CLOAK_CANCEL, )) if(forced) @@ -793,9 +813,9 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r H.alpha = initial(H.alpha) H.FF_hit_evade = initial(H.FF_hit_evade) - var/datum/mob_hud/security/advanced/SA = huds[MOB_HUD_SECURITY_ADVANCED] + var/datum/mob_hud/security/advanced/SA = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] SA.add_to_hud(H) - var/datum/mob_hud/xeno_infection/XI = huds[MOB_HUD_XENO_INFECTION] + var/datum/mob_hud/xeno_infection/XI = GLOB.huds[MOB_HUD_XENO_INFECTION] XI.add_to_hud(H) if(anim) @@ -829,7 +849,7 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r /datum/action/item_action/specialist/toggle_cloak/can_use_action() var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && !H.lying && holder_item == H.back) + if(istype(H) && !H.is_mob_incapacitated() && holder_item == H.back) return TRUE /datum/action/item_action/specialist/toggle_cloak/action_activate() @@ -1114,6 +1134,10 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r max_storage_space = 21 camo_alpha = 10 +/obj/item/storage/backpack/marine/satchel/scout_cloak/upp/weak + desc = "A thermo-optic camouflage cloak commonly used by UPP commando units. This one is less effective than normal." + actions_types = null + //----------TWE SECTION---------- /obj/item/storage/backpack/rmc has_gamemode_skin = FALSE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 301f6de2bc70..40953eb97395 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -151,7 +151,7 @@ storage_slots = 14 max_w_class = SIZE_MEDIUM max_storage_space = 28 - var/mode = 0 //Pill picking mode + var/mode = 1 //Picking from pill bottle mode can_hold = list( /obj/item/device/healthanalyzer, @@ -648,7 +648,7 @@ /obj/item/storage/belt/shotgun/full/random/fill_preset_inventory() for(var/i = 1 to storage_slots) - var/random_shell_type = pick(shotgun_handfuls_12g) + var/random_shell_type = pick(GLOB.shotgun_handfuls_12g) new random_shell_type(src) /obj/item/storage/belt/shotgun/attackby(obj/item/W, mob/user) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 6266f0eef77d..8e4ffb90d2bd 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -151,6 +151,7 @@ RegisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP, PROC_REF(handle_delete_clash_contents)) /obj/item/storage/box/flashbangs/proc/handle_delete_clash_contents() + SIGNAL_HANDLER if(MODE_HAS_FLAG(MODE_FACTION_CLASH)) var/grenade_count = 0 var/grenades_desired = 4 @@ -760,3 +761,211 @@ else if(!isopened) isopened = 1 icon_state = "mealpackopened" + +//food boxes for storage in bulk + +//meat +/obj/item/storage/box/meat + name = "box of meat" + +/obj/item/storage/box/meat/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/meat/monkey(src) + +//fish +/obj/item/storage/box/fish + name = "box of fish" + +/obj/item/storage/box/fish/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/carpmeat(src) + +//grocery + +//milk +/obj/item/storage/box/milk + name = "box of milk" + +/obj/item/storage/box/milk/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/drinks/milk(src) + +//soymilk +/obj/item/storage/box/soymilk + name = "box of soymilk" + +/obj/item/storage/box/soymilk/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/drinks/soymilk(src) + +//enzyme +/obj/item/storage/box/enzyme + name = "box of enzyme" + +/obj/item/storage/box/enzyme/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/condiment/enzyme(src) + +//dry storage + +//flour +/obj/item/storage/box/flour + name = "box of flour" + +/obj/item/storage/box/flour/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/flour(src) + +//sugar +/obj/item/storage/box/sugar + name = "box of sugar" + +/obj/item/storage/box/sugar/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/condiment/sugar(src) + +//saltshaker +/obj/item/storage/box/saltshaker + name = "box of saltshakers" + +/obj/item/storage/box/saltshaker/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/condiment/saltshaker(src) + +//peppermill +/obj/item/storage/box/peppermill + name = "box of peppermills" + +/obj/item/storage/box/peppermill/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/condiment/peppermill(src) + +//mint +/obj/item/storage/box/mint + name = "box of mints" + +/obj/item/storage/box/mint/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/mint(src) + +// ORGANICS + +//apple +/obj/item/storage/box/apple + name = "box of apples" + +/obj/item/storage/box/apple/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/apple(src) + +//banana +/obj/item/storage/box/banana + name = "box of bananas" + +/obj/item/storage/box/banana/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/banana(src) + +//chanterelle +/obj/item/storage/box/chanterelles + name = "box of chanterelle" + +/obj/item/storage/box/chanterelle/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle(src) + +//cherries +/obj/item/storage/box/cherries + name = "box of cherries" + +/obj/item/storage/box/cherries/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/cherries(src) + +//chili +/obj/item/storage/box/chili + name = "box of chili" + +/obj/item/storage/box/chili/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/chili(src) + +//cabbage +/obj/item/storage/box/cabbage + name = "box of cabbages" + +/obj/item/storage/box/cabbage/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/cabbage(src) + +//carrot +/obj/item/storage/box/carrot + name = "box of carrots" + +/obj/item/storage/box/carrot/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/carrot(src) + +//corn +/obj/item/storage/box/corn + name = "box of corn" + +/obj/item/storage/box/corn/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/corn(src) + +//eggplant +/obj/item/storage/box/eggplant + name = "box of eggplants" + +/obj/item/storage/box/eggplant/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/eggplant(src) + +//lemon +/obj/item/storage/box/lemon + name = "box of lemons" + +/obj/item/storage/box/lemon/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/lemon(src) + +//lime +/obj/item/storage/box/lime + name = "box of limes" + +/obj/item/storage/box/lime/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/lime(src) + +//orange +/obj/item/storage/box/orange + name = "box of oranges" + +/obj/item/storage/box/orange/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/orange(src) + +//potato +/obj/item/storage/box/potato + name = "box of potatoes" + +/obj/item/storage/box/potato/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/potato(src) + +//tomato +/obj/item/storage/box/tomato + name = "box of tomatoes" + +/obj/item/storage/box/tomato/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/tomato(src) + +//whitebeet +/obj/item/storage/box/whitebeet + name = "box of whitebeet" + +/obj/item/storage/box/whitebeet/fill_preset_inventory() + for(var/i in 1 to 7) + new /obj/item/reagent_container/food/snacks/grown/whitebeet(src) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index ea43d6b074b9..d12f09c2042e 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -71,7 +71,7 @@ storage_slots = 5 throwforce = 2 flags_equip_slot = SLOT_WAIST - + can_hold = list(/obj/item/tool/candle) /obj/item/storage/fancy/candle_box/fill_preset_inventory() for(var/i=1; i <= storage_slots; i++) @@ -302,7 +302,7 @@ if(istype(W) && !W.heat_source && !W.burnt) if(prob(burn_chance)) to_chat(user, SPAN_WARNING("\The [W] lights, but you burn your hand in the process! Ouch!")) - user.apply_damage(3, BRUTE, pick("r_hand", "l_hand")) + user.apply_damage(3, BURN, pick("r_hand", "l_hand")) if((user.pain.feels_pain) && prob(25)) user.emote("scream") W.light_match() diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 509690a8dc2a..06337995479f 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -98,6 +98,11 @@ /obj/item/storage/firstaid/regular/empty/fill_preset_inventory() return +/obj/item/storage/firstaid/regular/response + desc = "It's an emergency medical kit containing basic medication and equipment. No training required to use. This one is simpler and requires no training to store." + required_skill_for_nest_opening = SKILL_MEDICAL + required_skill_level_for_nest_opening = SKILL_MEDICAL_DEFAULT + /obj/item/storage/firstaid/robust icon_state = "firstaid" @@ -645,19 +650,19 @@ if(!idlock) return TRUE - var/mob/living/carbon/human/H = user + var/mob/living/carbon/human/human_user = user - if(!allowed(user)) + if(!allowed(human_user)) to_chat(user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE - var/obj/item/card/id/I = H.wear_id - if(!istype(I)) //not wearing an ID - to_chat(H, SPAN_NOTICE("It must have some kind of ID lock...")) + var/obj/item/card/id/idcard = human_user.wear_id + if(!istype(idcard)) //not wearing an ID + to_chat(human_user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE - if(I.registered_name != H.real_name) - to_chat(H, SPAN_WARNING("Wrong ID card owner detected.")) + if(!idcard.check_biometrics(human_user)) + to_chat(human_user, SPAN_WARNING("Wrong ID card owner detected.")) return FALSE return TRUE diff --git a/code/game/objects/items/storage/internal.dm b/code/game/objects/items/storage/internal.dm index 68bdda8d7e7b..a491df12f086 100644 --- a/code/game/objects/items/storage/internal.dm +++ b/code/game/objects/items/storage/internal.dm @@ -25,10 +25,10 @@ //Items that use internal storage have the option of calling this to emulate default storage MouseDrop behaviour. //Returns 1 if the master item's parent's MouseDrop() should be called, 0 otherwise. It's strange, but no other way of //Doing it without the ability to call another proc's parent, really. -/obj/item/storage/internal/proc/handle_mousedrop(mob/user as mob, obj/over_object as obj) +/obj/item/storage/internal/proc/handle_mousedrop(mob/living/carbon/human/user, obj/over_object as obj) if(ishuman(user)) - if(user.lying) //Can't use your inventory when lying + if(user.body_position == LYING_DOWN) //Can't use your inventory when lying //what about stuns? don't argue return if(QDELETED(master_object)) @@ -84,8 +84,8 @@ //Items that use internal storage have the option of calling this to emulate default storage attack_hand behaviour. //Returns 1 if the master item's parent's attack_hand() should be called, 0 otherwise. //It's strange, but no other way of doing it without the ability to call another proc's parent, really. -/obj/item/storage/internal/proc/handle_attack_hand(mob/user as mob, mods) - if(user.lying) +/obj/item/storage/internal/proc/handle_attack_hand(mob/living/user as mob, mods) + if(user.body_position == LYING_DOWN) // what about stuns? huh? return FALSE if(ishuman(user)) diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm index ef2bcfb7216a..3f653926f8b3 100644 --- a/code/game/objects/items/storage/large_holster.dm +++ b/code/game/objects/items/storage/large_holster.dm @@ -75,20 +75,20 @@ desc = "A large leather scabbard used to carry a M2132 machete. It can be strapped to the back or the armor." icon_state = "machete_holster" flags_equip_slot = SLOT_WAIST|SLOT_BACK - can_hold = list(/obj/item/weapon/claymore/mercsword/machete) + can_hold = list(/obj/item/weapon/sword/machete) /obj/item/storage/large_holster/machete/full/fill_preset_inventory() - new /obj/item/weapon/claymore/mercsword/machete(src) + new /obj/item/weapon/sword/machete(src) /obj/item/storage/large_holster/machete/arnold name = "\improper QH20 pattern M2100 custom machete scabbard" desc = "A large leather scabbard used to carry a M2100 \"Ngájhe\" machete. It can be strapped to the back or the armor." icon_state = "arnold-machete-pouch" flags_equip_slot = SLOT_WAIST|SLOT_BACK - can_hold = list(/obj/item/weapon/claymore/mercsword/machete) + can_hold = list(/obj/item/weapon/sword/machete) /obj/item/storage/large_holster/machete/arnold/full/fill_preset_inventory() - new /obj/item/weapon/claymore/mercsword/machete/arnold(src) + new /obj/item/weapon/sword/machete/arnold(src) /obj/item/storage/large_holster/katana name = "\improper katana scabbard" @@ -97,10 +97,10 @@ force = 12 attack_verb = list("bludgeoned", "struck", "cracked") flags_equip_slot = SLOT_WAIST|SLOT_BACK - can_hold = list(/obj/item/weapon/katana) + can_hold = list(/obj/item/weapon/sword/katana) /obj/item/storage/large_holster/katana/full/fill_preset_inventory() - new /obj/item/weapon/katana(src) + new /obj/item/weapon/sword/katana(src) /obj/item/storage/large_holster/ceremonial_sword name = "ceremonial sword scabbard" @@ -108,10 +108,10 @@ icon_state = "ceremonial_sword_holster"//object icon is duplicate of katana holster, needs new icon at some point. force = 12 flags_equip_slot = SLOT_WAIST - can_hold = list(/obj/item/weapon/claymore/mercsword/ceremonial) + can_hold = list(/obj/item/weapon/sword/ceremonial) /obj/item/storage/large_holster/ceremonial_sword/full/fill_preset_inventory() - new /obj/item/weapon/claymore/mercsword/ceremonial(src) + new /obj/item/weapon/sword/ceremonial(src) /obj/item/storage/large_holster/m39 name = "\improper M276 pattern M39 holster rig" @@ -249,9 +249,16 @@ if(!ishuman(user) || user.is_mob_incapacitated()) return FALSE - var/obj/item/weapon/gun/flamer/M240T/F = user.get_active_hand() - if(!istype(F)) - to_chat(usr, "You must be holding the M240-T incinerator unit to use [src]") + if(user.back != src) + to_chat(user, SPAN_WARNING("[src] must be equipped before you can switch types.")) + return + + if(!linked_flamer) + to_chat(user, SPAN_WARNING("An incinerator unit must be linked in order to switch fuel types.")) + return + + if(user.get_active_hand() != linked_flamer) + to_chat(user, SPAN_WARNING("You must be holding [linked_flamer] to use [src].")) return if(!active_fuel) @@ -267,14 +274,13 @@ else active_fuel = fuelB - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() + for(var/datum/action/action_added as anything in actions) + action_added.update_button_icon() to_chat(user, "You switch the fuel tank to [active_fuel.caliber]") playsound(src, 'sound/machines/click.ogg', 25, TRUE) - F.current_mag = active_fuel - F.update_icon() + linked_flamer.current_mag = active_fuel + linked_flamer.update_icon() return TRUE @@ -326,7 +332,7 @@ /obj/item/storage/large_holster/fuelpack/get_examine_text(mob/user) . = ..() if(contents.len) - . += "It is storing \a M240-T incinerator unit." + . += "It is storing a M240-T incinerator unit." if (get_dist(user, src) <= 1) if(fuel) . += "The [fuel.caliber] currently contains: [round(fuel.get_ammo_percent())]% fuel." @@ -364,7 +370,7 @@ /datum/action/item_action/specialist/toggle_fuel/can_use_action() var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && !H.lying && holder_item == H.back) + if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.back) return TRUE /datum/action/item_action/specialist/toggle_fuel/action_activate() diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index a443a3b27cd0..acb87e988879 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -142,9 +142,9 @@ /obj/item/storage/pouch/survival name = "survival pouch" - desc = "It can carry flashlights, a pill, a crowbar, metal sheets, and some bandages." + desc = "A pouch given to colonists in the event of an emergency." icon_state = "tools" - storage_slots = 6 + storage_slots = 7 max_w_class = SIZE_MEDIUM can_hold = list( /obj/item/device/flashlight, @@ -153,6 +153,7 @@ /obj/item/stack/medical/bruise_pack, /obj/item/device/radio, /obj/item/attachable/bayonet, + /obj/item/stack/medical/splint, ) /obj/item/storage/pouch/survival/full/fill_preset_inventory() @@ -162,12 +163,12 @@ new /obj/item/stack/medical/bruise_pack(src) new /obj/item/device/radio(src) new /obj/item/attachable/bayonet(src) - + new /obj/item/stack/medical/splint(src) /obj/item/storage/pouch/survival/synth name = "synth survival pouch" desc = "An emergency pouch given to synthetics in the event of an emergency." icon_state = "tools" - storage_slots = 7 + storage_slots = 6 max_w_class = SIZE_MEDIUM can_hold = list( /obj/item/device/flashlight, @@ -180,7 +181,6 @@ ) /obj/item/storage/pouch/survival/synth/full/fill_preset_inventory() - new /obj/item/device/flashlight(src) new /obj/item/tool/crowbar/red(src) new /obj/item/tool/weldingtool(src) new /obj/item/stack/cable_coil(src) @@ -683,6 +683,18 @@ new /obj/item/reagent_container/hypospray/autoinjector/stimulant/redemption_stimulant(src) new /obj/item/reagent_container/hypospray/autoinjector/stimulant/speed_stimulant(src) +/obj/item/storage/pouch/medical/socmed/not_op/fill_preset_inventory() + new /obj/item/device/healthanalyzer(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/ointment(src) + new /obj/item/reagent_container/hypospray/autoinjector/bicaridine(src) + new /obj/item/reagent_container/hypospray/autoinjector/kelotane(src) + new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) + new /obj/item/reagent_container/hypospray/autoinjector/emergency(src) + new /obj/item/reagent_container/hypospray/autoinjector/emergency(src) + new /obj/item/tool/extinguisher/mini(src) + /obj/item/storage/pouch/medical/socmed/dutch name = "\improper Dutch's Medical Pouch" desc = "A pouch bought from a black market trader by Dutch quite a few years ago. Rumoured to be stolen from secret USCM assets. Its contents have been slowly used up and replaced over the years." @@ -833,6 +845,15 @@ new /obj/item/stack/medical/advanced/ointment(src) new /obj/item/stack/medical/splint(src) +/obj/item/storage/pouch/medkit/full/toxin/fill_preset_inventory() + new /obj/item/device/healthanalyzer(src) + new /obj/item/storage/pill_bottle/antitox(src) + new /obj/item/storage/pill_bottle/antitox(src) + new /obj/item/roller(src) + new /obj/item/stack/medical/splint(src) + new /obj/item/stack/medical/advanced/bruise_pack(src) + new /obj/item/stack/medical/advanced/ointment(src) + /obj/item/storage/pouch/pressurized_reagent_canister name = "Pressurized Reagent Canister Pouch" max_w_class = SIZE_SMALL @@ -1172,23 +1193,37 @@ /obj/item/storage/pouch/tools name = "tools pouch" - desc = "It's designed to hold maintenance tools - screwdriver, wrench, cable coil, etc. It also has a hook for an entrenching tool." + desc = "It's designed to hold maintenance tools - screwdriver, wrench, cable coil, etc. It also has a hook for an entrenching tool or light replacer." storage_slots = 4 max_w_class = SIZE_MEDIUM icon_state = "tools" can_hold = list( - /obj/item/tool/wirecutters, - /obj/item/tool/shovel/etool, - /obj/item/tool/screwdriver, /obj/item/tool/crowbar, + /obj/item/tool/screwdriver, /obj/item/tool/weldingtool, - /obj/item/device/multitool, + /obj/item/tool/wirecutters, /obj/item/tool/wrench, - /obj/item/stack/cable_coil, /obj/item/tool/extinguisher/mini, /obj/item/tool/shovel/etool, + /obj/item/stack/cable_coil, + /obj/item/weapon/gun/smg/nailgun/compact, + /obj/item/cell, + /obj/item/circuitboard, + /obj/item/stock_parts, + /obj/item/device/demo_scanner, + /obj/item/device/reagent_scanner, + /obj/item/device/assembly, + /obj/item/device/multitool, + /obj/item/device/flashlight, + /obj/item/device/t_scanner, + /obj/item/device/analyzer, + /obj/item/explosive/plastic, + /obj/item/device/lightreplacer, + ) + bypass_w_limit = list( + /obj/item/tool/shovel/etool, + /obj/item/device/lightreplacer, ) - bypass_w_limit = list(/obj/item/tool/shovel/etool) /obj/item/storage/pouch/tools/tactical name = "tactical tools pouch" @@ -1358,7 +1393,7 @@ item_state = "machete_holster" max_w_class = SIZE_LARGE storage_flags = STORAGE_FLAGS_POUCH|STORAGE_USING_DRAWING_METHOD|STORAGE_ALLOW_QUICKDRAW - can_hold = list(/obj/item/weapon/claymore/mercsword/machete) + can_hold = list(/obj/item/weapon/sword/machete) var/sheathe_sound = 'sound/weapons/gun_rifle_draw.ogg' var/draw_sound = 'sound/weapons/gun_rifle_draw.ogg' @@ -1378,4 +1413,4 @@ playsound(src, draw_sound, vol = 15, vary = TRUE) /obj/item/storage/pouch/machete/full/fill_preset_inventory() - new /obj/item/weapon/claymore/mercsword/machete(src) + new /obj/item/weapon/sword/machete(src) diff --git a/code/game/objects/items/storage/smartpack.dm b/code/game/objects/items/storage/smartpack.dm index 8df079c92ca4..d012e773617b 100644 --- a/code/game/objects/items/storage/smartpack.dm +++ b/code/game/objects/items/storage/smartpack.dm @@ -144,7 +144,7 @@ immobile_form = FALSE M.status_flags |= CANPUSH M.anchored = FALSE - M.unfreeze() + REMOVE_TRAIT(M, TRAIT_IMMOBILIZED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK)) ..() /obj/item/storage/backpack/marine/smartpack/attack_self(mob/user) @@ -223,7 +223,7 @@ user.remove_filter("synth_protective_form") -/obj/item/storage/backpack/marine/smartpack/proc/immobile_form(mob/user) +/obj/item/storage/backpack/marine/smartpack/proc/immobile_form(mob/living/user) if(activated_form) return @@ -236,7 +236,7 @@ battery_charge -= IMMOBILE_COST user.status_flags &= ~CANPUSH user.anchored = TRUE - user.frozen = TRUE + ADD_TRAIT(user, TRAIT_IMMOBILIZED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK)) to_chat(user, SPAN_DANGER("[name] beeps, \"You are anchored in place and cannot be moved.\"")) to_chat(user, SPAN_INFO("The current charge reads [battery_charge]/[SMARTPACK_MAX_POWER_STORED]")) @@ -248,7 +248,7 @@ else user.status_flags |= CANPUSH user.anchored = FALSE - user.unfreeze() + REMOVE_TRAIT(user, TRAIT_IMMOBILIZED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK)) to_chat(user, SPAN_DANGER("[name] beeps, \"You can now move again.\"")) user.remove_filter("synth_immobile_form") diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index e3fbe86c0e3b..6e7e891d6ba8 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -22,7 +22,7 @@ var/atom/movable/screen/storage/storage_start = null //storage UI var/atom/movable/screen/storage/storage_continue = null var/atom/movable/screen/storage/storage_end = null - var/datum/item_storage_box/stored_ISB = null // This contains what previously was known as stored_start, stored_continue, and stored_end + var/datum/item_storage_box/stored_ISB //! This contains what previously was known as stored_start, stored_continue, and stored_end var/atom/movable/screen/close/closer = null var/foldable = null var/use_sound = "rustle" //sound played when used. null for no sound. @@ -212,16 +212,17 @@ if (storage_flags & STORAGE_SHOW_FULLNESS) boxes.update_fullness(src) -var/list/global/item_storage_box_cache = list() +GLOBAL_LIST_EMPTY_TYPED(item_storage_box_cache, /datum/item_storage_box) /datum/item_storage_box - var/atom/movable/screen/storage/start = null - var/atom/movable/screen/storage/continued = null - var/atom/movable/screen/storage/end = null - /// The index that indentifies me inside item_storage_box_cache + var/atom/movable/screen/storage/start + var/atom/movable/screen/storage/continued + var/atom/movable/screen/storage/end + /// The index that indentifies me inside GLOB.item_storage_box_cache var/index /datum/item_storage_box/New() + . = ..() start = new() start.icon_state = "stored_start" continued = new() @@ -233,7 +234,7 @@ var/list/global/item_storage_box_cache = list() QDEL_NULL(start) QDEL_NULL(continued) QDEL_NULL(end) - item_storage_box_cache[index] = null // Or would it be better to -= src? + GLOB.item_storage_box_cache -= index return ..() /obj/item/storage/proc/space_orient_objs(list/obj/item/display_contents) @@ -271,7 +272,7 @@ var/list/global/item_storage_box_cache = list() click_border_start.Add(startpoint) click_border_end.Add(endpoint) - if(!item_storage_box_cache[isb_index]) + if(!GLOB.item_storage_box_cache[isb_index]) var/datum/item_storage_box/box = new() var/matrix/M_start = matrix() var/matrix/M_continue = matrix() @@ -284,9 +285,9 @@ var/list/global/item_storage_box_cache = list() box.continued.apply_transform(M_continue) box.end.apply_transform(M_end) box.index = isb_index - item_storage_box_cache[isb_index] = box + GLOB.item_storage_box_cache[isb_index] = box - var/datum/item_storage_box/ISB = item_storage_box_cache[isb_index] + var/datum/item_storage_box/ISB = GLOB.item_storage_box_cache[isb_index] stored_ISB = ISB storage_start.overlays += ISB.start @@ -851,6 +852,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ return ..() /obj/item/storage/emp_act(severity) + . = ..() if(!istype(src.loc, /mob/living)) for(var/obj/O in contents) O.emp_act(severity) diff --git a/code/game/objects/items/tools/experimental_tools.dm b/code/game/objects/items/tools/experimental_tools.dm index d27272881e1e..221aa279a53b 100644 --- a/code/game/objects/items/tools/experimental_tools.dm +++ b/code/game/objects/items/tools/experimental_tools.dm @@ -279,7 +279,7 @@ return if(ishuman(user)) - if(user.stat || user.blinded || user.lying) + if(user.stat || user.blinded || user.body_position == LYING_DOWN) return if(attaching) diff --git a/code/game/objects/items/tools/flame_tools.dm b/code/game/objects/items/tools/flame_tools.dm index 130bd567098b..8fc97f973702 100644 --- a/code/game/objects/items/tools/flame_tools.dm +++ b/code/game/objects/items/tools/flame_tools.dm @@ -180,7 +180,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM flags_atom = CAN_BE_SYRINGED attack_verb = list("burnt", "singed") blood_overlay_type = "" - light_color = LIGHT_COLOUR_ORANGE + light_color = LIGHT_COLOR_ORANGE /// Note - these are in masks.dmi not in cigarette.dmi var/icon_on = "cigon" var/icon_off = "cigoff" @@ -233,12 +233,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM light(SPAN_NOTICE("[user] fiddles with [W], and manages to light their [name].")) else if(istype(W, /obj/item/attachable/attached_gun/flamer)) - light(SPAN_NOTICE("[user] lights their [src] with the [W].")) + light(SPAN_NOTICE("[user] lights their [name] with [W].")) else if(istype(W, /obj/item/weapon/gun/flamer)) var/obj/item/weapon/gun/flamer/F = W if(!(F.flags_gun_features & GUN_TRIGGER_SAFETY)) - light(SPAN_NOTICE("[user] lights their [src] with the pilot light of the [F].")) + light(SPAN_NOTICE("[user] lights their [name] with the pilot light of [F].")) else to_chat(user, SPAN_WARNING("Turn on the pilot light first!")) @@ -246,20 +246,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/obj/item/weapon/gun/G = W for(var/slot in G.attachments) if(istype(G.attachments[slot], /obj/item/attachable/attached_gun/flamer)) - light(SPAN_NOTICE("[user] lights their [src] with [G.attachments[slot]].")) + light(SPAN_NOTICE("[user] lights their [name] with [G.attachments[slot]].")) break else if(istype(W, /obj/item/tool/surgery/cautery)) - light(SPAN_NOTICE("[user] lights their [src] with the [W].")) + light(SPAN_NOTICE("[user] lights their [name] with [W].")) else if(istype(W, /obj/item/clothing/mask/cigarette)) var/obj/item/clothing/mask/cigarette/C = W if(C.item_state == icon_on) - light(SPAN_NOTICE("[user] lights their [src] with the [C] after a few attempts.")) + light(SPAN_NOTICE("[user] lights their [name] with [C] after a few attempts.")) else if(istype(W, /obj/item/tool/candle)) if(W.heat_source > 200) - light(SPAN_NOTICE("[user] lights their [src] with the [W] after a few attempts.")) + light(SPAN_NOTICE("[user] lights their [name] with [W] after a few attempts.")) return @@ -529,12 +529,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM light(SPAN_NOTICE("[user] fiddles with [W], and manages to light their [name] with the power of science.")) else if(istype(W, /obj/item/attachable/attached_gun/flamer)) - light(SPAN_NOTICE("[user] lights their [src] with the [W], bet that would have looked cooler if it was attached to something first!")) + light(SPAN_NOTICE("[user] lights their [name] with [W], bet that would have looked cooler if it was attached to something first!")) else if(istype(W, /obj/item/weapon/gun/flamer)) var/obj/item/weapon/gun/flamer/F = W if(!(F.flags_gun_features & GUN_TRIGGER_SAFETY)) - light(SPAN_NOTICE("[user] lights their [src] with the pilot light of the [F], the glint of pyromania in their eye.")) + light(SPAN_NOTICE("[user] lights their [name] with the pilot light of [F], the glint of pyromania in their eye.")) else to_chat(user, SPAN_WARNING("Turn on the pilot light first!")) @@ -546,16 +546,16 @@ CIGARETTE PACKETS ARE IN FANCY.DM break else if(istype(W, /obj/item/tool/surgery/cautery)) - light(SPAN_NOTICE("[user] lights their [src] with the [W], that can't be sterile!")) + light(SPAN_NOTICE("[user] lights their [name] with [W], that can't be sterile!")) else if(istype(W, /obj/item/clothing/mask/cigarette)) var/obj/item/clothing/mask/cigarette/C = W if(C.item_state == icon_on) - light(SPAN_NOTICE("[user] lights their [src] with the [C] after a few attempts.")) + light(SPAN_NOTICE("[user] lights their [name] with [C] after a few attempts.")) else if(istype(W, /obj/item/tool/candle)) if(W.heat_source > 200) - light(SPAN_NOTICE("[user] lights their [src] with the [W] after a few attempts.")) + light(SPAN_NOTICE("[user] lights their [name] with [W] after a few attempts.")) ///////////////// //SMOKING PIPES// @@ -642,7 +642,39 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_off = "cobpipeoff" smoketime = 800 SECONDS +/obj/item/clothing/mask/electronic_cigarette + name = "electronic cigarette" + desc = "An electronic cigarette by The American Tobacco Company, who also made Lucky Strikes." + icon_state = "cigoff" + item_state = "cigoff" + w_class = SIZE_SMALL + flags_equip_slot = SLOT_EAR|SLOT_FACE + var/icon_on = "cigon" + var/icon_off = "cigoff" + var/enabled = FALSE + +/obj/item/clothing/mask/electronic_cigarette/update_icon() + . = ..() + if(enabled) + icon_state = icon_on + item_state = icon_on + return + icon_state = icon_off + item_state = icon_off +/obj/item/clothing/mask/electronic_cigarette/attack_self(mob/user) + . = ..() + to_chat(user, SPAN_NOTICE("You [enabled ? "disable" : "enable"] [src].")) + enabled = !enabled + update_icon() + +/obj/item/clothing/mask/electronic_cigarette/cigar + name = "electronic cigar" + desc = "A luxury electronic cigar, with its labels scratched off. Where could this be from?" + icon_state = "cigar_off" + item_state = "cigar_off" + icon_on = "cigar_on" + icon_off = "cigar_off" ///////// //ZIPPO// @@ -653,7 +685,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon = 'icons/obj/items/items.dmi' icon_state = "lighter_g" item_state = "lighter_g" - light_color = LIGHT_COLOUR_LAVA + light_color = LIGHT_COLOR_LAVA var/icon_on = "lighter_g_on" var/icon_off = "lighter_g" var/clr = "g" @@ -719,7 +751,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM else playsound(src.loc,"lighter",10, 1, 3) if(prob(95)) - user.visible_message(SPAN_NOTICE("After a few attempts, [user] manages to light the [src].")) + user.visible_message(SPAN_NOTICE("After a few attempts, [user] manages to light [src].")) else to_chat(user, SPAN_WARNING("You burn yourself while lighting the lighter.")) @@ -727,7 +759,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM user.apply_damage(2,BURN,"l_hand") else user.apply_damage(2,BURN,"r_hand") - user.visible_message(SPAN_NOTICE("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.")) + user.visible_message(SPAN_NOTICE("After a few attempts, [user] manages to light [src], they however burn their finger in the process.")) set_light_range(2) set_light_on(TRUE) @@ -745,10 +777,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = icon_off if(!silent) if(istype(src, /obj/item/tool/lighter/zippo) ) - bearer.visible_message("You hear a quiet click, as [bearer] shuts off [src] without even looking at what they're doing.") + bearer.visible_message(SPAN_ROSE("You hear a quiet click, as [bearer] shuts off [src] without even looking at what they're doing.")) playsound(src.loc,"zippo_close",10, 1, 3) else - bearer.visible_message(SPAN_NOTICE("[bearer] quietly shuts off the [src].")) + bearer.visible_message(SPAN_NOTICE("[bearer] quietly shuts off [src].")) set_light_on(FALSE) STOP_PROCESSING(SSobj, src) @@ -773,4 +805,3 @@ CIGARETTE PACKETS ARE IN FANCY.DM cig.light(SPAN_NOTICE("[user] holds the [name] out for [M], and lights the [cig.name].")) else ..() - diff --git a/code/game/objects/items/tools/kitchen_tools.dm b/code/game/objects/items/tools/kitchen_tools.dm index bb763ada9911..2cff941be8d6 100644 --- a/code/game/objects/items/tools/kitchen_tools.dm +++ b/code/game/objects/items/tools/kitchen_tools.dm @@ -218,7 +218,7 @@ var/cooldown = 0 /obj/item/tool/kitchen/tray/attack(mob/living/carbon/M, mob/living/carbon/user) - to_chat(user, SPAN_WARNING("You accidentally slam yourself with the [src]!")) + to_chat(user, SPAN_WARNING("You accidentally slam yourself with [src]!")) user.apply_effect(1, WEAKEN) user.take_limb_damage(2) diff --git a/code/game/objects/items/tools/maintenance_tools.dm b/code/game/objects/items/tools/maintenance_tools.dm index a326808bf491..574d08e6a15b 100644 --- a/code/game/objects/items/tools/maintenance_tools.dm +++ b/code/game/objects/items/tools/maintenance_tools.dm @@ -96,8 +96,8 @@ if(E) var/safety = H.get_eye_protection() if(!safety) - to_chat(user, SPAN_DANGER("You stab [H] in the eyes with the [src]!")) - visible_message(SPAN_DANGER("[user] stabs [H] in the eyes with the [src]!")) + user.visible_message(SPAN_DANGER("[user] stabs [H] in the eyes with [src]!"), + SPAN_DANGER("You stab [H] in the eyes with [src]!")) E.take_damage(rand(8,20)) return ..() /obj/item/tool/screwdriver/tactical @@ -162,6 +162,7 @@ drop_sound = 'sound/handling/weldingtool_drop.ogg' flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST + var/base_icon_state = "" //Amount of OUCH when it's thrown force = 3 @@ -192,6 +193,7 @@ . = ..() create_reagents(max_fuel) reagents.add_reagent("fuel", max_fuel) + base_icon_state = initial(icon_state) return /obj/item/tool/weldingtool/Destroy() @@ -336,7 +338,7 @@ weld_tick += 8 //turning the tool on does not consume fuel directly, but it advances the process that regularly consumes fuel. force = 15 damtype = "fire" - icon_state = "welder1" + icon_state = base_icon_state + "_on" w_class = SIZE_LARGE heat_source = 3800 START_PROCESSING(SSobj, src) @@ -348,7 +350,7 @@ playsound(loc, 'sound/items/weldingtool_off.ogg', 25) force = 3 damtype = "brute" - icon_state = "welder" + icon_state = base_icon_state welding = 0 w_class = initial(w_class) heat_source = 0 @@ -415,6 +417,7 @@ name = "industrial blowtorch" max_fuel = 60 matter = list("metal" = 70, "glass" = 60) + icon_state = "welder_c" /obj/item/tool/weldingtool/hugetank @@ -442,9 +445,9 @@ name = "\improper ME3 hand welder" desc = "A compact, handheld welding torch used by the marines of the United States Colonial Marine Corps for cutting and welding jobs on the field. Due to the small size and slow strength, its function is limited compared to a full-sized technician's blowtorch." max_fuel = 5 - color = "#cc0000" has_welding_screen = TRUE inherent_traits = list(TRAIT_TOOL_SIMPLE_BLOWTORCH) + icon_state = "welder_b" /* * Crowbar diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm index b5be55eed540..44aaab771db8 100644 --- a/code/game/objects/items/tools/misc_tools.dm +++ b/code/game/objects/items/tools/misc_tools.dm @@ -132,7 +132,7 @@ qdel(I) //delete the paper item labels_left = initial(labels_left) else - to_chat(user, SPAN_NOTICE("The [src] is already full.")) + to_chat(user, SPAN_NOTICE("[src] is already full.")) /* Instead of updating labels_left to user every label used, @@ -173,7 +173,7 @@ playsound(user.loc, "sound/items/pen_click_[on? "on": "off"].ogg", 100, 1, 5) update_pen_state() -/obj/item/tool/pen/Initialize() +/obj/item/tool/pen/Initialize(mapload, ...) . = ..() update_pen_state() @@ -284,21 +284,24 @@ matter = list("metal" = 20, "gold" = 10) var/static/list/colour_list = list("red", "blue", "green", "yellow", "purple", "pink", "brown", "black", "orange") // Can add more colors as required var/current_colour_index = 1 - var/owner = "hard to read text" + var/owner_name -/obj/item/tool/pen/fountain/Initialize(mapload, mob/living/carbon/human/user) +/obj/item/tool/pen/fountain/pickup(mob/user, silent) . = ..() - var/turf/current_turf = get_turf(src) - var/mob/living/carbon/human/new_owner = locate() in current_turf - if(new_owner) - owner = new_owner.real_name - var/obj/structure/machinery/cryopod/new_owners_pod = locate() in current_turf - if(new_owners_pod) - owner = new_owners_pod.occupant?.real_name + if(!owner_name) + RegisterSignal(user, COMSIG_POST_SPAWN_UPDATE, PROC_REF(set_owner), override = TRUE) + +///Sets the owner of the pen to who it spawns with, requires var/source for signals +/obj/item/tool/pen/fountain/proc/set_owner(datum/source) + SIGNAL_HANDLER + UnregisterSignal(source, COMSIG_POST_SPAWN_UPDATE) + var/mob/living/carbon/human/user = source + owner_name = user.name /obj/item/tool/pen/fountain/get_examine_text(mob/user) . = ..() - . += "There's a laser engraving of [owner] on it." + if(owner_name) + . += "There's a laser engraving of [owner_name] on it." /obj/item/tool/pen/fountain/attack_self(mob/living/carbon/human/user) if(on) diff --git a/code/game/objects/items/tools/shovel_tools.dm b/code/game/objects/items/tools/shovel_tools.dm index 008b37705fe3..ad74dca54e88 100644 --- a/code/game/objects/items/tools/shovel_tools.dm +++ b/code/game/objects/items/tools/shovel_tools.dm @@ -151,7 +151,7 @@ /obj/item/tool/shovel/proc/dump_shovel(atom/target, mob/user) var/turf/T = target - to_chat(user, SPAN_NOTICE("you dump the [dirt_type_to_name(dirt_type)]!")) + to_chat(user, SPAN_NOTICE("You dump the [dirt_type_to_name(dirt_type)]!")) playsound(user.loc, "rustle", 30, 1, 6) if(dirt_type == DIRT_TYPE_SNOW) var/obj/item/stack/snow/S = locate() in T diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm index 8582e08111f7..9f6ae67baf35 100644 --- a/code/game/objects/items/tools/surgery_tools.dm +++ b/code/game/objects/items/tools/surgery_tools.dm @@ -235,7 +235,7 @@ /obj/item/tool/surgery/surgical_line name = "\proper surgical line" desc = "A roll of military-grade surgical line, able to seamlessly sew up any wound. Also works as a robust fishing line for maritime deployments." - icon_state = "line" + icon_state = "line_brute" force = 0 throwforce = 1 w_class = SIZE_SMALL @@ -253,10 +253,7 @@ name = "Synth-Graft" desc = "An applicator for synthetic skin field grafts. The stuff reeks, itches like the dickens, hurts going on, and the color is \ a perfectly averaged multiethnic tone that doesn't blend with anyone's complexion. But at least you don't have to stay in sickbay." - /// Placeholder. - icon_state = "line" - /// Placeholder, to distinguish from surgical line. - color = "yellow" + icon_state = "line_burn" force = 0 throwforce = 1 w_class = SIZE_SMALL diff --git a/code/game/objects/items/toys/cards.dm b/code/game/objects/items/toys/cards.dm index b6e3bb558ec4..2debd83f9bab 100644 --- a/code/game/objects/items/toys/cards.dm +++ b/code/game/objects/items/toys/cards.dm @@ -21,7 +21,6 @@ icon = 'icons/obj/items/playing_cards.dmi' icon_state = "deck" w_class = SIZE_TINY - flags_item = NOTABLEMERGE var/base_icon = "deck" var/max_cards = 52 @@ -262,7 +261,6 @@ icon = 'icons/obj/items/playing_cards.dmi' icon_state = "empty" w_class = SIZE_TINY - flags_item = NOTABLEMERGE var/concealed = FALSE var/pile_state = FALSE diff --git a/code/game/objects/items/toys/crayons.dm b/code/game/objects/items/toys/crayons.dm index 5bd4d05f317f..c02b59289fa1 100644 --- a/code/game/objects/items/toys/crayons.dm +++ b/code/game/objects/items/toys/crayons.dm @@ -73,7 +73,7 @@ var/drawtype = tgui_input_list(usr, "Choose what you'd like to draw.", "Crayon scribbles", list("graffiti","rune","letter")) switch(drawtype) if("letter") - drawtype = tgui_input_list(usr, "Choose the letter.", "Crayon scribbles", alphabet_lowercase) + drawtype = tgui_input_list(usr, "Choose the letter.", "Crayon scribbles", GLOB.alphabet_lowercase) to_chat(user, "You start drawing a letter on the [target.name].") if("graffiti") to_chat(user, "You start drawing graffiti on the [target.name].") diff --git a/code/game/objects/items/toys/toy_weapons.dm b/code/game/objects/items/toys/toy_weapons.dm index 9acf6f2943c3..ce32cfdb67a9 100644 --- a/code/game/objects/items/toys/toy_weapons.dm +++ b/code/game/objects/items/toys/toy_weapons.dm @@ -130,7 +130,7 @@ for(var/mob/living/M in D.loc) if(!istype(M,/mob/living)) continue if(M == user) continue - for(var/mob/O in viewers(world_view_size, D)) + for(var/mob/O in viewers(GLOB.world_view_size, D)) O.show_message(SPAN_DANGER("[M] was hit by the foam dart!"), SHOW_MESSAGE_VISIBLE) new /obj/item/toy/crossbow_ammo(M.loc) qdel(D) @@ -152,14 +152,14 @@ return else if (bullets == 0) user.apply_effect(5, WEAKEN) - for(var/mob/O in viewers(world_view_size, user)) + for(var/mob/O in viewers(GLOB.world_view_size, user)) O.show_message(SPAN_DANGER("[user] realized they were out of ammo and starting scrounging for some!"), SHOW_MESSAGE_VISIBLE) -/obj/item/toy/crossbow/attack(mob/M as mob, mob/user as mob) +/obj/item/toy/crossbow/attack(mob/living/M as mob, mob/user as mob) src.add_fingerprint(user) - if (src.bullets > 0 && M.lying) + if (src.bullets > 0 && M.body_position == LYING_DOWN) for(var/mob/O in viewers(M, null)) if(O.client) @@ -169,7 +169,7 @@ playsound(user.loc, 'sound/items/syringeproj.ogg', 15, 1) new /obj/item/toy/crossbow_ammo(M.loc) src.bullets-- - else if (M.lying && src.bullets == 0) + else if (M.body_position == LYING_DOWN && src.bullets == 0) for(var/mob/O in viewers(M, null)) if (O.client) O.show_message(SPAN_DANGER("[user] casually lines up a shot with [M]'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!"), SHOW_MESSAGE_VISIBLE, SPAN_DANGER("You hear someone fall"), SHOW_MESSAGE_AUDIBLE) diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index b2a66becd869..65234c59b89b 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -44,7 +44,7 @@ if(!proximity) return if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1) A.reagents.trans_to(src, 10) - to_chat(user, SPAN_NOTICE(" You fill the balloon with the contents of [A].")) + to_chat(user, SPAN_NOTICE("You fill the balloon with the contents of [A].")) src.desc = "A translucent balloon with some form of liquid sloshing around in it." src.update_icon() return @@ -53,22 +53,22 @@ if(istype(O, /obj/item/reagent_container/glass)) if(O.reagents) if(O.reagents.total_volume < 1) - to_chat(user, "The [O] is empty.") + to_chat(user, SPAN_WARNING("[O] is empty.")) else if(O.reagents.total_volume >= 1) if(O.reagents.has_reagent("pacid", 1)) - to_chat(user, "The acid chews through the balloon!") + to_chat(user, SPAN_WARNING("The acid chews through the balloon!")) O.reagents.reaction(user) qdel(src) else src.desc = "A translucent balloon with some form of liquid sloshing around in it." - to_chat(user, SPAN_NOTICE(" You fill the balloon with the contents of [O].")) + to_chat(user, SPAN_NOTICE("You fill the balloon with the contents of [O].")) O.reagents.trans_to(src, 10) src.update_icon() return /obj/item/toy/balloon/launch_impact(atom/hit_atom) if(src.reagents.total_volume >= 1) - src.visible_message(SPAN_DANGER("The [src] bursts!"),"You hear a pop and a splash.") + src.visible_message(SPAN_DANGER("[src] bursts!"),"You hear a pop and a splash.") src.reagents.reaction(get_turf(hit_atom)) for(var/atom/A in get_turf(hit_atom)) src.reagents.reaction(A) @@ -318,56 +318,6 @@ desc = "Mini-Mecha action figure! Collect them all! 11/11." icon_state = "phazonprize" - -/obj/item/toy/therapy_red - name = "red therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is red." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapyred" - item_state = "egg4" // It's the red egg in items_left/righthand - w_class = SIZE_TINY - -/obj/item/toy/therapy_purple - name = "purple therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is purple." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapypurple" - item_state = "egg1" // It's the magenta egg in items_left/righthand - w_class = SIZE_TINY - -/obj/item/toy/therapy_blue - name = "blue therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is blue." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapyblue" - item_state = "egg2" // It's the blue egg in items_left/righthand - w_class = SIZE_TINY - -/obj/item/toy/therapy_yellow - name = "yellow therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is yellow." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapyyellow" - item_state = "egg5" // It's the yellow egg in items_left/righthand - w_class = SIZE_TINY - -/obj/item/toy/therapy_orange - name = "orange therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is orange." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapyorange" - item_state = "egg4" // It's the red one again, lacking an orange item_state and making a new one is pointless - w_class = SIZE_TINY - -/obj/item/toy/therapy_green - name = "green therapy doll" - desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles. This one is green." - icon = 'icons/obj/items/toy.dmi' - icon_state = "therapygreen" - item_state = "egg3" // It's the green egg in items_left/righthand - w_class = SIZE_TINY - - /obj/item/toy/inflatable_duck name = "inflatable duck" desc = "No bother to sink or swim when you can just float!" @@ -377,7 +327,6 @@ flags_equip_slot = SLOT_WAIST black_market_value = 20 - /obj/item/toy/beach_ball name = "beach ball" icon_state = "beachball" @@ -394,7 +343,6 @@ user.drop_held_item() throw_atom(target, throw_range, throw_speed, user) - /obj/item/toy/dice name = "d6" desc = "A die with six sides." @@ -427,10 +375,6 @@ SPAN_NOTICE("You throw [src]. It lands on a [result]. [comment]"), \ SPAN_NOTICE("You hear [src] landing on a [result]. [comment]")) - - - - /obj/item/toy/bikehorn name = "bike horn" desc = "A horn off of a bicycle." @@ -455,47 +399,6 @@ src.add_fingerprint(user) addtimer(VARSET_CALLBACK(src, spam_flag, FALSE), 2 SECONDS) - - -/obj/item/toy/farwadoll - name = "Farwa plush doll" - desc = "A Farwa plush doll. It's soft and comforting!" - w_class = SIZE_TINY - icon_state = "farwaplush" - black_market_value = 25 - COOLDOWN_DECLARE(last_hug_time) - -/obj/item/toy/farwadoll/attack_self(mob/user) - ..() - - if(COOLDOWN_FINISHED(src, last_hug_time)) - user.visible_message(SPAN_NOTICE("[user] hugs [src]! How cute! "), \ - SPAN_NOTICE("You hug [src]. Dawwww... ")) - COOLDOWN_START(src, last_hug_time, 5 SECONDS) - -/obj/item/toy/farwadoll/pred - name = "strange plush doll" - desc = "A plush doll depicting some sort of tall humanoid biped..?" - w_class = SIZE_TINY - icon_state = "predplush" - -/obj/item/toy/plushie_cade - name = "plushie barricade" - desc = "Great for squeezing whenever you're scared. Or lightly hurt. Or in any other situation." - icon_state = "plushie_cade" - item_state = "plushie_cade" - w_class = SIZE_SMALL - COOLDOWN_DECLARE(last_hug_time) - -/obj/item/toy/plushie_cade/attack_self(mob/user) - ..() - - if(COOLDOWN_FINISHED(src, last_hug_time)) - user.visible_message(SPAN_NOTICE("[user] hugs [src] tightly!"), SPAN_NOTICE("You hug [src]. You feel safe.")) - playsound(user, "plush", 25, TRUE) - COOLDOWN_START(src, last_hug_time, 2.5 SECONDS) - - /obj/item/computer3_part name = "computer part" desc = "Holy jesus you donnit now" @@ -567,3 +470,188 @@ /obj/item/toy/festivizer/xeno name = "strange resin-covered festivizer decorator" desc = "This bizarre festivizer is covered in goopy goop and schmuck. Ew! It's so sticky, *anything* could grab onto it! Grab it and touch other things to festivize them!" + +/obj/item/toy/plush + name = "generic plushie" + desc = "perfectly generic" + icon = 'icons/obj/items/plush.dmi' + icon_state = "debug" + w_class = SIZE_SMALL + COOLDOWN_DECLARE(last_hug_time) + black_market_value = 10 + +/obj/item/toy/plush/attack_self(mob/user) + ..() + if(!COOLDOWN_FINISHED(src, last_hug_time)) + return + user.visible_message(SPAN_NOTICE("[user] hugs [src] tightly!"), SPAN_NOTICE("You hug [src].")) + playsound(user, "plush", 25, TRUE) + COOLDOWN_START(src, last_hug_time, 2.5 SECONDS) + +/obj/item/toy/plush/farwa + name = "Farwa plush" + desc = "A Farwa plush doll. It's soft and comforting!" + icon_state = "farwa" + black_market_value = 25 + +/obj/item/toy/plush/barricade + name = "plushie barricade" + desc = "Great for squeezing whenever you're scared. Or lightly hurt. Or in any other situation." + icon_state = "barricade" + item_state = "cade_plush" + +/obj/item/toy/plush/shark //A few more generic plushies to increase the size of the plushie loot pool + name = "shark plush" + desc = "A plushie depicting a somewhat cartoonish shark. The tag notes that it was made by an obscure furniture manufacturer in Scandinavia." + icon_state = "shark" + +/obj/item/toy/plush/bee + name = "bee plush" + desc = "A cute toy that awakens the warrior spirit in the most reserved marine." + icon_state = "bee" + +/obj/item/toy/plush/moth + name = "moth plush" + desc = "A plush doll of a bug." + icon_state = "moth" + +/obj/item/toy/plush/rock + name = "rock plush" + desc = "It says it is a plush on the tag, at least." + icon_state = "rock" + +/obj/item/toy/plush/therapy + name = "therapy plush" + desc = "A therapeutic toy to assist marines in recovering from mental and behavioral disorders after experiencing the trauma of battles." + icon_state = "therapy" + +/obj/item/toy/plush/therapy/red + name = "red therapy plush" + color = "#FC5274" + +/obj/item/toy/plush/therapy/blue + name = "blue therapy plush" + color = "#9EBAE0" + +/obj/item/toy/plush/therapy/green + name = "green therapy plush" + color = "#A3C940" + +/obj/item/toy/plush/therapy/orange + name = "orange therapy plush" + color = "#FD8535" + +/obj/item/toy/plush/therapy/purple + name = "purple therapy plush" + color = "#A26AC7" + +/obj/item/toy/plush/therapy/yellow + name = "yellow therapy plush" + color = "#FFE492" + +/obj/item/toy/plush/therapy/random_color + ///Hexadecimal 0-F (0-15) + var/static/list/hexadecimal = list("0", "1", "2", "3" , "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") + +/obj/item/toy/plush/therapy/random_color/Initialize(mapload, ...) + . = ..() + var/color_code = "#[pick(hexadecimal)][pick(hexadecimal)][pick(hexadecimal)][pick(hexadecimal)][pick(hexadecimal)][pick(hexadecimal)]" //This is dumb and I hope theres a better way I'm missing + color = color_code + desc = "A custom therapy plush, in a unique color." + +/obj/item/toy/plush/random_plushie //Not using an effect so it can fit into storage from loadout + name = "random plush" + desc = "This plush looks awfully standard and bland. Is it actually yours?" + /// Standard plushies for the spawner to pick from + var/list/plush_list = list( + /obj/item/toy/plush/farwa, + /obj/item/toy/plush/barricade, + /obj/item/toy/plush/bee, + /obj/item/toy/plush/shark, + /obj/item/toy/plush/moth, + /obj/item/toy/plush/rock, + ) + ///Therapy plushies left separately to not flood the entire list + var/list/therapy_plush_list = list( + /obj/item/toy/plush/therapy, + /obj/item/toy/plush/therapy/red, + /obj/item/toy/plush/therapy/blue, + /obj/item/toy/plush/therapy/green, + /obj/item/toy/plush/therapy/orange, + /obj/item/toy/plush/therapy/purple, + /obj/item/toy/plush/therapy/yellow, + /obj/item/toy/plush/therapy/random_color, + ) + +/obj/item/toy/plush/random_plushie/Initialize(mapload, ...) + . = ..() + if(mapload) //Placed in mapping, will be randomized instantly on spawn + create_plushie() + return INITIALIZE_HINT_QDEL + +/obj/item/toy/plush/random_plushie/pickup(mob/user, silent) + . = ..() + RegisterSignal(user, COMSIG_POST_SPAWN_UPDATE, PROC_REF(create_plushie), override = TRUE) + +///The randomizer picking and spawning a plushie on either the ground or in the humans backpack. Needs var/source due to signals +/obj/item/toy/plush/random_plushie/proc/create_plushie(datum/source) + SIGNAL_HANDLER + if(source) + UnregisterSignal(source, COMSIG_POST_SPAWN_UPDATE) + var/turf/spawn_location = get_turf(src) + var/plush_list_variety = pick(60; plush_list, 40; therapy_plush_list) + var/random_plushie = pick(plush_list_variety) + var/obj/item/toy/plush/plush = new random_plushie(spawn_location) //Starts on floor by default + var/mob/living/carbon/human/user = source + + if(!user) //If it didn't spawn on a humanoid + qdel(src) + return + + var/obj/item/storage/backpack/storage = locate() in user //If the user has a backpack, put it there + if(storage?.can_be_inserted(plush, user, stop_messages = TRUE)) + storage.attempt_item_insertion(plush, TRUE, user) + if(plush.loc == spawn_location) // Still on the ground + user.put_in_hands(plush, drop_on_fail = TRUE) + qdel(src) + +//Admin plushies +/obj/item/toy/plush/yautja + name = "strange plush" + desc = "A plush doll depicting some sort of tall humanoid biped..?" + icon_state = "yautja" + black_market_value = 100 + +/obj/item/toy/plush/runner + name = "\improper XX-121 therapy plush" + desc = "Don't be sad! Be glad (that you're alive)!" + icon_state = "runner" + /// If the runner is wearing a beret + var/beret = FALSE + +/obj/item/toy/plush/runner/Initialize(mapload, ...) + . = ..() + if(beret) + update_icon() + +/obj/item/toy/plush/runner/attackby(obj/item/attacking_object, mob/user) + . = ..() + if(beret) + return + if(!istypestrict(attacking_object, /obj/item/clothing/head/beret/marine/mp)) + return + var/beret_attack = attacking_object + to_chat(user, SPAN_NOTICE("You put [beret_attack] on [src].")) + qdel(beret_attack) + beret = TRUE + update_icon() + +/obj/item/toy/plush/runner/update_icon() + . = ..() + if(beret) + icon_state = "runner_beret" + return + icon_state = "runner" + +/obj/item/toy/plush/shark/alt + icon_state = "shark_alt" diff --git a/code/game/objects/items/weapons/blades.dm b/code/game/objects/items/weapons/blades.dm index 4b4b31539064..a2a4aa8db75d 100644 --- a/code/game/objects/items/weapons/blades.dm +++ b/code/game/objects/items/weapons/blades.dm @@ -1,38 +1,36 @@ -/obj/item/weapon/claymore - name = "claymore" - desc = "What are you standing around staring at this for? Get to killing!" - icon_state = "claymore" - item_state = "claymore" +/obj/item/weapon/sword + name = "combat sword" + desc = "A dusty sword commonly seen in historical museums. Where you got this is a mystery, for sure. Only a mercenary would be nuts enough to carry one of these. Sharpened to deal massive damage." + icon_state = "mercsword" + item_state = "machete" flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST force = MELEE_FORCE_STRONG throwforce = MELEE_FORCE_WEAK sharp = IS_SHARP_ITEM_BIG edge = 1 - w_class = SIZE_MEDIUM + w_class = SIZE_LARGE hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") attack_speed = 9 -/obj/item/weapon/claymore/mercsword - name = "combat sword" - desc = "A dusty sword commonly seen in historical museums. Where you got this is a mystery, for sure. Only a mercenary would be nuts enough to carry one of these. Sharpened to deal massive damage." - icon_state = "mercsword" - item_state = "machete" +/obj/item/weapon/sword/claymore + name = "claymore" + desc = "What are you standing around staring at this for? Get to killing!" + icon_state = "claymore" + item_state = "claymore" -/obj/item/weapon/claymore/mercsword/ceremonial +/obj/item/weapon/sword/ceremonial name = "Ceremonial Sword" desc = "A fancy ceremonial sword passed down from generation to generation. Despite this, it has been very well cared for, and is in top condition." icon_state = "ceremonial" - item_state = "machete" -/obj/item/weapon/claymore/mercsword/machete +/obj/item/weapon/sword/machete name = "\improper M2132 machete" desc = "Latest issue of the USCM Machete. Great for clearing out jungle or brush on outlying colonies. Found commonly in the hands of scouts and trackers, but difficult to carry with the usual kit." icon_state = "machete" - w_class = SIZE_LARGE -/obj/item/weapon/claymore/mercsword/machete/attack_self(mob/user) +/obj/item/weapon/sword/machete/attack_self(mob/user) if(user.action_busy) return @@ -49,14 +47,13 @@ return ..() -/obj/item/weapon/claymore/mercsword/machete/arnold +/obj/item/weapon/sword/machete/arnold name = "\improper M2100 \"Ngájhe\" machete" desc = "An older issue USCM machete, never left testing. Designed in the Central African Republic. The notching made it hard to clean, and as such the USCM refused to adopt it - despite the superior bludgeoning power offered. Difficult to carry with the usual kit." icon_state = "arnold-machete" - w_class = SIZE_LARGE force = MELEE_FORCE_TIER_11 -/obj/item/weapon/claymore/hefa +/obj/item/weapon/sword/hefa name = "HEFA sword" icon_state = "hefasword" item_state = "hefasword" @@ -65,7 +62,7 @@ var/primed = FALSE -/obj/item/weapon/claymore/hefa/proc/apply_explosion_overlay() +/obj/item/weapon/sword/hefa/proc/apply_explosion_overlay() var/obj/effect/overlay/O = new /obj/effect/overlay(loc) O.name = "grenade" O.icon = 'icons/effects/explosion.dmi' @@ -73,7 +70,7 @@ QDEL_IN(O, 7) return -/obj/item/weapon/claymore/hefa/attack_self(mob/user) +/obj/item/weapon/sword/hefa/attack_self(mob/user) ..() primed = !primed @@ -82,7 +79,7 @@ msg = "You de-activate \the [src]!" to_chat(user, SPAN_NOTICE(msg)) -/obj/item/weapon/claymore/hefa/attack(mob/target, mob/user) +/obj/item/weapon/sword/hefa/attack(mob/target, mob/user) . = ..() if(!primed) return @@ -97,22 +94,15 @@ cell_explosion(epicenter, 40, 18, EXPLOSION_FALLOFF_SHAPE_LINEAR, user.dir, cause_data) qdel(src) -/obj/item/weapon/katana +/obj/item/weapon/sword/katana name = "katana" desc = "A finely made Japanese sword, with a well sharpened blade. The blade has been filed to a molecular edge, and is extremely deadly. Commonly found in the hands of mercenaries and yakuza." icon_state = "katana" - flags_atom = FPRINT|CONDUCT + item_state = "katana" force = MELEE_FORCE_VERY_STRONG - throwforce = MELEE_FORCE_WEAK - sharp = IS_SHARP_ITEM_BIG - edge = 1 - w_class = SIZE_MEDIUM - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - attack_speed = 9 //To do: replace the toys. -/obj/item/weapon/katana/replica +/obj/item/weapon/sword/katana/replica name = "replica katana" desc = "A cheap knock-off commonly found in regular knife stores. Can still do some damage." force = MELEE_FORCE_WEAK @@ -223,6 +213,8 @@ else INVOKE_ASYNC(embedded_human, TYPE_PROC_REF(/mob, emote), "me", 1, pick("winces.", "grimaces.", "flinches.")) + SEND_SIGNAL(embedded_human, COMSIG_HUMAN_SHRAPNEL_REMOVED) + else to_chat(user, SPAN_NOTICE("You couldn't find any shrapnel.")) @@ -246,3 +238,142 @@ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_64.dmi', WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_64.dmi' ) + +/obj/item/weapon/straight_razor + name = "straight razor" + desc = "The commandant's favorite weapon against marines who dare break the grooming standards." + icon_state = "razor" + hitsound = 'sound/weapons/genhit3.ogg' + force = MELEE_FORCE_TIER_1 + throwforce = MELEE_FORCE_TIER_1 + throw_speed = SPEED_VERY_FAST + throw_range = 6 + ///Icon state for opened razor + var/enabled_icon = "razor" + ///Icon state for closed razor + var/disabled_icon = "razor_off" + ///If the razor is able to be used + var/razor_opened = FALSE + ///Time taken to open/close the razor + var/interaction_time = 3 SECONDS + +/obj/item/weapon/straight_razor/Initialize(mapload, ...) + . = ..() + RegisterSignal(src, COMSIG_ITEM_ATTEMPTING_EQUIP, PROC_REF(can_fit_in_shoe)) + change_razor_state(razor_opened) + if(prob(1)) + desc += " There is phrase etched into it, \"It can guarantee the closest shave you'll ever know.\"..." + +/obj/item/weapon/straight_razor/update_icon() + . = ..() + if(razor_opened) + icon_state = enabled_icon + return + icon_state = disabled_icon + +/obj/item/weapon/straight_razor/attack_hand(mob/user) + if(loc != user) //Only do unique stuff if you are holding it + return ..() + + if(!do_after(user, interaction_time, INTERRUPT_INCAPACITATED, BUSY_ICON_HOSTILE)) + return + playsound(user, 'sound/weapons/flipblade.ogg', 15, 1) + change_razor_state(!razor_opened) + to_chat(user, SPAN_NOTICE("You [razor_opened ? "reveal" : "hide"] [src]'s blade.")) + +///Check if the item can fit as a boot knife, var/source for signals +/obj/item/weapon/straight_razor/proc/can_fit_in_shoe(source = src, mob/user, slot) + if(slot != WEAR_IN_SHOES) //Only check if you try putting it in a shoe + return + if(razor_opened) + to_chat(user, SPAN_NOTICE("You cannot store [src] in your shoes until the blade is hidden.")) + return COMPONENT_CANCEL_EQUIP + +///Changes all the vars for the straight razor +/obj/item/weapon/straight_razor/proc/change_razor_state(opening = FALSE) + razor_opened = opening + update_icon() + if(opening) + force = MELEE_FORCE_NORMAL + throwforce = MELEE_FORCE_NORMAL + sharp = IS_SHARP_ITEM_ACCURATE + edge = TRUE + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + hitsound = 'sound/weapons/slash.ogg' + if(!(flags_item & CAN_DIG_SHRAPNEL)) + flags_item |= CAN_DIG_SHRAPNEL + return + force = MELEE_FORCE_TIER_1 + throwforce = MELEE_FORCE_TIER_1 + sharp = FALSE + edge = FALSE + attack_verb = list("smashed", "beaten", "slammed", "struck", "smashed", "battered", "cracked") + hitsound = 'sound/weapons/genhit3.ogg' + if(flags_item & CAN_DIG_SHRAPNEL) + flags_item &= ~CAN_DIG_SHRAPNEL + +/obj/item/weapon/straight_razor/verb/change_hair_style() + set name = "Change Hair Style" + set desc = "Change your hair style" + set category = "Object" + set src in usr + + var/mob/living/carbon/human/human_user = usr + if(!istype(human_user)) + return + + if(!razor_opened) + to_chat(human_user, SPAN_NOTICE("You need to reveal [src]'s blade to change your hairstyle.")) + return + + var/list/species_facial_hair = GLOB.facial_hair_styles_list + var/list/species_hair = GLOB.hair_styles_list + + if(human_user.species) //Facial hair + species_facial_hair = list() + for(var/current_style in GLOB.facial_hair_styles_list) + var/datum/sprite_accessory/facial_hair/temp_beard_style = GLOB.facial_hair_styles_list[current_style] + if(!(human_user.species.name in temp_beard_style.species_allowed)) + continue + if(!temp_beard_style.selectable) + continue + species_facial_hair += current_style + + if(human_user.species) //Hair + species_hair = list() + for(var/current_style in GLOB.hair_styles_list) + var/datum/sprite_accessory/hair/temp_hair_style = GLOB.hair_styles_list[current_style] + if(!(human_user.species.name in temp_hair_style.species_allowed)) + continue + if(!temp_hair_style.selectable) + continue + species_hair += current_style + + var/new_beard_style + var/new_hair_style + if(human_user.gender == MALE) + new_beard_style = tgui_input_list(human_user, "Select a facial hair style", "Grooming", species_facial_hair) + new_hair_style = tgui_input_list(human_user, "Select a hair style", "Grooming", species_hair) + + if(loc != human_user) + to_chat(human_user, SPAN_NOTICE("You are too far from [src] to change your hair styles.")) + return + + if(!new_beard_style && !new_hair_style) + return + + if(!do_after(human_user, interaction_time, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + return + + if(!razor_opened) + to_chat(human_user, SPAN_NOTICE("You need to reveal [src]'s blade to change your hairstyle.")) + return + + if(new_beard_style) + human_user.f_style = new_beard_style + if(new_hair_style) + human_user.h_style = new_hair_style + + human_user.apply_damage(rand(1,5), BRUTE, "head", src) + human_user.update_hair() + diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 20bf8ac951e9..0497a410a373 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -89,7 +89,7 @@ /obj/item/weapon/shield/riot/attackby(obj/item/W as obj, mob/user as mob) if(cooldown < world.time - 25) - if(istype(W, /obj/item/weapon/baton) || istype(W, /obj/item/weapon/claymore) || istype(W, /obj/item/weapon/baseballbat) || istype(W, /obj/item/weapon/katana) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/chainofcommand)) + if(istype(W, /obj/item/weapon/baton) || istype(W, /obj/item/weapon/sword) || istype(W, /obj/item/weapon/baseballbat) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/chainofcommand)) user.visible_message(SPAN_WARNING("[user] bashes [src] with [W]!")) playsound(user.loc, 'sound/effects/shieldbash.ogg', 25, 1) cooldown = world.time diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 6cb9f58aae37..310c53dd5d0f 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -106,7 +106,7 @@ bcell.update_icon() bcell.forceMove(get_turf(src.loc)) bcell = null - to_chat(user, SPAN_NOTICE("You remove the cell from the [src].")) + to_chat(user, SPAN_NOTICE("You remove the cell from [src].")) status = 0 update_icon() return @@ -183,10 +183,10 @@ // Logging if(user == L) - user.attack_log += "\[[time_stamp()]\] [key_name(user)] stunned themselves with the [src] in [get_area(user)]" + user.attack_log += "\[[time_stamp()]\] [key_name(user)] stunned themselves with [src] in [get_area(user)]" else - msg_admin_attack("[key_name(user)] stunned [key_name(L)] with the [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) - var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(L)] with the [src] in [get_area(user)]" + msg_admin_attack("[key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) + var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)]" L.attack_log += logentry user.attack_log += logentry @@ -197,9 +197,9 @@ return TRUE /obj/item/weapon/baton/emp_act(severity) + . = ..() if(bcell) bcell.emp_act(severity) //let's not duplicate code everywhere if we don't have to please. - ..() //secborg stun baton module /obj/item/weapon/baton/robot/attack_self(mob/user) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index aaa2a33d4e63..f3c76bcff638 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -113,7 +113,7 @@ w_class = SIZE_MEDIUM attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") else - to_chat(user, SPAN_NOTICE("The [src] can now be concealed.")) + to_chat(user, SPAN_NOTICE("[src] can now be concealed.")) force = initial(force) edge = 0 sharp = 0 @@ -167,7 +167,7 @@ update_icon(user) -/obj/item/weapon/katana/sharp +/obj/item/weapon/sword/katana/sharp name = "absurdly sharp katana" desc = "

    That's it. I'm sick of all this \"Masterwork Bastard Sword\" bullshit that's going on in CM-SS13 right now. Katanas deserve much better than that. Much, much better than that.

    \

    I should know what I'm talking about. I myself commissioned a genuine katana in Japan for 2,400,000 Yen (that's about $20,000) and have been practicing with it for almost 2 years now. I can even cut slabs of solid steel with my katana.

    \ @@ -190,7 +190,7 @@ attack_verb = list("sliced", "diced", "cut") -/obj/item/weapon/katana/sharp/attack(mob/living/M, mob/living/user) +/obj/item/weapon/sword/katana/sharp/attack(mob/living/M, mob/living/user) if(flags_item & NOBLUDGEON) return @@ -223,7 +223,7 @@ //if the target also has a katana (and we aren't attacking ourselves), we add some suspense - if( ( istype(M.get_active_hand(), /obj/item/weapon/katana) || istype(M.get_inactive_hand(), /obj/item/weapon/katana) ) && M != user ) + if( ( istype(M.get_active_hand(), /obj/item/weapon/sword/katana) || istype(M.get_inactive_hand(), /obj/item/weapon/sword/katana) ) && M != user ) if(prob(50)) user.visible_message(SPAN_DANGER("[M] and [user] cross blades!")) @@ -260,7 +260,7 @@ M.apply_effect(kill_delay/15, STUN) - for (var/mob/O in hearers(world_view_size, M)) + for (var/mob/O in hearers(GLOB.world_view_size, M)) O << sound('sound/effects/Heart Beat.ogg', repeat = 1, wait = 0, volume = 100, channel = 2) //play on same channel as ambience spawn(kill_delay) O << sound(, , , , channel = 2) //cut sound diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 184fc51bd507..7747a45ed9da 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -14,7 +14,8 @@ /// If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! var/in_use = FALSE var/mob/living/buckled_mob - var/buckle_lying = FALSE //Is the mob buckled in a lying position + /// Bed-like behaviour, forces mob.lying = buckle_lying if not set to [NO_BUCKLE_LYING]. + var/buckle_lying = NO_BUCKLE_LYING var/can_buckle = FALSE /**Applied to surgery times for mobs buckled prone to it or lying on the same tile, if the surgery cares about surface conditions. The lowest multiplier of objects on the tile is used.**/ @@ -224,15 +225,20 @@ else . = ..() /obj/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled - handle_rotation() + handle_rotation() // To be removed when we have full dir support in set_buckled SEND_SIGNAL(src, COSMIG_OBJ_AFTER_BUCKLE, buckled_mob) + if(!buckled_mob) + UnregisterSignal(M, COMSIG_PARENT_QDELETING) + else + RegisterSignal(buckled_mob, COMSIG_PARENT_QDELETING, PROC_REF(unbuckle)) return buckled_mob /obj/proc/unbuckle() + SIGNAL_HANDLER if(buckled_mob && buckled_mob.buckled == src) - buckled_mob.buckled = null + buckled_mob.clear_alert(ALERT_BUCKLED) + buckled_mob.set_buckled(null) buckled_mob.anchored = initial(buckled_mob.anchored) - buckled_mob.update_canmove() var/M = buckled_mob REMOVE_TRAITS_IN(buckled_mob, TRAIT_SOURCE_BUCKLE) @@ -263,7 +269,7 @@ //trying to buckle a mob /obj/proc/buckle_mob(mob/M, mob/user) - if (!ismob(M) || (get_dist(src, user) > 1) || user.is_mob_restrained() || user.lying || user.stat || buckled_mob || M.buckled || !isturf(user.loc)) + if (!ismob(M) || (get_dist(src, user) > 1) || user.is_mob_restrained() || user.stat || buckled_mob || M.buckled || !isturf(user.loc)) return if (isxeno(user)) @@ -272,6 +278,11 @@ if (iszombie(user)) return + // mobs that become immobilized should not be able to buckle themselves. + if(M == user && HAS_TRAIT(user, TRAIT_IMMOBILIZED)) + to_chat(user, SPAN_WARNING("You are unable to do this in your current state.")) + return + if(density) density = FALSE if(!step(M, get_dir(M, src)) && loc != M.loc) @@ -294,20 +305,16 @@ // the actual buckling proc // Yes I know this is not style but its unreadable otherwise -/obj/proc/do_buckle(mob/target, mob/user) +/obj/proc/do_buckle(mob/living/target, mob/user) send_buckling_message(target, user) if (src && src.loc) - target.buckled = src + target.throw_alert(ALERT_BUCKLED, /atom/movable/screen/alert/buckled) + target.set_buckled(src) target.forceMove(src.loc) target.setDir(dir) - target.update_canmove() src.buckled_mob = target src.add_fingerprint(user) afterbuckle(target) - if(buckle_lying) // Make sure buckling to beds/nests etc only turns, and doesn't give a random offset - var/matrix/new_matrix = matrix() - new_matrix.Turn(90) - target.apply_transform(new_matrix) return TRUE /obj/proc/send_buckling_message(mob/M, mob/user) @@ -387,7 +394,7 @@ else if(LAZYISIN(item_icons, slot)) mob_icon = item_icons[slot] else - mob_icon = default_onmob_icons[slot] + mob_icon = GLOB.default_onmob_icons[slot] var/image/overlay_img diff --git a/code/game/objects/prop.dm b/code/game/objects/prop.dm index e59c24b30d5f..c067a9730e70 100644 --- a/code/game/objects/prop.dm +++ b/code/game/objects/prop.dm @@ -11,6 +11,66 @@ w_class = SIZE_SMALL garbage = TRUE +/obj/item/prop/geiger_counter + name = "geiger counter" + desc = "A geiger counter measures the radiation it receives. This type automatically records and transfers any information it reads, provided it has a battery, with no user input required beyond being enabled." + icon = 'icons/obj/items/devices.dmi' + icon_state = "geiger" + item_state = "" + w_class = SIZE_SMALL + flags_equip_slot = SLOT_WAIST + ///Whether the geiger counter is on or off + var/toggled_on = FALSE + ///Iconstate of geiger counter when on + var/enabled_state = "geiger_on" + ///Iconstate of geiger counter when off + var/disabled_state = "geiger" + ///New battery it will spawn with + var/starting_battery = /obj/item/cell/crap + ///Battery inside geiger counter + var/obj/item/cell/battery //It doesn't drain the battery, but it has a battery for emergency use + +/obj/item/prop/geiger_counter/Initialize(mapload, ...) + . = ..() + if(!starting_battery) + return + battery = new starting_battery(src) + +/obj/item/prop/geiger_counter/Destroy() + . = ..() + if(battery) + qdel(battery) + +/obj/item/prop/geiger_counter/attack_self(mob/user) + . = ..() + toggled_on = !toggled_on + if(!battery) + to_chat(user, SPAN_NOTICE("[src] is missing a battery.")) + return + to_chat(user, SPAN_NOTICE("You [toggled_on ? "enable" : "disable"] [src].")) + update_icon() + +/obj/item/prop/geiger_counter/attackby(obj/item/attacking_item, mob/user) + . = ..() + if(!HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER) && !HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) + return + + if(!battery) + to_chat(user, SPAN_NOTICE("There is no battery for you to remove.")) + return + to_chat(user, SPAN_NOTICE("You jam [battery] out of [src] with [attacking_item], prying it out irreversibly.")) + user.put_in_hands(battery) + battery = null + update_icon() + +/obj/item/prop/geiger_counter/update_icon() + . = ..() + + if(battery && toggled_on) + icon_state = enabled_state + return + icon_state = disabled_state + /obj/item/prop/tableflag name = "United Americas table flag" icon = 'icons/obj/items/items.dmi' diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 9b0b8cf30aae..2519ed2940d5 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -150,7 +150,8 @@ for(var/mob/living/M in get_turf(src)) - if(M.lying) return //No spamming this on people. + if(HAS_TRAIT(M, TRAIT_FLOORED)) + return //No spamming this on people. M.apply_effect(5, WEAKEN) to_chat(M, SPAN_WARNING("You topple as \the [src] moves under you!")) @@ -191,7 +192,7 @@ H.updatehealth() return -/obj/structure/proc/can_touch(mob/user) +/obj/structure/proc/can_touch(mob/living/user) if(!user) return 0 if(!Adjacent(user) || !isturf(user.loc)) @@ -199,7 +200,7 @@ if(user.is_mob_restrained() || user.buckled) to_chat(user, SPAN_NOTICE("You need your hands and legs free for this.")) return 0 - if(user.is_mob_incapacitated(TRUE) || user.lying) + if(user.is_mob_incapacitated(TRUE) || user.body_position == LYING_DOWN) return 0 if(isRemoteControlling(user)) to_chat(user, SPAN_NOTICE("You need hands for this.")) @@ -208,7 +209,7 @@ /obj/structure/proc/toggle_anchored(obj/item/W, mob/user) if(!wrenchable) - to_chat(user, SPAN_WARNING("The [src] cannot be [anchored ? "un" : ""]anchored.")) + to_chat(user, SPAN_WARNING("[src] cannot be [anchored ? "un" : ""]anchored.")) return FALSE else // Wrenching is faster if we are better at engineering diff --git a/code/game/objects/structures/airlock_assembly.dm b/code/game/objects/structures/airlock_assembly.dm index 0679e1287ff7..d9e55e868016 100644 --- a/code/game/objects/structures/airlock_assembly.dm +++ b/code/game/objects/structures/airlock_assembly.dm @@ -22,9 +22,11 @@ var/airlock_type = "generic" //the type path of the airlock once completed var/glass = AIRLOCK_NOGLASS // see defines var/created_name = null + /// Used for multitile assemblies + var/width = 1 + /obj/structure/airlock_assembly/Initialize(mapload, ...) . = ..() - update_icon() /obj/structure/airlock_assembly/get_examine_text(mob/user) @@ -35,23 +37,26 @@ switch(state) if(STATE_STANDARD) if(anchored) - helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will unsecure it. Insert a [SPAN_HELPFUL("airlock circuit")]." + var/temp = "" + if(width == 1) + temp += "It looks like a [SPAN_HELPFUL("wrench")] will unsecure it. " + helpmessage += "[temp]You can insert an [SPAN_HELPFUL("airlock circuit")]. " if(!glass) - helpmessage += "Insert some [SPAN_HELPFUL("glass sheets")] to add windows to it." + helpmessage += "Insert some [SPAN_HELPFUL("glass sheets")] to add windows to it. " else if(glass == AIRLOCK_GLASSIN) - helpmessage += "You can take out the windows with a [SPAN_HELPFUL("screwdriver")]." + helpmessage += "You can take out the windows with a [SPAN_HELPFUL("screwdriver")]. " else - helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will secure it." + helpmessage += "It looks like a [SPAN_HELPFUL("wrench")] will secure it. " if(STATE_CIRCUIT) - helpmessage += "Add [SPAN_HELPFUL("cable coil")] to the circuit." + helpmessage += "Add [SPAN_HELPFUL("cable coil")] to the circuit. " if(STATE_WIRES) - helpmessage += "Secure the circuit with a [SPAN_HELPFUL("screwdriver")]." + helpmessage += "Secure the circuit with a [SPAN_HELPFUL("screwdriver")]. " if(STATE_SCREWDRIVER) - helpmessage += "[SPAN_HELPFUL("Weld")] it all in place." + helpmessage += "[SPAN_HELPFUL("Weld")] it all in place. " helpmessage += "You can name it with a [SPAN_HELPFUL("pen")]." . += SPAN_NOTICE(helpmessage) -/obj/structure/airlock_assembly/attackby(obj/item/W as obj, mob/user as mob) +/obj/structure/airlock_assembly/attackby(obj/item/attacking_item as obj, mob/user as mob) if(user.action_busy) return TRUE //no afterattack @@ -59,16 +64,16 @@ to_chat(user, SPAN_WARNING("You are not trained to configure \the [src]...")) return - if(HAS_TRAIT(W, TRAIT_TOOL_PEN)) - var/t = copytext(stripped_input(user, "Enter the name for the airlock.", name, created_name), 1, MAX_NAME_LEN) - if(!t || !in_range(src, usr) && loc != usr) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_PEN)) + var/input_text = copytext(stripped_input(user, "Enter the name for the airlock.", name, created_name), 1, MAX_NAME_LEN) + if(!input_text || !in_range(src, usr) && loc != usr) return - created_name = t + created_name = input_text playsound(src, "paper_writing", 15, TRUE) return - if(istype(W, /obj/item/stack/sheet/glass)) - var/obj/item/stack/sheet/glass/G = W + if(istype(attacking_item, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/glass_sheet = attacking_item if(!anchored) to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return @@ -83,7 +88,7 @@ return if(!do_after(user, 20 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - if(G.use(5)) + if(glass_sheet.use(5)) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) glass = AIRLOCK_GLASSIN to_chat(user, SPAN_NOTICE("You insert some glass into \the [src], adding windows to it.")) @@ -93,7 +98,7 @@ to_chat(user, SPAN_WARNING("You need five sheets of glass to add windows to \the [src]!")) return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) to_chat(user, SPAN_NOTICE("You start pulling \the [src] apart.")) playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) if(!do_after(user, 20 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) @@ -108,10 +113,14 @@ switch(state) if(STATE_STANDARD) - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WRENCH)) + //Moving wide doors is wonky and doesn't work properly, if it's fixed we could make it unwrenchable again + if(width > 1 && anchored) + to_chat(user, SPAN_WARNING("[src] cannot be unwrenched.")) + return if(!anchored) - var/turf/open/T = loc - if(!(istype(T) && T.allow_construction)) + var/turf/open/checked_turf = loc + if(!(istype(checked_turf) && checked_turf.allow_construction)) to_chat(user, SPAN_WARNING("\The [src] cannot be secured here!")) return playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -127,10 +136,10 @@ to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return ..() - if(istype(W, /obj/item/circuitboard/airlock)) - var/obj/item/circuitboard/airlock/C = W - if(C.fried) // guess what this used to check? ICON STATE!! - to_chat(user, SPAN_WARNING("\The [C] are totally broken!")) + if(istype(attacking_item, /obj/item/circuitboard/airlock)) + var/obj/item/circuitboard/airlock/airlock_circuit = attacking_item + if(airlock_circuit.fried) // guess what this used to check? ICON STATE!! + to_chat(user, SPAN_WARNING("\The [airlock_circuit] are totally broken!")) return playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You start installing the airlock electronics.")) @@ -138,14 +147,14 @@ return playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) user.drop_held_item() - W.forceMove(src) + attacking_item.forceMove(src) to_chat(user, SPAN_NOTICE("You installed the airlock electronics!")) state = STATE_CIRCUIT - electronics = W + electronics = attacking_item update_icon() return - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) if(!anchored) to_chat(user, SPAN_NOTICE("The airlock is not secured!")) return @@ -163,22 +172,22 @@ if(STATE_CIRCUIT) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if (C.get_amount() < 1) + if(istype(attacking_item, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/airlock_circuit = attacking_item + if (airlock_circuit.get_amount() < 1) to_chat(user, SPAN_WARNING("You need one length of coil to wire the airlock assembly.")) return to_chat(user, SPAN_NOTICE("You start to wire the circuit.")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - if(C.use(1)) + if(airlock_circuit.use(1)) state = STATE_WIRES to_chat(user, SPAN_NOTICE("You wire the circuit.")) update_icon() return if(STATE_WIRES) - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You start securing the circuit")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) @@ -190,27 +199,23 @@ return if(STATE_SCREWDRIVER) - if(iswelder(W)) - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) + if(iswelder(attacking_item)) + if(!HAS_TRAIT(attacking_item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return - var/obj/item/tool/weldingtool/WT = W - if(!WT.remove_fuel(5, user)) + var/obj/item/tool/weldingtool/welder = attacking_item + if(!welder.remove_fuel(5, user)) return playsound(loc, 'sound/items/Welder2.ogg', 25, 1) to_chat(user, SPAN_NOTICE("Now finishing the airlock.")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - WT.remove_fuel(-5) + welder.remove_fuel(-5) return playsound(loc, 'sound/items/Welder2.ogg', 25, 1) to_chat(user, SPAN_NOTICE("You finish the airlock!")) - var/path - if (glass == AIRLOCK_GLASSIN) - path = text2path("/obj/structure/machinery/door/airlock/almayer/[airlock_type]/glass") - else - path = text2path("/obj/structure/machinery/door/airlock/almayer/[airlock_type]") + var/path = get_airlock_path() var/obj/structure/machinery/door/airlock/door = new path(loc) door.assembly_type = type door.electronics = electronics @@ -225,7 +230,7 @@ door.name = created_name else door.name = base_name - + door.handle_multidoor() electronics.forceMove(door) qdel(src) return @@ -238,107 +243,107 @@ else icon_state = "door_as_[base_icon_state][state]" +/obj/structure/airlock_assembly/proc/get_airlock_path() + //For some reason multi_tile doors have different paths... can't say it isn't annoying + if (width > 1) + return "/obj/structure/machinery/door/airlock/multi_tile/almayer/[airlock_type][glass ? "" : "/solid"]" + return "/obj/structure/machinery/door/airlock/almayer/[airlock_type][glass ? "/glass" : ""]" + +/// Used for overloading proc in multi_tile +/obj/structure/airlock_assembly/proc/update_collision_box() + return + /obj/structure/airlock_assembly/airlock_assembly_com base_icon_state = "com" base_name = "Command Airlock" - airlock_type = "/command" + airlock_type = "command" /obj/structure/airlock_assembly/airlock_assembly_sec base_icon_state = "sec" base_name = "Security Airlock" - airlock_type = "/security" + airlock_type = "security" /obj/structure/airlock_assembly/airlock_assembly_eng base_icon_state = "eng" base_name = "Engineering Airlock" - airlock_type = "/engineering" + airlock_type = "engineering" /obj/structure/airlock_assembly/airlock_assembly_min base_icon_state = "min" base_name = "Mining Airlock" - airlock_type = "/mining" + airlock_type = "mining" /obj/structure/airlock_assembly/airlock_assembly_atmo base_icon_state = "atmo" base_name = "Atmospherics Airlock" - airlock_type = "/atmos" + airlock_type = "atmos" /obj/structure/airlock_assembly/airlock_assembly_research base_icon_state = "res" base_name = "Research Airlock" - airlock_type = "/research" + airlock_type = "research" /obj/structure/airlock_assembly/airlock_assembly_science base_icon_state = "sci" base_name = "Science Airlock" - airlock_type = "/science" + airlock_type = "science" /obj/structure/airlock_assembly/airlock_assembly_med base_icon_state = "med" base_name = "Medical Airlock" - airlock_type = "/medical" + airlock_type = "medical" /obj/structure/airlock_assembly/airlock_assembly_mai base_icon_state = "mai" base_name = "Maintenance Airlock" - airlock_type = "/maintenance" + airlock_type = "maintenance" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_ext base_icon_state = "ext" base_name = "External Airlock" - airlock_type = "/external" + airlock_type = "external" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_fre base_icon_state = "fre" base_name = "Freezer Airlock" - airlock_type = "/freezer" + airlock_type = "freezer" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_hatch base_icon_state = "hatch" base_name = "Airtight Hatch" - airlock_type = "/hatch" + airlock_type = "hatch" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_mhatch base_icon_state = "mhatch" base_name = "Maintenance Hatch" - airlock_type = "/maintenance_hatch" + airlock_type = "maintenance_hatch" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/airlock_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly base_icon_state = "highsec" base_name = "High Security Airlock" - airlock_type = "/highsecurity" + airlock_type = "highsecurity" glass = AIRLOCK_CANTGLASS /obj/structure/airlock_assembly/multi_tile icon = 'icons/obj/structures/doors/airlock_assembly2x1.dmi' - icon_state = "door_as_g0" - dir = EAST - var/width = 1 - -/*Temporary until we get sprites. - airlock_type = "/multi_tile/maint" - glass = 1*/ - base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1. - airlock_type = "/multi_tile/glass" - glass = AIRLOCK_CANTGLASS //To prevent bugs in deconstruction process. + icon_state = "door_as_0" + width = 2 /obj/structure/airlock_assembly/multi_tile/Initialize(mapload, ...) . = ..() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size + update_collision_box() update_icon() /obj/structure/airlock_assembly/multi_tile/Move() . = ..() + update_collision_box() + +/obj/structure/airlock_assembly/multi_tile/update_collision_box() if(dir in list(EAST, WEST)) bound_width = width * world.icon_size bound_height = world.icon_size diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index 0ca2ccb1ddbc..b23e07f707f2 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -19,6 +19,7 @@ var/force_level_absorption = 5 //How much force an item needs to even damage it at all. var/barricade_hitsound var/barricade_type = "barricade" //"metal", "plasteel", etc. + var/wire_icon = 'icons/obj/structures/barricades.dmi' //! Icon file used for the wiring var/can_change_dmg_state = TRUE var/damage_state = BARRICADE_DMG_NONE var/closed = FALSE @@ -78,7 +79,7 @@ switch(dir) if(SOUTH) layer = ABOVE_MOB_LAYER - else if(NORTH) + if(NORTH) layer = initial(layer) - 0.01 else layer = initial(layer) @@ -102,9 +103,9 @@ if(is_wired) if(!closed) - overlays += image('icons/obj/structures/barricades.dmi', icon_state = "[src.barricade_type]_wire") + overlays += image(wire_icon, icon_state = "[barricade_type]_wire") else - overlays += image('icons/obj/structures/barricades.dmi', icon_state = "[src.barricade_type]_closed_wire") + overlays += image(wire_icon, icon_state = "[barricade_type]_closed_wire") ..() diff --git a/code/game/objects/structures/barricade/deployable.dm b/code/game/objects/structures/barricade/deployable.dm index 77aa6b7e6816..0d5275f98a3d 100644 --- a/code/game/objects/structures/barricade/deployable.dm +++ b/code/game/objects/structures/barricade/deployable.dm @@ -63,7 +63,7 @@ if(!ishuman(usr)) return - if(usr.lying) + if(usr.is_mob_incapacitated()) return if(over_object == usr && Adjacent(usr)) diff --git a/code/game/objects/structures/barricade/handrail.dm b/code/game/objects/structures/barricade/handrail.dm index ea10dc7256de..ae166dbbf985 100644 --- a/code/game/objects/structures/barricade/handrail.dm +++ b/code/game/objects/structures/barricade/handrail.dm @@ -24,7 +24,7 @@ switch(dir) if(SOUTH) layer = ABOVE_MOB_LAYER - else if(NORTH) + if(NORTH) layer = initial(layer) - 0.01 else layer = initial(layer) diff --git a/code/game/objects/structures/barricade/metal.dm b/code/game/objects/structures/barricade/metal.dm index 4056ac9021f8..4f250eed50e9 100644 --- a/code/game/objects/structures/barricade/metal.dm +++ b/code/game/objects/structures/barricade/metal.dm @@ -110,7 +110,7 @@ to_chat(user, SPAN_NOTICE("You lack the required metal.")) return if((usr.get_active_hand()) != metal) - to_chat(user, SPAN_WARNING("You must be holding the [metal] to upgrade \the [src]!")) + to_chat(user, SPAN_WARNING("You must be holding [metal] to upgrade [src]!")) return switch(choice) @@ -150,7 +150,7 @@ to_chat(user, SPAN_NOTICE("You lack the required metal.")) return if((usr.get_active_hand()) != metal) - to_chat(user, SPAN_WARNING("You must be holding the [metal] to upgrade \the [src]!")) + to_chat(user, SPAN_WARNING("You must be holding [metal] to upgrade [src]!")) return switch(choice) diff --git a/code/game/objects/structures/barricade/plasteel.dm b/code/game/objects/structures/barricade/plasteel.dm index d1a42c9b61ab..dd95aa3f1baf 100644 --- a/code/game/objects/structures/barricade/plasteel.dm +++ b/code/game/objects/structures/barricade/plasteel.dm @@ -30,7 +30,7 @@ /obj/structure/barricade/plasteel/update_icon() ..() if(linked) - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) if(((dir & (NORTH|SOUTH) && get_dir(src, cade) & (EAST|WEST)) || (dir & (EAST|WEST) && get_dir(src, cade) & (NORTH|SOUTH))) && dir == cade.dir && cade.linked && cade.closed == src.closed && hasconnectionoverlay) if(closed) @@ -125,10 +125,10 @@ user.visible_message(SPAN_NOTICE("[user] sets up [src] for linking."), SPAN_NOTICE("You set up [src] for linking.")) else - to_chat(user, SPAN_WARNING("The [src] has no linking points...")) + to_chat(user, SPAN_WARNING("[src] has no linking points...")) return linked = !linked - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) cade.update_icon() update_icon() @@ -210,7 +210,7 @@ if(closed) if(recentlyflipped) - to_chat(user, SPAN_NOTICE("The [src] has been flipped too recently!")) + to_chat(user, SPAN_NOTICE("[src] has been flipped too recently!")) return user.visible_message(SPAN_NOTICE("[user] flips [src] open."), SPAN_NOTICE("You flip [src] open.")) @@ -222,7 +222,7 @@ else if(recentlyflipped) - to_chat(user, SPAN_NOTICE("The [src] has been flipped too recently!")) + to_chat(user, SPAN_NOTICE("[src] has been flipped too recently!")) return user.visible_message(SPAN_NOTICE("[user] flips [src] closed."), SPAN_NOTICE("You flip [src] closed.")) @@ -239,7 +239,7 @@ closed = 0 density = TRUE if(linked) - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) if(((dir & (NORTH|SOUTH) && get_dir(src, cade) & (EAST|WEST)) || (dir & (EAST|WEST) && get_dir(src, cade) & (NORTH|SOUTH))) && dir == cade.dir && cade != origin && cade.linked) cade.open(src) @@ -252,7 +252,7 @@ closed = 1 density = FALSE if(linked) - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) if(((dir & (NORTH|SOUTH) && get_dir(src, cade) & (EAST|WEST)) || (dir & (EAST|WEST) && get_dir(src, cade) & (NORTH|SOUTH))) && dir == cade.dir && cade != origin && cade.linked) cade.close(src) diff --git a/code/game/objects/structures/blocker.dm b/code/game/objects/structures/blocker.dm index 284daf0028aa..f85b1e65fff5 100644 --- a/code/game/objects/structures/blocker.dm +++ b/code/game/objects/structures/blocker.dm @@ -105,9 +105,21 @@ /obj/structure/blocker/forcefield/vehicles types = list(/obj/vehicle/) + +/obj/structure/blocker/forcefield/vehicles/handle_vehicle_bump(obj/vehicle/multitile/multitile_vehicle) + if(multitile_vehicle.vehicle_flags & VEHICLE_BYPASS_BLOCKERS) + return TRUE + return FALSE + /obj/structure/blocker/forcefield/multitile_vehicles types = list(/obj/vehicle/multitile/) + +/obj/structure/blocker/forcefield/multitile_vehicles/handle_vehicle_bump(obj/vehicle/multitile/multitile_vehicle) + if(multitile_vehicle.vehicle_flags & VEHICLE_BYPASS_BLOCKERS) + return TRUE + return FALSE + /obj/structure/blocker/forcefield/human types = list(/mob/living/carbon/human) icon_state = "purple_line" diff --git a/code/game/objects/structures/bookcase.dm b/code/game/objects/structures/bookcase.dm index c71b2853ea07..ce338de47b35 100644 --- a/code/game/objects/structures/bookcase.dm +++ b/code/game/objects/structures/bookcase.dm @@ -33,7 +33,7 @@ if(contents.len) var/obj/item/book/choice = input("Which book would you like to remove from the shelf?") as null|obj in contents if(choice) - if(!usr.canmove || usr.stat || usr.is_mob_restrained() || !in_range(loc, usr)) + if(usr.is_mob_incapacitated() || !in_range(loc, usr)) return if(ishuman(user)) if(!user.get_active_hand()) @@ -58,8 +58,6 @@ contents_explosion(severity) deconstruct(FALSE) return - else - return /obj/structure/bookcase/update_icon() if(contents.len < 5) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index a7394f3a7586..fa87cd6b2b71 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -79,10 +79,11 @@ M.forceMove(loc) if(exit_stun) M.apply_effect(exit_stun, STUN) //Action delay when going out of a closet - M.update_canmove() //Force the delay to go in action immediately - if(!M.lying) - M.visible_message(SPAN_WARNING("[M] suddenly gets out of [src]!"), - SPAN_WARNING("You get out of [src] and get your bearings!")) + if(isliving(M)) + var/mob/living/living_M = M + if(living_M.mobility_flags & MOBILITY_MOVE) + M.visible_message(SPAN_WARNING("[M] suddenly gets out of [src]!"), + SPAN_WARNING("You get out of [src] and get your bearings!")) /obj/structure/closet/proc/open() if(opened) @@ -157,10 +158,15 @@ /obj/structure/closet/proc/take_damage(damage) + if(health <= 0) + return + health = max(health - damage, 0) if(health <= 0) - for(var/atom/movable/A as anything in src) - A.forceMove(src.loc) + for(var/atom/movable/movable as anything in src) + if(!loc) + break + movable.forceMove(loc) playsound(loc, 'sound/effects/meteorimpact.ogg', 25, 1) qdel(src) @@ -194,7 +200,7 @@ /obj/structure/closet/attack_animal(mob/living/user) if(user.wall_smash) - visible_message(SPAN_DANGER("[user] destroys the [src]. ")) + visible_message(SPAN_DANGER("[user] destroys [src].")) for(var/atom/movable/A as mob|obj in src) A.forceMove(src.loc) qdel(src) @@ -333,7 +339,7 @@ set category = "Object" set name = "Toggle Open" - if(!usr.canmove || usr.stat || usr.is_mob_restrained()) + if(usr.is_mob_incapacitated()) return if(usr.loc == src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm index ffd993777644..9b473d91f46e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm @@ -32,6 +32,8 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) /obj/structure/closet/secure_closet/securecom/Initialize() . = ..() + new /obj/item/storage/box/kit/honorguard(src) + new /obj/item/storage/box/kit/honorguard(src) GLOB.co_secure_boxes += src /obj/structure/closet/secure_closet/securecom/Destroy() @@ -104,7 +106,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/clothing/shoes/marine(src) new /obj/item/storage/belt/gun/m4a3(src) new /obj/item/storage/backpack/marine/satchel/intel(src) - new /obj/item/clothing/suit/storage/marine/rto/intel(src) + new /obj/item/clothing/suit/storage/marine/medium/rto/intel(src) new /obj/item/storage/pouch/document(src) new /obj/item/storage/pouch/document(src) new /obj/item/device/motiondetector/intel(src) @@ -178,7 +180,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) /obj/structure/closet/secure_closet/warrant_officer name = "chief MP's locker" - req_access = list(ACCESS_MARINE_BRIG) + req_access = list(ACCESS_MARINE_ARMORY) icon_state = "secure_locked_warrant" icon_closed = "secure_unlocked_warrant" icon_locked = "secure_locked_warrant" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm similarity index 85% rename from code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm rename to code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm index db20a738c8ed..4531a68c42dd 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm @@ -65,21 +65,7 @@ contents_explosion(severity - EXPLOSION_THRESHOLD_LOW) deconstruct(FALSE) -/obj/structure/closet/secure_closet/guncabinet/mp_armory -// req_access = list(ACCESS_MARINE_BRIG) - req_level = SEC_LEVEL_RED - -/obj/structure/closet/secure_closet/guncabinet/mp_armory/Initialize() - . = ..() - new /obj/item/weapon/gun/shotgun/combat(src) - new /obj/item/weapon/gun/shotgun/combat(src) - new /obj/item/ammo_magazine/shotgun/slugs(src) - new /obj/item/ammo_magazine/shotgun/buckshot(src) - new /obj/item/ammo_magazine/shotgun/buckshot(src) - new /obj/item/ammo_magazine/shotgun/buckshot(src) - - - +//this is used on corsat.(leaving it as a prop i guess) /obj/structure/closet/secure_closet/guncabinet/riot_control name = "riot control equipment closet" // req_access = list(ACCESS_MARINE_BRIG) @@ -111,15 +97,10 @@ new /obj/item/clothing/suit/armor/riot/marine(src) new /obj/item/storage/box/flashbangs(src) - /obj/structure/closet/secure_closet/guncabinet/green name = "green level gun cabinet" req_level = SEC_LEVEL_GREEN -/obj/structure/closet/secure_closet/guncabinet/blue - name = "blue level gun cabinet" - req_level = SEC_LEVEL_BLUE - /obj/structure/closet/secure_closet/guncabinet/red name = "red level gun cabinet" req_level = SEC_LEVEL_RED diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm new file mode 100644 index 000000000000..acc43c302e6d --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm @@ -0,0 +1,37 @@ +/obj/structure/closet/secure_closet/guncabinet/blue + name = "blue level gun cabinet" + req_level = SEC_LEVEL_BLUE + +//riot gear control cabinet adding vehicle clamp to it to... +// make more sense than in red alert cabinet. + +/obj/structure/closet/secure_closet/guncabinet/blue/riot_control + name = "riot control equipment closet" + storage_capacity = 55 //lots of stuff to fit in + req_level = SEC_LEVEL_BLUE + +/obj/structure/closet/secure_closet/guncabinet/blue/riot_control/Initialize() + . = ..() + new /obj/item/weapon/gun/shotgun/combat/riot(src, TRUE) + new /obj/item/weapon/gun/shotgun/combat/riot(src, TRUE) + new /obj/item/weapon/gun/shotgun/combat/riot(src, TRUE) + new /obj/item/weapon/shield/riot(src) + new /obj/item/weapon/shield/riot(src) + new /obj/item/weapon/shield/riot(src) + new /obj/item/ammo_magazine/shotgun/beanbag/riot(src) + new /obj/item/ammo_magazine/shotgun/beanbag/riot(src) + new /obj/item/ammo_magazine/shotgun/beanbag/riot(src) + new /obj/item/ammo_magazine/shotgun/beanbag/riot(src) + new /obj/item/weapon/gun/launcher/grenade/m81/riot(src, TRUE) + new /obj/item/storage/box/nade_box/tear_gas(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/head/helmet/riot(src) + new /obj/item/clothing/head/helmet/riot(src) + new /obj/item/clothing/head/helmet/riot(src) + new /obj/item/clothing/suit/armor/riot/marine(src) + new /obj/item/clothing/suit/armor/riot/marine(src) + new /obj/item/clothing/suit/armor/riot/marine(src) + new /obj/item/storage/box/flashbangs(src) + new /obj/item/vehicle_clamp(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_red.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_red.dm new file mode 100644 index 000000000000..487ffd546d8e --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_red.dm @@ -0,0 +1,112 @@ +/obj/structure/closet/secure_closet/guncabinet/red + name = "red level gun cabinet" + req_level = SEC_LEVEL_RED + +// MP ARMORY + +// 3 shotgun cabinet are in brig armory +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun + +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun/Initialize() + . = ..() + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/ammo_box/magazine/shotgun/buckshot(src) + new /obj/item/ammo_box/magazine/shotgun(src) + +// 2 M39 cabinet are in brig armory (4 M39 and 12 mags) +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun + +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun/Initialize() + . = ..() + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/ammo_box/magazine/m39(src) + +// 2 m4ra cabinet are in brig armory (m4ra guns and 12 mags) +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle + +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle/Initialize() + . = ..() + new /obj/item/weapon/gun/rifle/m4ra(src) + new /obj/item/weapon/gun/rifle/m4ra(src) + new /obj/item/weapon/gun/rifle/m4ra(src) + new /obj/item/weapon/gun/rifle/m4ra(src) + new /obj/item/ammo_box/magazine/m4ra(src) + +// EXECUTION CHAMBER might add that here need to ask first... will reskin if asked. + + + +// CIC ARMORY + +// 4 shotgun cabinet are in cic armory +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun + +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun/Initialize() + . = ..() + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/ammo_magazine/shotgun/slugs(src) + new /obj/item/ammo_magazine/shotgun/buckshot(src) + +//4 MK1 cabinet(using guncase because it fit well here it seem) +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle + +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle/Initialize() + . = ..() + new /obj/item/storage/box/guncase/m41aMK1(src) + +//4 MK1 (with AP) cabinet(using guncase because it fit well here it seem) +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap + +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap/Initialize() + . = ..() + new /obj/item/storage/box/guncase/m41aMK1AP(src) + +// UPPER MEDBAY ARMORY + +//1 shotgun armory closet 2 guns and 4 mags +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun + +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun/Initialize() + . = ..() + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/weapon/gun/shotgun/combat(src) + new /obj/item/ammo_magazine/shotgun/slugs(src) + new /obj/item/ammo_magazine/shotgun/slugs(src) + new /obj/item/ammo_magazine/shotgun/buckshot(src) + new /obj/item/ammo_magazine/shotgun/buckshot(src) + +// 2 pistol amory closet maybe to replace with full pistol belt... +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol + +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol/Initialize() + . = ..() + new /obj/item/storage/belt/gun/m4a3/full(src) + new /obj/item/storage/belt/gun/m4a3/full(src) + new /obj/item/storage/belt/gun/m4a3/full(src) + new /obj/item/storage/belt/gun/m4a3/full(src) + new /obj/item/ammo_box/magazine/m4a3(src) + +// 2 M39 cabinet are in medical armory (4 M39 and 12 mags) +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun + +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun/Initialize() + . = ..() + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/weapon/gun/smg/m39(src) + new /obj/item/ammo_box/magazine/m39(src) + +// UPPER ENGI ARMORY +// same as medical + +// REQ ARMORY +// same as medical + +// Small office in hangar armory same as brig armory.... +// same as brig armory diff --git a/code/game/objects/structures/crates_lockers/closets/secure/kitchen.dm b/code/game/objects/structures/crates_lockers/closets/secure/kitchen.dm new file mode 100644 index 000000000000..d8b0c984d4b1 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/kitchen.dm @@ -0,0 +1,143 @@ +//standart fridge + +/obj/structure/closet/secure_closet/fridge + name = "Refrigerator" + icon = 'icons/obj/structures/machinery/kitchen.dmi' + icon_state = "fridge1" + icon_closed = "fridge" + icon_locked = "fridge1" + icon_opened = "fridgeopen" + icon_broken = "fridgebroken" + icon_off = "fridge1" + storage_capacity = 60 //give extra storage capacity so that everything can fit. + +/obj/structure/closet/secure_closet/fridge/update_icon() + if(broken) + icon_state = icon_broken + else + if(!opened) + if(locked) + icon_state = icon_locked + else + icon_state = icon_closed + else + icon_state = icon_opened + +// for almayer. + +// Kitchen preparation room small quantity out of boxes... + +//standart organic storage. + +/obj/structure/closet/secure_closet/fridge/organic + name = "Organic" + +/obj/structure/closet/secure_closet/fridge/organic/Initialize() + . = ..() + for(var/i in 1 to 2) + new /obj/item/reagent_container/food/snacks/grown/apple(src) + new /obj/item/reagent_container/food/snacks/grown/cabbage(src) + new /obj/item/reagent_container/food/snacks/grown/carrot(src) + new /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle(src) + new /obj/item/reagent_container/food/snacks/grown/chili(src) + new /obj/item/reagent_container/food/snacks/grown/corn(src) + new /obj/item/reagent_container/food/snacks/grown/eggplant(src) + new /obj/item/reagent_container/food/snacks/grown/potato(src) + new /obj/item/reagent_container/food/snacks/grown/tomato(src) + new /obj/item/reagent_container/food/snacks/grown/whitebeet(src) + new /obj/item/reagent_container/food/snacks/grown/cherries(src) + new /obj/item/reagent_container/food/snacks/grown/lime(src) + new /obj/item/reagent_container/food/snacks/grown/lemon(src) + new /obj/item/reagent_container/food/snacks/grown/orange(src) + new /obj/item/reagent_container/food/snacks/grown/banana(src) + +//DRy + +/obj/structure/closet/secure_closet/fridge/dry + name = "dry" + +/obj/structure/closet/secure_closet/fridge/dry/Initialize() + . = ..() + for(var/i in 1 to 6) + new /obj/item/reagent_container/food/snacks/flour(src) + for(var/i in 1 to 2) + new /obj/item/reagent_container/food/condiment/sugar(src) + +//grocery + +/obj/structure/closet/secure_closet/fridge/groceries + name = "Groceries" + +/obj/structure/closet/secure_closet/fridge/groceries/Initialize() + . = ..() + for(var/i in 1 to 2) + new /obj/item/reagent_container/food/drinks/milk(src) + new /obj/item/reagent_container/food/drinks/soymilk(src) + new /obj/item/storage/fancy/egg_box(src) + new /obj/item/reagent_container/food/condiment/enzyme(src) + +// Kitchen Reserve big quantity stored in boxes + +//meat surplus +/obj/structure/closet/secure_closet/fridge/meat/stock + name = "meat" + +/obj/structure/closet/secure_closet/fridge/meat/stock/Initialize() + . = ..() + for(var/i in 1 to 2) + new /obj/item/storage/box/meat(src) + +//fish surplus +/obj/structure/closet/secure_closet/fridge/fish/stock + name = "fish" + +/obj/structure/closet/secure_closet/fridge/fish/stock/Initialize() + . = ..() + for(var/i in 1 to 2) + new /obj/item/storage/box/fish(src) + +//groceries to hold milk in bulk +/obj/structure/closet/secure_closet/fridge/groceries/stock + name = "Groceries" + +/obj/structure/closet/secure_closet/fridge/groceries/stock/Initialize() + . = ..() + for(var/i in 1 to 2) + new /obj/item/storage/box/milk(src) + new /obj/item/storage/box/soymilk(src) + for(var/i in 1 to 7) + new /obj/item/storage/fancy/egg_box(src) + new /obj/item/storage/box/enzyme(src) + +//dry storage for dry food only... not a fridge +/obj/structure/closet/secure_closet/fridge/dry/stock + name = "dry" + +/obj/structure/closet/secure_closet/fridge/dry/stock/Initialize() + . = ..() + for(var/i in 1 to 4) + new /obj/item/storage/box/flour(src) + new /obj/item/storage/box/sugar(src) + +// organic storage in bulk + +/obj/structure/closet/secure_closet/fridge/organic/stock + name = "Organic" + +/obj/structure/closet/secure_closet/fridge/organic/stock/Initialize() + . = ..() + new /obj/item/storage/box/apple(src) + new /obj/item/storage/box/banana(src) + new /obj/item/storage/box/chanterelle(src) + new /obj/item/storage/box/cherries(src) + new /obj/item/storage/box/chili(src) + new /obj/item/storage/box/cabbage(src) + new /obj/item/storage/box/carrot(src) + new /obj/item/storage/box/corn(src) + new /obj/item/storage/box/eggplant(src) + new /obj/item/storage/box/lemon(src) + new /obj/item/storage/box/lime(src) + new /obj/item/storage/box/orange(src) + new /obj/item/storage/box/potato(src) + new /obj/item/storage/box/tomato(src) + new /obj/item/storage/box/whitebeet(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d6b4a35b04f7..3206da86b197 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -78,7 +78,7 @@ set src in oview(1) // One square distance set category = "Object" set name = "Reset Lock" - if(!usr.canmove || usr.stat || usr.is_mob_restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + if(usr.is_mob_incapacitated()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain return if(ishuman(usr)) src.add_fingerprint(usr) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index e290a23a61e9..ba974a8e722a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -30,6 +30,7 @@ return 0 /obj/structure/closet/secure_closet/emp_act(severity) + . = ..() for(var/obj/O in src) O.emp_act(severity) if(!broken) @@ -42,7 +43,6 @@ else src.req_access = list() src.req_access += pick(get_access(ACCESS_LIST_MARINE_MAIN)) - ..() /obj/structure/closet/secure_closet/proc/togglelock(mob/living/user) if(src.opened) @@ -121,7 +121,7 @@ set category = "Object" set name = "Toggle Lock" - if(!usr.canmove || usr.stat || usr.is_mob_restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + if(usr.is_mob_incapacitated()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain return if(ishuman(usr)) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 9557013268bf..c668f299db73 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -196,6 +196,59 @@ locked = TRUE var/id = null +/obj/structure/closet/secure_closet/brig/prisoner + +/obj/structure/closet/secure_closet/brig/prisoner/Initialize() + . = ..() + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/device/radio/headset(src) + +/obj/structure/closet/secure_closet/brig/prison_uni + name = "Spare Prison Uniforms" + req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_CIVILIAN_BRIG) + anchored = TRUE + locked = TRUE + + +/obj/structure/closet/secure_closet/brig/prison_uni/Initialize() + . = ..() + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/shoes/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + new /obj/item/device/radio/headset(src) + +/obj/structure/closet/secure_closet/brig/restraints + name = "Spare Restraints" + req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_CIVILIAN_BRIG) + anchored = TRUE + locked = TRUE + + +/obj/structure/closet/secure_closet/brig/restraints/Initialize() + . = ..() + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + new /obj/item/clothing/glasses/sunglasses/blindfold(src) + /obj/structure/closet/secure_closet/brig/Initialize() . = ..() new /obj/item/clothing/under/color/orange(src) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 7848aaba4897..b000fd5733a2 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -51,8 +51,6 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/mask/gas(src) new /obj/item/storage/firstaid/o2(src) - if ("nothing") - // doot // teehee - Ah, tg coders... if ("delete") diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 7c9faaf1a027..119615ab7aed 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -12,6 +12,19 @@ throwpass = 1 //prevents moving crates by hurling things at them store_mobs = FALSE var/rigged = 0 + /// Types this crate can be made into + var/list/crate_customizing_types = list( + "Plain" = /obj/structure/closet/crate, + "Weapons" = /obj/structure/closet/crate/weapon, + "Supply" = /obj/structure/closet/crate/supply, + "Ammo" = /obj/structure/closet/crate/ammo, + "Construction" = /obj/structure/closet/crate/construction, + "Explosives" = /obj/structure/closet/crate/explosives, + "Alpha" = /obj/structure/closet/crate/alpha, + "Bravo" = /obj/structure/closet/crate/bravo, + "Charlie" = /obj/structure/closet/crate/charlie, + "Delta" = /obj/structure/closet/crate/delta, + ) /obj/structure/closet/crate/initialize_pass_flags(datum/pass_flags_container/PF) ..() @@ -130,8 +143,6 @@ contents_explosion(severity) deconstruct(FALSE) return - else - return /obj/structure/closet/crate/alpha name = "alpha squad crate" @@ -209,6 +220,7 @@ icon_state = "closed_freezer" icon_opened = "open_freezer" icon_closed = "closed_freezer" + crate_customizing_types = null var/target_temp = T0C - 40 var/cooling_power = 40 diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 2f2877ba7539..e9e3a9a7b5d6 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -28,9 +28,8 @@ material_sheet = new parts_type(current_turf, 2) // Move the objects back to the turf, above the crate material - for(var/atom/movable/moving_atom in contents) - var/atom/movable/current_atom = contents[1] - current_atom.forceMove(current_turf) + for(var/atom/movable/moving_atom as anything in contents) + moving_atom.forceMove(current_turf) deconstruct(TRUE) @@ -252,8 +251,80 @@ name = "blue barrel" desc = "A blue storage barrel." icon_state = "barrel_blue" + var/strap_overlay = "+straps" parts_type = /obj/item/stack/sheet/metal unpacking_sound = 'sound/effects/metalhit.ogg' + var/straps = FALSE + +/obj/structure/largecrate/random/barrel/true_random + name = "barrel" + desc = "A barrel." + icon_state = "barrel_recolorable" + desc_lore = "From the future." + var/cap_doodad_state = "" + var/center_doodad_state = "" + var/color_override = null + + +GLOBAL_LIST_EMPTY(rbarrel_cap_states) // Will be set up in generate_barrel_states +GLOBAL_LIST_INIT(rbarrel_center_states, generate_barrel_states()) +GLOBAL_LIST_INIT(rbarrel_color_list, list(COLOR_SILVER, + COLOR_FLOORTILE_GRAY, + COLOR_MAROON, + COLOR_SOFT_RED, + COLOR_LIGHT_GRAYISH_RED, + COLOR_VERY_SOFT_YELLOW, + COLOR_OLIVE, + COLOR_DARK_MODERATE_LIME_GREEN, + COLOR_TEAL, + COLOR_MODERATE_BLUE, + COLOR_PURPLE, + COLOR_STRONG_VIOLET, + COLOR_BEIGE, + COLOR_DARK_MODERATE_ORANGE, + COLOR_BROWN, + COLOR_DARK_BROWN)) + +/proc/generate_barrel_states() + var/list/rbarrel_center_states = list() + var/icon/icon = new('icons/obj/structures/crates.dmi') + var/list/icon_list = icon_states(icon) + for(var/state in icon_list) + if(findtext(state,"+cap")) + GLOB.rbarrel_cap_states.Add(state) + if(findtext(state,"+center")) + rbarrel_center_states.Add(state) + // We are returning rbarrel_center_states (rather than setting GLOB) because we are called by the global initializer to set it + return rbarrel_center_states + +/obj/structure/largecrate/random/barrel/true_random/Initialize() + . = ..() + + var/image/center_coloring = image(icon, src,"+_center") + + if(!color_override) + center_coloring.color = pick(GLOB.rbarrel_color_list) + + center_coloring.appearance_flags = RESET_COLOR|KEEP_APART + overlays += center_coloring + if(prob(25)) + cap_doodad_state = pick(GLOB.rbarrel_cap_states) + overlays += image(icon,src,cap_doodad_state) + if(prob(50)) + center_doodad_state = pick(GLOB.rbarrel_center_states) + overlays += image(icon,src,center_doodad_state) + +/obj/structure/largecrate/random/barrel/Initialize() + . = ..() + if(overlays) + overlays.Cut() + if(straps) + overlays += image(icon,icon_state = "+straps") + +/obj/structure/largecrate/random/barrel/unpack() + if(overlays) + overlays.Cut() + . = ..() /obj/structure/largecrate/random/barrel/blue name = "blue barrel" @@ -264,6 +335,7 @@ name = "red barrel" desc = "A red storage barrel." icon_state = "barrel_red" + straps = TRUE//the original sprite had straps, anyway, this is a harmless instance /obj/structure/largecrate/random/barrel/green name = "green barrel" diff --git a/code/game/objects/structures/crates_lockers/secure_crates.dm b/code/game/objects/structures/crates_lockers/secure_crates.dm index a308c4c0a21c..6b025a57c78b 100644 --- a/code/game/objects/structures/crates_lockers/secure_crates.dm +++ b/code/game/objects/structures/crates_lockers/secure_crates.dm @@ -4,6 +4,7 @@ icon_state = "secure_locked_basic" icon_opened = "secure_open_basic" icon_closed = "secure_locked_basic" + crate_customizing_types = null var/icon_locked = "secure_locked_basic" var/icon_unlocked = "secure_unlocked_basic" var/sparks = "securecratesparks" @@ -52,7 +53,7 @@ set category = "Object" set name = "Toggle Lock" - if(!usr.canmove || usr.stat || usr.is_mob_restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + if(usr.is_mob_incapacitated()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain return if(ishuman(usr)) @@ -86,6 +87,7 @@ ..() /obj/structure/closet/crate/secure/emp_act(severity) + . = ..() for(var/obj/O in src) O.emp_act(severity) if(!broken && !opened && prob(50/severity)) @@ -105,7 +107,6 @@ else src.req_access = list() src.req_access += pick(get_access(ACCESS_LIST_MARINE_MAIN)) - ..() //------------------------------------ diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 7b54f0447fae..e4ee4a1b662b 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -5,13 +5,15 @@ icon_state = "extinguisher" anchored = TRUE density = FALSE - var/obj/item/tool/extinguisher/has_extinguisher = new/obj/item/tool/extinguisher + var/obj/item/tool/extinguisher/has_extinguisher var/opened = 0 var/base_icon /obj/structure/extinguisher_cabinet/Initialize() . = ..() base_icon = initial(icon_state) + has_extinguisher = new /obj/item/tool/extinguisher() + has_extinguisher.forceMove(src) /obj/structure/extinguisher_cabinet/lifeboat name = "extinguisher cabinet" @@ -21,15 +23,15 @@ /obj/structure/extinguisher_cabinet/alt icon_state = "extinguisher_alt" -/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user) +/obj/structure/extinguisher_cabinet/attackby(obj/item/item, mob/user) if(isrobot(user)) return - if(istype(O, /obj/item/tool/extinguisher)) + if(istype(item, /obj/item/tool/extinguisher)) if(!has_extinguisher && opened) user.drop_held_item() - contents += O - has_extinguisher = O - to_chat(user, SPAN_NOTICE("You place [O] in [src].")) + item.forceMove(src) + has_extinguisher = item + to_chat(user, SPAN_NOTICE("You place [item] in [src].")) else opened = !opened else @@ -45,7 +47,7 @@ user.put_in_hands(has_extinguisher) to_chat(user, SPAN_NOTICE("You take [has_extinguisher] from [src].")) has_extinguisher = null - opened = 1 + opened = TRUE else opened = !opened update_icon() diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index b29c69e8af18..db24dfdfebdd 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -209,7 +209,7 @@ //This proc is used to update the icons of nearby windows. /obj/structure/fence/proc/update_nearby_icons() update_icon() - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/fence/W in get_step(src, direction)) W.update_icon() diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 9c1f46de50d5..0e4a20cf989a 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -72,7 +72,8 @@ PLANT_CUT_MACHETE = 3 = Needs at least a machete to be cut down addtimer(CALLBACK(src, PROC_REF(burn_up)), spread_time + 5 SECONDS) /obj/structure/flora/proc/spread_fire() - for(var/D in cardinal) //Spread fire + SIGNAL_HANDLER + for(var/D in GLOB.cardinals) //Spread fire var/turf/T = get_step(src.loc, D) if(T) for(var/obj/structure/flora/F in T) @@ -82,6 +83,7 @@ PLANT_CUT_MACHETE = 3 = Needs at least a machete to be cut down new /obj/flamer_fire(T, create_cause_data("wildfire")) /obj/structure/flora/proc/burn_up() + SIGNAL_HANDLER new /obj/effect/decal/cleanable/dirt(loc) if(center) new /obj/effect/decal/cleanable/dirt(loc) //Produces more ash at the center @@ -717,13 +719,13 @@ ICEY GRASS. IT LOOKS LIKE IT'S MADE OF ICE. //hatchets and shiet can clear away undergrowth if(I && (I.sharp >= IS_SHARP_ITEM_ACCURATE) && !stump) var/damage = rand(2,5) - if(istype(I,/obj/item/weapon/claymore/mercsword)) + if(istype(I,/obj/item/weapon/sword)) damage = rand(8,18) if(indestructable) //this bush marks the edge of the map, you can't destroy it to_chat(user, SPAN_DANGER("You flail away at the undergrowth, but it's too thick here.")) else - user.visible_message(SPAN_DANGER("[user] flails away at the [src] with [I]."),SPAN_DANGER("You flail away at the [src] with [I].")) + user.visible_message(SPAN_DANGER("[user] flails away at [src] with [I]."), SPAN_DANGER("You flail away at [src] with [I].")) playsound(src.loc, 'sound/effects/vegetation_hit.ogg', 25, 1) health -= damage if(health < 0) @@ -756,4 +758,3 @@ ICEY GRASS. IT LOOKS LIKE IT'S MADE OF ICE. desc = "Looks like some of that fruit might be edible." icon_tag = "plant" variations = 7 - diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index e719359ab439..6cd6a5cd0300 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -173,6 +173,14 @@ return do_reinforced_wall(W, user) if(STATE_DISPLACED) if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + var/turf/open/floor = loc + if(!floor.allow_construction) + to_chat(user, SPAN_WARNING("The girder must be secured on a proper surface!")) + return + var/obj/structure/tunnel/tunnel = locate(/obj/structure/tunnel) in loc + if(tunnel) + to_chat(user, SPAN_WARNING("The girder cannot be secured on a tunnel!")) + return playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) to_chat(user, SPAN_NOTICE("Now securing the girder...")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 0f864ee2f116..063f6a337290 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -166,7 +166,7 @@ if (ST.use(1)) var/obj/structure/window/WD = new wtype(loc) WD.set_constructed_window(dir_to_set) - to_chat(user, SPAN_NOTICE("You place the [WD] on [src].")) + to_chat(user, SPAN_NOTICE("You place [WD] on [src].")) return //window placing end diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index f2e6b172ad88..0fda8c5d9631 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -67,8 +67,8 @@ else //wtf make your ladders properly assholes icon_state = "ladder00" -/obj/structure/ladder/attack_hand(mob/user) - if(user.stat || get_dist(user, src) > 1 || user.blinded || user.lying || user.buckled || user.anchored) return +/obj/structure/ladder/attack_hand(mob/living/user) + if(user.stat || get_dist(user, src) > 1 || user.blinded || user.body_position == LYING_DOWN || user.buckled || user.anchored) return if(busy) to_chat(user, SPAN_WARNING("Someone else is currently using [src].")) return @@ -94,7 +94,7 @@ SPAN_NOTICE("You start climbing [ladder_dir_name] [src].")) busy = TRUE if(do_after(user, 20, INTERRUPT_INCAPACITATED|INTERRUPT_OUT_OF_RANGE|INTERRUPT_RESIST, BUSY_ICON_GENERIC, src, INTERRUPT_NONE)) - if(!user.is_mob_incapacitated() && get_dist(user, src) <= 1 && !user.blinded && !user.lying && !user.buckled && !user.anchored) + if(!user.is_mob_incapacitated() && get_dist(user, src) <= 1 && !user.blinded && user.body_position != LYING_DOWN && !user.buckled && !user.anchored) visible_message(SPAN_NOTICE("[user] climbs [ladder_dir_name] [src].")) //Hack to give a visible message to the people here without duplicating user message user.visible_message(SPAN_NOTICE("[user] climbs [ladder_dir_name] [src]."), SPAN_NOTICE("You climb [ladder_dir_name] [src].")) @@ -103,9 +103,9 @@ busy = FALSE add_fingerprint(user) -/obj/structure/ladder/check_eye(mob/user) +/obj/structure/ladder/check_eye(mob/living/user) //Are we capable of looking? - if(user.is_mob_incapacitated() || get_dist(user, src) > 1 || user.blinded || user.lying || !user.client) + if(user.is_mob_incapacitated() || get_dist(user, src) > 1 || user.blinded || user.body_position == LYING_DOWN || !user.client) user.unset_interaction() //Are ladder cameras ok? @@ -140,7 +140,7 @@ //Peeking up/down /obj/structure/ladder/MouseDrop(over_object, src_location, over_location) if((over_object == usr && (in_range(src, usr)))) - if(islarva(usr) || isobserver(usr) || usr.is_mob_incapacitated() || usr.blinded || usr.lying) + if(islarva(usr) || isobserver(usr) || usr.is_mob_incapacitated() || usr.blinded) to_chat(usr, "You can't do that in your current state.") return if(is_watching) @@ -262,11 +262,8 @@ /obj/structure/ladder/fragile_almayer/Initialize() . = ..() - GLOB.hijack_bustable_ladders += src - -/obj/structure/ladder/fragile_almayer/Destroy() - GLOB.hijack_bustable_ladders -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) /obj/structure/ladder/fragile_almayer/deconstruct() new /obj/structure/prop/broken_ladder(loc) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 38201e052c50..dd427adfabb9 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -19,14 +19,14 @@ icon = 'icons/obj/structures/props/smoothlattice.dmi' icon_state = "latticeblank" updateOverlays() - for (var/dir in cardinal) + for (var/dir in GLOB.cardinals) var/obj/structure/lattice/L if(locate(/obj/structure/lattice, get_step(src, dir))) L = locate(/obj/structure/lattice, get_step(src, dir)) L.updateOverlays() /obj/structure/lattice/Destroy() - for (var/dir in cardinal) + for (var/dir in GLOB.cardinals) var/obj/structure/lattice/L if(locate(/obj/structure/lattice, get_step(src, dir))) L = locate(/obj/structure/lattice, get_step(src, dir)) @@ -43,8 +43,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) @@ -75,7 +73,7 @@ var/dir_sum = 0 - for (var/direction in cardinal) + for (var/direction in GLOB.cardinals) if(locate(/obj/structure/lattice, get_step(src, direction))) dir_sum += direction else diff --git a/code/game/objects/structures/misc.dm b/code/game/objects/structures/misc.dm index d290925d4cdf..89bc3da6ab23 100644 --- a/code/game/objects/structures/misc.dm +++ b/code/game/objects/structures/misc.dm @@ -189,3 +189,126 @@ /obj/structure/computer3frame/laptop name = "laptop frame" + +// Dartboard +#define DOUBLE_BAND 2 +#define TRIPLE_BAND 3 + +/obj/structure/dartboard + name = "dartboard" + desc = "A dartboard, loosely secured." + icon = 'icons/obj/structures/props/props.dmi' + icon_state = "dart_board" + density = TRUE + unslashable = TRUE + +/obj/structure/dartboard/get_examine_text() + . = ..() + if(length(contents)) + var/is_are = "is" + if(length(contents) != 1) + is_are = "are" + + . += SPAN_NOTICE("There [is_are] [length(contents)] item\s embedded into [src].") + +/obj/structure/dartboard/initialize_pass_flags(datum/pass_flags_container/pass_flags) + ..() + if(pass_flags) + pass_flags.flags_can_pass_all = PASS_MOB_IS + +/obj/structure/dartboard/get_projectile_hit_boolean(obj/projectile/projectile) + . = ..() + visible_message(SPAN_DANGER("[projectile] hits [src], collapsing it!")) + collapse() + +/obj/structure/dartboard/proc/flush_contents() + for(var/atom/movable/embedded_items as anything in contents) + embedded_items.forceMove(loc) + +/obj/structure/dartboard/proc/collapse() + playsound(src, 'sound/effects/thud1.ogg', 50) + new /obj/item/dartboard/(loc) + qdel(src) + +/obj/structure/dartboard/attack_hand(mob/user) + if(length(contents)) + user.visible_message(SPAN_NOTICE("[user] starts recovering items from [src]..."), SPAN_NOTICE("You start recovering items from [src]...")) + if(do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, user, INTERRUPT_MOVED, BUSY_ICON_GENERIC)) + flush_contents() + else + to_chat(user, SPAN_WARNING("[src] has nothing embedded!")) + +/obj/structure/dartboard/Destroy() + flush_contents() + . = ..() + +/obj/structure/dartboard/hitby(obj/item/thrown_item) + if(thrown_item.sharp != IS_SHARP_ITEM_ACCURATE && !istype(thrown_item, /obj/item/weapon/dart)) + visible_message(SPAN_DANGER("[thrown_item] hits [src], collapsing it!")) + collapse() + return + + contents += thrown_item + playsound(src, 'sound/weapons/tablehit1.ogg', 50) + var/score = rand(1,21) + if(score == 21) + visible_message(SPAN_DANGER("[thrown_item] embeds into [src], striking the bullseye! 50 points.")) + return + + var/band = "single" + var/band_number = rand(1,3) + score *= band_number + switch(band_number) + if(DOUBLE_BAND) + band = "double" + if(TRIPLE_BAND) + band = "triple" + visible_message(SPAN_DANGER("[thrown_item] embeds into [src], striking [band] for [score] point\s.")) + +/obj/structure/dartboard/attackby(obj/item/item, mob/user) + user.visible_message(SPAN_DANGER("[user] hits [src] with [item], collapsing it!"), SPAN_DANGER("You collapse [src] with [item]!")) + collapse() + +/obj/structure/dartboard/MouseDrop(over_object, src_location, over_location) + . = ..() + if(over_object != usr || !Adjacent(usr)) + return + + if(!ishuman(usr)) + return + + visible_message(SPAN_NOTICE("[usr] unsecures [src].")) + var/obj/item/dartboard/unsecured_board = new(loc) + usr.put_in_hands(unsecured_board) + qdel(src) + +/obj/item/dartboard + name = "dartboard" + desc = "A dartboard for darts." + icon = 'icons/obj/structures/props/props.dmi' + icon_state = "dart_board" + +/obj/item/dartboard/attack_self(mob/user) + . = ..() + + var/turf_ahead = get_step(user, user.dir) + if(!istype(turf_ahead, /turf/closed)) + to_chat(user, SPAN_WARNING("[src] needs a wall to be secured to!")) + return + + var/obj/structure/dartboard/secured_board = new(user.loc) + switch(user.dir) + if(NORTH) + secured_board.pixel_y = 32 + if(EAST) + secured_board.pixel_x = 32 + if(SOUTH) + secured_board.pixel_y = -32 + if(WEST) + secured_board.pixel_x = -32 + + to_chat(user, SPAN_NOTICE("You secure [secured_board] to [turf_ahead].")) + qdel(src) + +#undef DOUBLE_BAND +#undef TRIPLE_BAND diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index dc8cf08d13f1..f1717f5bf0f5 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -113,13 +113,12 @@ else . = ..() -/obj/structure/morgue/relaymove(mob/user) +/obj/structure/morgue/relaymove(mob/living/user) if(user.is_mob_incapacitated()) return if(exit_stun) - user.stunned = max(user.stunned, exit_stun) //Action delay when going out of a closet (or morgue in this case) - user.update_canmove() //Force the delay to go in action immediately - if(!user.lying) + user.apply_effect(exit_stun, STUN) + if(user.mobility_flags & MOBILITY_MOVE) user.visible_message(SPAN_WARNING("[user] suddenly gets out of [src]!"), SPAN_WARNING("You get out of [src] and get your bearings!")) toggle_morgue(user) diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm index 9eea571961f7..e14eee13b1dd 100644 --- a/code/game/objects/structures/props.dm +++ b/code/game/objects/structures/props.dm @@ -805,13 +805,15 @@ /obj/structure/prop/brazier/campfire/attackby(obj/item/attacking_item, mob/user) if(!istype(attacking_item, /obj/item/stack/sheet/wood)) - to_chat(SPAN_NOTICE("You cannot fuel [src] with [attacking_item].")) + to_chat(user, SPAN_NOTICE("You cannot fuel [src] with [attacking_item].")) return var/obj/item/stack/sheet/wood/fuel = attacking_item if(remaining_fuel >= initial(remaining_fuel)) to_chat(user, SPAN_NOTICE("You cannot fuel [src] further.")) + return if(!fuel.use(1)) - to_chat(SPAN_NOTICE("You do not have enough [attacking_item] to fuel [src].")) + to_chat(user, SPAN_NOTICE("You do not have enough [attacking_item] to fuel [src].")) + return visible_message(SPAN_NOTICE("[user] fuels [src] with [fuel].")) remaining_fuel++ @@ -1177,7 +1179,7 @@ new_info_tag.fallen_names = list(dogtag_name) new_info_tag.fallen_assgns = list(dogtag_assign) new_info_tag.fallen_blood_types = list(dogtag_blood) - fallen_list_cross -= dogtag_name + GLOB.fallen_list_cross -= dogtag_name return ..() /obj/structure/prop/wooden_cross/attackby(obj/item/W, mob/living/user) @@ -1185,18 +1187,18 @@ var/obj/item/dogtag/dog = W if(!tagged) tagged = TRUE - user.visible_message(SPAN_NOTICE("[user] drapes the [W] around the [src].")) + user.visible_message(SPAN_NOTICE("[user] drapes [W] around [src].")) dogtag_name = popleft(dog.fallen_names) dogtag_assign = popleft(dog.fallen_assgns) dogtag_blood = popleft(dog.fallen_blood_types) - fallen_list_cross += dogtag_name + GLOB.fallen_list_cross += dogtag_name update_icon() if(!length(dog.fallen_names)) qdel(dog) else return else - to_chat(user, SPAN_WARNING("There's already a dog tag on the [src]!")) + to_chat(user, SPAN_WARNING("There's already a dog tag on [src]!")) balloon_alert(user, "already a tag here!") if(istype(W, /obj/item/clothing/head)) @@ -1370,4 +1372,3 @@ if(initial(emote.sound)) playsound(loc, initial(emote.sound), 50, FALSE) return TRUE - diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm index 7dc6d883a2d5..6471dfa21520 100644 --- a/code/game/objects/structures/reagent_dispensers.dm +++ b/code/game/objects/structures/reagent_dispensers.dm @@ -119,8 +119,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/reagent_dispensers/attack_hand() if(!reagents || reagents.locked) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 87e713ad0af8..011fa2a17f48 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -222,3 +222,28 @@ FLOOR SAFES /obj/structure/safe/floor/hide(intact) invisibility = intact ? 101 : 0 + +//almayer + +/obj/structure/safe/co_office + +/obj/structure/safe/co_office/Initialize() + . = ..() + new /obj/item/clothing/glasses/monocle(src) + new /obj/item/book/codebook(src) + new /obj/item/coin/silver/falcon(src) + new /obj/item/weapon/telebaton(src) + new /obj/item/moneybag(src) + +/obj/structure/safe/cl_office + +/obj/structure/safe/cl_office/Initialize() + . = ..() + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/weapon/gun/pistol/es4(src) + new /obj/item/ammo_magazine/pistol/es4(src) + new /obj/item/ammo_magazine/pistol/es4(src) + new /obj/item/clothing/accessory/storage/holster(src) + new /obj/item/spacecash/c1000/counterfeit(src) + new /obj/item/spacecash/c1000/counterfeit(src) + new /obj/item/coin/platinum(src) diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index fbd6920875ad..adabf0c54141 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -17,6 +17,7 @@ S.desc = desc S.icon_state = icon_state S.sign_state = icon_state + S.icon = icon deconstruct(FALSE) else ..() @@ -45,6 +46,7 @@ S.name = name S.desc = desc S.icon_state = sign_state + S.icon = icon to_chat(user, "You fasten \the [S] with your [tool].") qdel(src) else ..() @@ -568,7 +570,7 @@ /obj/structure/sign/ROsign name = "\improper USCM Requisitions Office Guidelines" - desc = " 1. You are not entitled to service or equipment. Attachments are a privilege, not a right.\n 2. You must be fully dressed to obtain service. Cyrosleep underwear is non-permissible.\n 3. The Requsitions Officer has the final say and the right to decline service. Only the Acting Commanding Officer may override their decisions.\n 4. Please treat your Requsitions staff with respect. They work hard." + desc = " 1. You are not entitled to service or equipment. Attachments are a privilege, not a right.\n 2. You must be fully dressed to obtain service. Cryosleep underwear is non-permissible.\n 3. The Quartermaster has the final say and the right to decline service. Only the Acting Commanding Officer may override their decisions.\n 4. Please treat your Requsitions staff with respect. They work hard." icon_state = "roplaque" /obj/structure/sign/prop1 @@ -592,9 +594,3 @@ desc = "An unbelievably creepy cat clock that surveys the room with every tick and every tock." icon = 'icons/obj/structures/props/catclock.dmi' icon_state = "cat_clock_motion" - -/obj/structure/sign/dartboard - name = "dartboard" - desc = "A dartboard, secured with a nail and a string. It has bullet holes and knife stab marks over and around it." - icon = 'icons/obj/structures/props/props.dmi' - icon_state = "dart_board" diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 7979994915f4..ee2c2bcee882 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -13,7 +13,7 @@ icon_state = "bed" icon = 'icons/obj/objects.dmi' can_buckle = TRUE - buckle_lying = TRUE + buckle_lying = 90 throwpass = TRUE debris = list(/obj/item/stack/sheet/metal) var/buildstacktype = /obj/item/stack/sheet/metal @@ -310,7 +310,7 @@ ////////////////////////////////////////////// //List of all activated medevac stretchers -var/global/list/activated_medevac_stretchers = list() +GLOBAL_LIST_EMPTY(activated_medevac_stretchers) /obj/structure/bed/medevac_stretcher name = "medevac stretcher" @@ -322,13 +322,14 @@ var/global/list/activated_medevac_stretchers = list() base_bed_icon = "stretcher" accepts_bodybag = TRUE var/stretcher_activated + var/view_range = 5 var/obj/structure/dropship_equipment/medevac_system/linked_medevac surgery_duration_multiplier = SURGERY_SURFACE_MULT_AWFUL //On the one hand, it's a big stretcher. On the other hand, you have a big sheet covering the patient and those damned Fulton hookups everywhere. /obj/structure/bed/medevac_stretcher/Destroy() if(stretcher_activated) stretcher_activated = FALSE - activated_medevac_stretchers -= src + GLOB.activated_medevac_stretchers -= src if(linked_medevac) linked_medevac.linked_stretcher = null linked_medevac = null @@ -352,6 +353,14 @@ var/global/list/activated_medevac_stretchers = list() toggle_medevac_beacon(usr) +// Used to pretend to be a camera +/obj/structure/bed/medevac_stretcher/proc/can_use() + return TRUE + +// Used to pretend to be a camera +/obj/structure/bed/medevac_stretcher/proc/isXRay() + return FALSE + /obj/structure/bed/medevac_stretcher/proc/toggle_medevac_beacon(mob/user) if(!ishuman(user)) return @@ -366,7 +375,7 @@ var/global/list/activated_medevac_stretchers = list() if(stretcher_activated) stretcher_activated = FALSE - activated_medevac_stretchers -= src + GLOB.activated_medevac_stretchers -= src if(linked_medevac) linked_medevac.linked_stretcher = null linked_medevac = null @@ -384,7 +393,7 @@ var/global/list/activated_medevac_stretchers = list() return stretcher_activated = TRUE - activated_medevac_stretchers += src + GLOB.activated_medevac_stretchers += src to_chat(user, SPAN_NOTICE("You activate [src]'s beacon.")) update_icon() @@ -404,7 +413,17 @@ var/global/list/activated_medevac_stretchers = list() //bedroll /obj/structure/bed/bedroll - name = "bedroll" - desc = "bedroll" + name = "unfolded bedroll" + desc = "Perfect for those long missions, when there's nowhere else to sleep, you remembered to bring at least one thing of comfort." + icon = 'icons/monkey_icos.dmi' icon_state = "bedroll_o" + buckling_y = 0 + foldabletype = /obj/item/roller/bedroll + accepts_bodybag = FALSE + +/obj/item/roller/bedroll + name = "folded bedroll" + desc = "A standard issue USCMC bedroll, They've been in service for as long as you can remember. The tag on it states to unfold it before rest, but who needs rules anyway, right?" icon = 'icons/monkey_icos.dmi' + icon_state = "bedroll" + rollertype = /obj/structure/bed/bedroll diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 4186ae8608a9..e523906f4cfe 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -6,7 +6,7 @@ name = "chair" desc = "A rectangular metallic frame sitting on four legs with a back panel. Designed to fit the sitting position, more or less comfortably." icon_state = "chair" - buckle_lying = FALSE + buckle_lying = 0 var/propelled = FALSE //Check for fire-extinguisher-driven chairs var/can_rotate = TRUE var/picked_up_item = /obj/item/weapon/twohanded/folded_metal_chair diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 2b42e641f0cf..986ae99739aa 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -20,7 +20,7 @@ if(world.time <= l_move_time + move_delay) return // Redundant check? - if(user.is_mob_incapacitated() || user.lying) + if(user.is_mob_incapacitated()) return if(propelled) //can't manually move it mid-propelling. diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm index 7a4274c2c16e..63681d948620 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm @@ -10,7 +10,7 @@ health = 100 layer = ABOVE_MOB_LAYER plane = GAME_PLANE - buckle_lying = FALSE + buckle_lying = 0 var/on_fire = 0 var/resisting = 0 var/resisting_ready = 0 @@ -53,7 +53,7 @@ current_mob.pixel_y = buckling_y["[dir]"] current_mob.pixel_x = buckling_x["[dir]"] current_mob.dir = turn(dir, 180) - current_mob.density = FALSE + ADD_TRAIT(current_mob, TRAIT_UNDENSE, XENO_NEST_TRAIT) pixel_y = buckling_y["[dir]"] pixel_x = buckling_x["[dir]"] if(dir == SOUTH) @@ -67,7 +67,7 @@ current_mob.pixel_y = initial(buckled_mob.pixel_y) current_mob.pixel_x = initial(buckled_mob.pixel_x) - current_mob.density = !(current_mob.lying || current_mob.stat == DEAD) + REMOVE_TRAIT(current_mob, TRAIT_UNDENSE, XENO_NEST_TRAIT) if(dir == SOUTH) current_mob.layer = initial(current_mob.layer) if(!ishuman(current_mob)) @@ -98,7 +98,7 @@ if(iscarbon(user)) var/mob/living/carbon/carbon = user if(HIVE_ALLIED_TO_HIVE(carbon.hivenumber, hivenumber)) - to_chat(user, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(user, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return if(buckled_mob) if(iswelder(W)) @@ -145,18 +145,18 @@ if(!(buckled_mob && buckled_mob.buckled == src && buckled_mob != user)) return - if(user.stat || user.lying || user.is_mob_restrained()) + if(user.body_position == LYING_DOWN || user.is_mob_incapacitated()) return if(isxeno(user)) var/mob/living/carbon/xenomorph/X = user if(!X.hive.unnesting_allowed && !isxeno_builder(X) && HIVE_ALLIED_TO_HIVE(X.hivenumber, hivenumber)) - to_chat(X, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(X, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return else if(iscarbon(user)) var/mob/living/carbon/H = user if(HIVE_ALLIED_TO_HIVE(H.hivenumber, hivenumber)) - to_chat(H, SPAN_XENOWARNING("You shouldn't interfere with the nest, leave that to the drones.")) + to_chat(H, SPAN_XENOWARNING("We shouldn't interfere with the nest, leave that to the drones.")) return if(ishuman(buckled_mob) && isxeno(user)) @@ -165,9 +165,9 @@ to_chat(user, SPAN_WARNING("[H] was nested recently. Wait a bit.")) return if(H.stat != DEAD) - if(alert(user, "[H] is still alive and kicking! Are you sure you want to remove them from the nest?", "Confirmation", "Yes", "No") != "Yes") + if(alert(user, "[H] is still alive and kicking! Are we sure we want to remove them from the nest?", "Confirmation", "Yes", "No") != "Yes") return - if(!buckled_mob || !user.Adjacent(H) || user.stat || user.lying || user.is_mob_restrained()) + if(!buckled_mob || !user.Adjacent(H) || user.is_mob_incapacitated(FALSE)) return if(ishuman(user)) @@ -191,11 +191,11 @@ /obj/structure/bed/nest/buckle_mob(mob/mob, mob/user) . = FALSE - if(!isliving(mob) || islarva(user) || (get_dist(src, user) > 1) || user.is_mob_restrained() || user.stat || user.lying || mob.buckled || !iscarbon(user)) + if(!isliving(mob) || islarva(user) || (get_dist(src, user) > 1) || user.is_mob_incapacitated(FALSE)) return if(isxeno(mob)) - to_chat(user, SPAN_WARNING("You can't buckle your sisters.")) + to_chat(user, SPAN_WARNING("We can't buckle our sisters.")) return if(buckled_mob) @@ -207,7 +207,7 @@ return if(!isxeno(user) || issynth(mob)) - to_chat(user, SPAN_WARNING("Gross! You're not touching that stuff.")) + to_chat(user, SPAN_WARNING("Gross! We're not touching that stuff.")) return if(isyautja(mob) && !force_nest) @@ -220,7 +220,7 @@ var/mob/living/carbon/human/human = null if(ishuman(mob)) human = mob - if(!human.lying) //Don't ask me why is has to be + if(human.body_position != LYING_DOWN) //Don't ask me why is has to be to_chat(user, SPAN_WARNING("[mob] is resisting, ground them.")) return @@ -242,7 +242,7 @@ return if(human) //Improperly stunned Marines won't be nested - if(!human.lying) //Don't ask me why is has to be + if(human.body_position != LYING_DOWN) //Don't ask me why is has to be to_chat(user, SPAN_WARNING("[mob] is resisting, ground them.")) return @@ -321,7 +321,7 @@ if(M.a_intent == INTENT_HARM && !buckled_mob) //can't slash nest with an occupant. M.animation_attack_on(src) M.visible_message(SPAN_DANGER("\The [M] claws at \the [src]!"), \ - SPAN_DANGER("You claw at \the [src].")) + SPAN_DANGER("We claw at \the [src].")) playsound(loc, "alien_resin_break", 25) health -= (M.melee_damage_upper + 25) //Beef up the damage a bit healthcheck() diff --git a/code/game/objects/structures/surface.dm b/code/game/objects/structures/surface.dm index 3a2dbd3e8d5c..13a81af2dc3d 100644 --- a/code/game/objects/structures/surface.dm +++ b/code/game/objects/structures/surface.dm @@ -1,160 +1,20 @@ //Surface structures are structures that can have items placed on them /obj/structure/surface health = 100 - var/list/update_types = list( - /obj/item/reagent_container/glass, - /obj/item/storage, - /obj/item/reagent_container/food/snacks - ) - //add items there that behave like structures for whatever dumb reason - var/list/blacklisted_item_types = list( - /obj/item/device/radio/intercom, - /obj/item/device/sentry_computer - ) -/obj/structure/surface/Initialize() - . = ..() - return INITIALIZE_HINT_LATELOAD - -/obj/structure/surface/LateInitialize() - attach_all() - update_icon() - -/obj/structure/surface/Destroy() - detach_all() - . = ..() - -/obj/structure/surface/ex_act(severity, direction, datum/cause_data/cause_data) - health -= severity - if(health <= 0) - var/location = get_turf(src) - handle_debris(severity, direction) - detach_all() - for(var/obj/item/O in loc) - O.explosion_throw(severity, direction) - qdel(src) - if(prob(66)) - create_shrapnel(location, rand(1,4), direction, , /datum/ammo/bullet/shrapnel/light, cause_data) - return TRUE - -/obj/structure/surface/proc/attach_all() - for(var/obj/item/O in loc) - if(in_blacklist(O)) - continue - attach_item(O, FALSE) - draw_item_overlays() - -/obj/structure/surface/proc/in_blacklist(obj/item/O) - for(var/allowed_type in blacklisted_item_types) - if(istype(O, allowed_type)) - return TRUE - return FALSE - -/obj/structure/surface/proc/attach_item(obj/item/O, update = TRUE) - if(!O) +/obj/structure/surface/attackby(obj/item/attacking_item, mob/user, click_data) + if(!user.drop_inv_item_to_loc(attacking_item, loc)) return - if(O.luminosity) //it can't make light as an overlay - return - O.forceMove(src) - RegisterSignal(O, COMSIG_ATOM_DECORATED, PROC_REF(decorate_update)) - if(update) - draw_item_overlays() - -/obj/structure/surface/proc/detach_item(obj/item/O) - O.pixel_x = initial(O.pixel_x) - O.pixel_y = initial(O.pixel_y) - UnregisterSignal(O, COMSIG_ATOM_DECORATED) - draw_item_overlays() - return - -/obj/structure/surface/proc/decorate_update(obj/item/O) - SIGNAL_HANDLER - draw_item_overlays() -/obj/structure/surface/proc/detach_all() - overlays.Cut() - for(var/obj/item/O in contents) - UnregisterSignal(O, COMSIG_ATOM_DECORATED) - O.forceMove(loc) + auto_align(attacking_item, click_data) + user.next_move = world.time + 2 + return TRUE -/obj/structure/surface/proc/get_item(list/click_data) - var/i = LAZYLEN(contents) - if(!click_data) - return - if(i < 1) - return FALSE - for(i, i >= 1, i--)//starting from the end because that's where the topmost is - var/obj/item/O = contents[i] - var/bounds_x = text2num(click_data["icon-x"])-1 - O.pixel_x - var/bounds_y = text2num(click_data["icon-y"])-1 - O.pixel_y - if(bounds_x < 0 || bounds_y < 0) - continue - var/icon/I = icon(O.icon, O.icon_state) - var/p = I.GetPixel(bounds_x, bounds_y) - if(p) - return O - return FALSE - -/obj/structure/surface/proc/draw_item_overlays() - overlays.Cut() - for(var/obj/item/O in contents) - var/image/I = image(O.icon) - I.appearance = O.appearance - I.appearance_flags |= RESET_COLOR - I.overlays = O.overlays - LAZYADD(overlays, I) - -/obj/structure/surface/clicked(mob/user, list/mods) - if(mods["shift"] && !mods["middle"]) - var/obj/item/O = get_item(mods) - if(!O) - return ..() - if(O.can_examine(user)) - O.examine(user) - return TRUE - ..() - -/obj/structure/surface/proc/try_to_open_container(mob/user, mods) - if(!Adjacent(user)) - return - - if(ishuman(user) || isrobot(user)) - var/obj/item/O = get_item(mods) - if(O && isstorage(O)) - var/obj/item/storage/S = O - S.open(usr) - return TRUE - -/obj/structure/surface/attack_hand(mob/user, click_data) - . = ..() - if(click_data && click_data["alt"]) - return - var/obj/item/O = get_item(click_data) - if(!O) - return - O.attack_hand(user) - if(!LAZYISIN(contents, O))//in case attack_hand did not pick up the item - detach_item(O) - -/obj/structure/surface/attackby(obj/item/W, mob/user, click_data) - var/obj/item/O = get_item(click_data) - if(!O || click_data["ctrl"])//holding the ctrl key will force it to place the object - // Placing stuff on tables - if(user.drop_inv_item_to_loc(W, loc)) - auto_align(W, click_data) - user.next_move = world.time + 2 - return TRUE - else if(!O.attackby(W, user)) - W.afterattack(O, user, TRUE) - for(var/type in update_types) - if(istype(O, type)) - draw_item_overlays() - -/obj/structure/surface/proc/auto_align(obj/item/W, click_data) - if(!W.center_of_mass) // Clothing, material stacks, generally items with large sprites where exact placement would be unhandy. - W.pixel_x = rand(-W.randpixel, W.randpixel) - W.pixel_y = rand(-W.randpixel, W.randpixel) - W.pixel_z = 0 +/obj/structure/surface/proc/auto_align(obj/item/new_item, click_data) + if(!new_item.center_of_mass) // Clothing, material stacks, generally items with large sprites where exact placement would be unhandy. + new_item.pixel_x = rand(-new_item.randpixel, new_item.randpixel) + new_item.pixel_y = rand(-new_item.randpixel, new_item.randpixel) + new_item.pixel_z = 0 return if(!click_data) @@ -170,16 +30,8 @@ var/cell_x = Clamp(round(mouse_x/CELLSIZE), 0, CELLS-1) // Ranging from 0 to CELLS-1 var/cell_y = Clamp(round(mouse_y/CELLSIZE), 0, CELLS-1) - var/list/center = cached_key_number_decode(W.center_of_mass) - - W.pixel_x = (CELLSIZE * (cell_x + 0.5)) - center["x"] - W.pixel_y = (CELLSIZE * (cell_y + 0.5)) - center["y"] - W.pixel_z = 0 - - if(!(W.flags_item & NOTABLEMERGE)) - attach_item(W) + var/list/center = cached_key_number_decode(new_item.center_of_mass) -/obj/structure/surface/MouseDrop(atom/over) - . = ..() - if(over == usr && usr && usr.client && usr.client.lmb_last_mousedown_mods) - return try_to_open_container(usr, usr.client.lmb_last_mousedown_mods) + new_item.pixel_x = (CELLSIZE * (cell_x + 0.5)) - center["x"] + new_item.pixel_y = (CELLSIZE * (cell_y + 0.5)) - center["y"] + new_item.pixel_z = 0 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index db3ce98339a3..2ed19485acc9 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -143,7 +143,7 @@ dir_sum += 128 var/table_type = 0 //stand_alone table - if((dir_sum%16) in cardinal) + if((dir_sum%16) in GLOB.cardinals) table_type = 1 //endtable dir_sum %= 16 if((dir_sum%16) in list(3, 12)) @@ -274,19 +274,23 @@ var/mob/living/M = G.grabbed_thing if(user.a_intent == INTENT_HARM) if(user.grab_level > GRAB_AGGRESSIVE) - if (prob(15)) M.apply_effect(5, WEAKEN) + if (prob(15)) + M.KnockDown(5) + M.Stun(5) M.apply_damage(8, def_zone = "head") - user.visible_message(SPAN_DANGER("[user] slams [M]'s face against [src]!"), - SPAN_DANGER("You slam [M]'s face against [src]!")) + user.visible_message(SPAN_DANGER("[user] slams [M]'s face against [src]!"), + SPAN_DANGER("You slam [M]'s face against [src]!")) playsound(src.loc, 'sound/weapons/tablehit1.ogg', 25, 1) else to_chat(user, SPAN_WARNING("You need a better grip to do that!")) return else if(user.grab_level >= GRAB_AGGRESSIVE) M.forceMove(loc) - M.apply_effect(5, WEAKEN) - user.visible_message(SPAN_DANGER("[user] throws [M] on [src]."), - SPAN_DANGER("You throw [M] on [src].")) + M.KnockDown(5) + M.Stun(5) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) + user.visible_message(SPAN_DANGER("[user] throws [M] on [src], stunning them!"), + SPAN_DANGER("You throw [M] on [src], stunning them!")) return if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH) && !(user.a_intent == INTENT_HELP)) @@ -434,8 +438,6 @@ verbs -= /obj/structure/surface/table/verb/do_flip verbs += /obj/structure/surface/table/proc/do_put - detach_all() - var/list/targets = list(get_step(src, dir), get_step(src, turn(dir, 45)), get_step(src, turn(dir, -45))) for(var/atom/movable/movable_on_table in get_turf(src)) if(!movable_on_table.anchored) @@ -479,7 +481,6 @@ var/obj/structure/surface/table/T = locate() in get_step(src.loc,D) if(T && T.flipped && T.dir == src.dir) T.unflip() - attach_all() update_icon() update_adjacent() diff --git a/code/game/objects/structures/vulture_spotter.dm b/code/game/objects/structures/vulture_spotter.dm index 50505ab239b8..d90a1ec1615a 100644 --- a/code/game/objects/structures/vulture_spotter.dm +++ b/code/game/objects/structures/vulture_spotter.dm @@ -78,7 +78,7 @@ try_scope(user) -/obj/structure/vulture_spotter_tripod/on_set_interaction(mob/user) +/obj/structure/vulture_spotter_tripod/on_set_interaction(mob/living/user) var/obj/item/attachable/vulture_scope/scope = get_vulture_scope() scope.spotter_spotting = TRUE to_chat(scope.scope_user, SPAN_NOTICE("You notice that [scope] drifts less.")) @@ -92,7 +92,7 @@ user.lighting_alpha = 127 user.sync_lighting_plane_alpha() user.overlay_fullscreen("vulture_spotter", /atom/movable/screen/fullscreen/vulture/spotter) - user.freeze() + ADD_TRAIT(user, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Vulture spotter")) user.status_flags |= IMMOBILE_ACTION user.visible_message(SPAN_NOTICE("[user] looks through [src]."),SPAN_NOTICE("You look through [src], ready to go!")) user.forceMove(loc) @@ -102,13 +102,13 @@ give_action(user, /datum/action/vulture_tripod_unscope, null, null, src) set_scope_loc(user, scope) -/obj/structure/vulture_spotter_tripod/on_unset_interaction(mob/user) +/obj/structure/vulture_spotter_tripod/on_unset_interaction(mob/living/user) user.status_flags &= ~IMMOBILE_ACTION user.visible_message(SPAN_NOTICE("[user] looks up from [src]."),SPAN_NOTICE("You look up from [src].")) - user.unfreeze() + REMOVE_TRAIT(user, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Vulture spotter")) user.reset_view(null) user.Move(get_step(src, reverse_direction(src.dir))) - user.client?.change_view(world_view_size, src) + user.client?.change_view(GLOB.world_view_size, src) user.setDir(dir) //set the direction of the player to the direction the gun is facing update_pixels(FALSE) remove_action(user, /datum/action/vulture_tripod_unscope) @@ -238,7 +238,7 @@ user.pixel_x = 0 user.pixel_y = 0 if(user.client) - user.client.change_view(world_view_size, src) + user.client.change_view(GLOB.world_view_size, src) user.client.pixel_x = 0 user.client.pixel_y = 0 UnregisterSignal(user.client, COMSIG_PARENT_QDELETING) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index cccc1211bfb0..daf4a47a8ef6 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -8,6 +8,7 @@ density = FALSE anchored = TRUE can_buckle = TRUE + buckle_lying = 0 var/open = 0 //if the lid is up var/cistern = 0 //if the cistern bit is open var/w_items = 0 //the combined w_class of all the items in the cistern @@ -150,7 +151,7 @@ GM.apply_damage(5, OXY) swirlie = null else - user.visible_message(SPAN_DANGER("[user] slams [GM.name] into the [src]!"), SPAN_NOTICE("You slam [GM.name] into the [src]!")) + user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!")) GM.apply_damage(8, BRUTE) else to_chat(user, SPAN_NOTICE("You need a tighter grip.")) @@ -188,7 +189,7 @@ if(!GM.loc == get_turf(src)) to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal.")) return - user.visible_message(SPAN_DANGER("[user] slams [GM.name] into the [src]!"), SPAN_NOTICE("You slam [GM.name] into the [src]!")) + user.visible_message(SPAN_DANGER("[user] slams [GM.name] into [src]!"), SPAN_NOTICE("You slam [GM.name] into [src]!")) GM.apply_damage(8, BRUTE) else to_chat(user, SPAN_NOTICE("You need a tighter grip.")) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d0651eb5e993..6ab70b8266f4 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -81,7 +81,7 @@ junction = 0 if(anchored) var/turf/TU - for(var/dirn in cardinal) + for(var/dirn in GLOB.cardinals) TU = get_step(src, dirn) var/obj/structure/window/W = locate() in TU if(W && W.anchored && W.density && W.legacy_full) //Only counts anchored, non-destroyed, legacy full-tile windows. @@ -353,7 +353,7 @@ //This proc is used to update the icons of nearby windows. /obj/structure/window/proc/update_nearby_icons() update_icon() - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) for(var/obj/structure/window/W in get_step(src, direction)) W.update_icon() @@ -455,11 +455,8 @@ /obj/structure/window/reinforced/ultra/Initialize() . = ..() - GLOB.hijack_bustable_windows += src - -/obj/structure/window/reinforced/ultra/Destroy() - GLOB.hijack_bustable_windows -= src - return ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) /obj/structure/window/reinforced/full flags_atom = FPRINT @@ -585,11 +582,9 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable/Initialize() . = ..() - GLOB.hijack_bustable_windows += src + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(deconstruct)) -/obj/structure/window/framed/almayer/hull/hijack_bustable/Destroy() - GLOB.hijack_bustable_windows -= src - return ..() /obj/structure/window/framed/almayer/white icon_state = "white_rwindow0" basestate = "white_rwindow" @@ -865,7 +860,7 @@ return triggered = TRUE - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) if(direction == from_dir) continue //doesn't check backwards for(var/obj/structure/window/framed/prison/reinforced/hull/W in get_step(src,direction) ) @@ -958,7 +953,7 @@ return triggered = 1 - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) if(direction == from_dir) continue //doesn't check backwards diff --git a/code/game/runtimes.dm b/code/game/runtimes.dm index 1332309168a3..2cdc955aa426 100644 --- a/code/game/runtimes.dm +++ b/code/game/runtimes.dm @@ -11,7 +11,6 @@ GLOBAL_REAL(stui_init_runtimes, /list) //! Shorthand of Static Initializer errors only, for use in STUI GLOBAL_REAL(full_init_runtimes, /list) //! Full text of all Static Initializer + World Init errors, for log backfilling GLOBAL_REAL_VAR(runtime_logging_ready) //! Truthy when init is done and we don't need these shenanigans anymore -GLOBAL_REAL_VAR(init_runtimes_count) //! Count of runtimes that occured before logging is ready, for in-game reporting // Deduplication of errors via hash to reduce spamming GLOBAL_REAL(runtime_hashes, /list) @@ -24,8 +23,6 @@ GLOBAL_REAL_VAR(total_runtimes) if(!total_runtimes) total_runtimes = 0 total_runtimes += 1 - if(!init_runtimes_count) - init_runtimes_count = 0 if(!stui_init_runtimes) stui_init_runtimes = list() if(!full_init_runtimes) @@ -33,7 +30,6 @@ GLOBAL_REAL_VAR(total_runtimes) // If this occured during early init, we store the full error to write it to world.log when it's available if(!runtime_logging_ready) - init_runtimes_count += 1 full_init_runtimes += E.desc // Runtime was already reported once, dedup it for STUI diff --git a/code/game/sim_manager/datums/simulator.dm b/code/game/sim_manager/datums/simulator.dm index 04ddb7faa088..1f1aedad8153 100644 --- a/code/game/sim_manager/datums/simulator.dm +++ b/code/game/sim_manager/datums/simulator.dm @@ -1,18 +1,21 @@ +#define GRID_CLEARING_SIZE 16 + /datum/simulator // Necessary to prevent multiple users from simulating at the same time. var/static/detonation_cooldown = 0 + var/static/detonation_cooldown_time = 2 MINUTES var/static/sim_reboot_state = TRUE - var/looking_at_simulation = FALSE - var/detonation_cooldown_time = 2 MINUTES var/dummy_mode = CLF_MODE var/obj/structure/machinery/camera/simulation/sim_camera - var/grid_clearing_size = 16 // garbage collection, var/static/list/delete_targets = list() + // list of users currently inside the simulator + var/static/list/users_in_sim = list() + /* unarmoured humans are unnencessary clutter as they tend to explode easily and litter the sim room with body parts, best left out. @@ -29,7 +32,7 @@ /datum/simulator/proc/start_watching(mob/living/user) - if(looking_at_simulation) + if(user in users_in_sim) to_chat(user, SPAN_WARNING("You are already looking at the simulation.")) return if(!sim_camera) @@ -37,17 +40,19 @@ if(!sim_camera) to_chat(user, SPAN_WARNING("GPU damaged! Unable to start simulation.")) return - if(user.client.view != world_view_size) + if(user.client.view != GLOB.world_view_size) to_chat(user, SPAN_WARNING("You're too busy looking at something else.")) return user.reset_view(sim_camera) - looking_at_simulation = TRUE + users_in_sim += user /datum/simulator/proc/stop_watching(mob/living/user) + if(!(user in users_in_sim)) + return user.unset_interaction() user.reset_view(null) user.cameraFollow = null - looking_at_simulation = FALSE + users_in_sim -= user /datum/simulator/proc/sim_turf_garbage_collection() @@ -67,8 +72,8 @@ y:2 | x: 1 2 3 4 ... 16 y:1 | x: 1 2 3 4 ... 16 */ - for (var/y_pos in 1 to grid_clearing_size)// outer y - for (var/x_pos in 1 to grid_clearing_size) // inner x + for (var/y_pos in 1 to GRID_CLEARING_SIZE)// outer y + for (var/x_pos in 1 to GRID_CLEARING_SIZE) // inner x var/turf/current_grid = locate(sim_grid_start_pos.x + x_pos,sim_grid_start_pos.y + y_pos,sim_grid_start_pos.z) current_grid.empty(/turf/open/floor/engine) @@ -101,3 +106,4 @@ addtimer(CALLBACK(src, PROC_REF(sim_turf_garbage_collection)), 30 SECONDS, TIMER_STOPPABLE) +#undef GRID_CLEARING_SIZE diff --git a/code/game/smoothwall.dm b/code/game/smoothwall.dm index a06ed7750c26..b9284639976c 100644 --- a/code/game/smoothwall.dm +++ b/code/game/smoothwall.dm @@ -13,7 +13,7 @@ var/j //second iterator var/k //third iterator (I know, that's a lot, but I'm trying to make this modular, so bear with me) - for(i in cardinal) //For all cardinal dir turfs + for(i in GLOB.cardinals) //For all cardinal dir turfs T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) //And for all types that we tile with @@ -34,7 +34,7 @@ var/j //second iterator var/atom/k //third iterator (I know, that's a lot, but I'm trying to make this modular, so bear with me) - for(i in cardinal) //For all cardinal dir turfs + for(i in GLOB.cardinals) //For all cardinal dir turfs T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) //And for all types that we tile with @@ -61,7 +61,7 @@ var/j var/k - for(i in cardinal) + for(i in GLOB.cardinals) T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) @@ -93,7 +93,7 @@ var/j var/k - for(i in cardinal) + for(i in GLOB.cardinals) T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) @@ -170,6 +170,11 @@ setDir(NORTH) /obj/structure/window/framed/handle_icon_junction(jun_1, jun_2) + if(!icon_exists(icon, "[basestate][jun_2 ? jun_2 : jun_1]")) //Missing states for 5, 6, 7, 9, 10, 11, 13, 14, 15 for the vast majority of /obj/structure/window/framed + icon_state = "[basestate]0" + junction = 0 + return + icon_state = "[basestate][jun_2 ? jun_2 : jun_1]" //Use junction 2 if possible, junction 1 otherwise. if(jun_2) junction = jun_2 @@ -177,6 +182,11 @@ junction = jun_1 /obj/structure/window_frame/handle_icon_junction(jun_1, jun_2) + if(!icon_exists(icon, "[basestate][jun_2 ? jun_2 : jun_1]_frame")) //Missing states for 5, 6, 7, 9, 10, 11, 13, 14, 15 for the vast majority of /obj/structure/window_frame + icon_state = "[basestate]0_frame" + junction = 0 + return + icon_state = "[basestate][jun_2 ? jun_2 : jun_1]_frame" //Use junction 2 if possible, junction 1 otherwise. if(jun_2) junction = jun_2 @@ -217,7 +227,7 @@ var/j //second iterator var/k //third iterator (I know, that's a lot, but I'm trying to make this modular, so bear with me) - for(i in alldirs) //For all cardinal dir turfs + for(i in GLOB.alldirs) //For all cardinal dir turfs T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) //And for all types that we tile with @@ -239,7 +249,7 @@ var/j //second iterator var/k //third iterator (I know, that's a lot, but I'm trying to make this modular, so bear with me) - for(i in alldirs) //For all cardinal dir turfs + for(i in GLOB.alldirs) //For all cardinal dir turfs T = get_step(src, i) if(!istype(T)) continue for(j in tiles_with) //And for all types that we tile with diff --git a/code/game/sound.dm b/code/game/sound.dm index 6adaab109794..ac863a3bc51e 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -344,7 +344,7 @@ S = pick('sound/voice/alien_queen_command.ogg','sound/voice/alien_queen_command2.ogg','sound/voice/alien_queen_command3.ogg') // Human if("male_scream") - S = pick('sound/voice/human_male_scream_1.ogg','sound/voice/human_male_scream_2.ogg','sound/voice/human_male_scream_3.ogg','sound/voice/human_male_scream_4.ogg',5;'sound/voice/human_male_scream_5.ogg',5;'sound/voice/human_jackson_scream.ogg',5;'sound/voice/human_ack_scream.ogg') + S = pick('sound/voice/human_male_scream_1.ogg','sound/voice/human_male_scream_2.ogg','sound/voice/human_male_scream_3.ogg','sound/voice/human_male_scream_4.ogg',5;'sound/voice/human_male_scream_5.ogg',5;'sound/voice/human_jackson_scream.ogg',5;'sound/voice/human_ack_scream.ogg','sound/voice/human_male_scream_6.ogg') if("male_pain") S = pick('sound/voice/human_male_pain_1.ogg','sound/voice/human_male_pain_2.ogg','sound/voice/human_male_pain_3.ogg',5;'sound/voice/tomscream.ogg',5;'sound/voice/human_bobby_pain.ogg',5;'sound/voice/human_tantrum_scream.ogg', 5;'sound/voice/human_male_pain_rare_1.ogg') if("male_fragout") diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 3d774cedc616..8214ee76d091 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -9,35 +9,33 @@ #define KILL_MENDOZA -1 GLOBAL_LIST_EMPTY_TYPED(asrs_empty_space_tiles_list, /turf/open/floor/almayer/empty) +GLOBAL_SUBTYPE_PATHS_LIST_INDEXED(supply_packs_types, /datum/supply_packs, name) +GLOBAL_REFERENCE_LIST_INDEXED_SORTED(supply_packs_datums, /datum/supply_packs, type) -var/datum/controller/supply/supply_controller = new() +GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) /area/supply ceiling = CEILING_METAL -/area/supply/station //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/station name = "Supply Shuttle" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 ambience_exterior = AMBIENCE_ALMAYER -/area/supply/dock //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/dock name = "Supply Shuttle" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 -/area/supply/station_vehicle //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/station_vehicle name = "Vehicle ASRS" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 -/area/supply/dock_vehicle //DO NOT TURN THE lighting_use_dynamic STUFF ON FOR SHUTTLES. IT BREAKS THINGS. +/area/supply/dock_vehicle name = "Vehicle ASRS" icon_state = "shuttle3" - base_lighting_alpha = 255 requires_power = 0 //SUPPLY PACKS MOVED TO /code/defines/obj/supplypacks.dm @@ -113,11 +111,11 @@ var/datum/controller/supply/supply_controller = new() /obj/structure/machinery/computer/supplycomp/Initialize() . = ..() - LAZYADD(supply_controller.bound_supply_computer_list, src) + LAZYADD(GLOB.supply_controller.bound_supply_computer_list, src) /obj/structure/machinery/computer/supplycomp/Destroy() . = ..() - LAZYREMOVE(supply_controller.bound_supply_computer_list, src) + LAZYREMOVE(GLOB.supply_controller.bound_supply_computer_list, src) /obj/structure/machinery/computer/supplycomp/attackby(obj/item/hit_item, mob/user) if(istype(hit_item, /obj/item/spacecash)) @@ -127,7 +125,7 @@ var/datum/controller/supply/supply_controller = new() to_chat(user, SPAN_NOTICE("You find a small horizontal slot at the bottom of the console. You try to feed \the [slotted_cash] into it, but it rejects it! Maybe it's counterfeit?")) return to_chat(user, SPAN_NOTICE("You find a small horizontal slot at the bottom of the console. You feed \the [slotted_cash] into it..")) - supply_controller.black_market_points += slotted_cash.worth + GLOB.supply_controller.black_market_points += slotted_cash.worth qdel(slotted_cash) else to_chat(user, SPAN_NOTICE("You find a small horizontal slot at the bottom of the console. You try to feed \the [hit_item] into it, but it's seemingly blocked off from the inside.")) @@ -136,17 +134,17 @@ var/datum/controller/supply/supply_controller = new() /obj/structure/machinery/computer/supplycomp/proc/toggle_contraband(contraband_enabled = FALSE) can_order_contraband = contraband_enabled - for(var/obj/structure/machinery/computer/supplycomp/computer as anything in supply_controller.bound_supply_computer_list) + for(var/obj/structure/machinery/computer/supplycomp/computer as anything in GLOB.supply_controller.bound_supply_computer_list) if(computer.can_order_contraband) - supply_controller.black_market_enabled = TRUE + GLOB.supply_controller.black_market_enabled = TRUE return - supply_controller.black_market_enabled = FALSE + GLOB.supply_controller.black_market_enabled = FALSE //If any computers are able to order contraband, it's enabled. Otherwise, it's disabled! /// Prevents use of black market, even if it is otherwise enabled. If any computer has black market locked out, it applies across all of the currently established ones. /obj/structure/machinery/computer/supplycomp/proc/lock_black_market(market_locked = FALSE) - for(var/obj/structure/machinery/computer/supplycomp/computer as anything in supply_controller.bound_supply_computer_list) + for(var/obj/structure/machinery/computer/supplycomp/computer as anything in GLOB.supply_controller.bound_supply_computer_list) if(market_locked) computer.black_market_lockout = TRUE @@ -194,7 +192,7 @@ var/datum/controller/supply/supply_controller = new() var/list/data = list() var/list/squad_list = list() - for(var/datum/squad/current_squad in RoleAuthority.squads) + for(var/datum/squad/current_squad in GLOB.RoleAuthority.squads) if(current_squad.active && current_squad.faction == faction && current_squad.equipment_color) squad_list += list(list( "squad_name" = current_squad.name, @@ -327,7 +325,7 @@ var/datum/controller/supply/supply_controller = new() M.count_niche_stat(STATISTICS_NICHE_CRATES) playsound(C.loc,'sound/effects/bamf.ogg', 50, 1) //Ehh - var/obj/structure/droppod/supply/pod = new() + var/obj/structure/droppod/supply/pod = new(null, C) C.forceMove(pod) pod.launch(T) visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("'[C.name]' supply drop launched! Another launch will be available in five minutes.")]") @@ -367,10 +365,12 @@ var/datum/controller/supply/supply_controller = new() /datum/controller/supply var/processing = 1 - var/processing_interval = 300 + var/processing_interval = 30 SECONDS var/iteration = 0 - //supply points - var/points = 120 + /// Current supply points + var/points = 0 + /// Multiplier to the amount of points awarded based on marine scale + var/points_scale = 120 var/points_per_process = 1.5 var/points_per_slip = 1 var/points_per_crate = 2 @@ -389,15 +389,18 @@ var/datum/controller/supply/supply_controller = new() /// If the players killed him by sending a live hostile below.. this goes false and they can't order any more contraband. var/mendoza_status = TRUE - var/base_random_crate_interval = 10 //Every how many processing intervals do we get a random crates. + /// How many processing intervals do we get random crates for each pool. Currently only [ASRS_POOL_MAIN] gets scaled amount of crates. + var/list/base_random_crate_intervals = list(ASRS_POOL_MAIN = 10, ASRS_POOL_FOOD = 60) + /// How many partial crates are stored in ASRS per pool to smooth amount given out + var/list/random_crates_carry = list() + /// Pools mapped to list of random ASRS packs that belong to it + var/list/asrs_supply_packs_by_pool var/crate_iteration = 0 //control var/ordernum var/list/shoppinglist = list() var/list/requestlist = list() - var/list/supply_packs = list() - var/list/random_supply_packs = list() //shuttle movement var/datum/shuttle/ferry/supply/shuttle @@ -436,72 +439,91 @@ var/datum/controller/supply/supply_controller = new() var/tank_points = 0 /datum/controller/supply/New() + . = ..() ordernum = rand(1,9000) LAZYINITLIST(black_market_sold_items) + asrs_supply_packs_by_pool = list() + for(var/subtype in subtypesof(/datum/supply_packs_asrs)) + var/datum/supply_packs_asrs/initial_datum = subtype + var/pool = initial(initial_datum.pool) + if(!pool) + continue + LAZYADD(asrs_supply_packs_by_pool[pool], new subtype()) + random_crates_carry = list() + for(var/pool in base_random_crate_intervals) + random_crates_carry[pool] = 0 + +/datum/controller/supply/proc/start_processing() + START_PROCESSING(SSslowobj, src) //Supply shuttle ticker - handles supply point regenertion and shuttle travelling between centcomm and the station -/datum/controller/supply/process() - for(var/typepath in subtypesof(/datum/supply_packs)) - var/datum/supply_packs/supply_pack = new typepath() - if(supply_pack.group == "ASRS") - random_supply_packs += supply_pack - else - supply_packs[supply_pack.name] = supply_pack - spawn(0) - set background = 1 - while(1) - if(processing) - iteration++ - points += points_per_process - if(iteration >= 20 && iteration % base_random_crate_interval == 0 && supply_controller.shoppinglist.len <= 20) - add_random_crates() - crate_iteration++ - sleep(processing_interval) +/datum/controller/supply/process(delta_time) + iteration++ + points += points_per_process + if(iteration < 20) + return + for(var/pool in base_random_crate_intervals) + var/interval = base_random_crate_intervals[pool] + if(interval && iteration % interval == 0 && shoppinglist.len <= 20) + add_random_crates(pool) + crate_iteration++ //This adds function adds the amount of crates that calculate_crate_amount returns -/datum/controller/supply/proc/add_random_crates() - for(var/I=0, I= 1) + var/additional_crates = round(total_carry) + random_crates_carry[pool] -= additional_crates + unit_crate_amount += additional_crates + + return unit_crate_amount //Here we pick what crate type to send to the marines. //This is a weighted pick based upon their cost. //Their cost will go up if the crate is picked -/datum/controller/supply/proc/add_random_crate() - var/datum/supply_packs/C = supply_controller.pick_weighted_crate(random_supply_packs) - if(C == null) +/datum/controller/supply/proc/add_random_crate(pool) + if(!asrs_supply_packs_by_pool[pool]) + return + var/datum/supply_packs_asrs/supply_info = pick_weighted_crate(asrs_supply_packs_by_pool[pool]) + if(!GLOB.supply_packs_datums[supply_info.reference_package]) return - C.cost = round(C.cost * ASRS_COST_MULTIPLIER) //We still do this to raise the weight + + supply_info.cost = round(supply_info.cost * ASRS_COST_MULTIPLIER) //We still do this to raise the weight //We have to create a supply order to make the system spawn it. Here we transform a crate into an order. var/datum/supply_order/supply_order = new /datum/supply_order() - supply_order.ordernum = supply_controller.ordernum - supply_order.object = C + supply_order.ordernum = ordernum++ + supply_order.object = GLOB.supply_packs_datums[supply_info.reference_package] supply_order.orderedby = "ASRS" supply_order.approvedby = "ASRS" //We add the order to the shopping list - supply_controller.shoppinglist += supply_order + shoppinglist += supply_order //Here we weigh the crate based upon it's cost -/datum/controller/supply/proc/pick_weighted_crate(list/cratelist) - var/weighted_crate_list[] - for(var/datum/supply_packs/crate in cratelist) - var/crate_to_add[0] +/datum/controller/supply/proc/pick_weighted_crate(list/datum/supply_packs_asrs/cratelist) + var/list/datum/supply_packs_asrs/weighted_crate_list = list() + for(var/datum/supply_packs_asrs/crate in cratelist) var/weight = (round(10000/crate.cost)) - if(iteration > crate.iteration_needed) - crate_to_add[crate] = weight - weighted_crate_list += crate_to_add + weighted_crate_list[crate] = weight return pickweight(weighted_crate_list) //To stop things being sent to centcomm which should not be sent to centcomm. Recursively checks for these types. @@ -590,8 +612,8 @@ var/datum/controller/supply/supply_controller = new() if(order.object.contraband == TRUE && prob(5)) // Mendoza loaded the wrong order in. What a dunce! var/list/contraband_list - for(var/supply_name in supply_controller.supply_packs) - var/datum/supply_packs/supply_pack = supply_controller.supply_packs[supply_name] + for(var/supply_type in GLOB.supply_packs_datums) + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(supply_pack.contraband == FALSE) continue LAZYADD(contraband_list, supply_pack) @@ -645,9 +667,12 @@ var/datum/controller/supply/supply_controller = new() var/list/packages -/obj/item/paper/manifest/read_paper(mob/user) +/obj/item/paper/manifest/read_paper(mob/user, scramble = FALSE) + var/paper_info = info + if(scramble) + paper_info = stars_decode_html(info) // Tossing ref in widow id as this allows us to read multiple manifests at same time - show_browser(user, "[info][stamps]", null, "manifest\ref[src]", "size=550x650") + show_browser(user, "[paper_info][stamps]", null, "manifest\ref[src]", "size=550x650") onclose(user, "manifest\ref[src]") /obj/item/paper/manifest/proc/generate_contents() @@ -711,10 +736,10 @@ var/datum/controller/supply/supply_controller = new() if(temp) dat = temp else - var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + var/datum/shuttle/ferry/supply/shuttle = GLOB.supply_controller.shuttle if (shuttle) dat += {"Location: [shuttle.has_arrive_time() ? "Raising platform":shuttle.at_station() ? "Raised":"Lowered"]
    -
    Supply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    +
    Supply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]

    \nRequest items

    View approved orders

    View requests

    @@ -735,20 +760,21 @@ var/datum/controller/supply/supply_controller = new() //all_supply_groups //Request what? last_viewed_group = "categories" - temp = "Supply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " + temp = "Supply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " temp += "Main Menu


    " temp += "Select a category

    " - for(var/supply_group_name in supply_controller.all_supply_groups) + for(var/supply_group_name in GLOB.supply_controller.all_supply_groups) temp += "[supply_group_name]
    " else last_viewed_group = href_list["order"] - temp = "Supply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " + temp = "Supply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " temp += "Back to all categories


    " temp += "Request from: [last_viewed_group]

    " - for(var/supply_name in supply_controller.supply_packs ) - var/datum/supply_packs/N = supply_controller.supply_packs[supply_name] - if(N.contraband || N.group != last_viewed_group || !N.buyable) continue //Have to send the type instead of a reference to - temp += "[supply_name] Cost: $[round(N.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " //the obj because it would get caught by the garbage + for(var/supply_type in GLOB.supply_packs_datums) + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] + if(supply_pack.contraband || supply_pack.group != last_viewed_group || !supply_pack.buyable) + continue //Have to send the type instead of a reference to + temp += "[supply_pack.name] Cost: $[round(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " //the obj because it would get caught by the garbage else if (href_list["doorder"]) if(world.time < reqtime) @@ -757,8 +783,10 @@ var/datum/controller/supply/supply_controller = new() return //Find the correct supply_pack datum - var/datum/supply_packs/supply_pack = supply_controller.supply_packs[href_list["doorder"]] - if(!istype(supply_pack)) return + var/supply_pack_type = GLOB.supply_packs_types[href_list["doorder"]] + if(!supply_pack_type) + return + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_pack_type] if(supply_pack.contraband || !supply_pack.buyable) return @@ -777,11 +805,11 @@ var/datum/controller/supply/supply_controller = new() else if(ishighersilicon(usr)) idname = usr.real_name - supply_controller.ordernum++ + GLOB.supply_controller.ordernum++ var/obj/item/paper/reqform = new /obj/item/paper(loc) reqform.name = "Requisition Form - [supply_pack.name]" - reqform.info += "

    [station_name] Supply Requisition Form


    " - reqform.info += "INDEX: #[supply_controller.ordernum]
    " + reqform.info += "

    [MAIN_SHIP_NAME] Supply Requisition Form


    " + reqform.info += "INDEX: #[GLOB.supply_controller.ordernum]
    " reqform.info += "REQUESTED BY: [idname]
    " reqform.info += "RANK: [idrank]
    " reqform.info += "REASON: [reason]
    " @@ -797,24 +825,24 @@ var/datum/controller/supply/supply_controller = new() //make our supply_order datum var/datum/supply_order/supply_order = new /datum/supply_order() - supply_order.ordernum = supply_controller.ordernum + supply_order.ordernum = GLOB.supply_controller.ordernum supply_order.object = supply_pack supply_order.orderedby = idname - supply_controller.requestlist += supply_order + GLOB.supply_controller.requestlist += supply_order temp = "Thanks for your request. The cargo team will process it as soon as possible.
    " temp += "
    Back Main Menu" else if (href_list["vieworders"]) temp = "Current approved orders:

    " - for(var/S in supply_controller.shoppinglist) + for(var/S in GLOB.supply_controller.shoppinglist) var/datum/supply_order/SO = S temp += "[SO.object.name] approved by [SO.approvedby]
    " temp += "
    OK" else if (href_list["viewrequests"]) temp = "Current requests:

    " - for(var/S in supply_controller.requestlist) + for(var/S in GLOB.supply_controller.requestlist) var/datum/supply_order/SO = S temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]
    " temp += "
    OK" @@ -840,7 +868,7 @@ var/datum/controller/supply/supply_controller = new() if (temp) dat = temp else - var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + var/datum/shuttle/ferry/supply/shuttle = GLOB.supply_controller.shuttle if (shuttle) dat += "\nPlatform position: " if (shuttle.has_arrive_time()) @@ -874,7 +902,7 @@ var/datum/controller/supply/supply_controller = new() dat += "
    \n
    " - dat += {"
    \nSupply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    \n
    + dat += {"
    \nSupply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    \n
    \nOrder items
    \n
    \nView requests
    \n
    \nView orders
    \n
    @@ -886,10 +914,10 @@ var/datum/controller/supply/supply_controller = new() /obj/structure/machinery/computer/supplycomp/Topic(href, href_list) if(!is_mainship_level(z)) return - if(!supply_controller) - world.log << "## ERROR: Eek. The supply_controller controller datum is missing somehow." + if(!GLOB.supply_controller) + world.log << "## ERROR: Eek. The GLOB.supply_controller controller datum is missing somehow." return - var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle + var/datum/shuttle/ferry/supply/shuttle = GLOB.supply_controller.shuttle if (!shuttle) world.log << "## ERROR: Eek. The supply/shuttle datum is missing somehow." return @@ -927,10 +955,10 @@ var/datum/controller/supply/supply_controller = new() //all_supply_groups //Request what? last_viewed_group = "categories" - temp = "Supply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " + temp = "Supply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " temp += "Main Menu


    " temp += "Select a category

    " - for(var/supply_group_name in supply_controller.all_supply_groups) + for(var/supply_group_name in GLOB.supply_controller.all_supply_groups) temp += "[supply_group_name]
    " if(can_order_contraband) temp += "[SPAN_DANGER("$E4RR301¿")]
    " @@ -938,17 +966,17 @@ var/datum/controller/supply/supply_controller = new() last_viewed_group = href_list["order"] if(last_viewed_group == "Black Market") handle_black_market(temp) - else if(last_viewed_group in supply_controller.contraband_supply_groups) + else if(last_viewed_group in GLOB.supply_controller.contraband_supply_groups) handle_black_market_groups() else - temp = "Supply budget: $[supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " + temp = "Supply budget: $[GLOB.supply_controller.points * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " temp += "Back to all categories


    " temp += "Request from: [last_viewed_group]

    " - for(var/supply_name in supply_controller.supply_packs ) - var/datum/supply_packs/supply_pack = supply_controller.supply_packs[supply_name] + for(var/supply_type in GLOB.supply_packs_datums) + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(!is_buyable(supply_pack)) continue - temp += "[supply_name] Cost: $[round(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " //the obj because it would get caught by the garbage + temp += "[supply_pack.name] Cost: $[round(supply_pack.cost) * SUPPLY_TO_MONEY_MUPLTIPLIER]
    " //the obj because it would get caught by the garbage else if (href_list["doorder"]) if(world.time < reqtime) @@ -957,7 +985,8 @@ var/datum/controller/supply/supply_controller = new() return //Find the correct supply_pack datum - var/datum/supply_packs/supply_pack = supply_controller.supply_packs[href_list["doorder"]] + var/supply_pack_type = GLOB.supply_packs_types[href_list["doorder"]] + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_pack_type] if(!istype(supply_pack)) return @@ -980,11 +1009,11 @@ var/datum/controller/supply/supply_controller = new() else if(isSilicon(usr)) idname = usr.real_name - supply_controller.ordernum++ + GLOB.supply_controller.ordernum++ var/obj/item/paper/reqform = new /obj/item/paper(loc) reqform.name = "Requisition Form - [supply_pack.name]" - reqform.info += "

    [station_name] Supply Requisition Form


    " - reqform.info += "INDEX: #[supply_controller.ordernum]
    " + reqform.info += "

    [MAIN_SHIP_NAME] Supply Requisition Form


    " + reqform.info += "INDEX: #[GLOB.supply_controller.ordernum]
    " reqform.info += "REQUESTED BY: [idname]
    " reqform.info += "RANK: [idrank]
    " reqform.info += "REASON: [reason]
    " @@ -1000,10 +1029,10 @@ var/datum/controller/supply/supply_controller = new() //make our supply_order datum var/datum/supply_order/supply_order = new /datum/supply_order() - supply_order.ordernum = supply_controller.ordernum + supply_order.ordernum = GLOB.supply_controller.ordernum supply_order.object = supply_pack supply_order.orderedby = idname - supply_controller.requestlist += supply_order + GLOB.supply_controller.requestlist += supply_order temp = "Order request placed.
    " temp += "
    Back|Main Menu|Authorize Order" @@ -1016,37 +1045,36 @@ var/datum/controller/supply/supply_controller = new() temp = "Invalid Request" temp += "
    Back|Main Menu" - if(supply_controller.shoppinglist.len > 20) + if(GLOB.supply_controller.shoppinglist.len > 20) to_chat(usr, SPAN_DANGER("Current retrieval load has reached maximum capacity.")) return - var/datum/ares_link/link = GLOB.ares_link - for(var/i=1, i<=supply_controller.requestlist.len, i++) - var/datum/supply_order/SO = supply_controller.requestlist[i] + for(var/i=1, i<=GLOB.supply_controller.requestlist.len, i++) + var/datum/supply_order/SO = GLOB.supply_controller.requestlist[i] if(SO.ordernum == ordernum) supply_order = SO supply_pack = supply_order.object - if(supply_controller.points >= round(supply_pack.cost) && supply_controller.black_market_points >= supply_pack.dollar_cost) - supply_controller.requestlist.Cut(i,i+1) - supply_controller.points -= round(supply_pack.cost) - supply_controller.black_market_points -= round(supply_pack.dollar_cost) - if(supply_controller.black_market_heat != -1) //-1 Heat means heat is disabled - supply_controller.black_market_heat = clamp(supply_controller.black_market_heat + supply_pack.crate_heat + (supply_pack.crate_heat * rand(rand(-0.25,0),0.25)), 0, 100) // black market heat added is crate heat +- up to 25% of crate heat - supply_controller.shoppinglist += supply_order + if(GLOB.supply_controller.points >= round(supply_pack.cost) && GLOB.supply_controller.black_market_points >= supply_pack.dollar_cost) + GLOB.supply_controller.requestlist.Cut(i,i+1) + GLOB.supply_controller.points -= round(supply_pack.cost) + GLOB.supply_controller.black_market_points -= round(supply_pack.dollar_cost) + if(GLOB.supply_controller.black_market_heat != -1) //-1 Heat means heat is disabled + GLOB.supply_controller.black_market_heat = clamp(GLOB.supply_controller.black_market_heat + supply_pack.crate_heat + (supply_pack.crate_heat * rand(rand(-0.25,0),0.25)), 0, 100) // black market heat added is crate heat +- up to 25% of crate heat + GLOB.supply_controller.shoppinglist += supply_order supply_pack.cost = supply_pack.cost * SUPPLY_COST_MULTIPLIER temp = "Thank you for your order.
    " temp += "
    Back Main Menu" supply_order.approvedby = usr.name msg_admin_niche("[usr] confirmed supply order of [supply_pack.name].") - if(supply_controller.black_market_heat == 100) - supply_controller.black_market_investigation() + if(GLOB.supply_controller.black_market_heat == 100) + GLOB.supply_controller.black_market_investigation() var/pack_source = "Cargo Hold" var/pack_name = supply_pack.name if(supply_pack.dollar_cost) pack_source = "Unknown" if(prob(90)) pack_name = "Unknown" - link.log_ares_requisition(pack_source, pack_name, usr.name) + log_ares_requisition(pack_source, pack_name, usr.name) else temp = "Not enough money left.
    " temp += "
    Back Main Menu" @@ -1054,7 +1082,7 @@ var/datum/controller/supply/supply_controller = new() else if (href_list["vieworders"]) temp = "Current approved orders:

    " - for(var/S in supply_controller.shoppinglist) + for(var/S in GLOB.supply_controller.shoppinglist) var/datum/supply_order/SO = S temp += "#[SO.ordernum] - [SO.object.name] approved by [SO.approvedby]
    "// (Cancel)
    " temp += "
    OK" @@ -1072,7 +1100,7 @@ var/datum/controller/supply/supply_controller = new() */ else if (href_list["viewrequests"]) temp = "Current requests:

    " - for(var/S in supply_controller.requestlist) + for(var/S in GLOB.supply_controller.requestlist) var/datum/supply_order/SO = S temp += "#[SO.ordernum] - [SO.object.name] requested by [SO.orderedby] Approve Remove
    " @@ -1082,16 +1110,16 @@ var/datum/controller/supply/supply_controller = new() else if (href_list["rreq"]) var/ordernum = text2num(href_list["rreq"]) temp = "Invalid Request.
    " - for(var/i=1, i<=supply_controller.requestlist.len, i++) - var/datum/supply_order/SO = supply_controller.requestlist[i] + for(var/i=1, i<=GLOB.supply_controller.requestlist.len, i++) + var/datum/supply_order/SO = GLOB.supply_controller.requestlist[i] if(SO.ordernum == ordernum) - supply_controller.requestlist.Cut(i,i+1) + GLOB.supply_controller.requestlist.Cut(i,i+1) temp = "Request removed.
    " break temp += "
    Back Main Menu" else if (href_list["clearreq"]) - supply_controller.requestlist.Cut() + GLOB.supply_controller.requestlist.Cut() temp = "List cleared.
    " temp += "
    OK" @@ -1104,31 +1132,31 @@ var/datum/controller/supply/supply_controller = new() /obj/structure/machinery/computer/supplycomp/proc/handle_black_market() - temp = "W-Y Dollars: $[supply_controller.black_market_points]
    " + temp = "W-Y Dollars: $[GLOB.supply_controller.black_market_points]
    " temp += "Back to all categories


    " temp += SPAN_DANGER("ERR0R UNK7OWN C4T2G#!$0-


    ") if(black_market_lockout) temp += "





    Unauthorized Access Removed.
    This console is currently under CMB investigation.
    Thank you for your cooperation.
    " return temp += "KHZKNHZH#0-" - if(!supply_controller.mendoza_status) // he's daed + if(!GLOB.supply_controller.mendoza_status) // he's daed temp += "........." return handle_mendoza_dialogue() //mendoza has been in there for a while. he gets lonely sometimes temp += "[last_viewed_group]

    " - for(var/supply_group_name in supply_controller.contraband_supply_groups) + for(var/supply_group_name in GLOB.supply_controller.contraband_supply_groups) temp += "[supply_group_name]
    " /obj/structure/machinery/computer/supplycomp/proc/handle_black_market_groups() - temp = "W-Y Dollars: $[supply_controller.black_market_points]
    " + temp = "W-Y Dollars: $[GLOB.supply_controller.black_market_points]
    " temp += "Back to black market categories


    " temp += "Purchase from: [last_viewed_group]

    " - for(var/supply_name in supply_controller.supply_packs ) - var/datum/supply_packs/supply_pack = supply_controller.supply_packs[supply_name] + for(var/supply_type in GLOB.supply_packs_datums) + var/datum/supply_packs/supply_pack = GLOB.supply_packs_datums[supply_type] if(!is_buyable(supply_pack)) continue - temp += "[supply_name] Cost: $[round(supply_pack.dollar_cost)]
    " + temp += "[supply_pack.name] Cost: $[round(supply_pack.dollar_cost)]
    " /obj/structure/machinery/computer/supplycomp/proc/handle_mendoza_dialogue() @@ -1186,7 +1214,7 @@ var/datum/controller/supply/supply_controller = new() return_value = movable_atom.black_market_value // so they cant sell the same thing over and over and over - return_value = POSITIVE(return_value - supply_controller.black_market_sold_items[movable_atom.type] * 0.5) + return_value = POSITIVE(return_value - GLOB.supply_controller.black_market_sold_items[movable_atom.type] * 0.5) return return_value /datum/controller/supply/proc/kill_mendoza() @@ -1252,7 +1280,7 @@ var/datum/controller/supply/supply_controller = new() /datum/controller/supply/proc/black_market_investigation() black_market_heat = -1 - SSticker.mode.get_specific_call("Inspection - Colonial Marshal Ledger Investigation Team", TRUE, TRUE, FALSE) + SSticker.mode.get_specific_call("Inspection - Colonial Marshal Ledger Investigation Team", TRUE, TRUE) log_game("Black Market Inspection auto-triggered.") /obj/structure/machinery/computer/supplycomp/proc/is_buyable(datum/supply_packs/supply_pack) @@ -1316,6 +1344,14 @@ var/datum/controller/supply/supply_controller = new() /datum/vehicle_order/tank/has_vehicle_lock() return +/datum/vehicle_order/tank/broken + name = "Smashed M34A2 Longstreet Light Tank" + ordered_vehicle = /obj/effect/vehicle_spawner/tank/hull/broken + +/datum/vehicle_order/tank/plain + name = "M34A2 Longstreet Light Tank" + ordered_vehicle = /obj/effect/vehicle_spawner/tank + /datum/vehicle_order/apc name = "M577 Armored Personnel Carrier" ordered_vehicle = /obj/effect/vehicle_spawner/apc/decrepit @@ -1328,23 +1364,24 @@ var/datum/controller/supply/supply_controller = new() name = "M577-CMD Armored Personnel Carrier" ordered_vehicle = /obj/effect/vehicle_spawner/apc_cmd/decrepit +/datum/vehicle_order/apc/empty + name = "Barebones M577 Armored Personal Carrier" + ordered_vehicle = /obj/effect/vehicle_spawner/apc/unarmed/broken + /obj/structure/machinery/computer/supplycomp/vehicle/Initialize() . = ..() vehicles = list( - /datum/vehicle_order/apc, - /datum/vehicle_order/apc/med, - /datum/vehicle_order/apc/cmd, + new /datum/vehicle_order/apc(), + new /datum/vehicle_order/apc/med(), + new /datum/vehicle_order/apc/cmd(), ) - for(var/order as anything in vehicles) - new order - - if(!VehicleElevatorConsole) - VehicleElevatorConsole = src + if(!GLOB.VehicleElevatorConsole) + GLOB.VehicleElevatorConsole = src /obj/structure/machinery/computer/supplycomp/vehicle/Destroy() - VehicleElevatorConsole = null + GLOB.VehicleElevatorConsole = null return ..() /obj/structure/machinery/computer/supplycomp/vehicle/attack_hand(mob/living/carbon/human/H as mob) @@ -1400,15 +1437,16 @@ var/datum/controller/supply/supply_controller = new() return if(spent) return - if(!supply_controller) - world.log << "## ERROR: Eek. The supply_controller controller datum is missing somehow." + if(!GLOB.supply_controller) + world.log << "## ERROR: Eek. The GLOB.supply_controller controller datum is missing somehow." return if (!SSshuttle.vehicle_elevator) world.log << "## ERROR: Eek. The supply/elevator datum is missing somehow." return - if(!is_admin_level(SSshuttle.vehicle_elevator.z)) + if(!should_block_game_interaction(SSshuttle.vehicle_elevator)) + to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up. Ask someone to send it away.")) return if(ismaintdrone(usr)) diff --git a/code/game/turfs/auto_turf.dm b/code/game/turfs/auto_turf.dm index 45756c30bb9c..e07f7324bcc2 100644 --- a/code/game/turfs/auto_turf.dm +++ b/code/game/turfs/auto_turf.dm @@ -53,7 +53,7 @@ return bleed_layer = max(0, new_layer) - for(var/direction in alldirs) + for(var/direction in GLOB.alldirs) var/turf/open/T = get_step(src, direction) if(istype(T)) T.update_icon() @@ -169,7 +169,7 @@ if(istype(I, /obj/item/lightstick)) var/obj/item/lightstick/L = I if(locate(/obj/item/lightstick) in get_turf(src)) - to_chat(user, "There's already a [L] at this position!") + to_chat(user, "There's already \a [L] at this position!") return to_chat(user, "Now planting \the [L].") diff --git a/code/game/turfs/floor.dm b/code/game/turfs/floor.dm index 5f99aba26c09..1be6235cd2ac 100644 --- a/code/game/turfs/floor.dm +++ b/code/game/turfs/floor.dm @@ -69,7 +69,7 @@ ..() if(is_grass_floor()) var/dir_sum = 0 - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) var/turf/T = get_step(src,direction) if(!(T.is_grass_floor())) dir_sum += direction diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm index 4e47fd004f74..f957686fac22 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -203,6 +203,13 @@ icon_state = "default" plating_type = /turf/open/floor/plating/almayer +/// Admin level thunderdome floor. Doesn't get damaged by explosions and such for pristine testing +/turf/open/floor/tdome + icon = 'icons/turf/almayer.dmi' + icon_state = "plating" + plating_type = /turf/open/floor/tdome + hull_floor = TRUE + //Cargo elevator /turf/open/floor/almayer/empty name = "empty space" @@ -242,10 +249,10 @@ qdel(AM) return var/mob/living/carbon/human/thrown_human = AM - for(var/atom/computer as anything in supply_controller.bound_supply_computer_list) + for(var/atom/computer as anything in GLOB.supply_controller.bound_supply_computer_list) computer.balloon_alert_to_viewers("you hear horrifying noises coming from the elevator!") - var/area/area_shuttle = supply_controller.shuttle?.get_location_area() + var/area/area_shuttle = GLOB.supply_controller.shuttle?.get_location_area() if(!area_shuttle) return var/list/turflist = list() @@ -452,7 +459,7 @@ /turf/open/floor/grass/LateInitialize() . = ..() - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) if(istype(get_step(src,direction),/turf/open/floor)) var/turf/open/floor/FF = get_step(src,direction) FF.update_icon() //so siding get updated properly @@ -497,7 +504,7 @@ if(!broken && !burnt) if(icon_state != "carpetsymbol") var/connectdir = 0 - for(var/direction in cardinal) + for(var/direction in GLOB.cardinals) if(istype(get_step(src, direction), /turf/open/floor)) var/turf/open/floor/FF = get_step(src, direction) if(FF.is_carpet_floor()) @@ -538,7 +545,7 @@ icon_state = "carpet[connectdir]-[diagonalconnect]" /turf/open/floor/carpet/make_plating() - for(var/direction in alldirs) + for(var/direction in GLOB.alldirs) if(istype(get_step(src, direction), /turf/open/floor)) var/turf/open/floor/FF = get_step(src,direction) FF.update_icon() // So siding get updated properly diff --git a/code/game/turfs/light.dm b/code/game/turfs/light.dm index 219e79e93ef2..e8b7038bcb51 100644 --- a/code/game/turfs/light.dm +++ b/code/game/turfs/light.dm @@ -1,9 +1,21 @@ +#define LIGHT_FLOOR_COLOR_BLUE 0 +#define LIGHT_FLOOR_COLOR_RED 1 +#define LIGHT_FLOOR_COLOR_GREEN 2 +#define LIGHT_FLOOR_COLOR_YELLOW 3 +#define LIGHT_FLOOR_COLOR_PURPLE 4 +#define LIGHT_FLOOR_COLOR_WHITE 5 + /turf/open/floor/light name = "light floor" desc = "Beware of breakdancing on these tiles, glass shards embedded in the head is not a fun time." + icon_state = "light_on" tile_type = /obj/item/stack/tile/light var/on = TRUE - var/state = 0 + var/state = LIGHT_FLOOR_COLOR_BLUE + +/turf/open/floor/light/get_examine_text(mob/user) + . = ..() + . += "[src] is [broken ? "broken, and requires a replacement lightbulb":"[on ? "on" : "off"]"]." /turf/open/floor/light/is_light_floor() return TRUE @@ -12,22 +24,22 @@ . = ..() if(on && !broken) //manages color, I feel like this switch is a sin. switch(state) - if(0) + if(LIGHT_FLOOR_COLOR_BLUE) icon_state = "light_on" set_light(5) - if(1) + if(LIGHT_FLOOR_COLOR_RED) icon_state = "light_on-r" set_light(5) - if(2) + if(LIGHT_FLOOR_COLOR_GREEN) icon_state = "light_on-g" set_light(5) - if(3) + if(LIGHT_FLOOR_COLOR_YELLOW) icon_state = "light_on-y" set_light(5) - if(4) + if(LIGHT_FLOOR_COLOR_PURPLE) icon_state = "light_on-p" set_light(5) - if(5,-1) + if(LIGHT_FLOOR_COLOR_WHITE,-1) //change this later icon_state = "light_on-w" set_light(5) state = -1 @@ -84,3 +96,68 @@ broken = TRUE update_icon() return XENO_ATTACK_ACTION + +/turf/open/floor/light/red + icon_state = "light_on-r" + state = LIGHT_FLOOR_COLOR_RED + +/turf/open/floor/light/green + icon_state = "light_on-g" + state = LIGHT_FLOOR_COLOR_GREEN + +/turf/open/floor/light/yellow + icon_state = "light_on-y" + state = LIGHT_FLOOR_COLOR_YELLOW + +/turf/open/floor/light/purple + icon_state = "light_on-p" + state = LIGHT_FLOOR_COLOR_PURPLE + +/turf/open/floor/light/white + icon_state = "light_on-w" + state = LIGHT_FLOOR_COLOR_WHITE + +/turf/open/floor/light/off + icon_state = "light_off" + on = FALSE + +/turf/open/floor/light/off/red + state = LIGHT_FLOOR_COLOR_RED + +/turf/open/floor/light/off/green + state = LIGHT_FLOOR_COLOR_GREEN + +/turf/open/floor/light/off/yellow + state = LIGHT_FLOOR_COLOR_YELLOW + +/turf/open/floor/light/off/purple + state = LIGHT_FLOOR_COLOR_PURPLE + +/turf/open/floor/light/off/white + state = LIGHT_FLOOR_COLOR_WHITE + +/turf/open/floor/light/broken + icon_state = "light_broken" + broken = TRUE + +/turf/open/floor/light/broken/red + state = LIGHT_FLOOR_COLOR_RED + +/turf/open/floor/light/broken/green + state = LIGHT_FLOOR_COLOR_GREEN + +/turf/open/floor/light/broken/yellow + state = LIGHT_FLOOR_COLOR_YELLOW + +/turf/open/floor/light/broken/purple + state = LIGHT_FLOOR_COLOR_PURPLE + +/turf/open/floor/light/broken/white + state = LIGHT_FLOOR_COLOR_WHITE + +#undef LIGHT_FLOOR_COLOR_BLUE +#undef LIGHT_FLOOR_COLOR_RED +#undef LIGHT_FLOOR_COLOR_GREEN +#undef LIGHT_FLOOR_COLOR_YELLOW +#undef LIGHT_FLOOR_COLOR_PURPLE +#undef LIGHT_FLOOR_COLOR_WHITE diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index a4781e1a6609..7d9dd6303c64 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -24,7 +24,7 @@ add_cleanable_overlays() var/list/turf/open/auto_turf/auto_turf_dirs = list() - for(var/direction in alldirs) + for(var/direction in GLOB.alldirs) var/turf/open/auto_turf/T = get_step(src, direction) if(!istype(T)) continue @@ -36,7 +36,7 @@ var/list/handled_dirs = list() var/list/unhandled_dirs = list() - for(var/direction in diagonals) + for(var/direction in GLOB.diagonals) var/x_dir = direction & (direction-1) var/y_dir = direction - x_dir @@ -90,7 +90,7 @@ if(!T.icon_state_before_scorching) T.icon_state_before_scorching = T.icon_state var/direction_from_neighbor_towards_src = get_dir(T, src) - var/icon/culling_mask = icon(T.icon, "[T.scorchable]_mask[turf_edgeinfo_cache[T.icon_state_before_scorching][dir2indexnum(T.dir)][dir2indexnum(direction_from_neighbor_towards_src)]]", direction_from_neighbor_towards_src) + var/icon/culling_mask = icon(T.icon, "[T.scorchable]_mask[GLOB.turf_edgeinfo_cache[T.icon_state_before_scorching][dir2indexnum(T.dir)][dir2indexnum(direction_from_neighbor_towards_src)]]", direction_from_neighbor_towards_src) edge_overlay.Blend(culling_mask, ICON_OVERLAY) edge_overlay.SwapColor(rgb(255, 0, 255, 255), rgb(0, 0, 0, 0)) overlays += edge_overlay @@ -185,6 +185,7 @@ name = "cave" icon = 'icons/turf/floors/bigred.dmi' icon_state = "mars_cave_1" + is_groundmap_turf = TRUE /turf/open/mars_cave/Initialize(mapload, ...) @@ -283,6 +284,7 @@ name = "ground dirt" icon = 'icons/turf/ground_map.dmi' icon_state = "desert" + is_groundmap_turf = TRUE /turf/open/gm/attackby(obj/item/I, mob/user) @@ -290,7 +292,7 @@ if(istype(I, /obj/item/lightstick)) var/obj/item/lightstick/L = I if(locate(/obj/item/lightstick) in get_turf(src)) - to_chat(user, "There's already a [L] at this position!") + to_chat(user, "There's already \a [L] at this position!") return to_chat(user, "Now planting \the [L].") @@ -368,16 +370,16 @@ /turf/open/gm/grass/Initialize(mapload, ...) . = ..() - if(!locate(icon_state) in turf_edgeinfo_cache) + if(!locate(icon_state) in GLOB.turf_edgeinfo_cache) switch(icon_state) if("grass1") - turf_edgeinfo_cache["grass1"] = GLOB.edgeinfo_full + GLOB.turf_edgeinfo_cache["grass1"] = GLOB.edgeinfo_full if("grass2") - turf_edgeinfo_cache["grass2"] = GLOB.edgeinfo_full + GLOB.turf_edgeinfo_cache["grass2"] = GLOB.edgeinfo_full if("grassbeach") - turf_edgeinfo_cache["grassbeach"] = GLOB.edgeinfo_edge + GLOB.turf_edgeinfo_cache["grassbeach"] = GLOB.edgeinfo_edge if("gbcorner") - turf_edgeinfo_cache["gbcorner"] = GLOB.edgeinfo_corner + GLOB.turf_edgeinfo_cache["gbcorner"] = GLOB.edgeinfo_corner /turf/open/gm/dirt2 name = "dirt" @@ -433,14 +435,14 @@ /turf/open/gm/dirtgrassborder/Initialize(mapload, ...) . = ..() - if(!locate(icon_state) in turf_edgeinfo_cache) + if(!locate(icon_state) in GLOB.turf_edgeinfo_cache) switch(icon_state) if("grassdirt_edge") - turf_edgeinfo_cache["grassdirt_edge"] = GLOB.edgeinfo_edge + GLOB.turf_edgeinfo_cache["grassdirt_edge"] = GLOB.edgeinfo_edge if("grassdirt_corner") - turf_edgeinfo_cache["grassdirt_corner"] = GLOB.edgeinfo_corner + GLOB.turf_edgeinfo_cache["grassdirt_corner"] = GLOB.edgeinfo_corner if("grassdirt_corner2") - turf_edgeinfo_cache["grassdirt_corner2"] = GLOB.edgeinfo_corner2 + GLOB.turf_edgeinfo_cache["grassdirt_corner2"] = GLOB.edgeinfo_corner2 /turf/open/gm/dirtgrassborder2 name = "grass" @@ -646,6 +648,7 @@ baseturfs = /turf/open/gm/riverdeep supports_surgery = FALSE minimap_color = MINIMAP_WATER + is_groundmap_turf = FALSE // Not real ground /turf/open/gm/riverdeep/Initialize(mapload, ...) @@ -724,6 +727,7 @@ allow_construction = FALSE var/bushes_spawn = 1 var/plants_spawn = 1 + is_groundmap_turf = TRUE name = "wet grass" desc = "Thick, long, wet grass." icon = 'icons/turf/floors/jungle.dmi' @@ -783,7 +787,7 @@ if(istype(I, /obj/item/lightstick)) var/obj/item/lightstick/L = I if(locate(/obj/item/lightstick) in get_turf(src)) - to_chat(user, "There's already a [L] at this position!") + to_chat(user, "There's already \a [L] at this position!") return to_chat(user, "Now planting \the [L].") diff --git a/code/game/turfs/snow.dm b/code/game/turfs/snow.dm index 72b1f35d0aff..f7fb746cfbbc 100644 --- a/code/game/turfs/snow.dm +++ b/code/game/turfs/snow.dm @@ -16,7 +16,7 @@ if(istype(I, /obj/item/lightstick)) var/obj/item/lightstick/L = I if(locate(/obj/item/lightstick) in get_turf(src)) - to_chat(user, "There's already a [L] at this position!") + to_chat(user, "There's already \a [L] at this position!") return to_chat(user, "Now planting \the [L].") @@ -77,7 +77,7 @@ if(update_full) var/turf/open/T if(!skip_sides) - for(var/dirn in alldirs) + for(var/dirn in GLOB.alldirs) var/turf/open/snow/D = get_step(src,dirn) if(istype(D)) //Update turfs that are near us, but only once @@ -85,7 +85,7 @@ overlays.Cut() - for(var/dirn in alldirs) + for(var/dirn in GLOB.alldirs) T = get_step(src, dirn) if(istype(T)) if(bleed_layer > T.bleed_layer && T.bleed_layer < 1) @@ -148,6 +148,3 @@ /turf/open/snow/layer3 icon_state = "snow_3" bleed_layer = 3 - - - diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 837610d5d7fe..22fe85bdde65 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -72,9 +72,8 @@ // by default, vis_contents is inherited from the turf that was here before vis_contents.Cut() - turfs += src - if(is_ground_level(z)) - z1turfs += src + GLOB.turfs += src + assemble_baseturfs() @@ -82,11 +81,11 @@ visibilityChanged() - pass_flags = pass_flags_cache[type] + pass_flags = GLOB.pass_flags_cache[type] if (isnull(pass_flags)) pass_flags = new() initialize_pass_flags(pass_flags) - pass_flags_cache[type] = pass_flags + GLOB.pass_flags_cache[type] = pass_flags else initialize_pass_flags() diff --git a/code/game/turfs/walls/wall_icon.dm b/code/game/turfs/walls/wall_icon.dm index 9e47612964c4..2b414ca46af8 100644 --- a/code/game/turfs/walls/wall_icon.dm +++ b/code/game/turfs/walls/wall_icon.dm @@ -86,7 +86,7 @@ break if(success) - if(get_dir(src, T) in cardinal) + if(get_dir(src, T) in GLOB.cardinals) wall_dirs += get_dir(src, T) for(var/neighbor in wall_dirs) diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index 2548801cc7b1..05c97a681be9 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -24,19 +24,27 @@ /obj/structure/girder, /obj/structure/machinery/door, /obj/structure/machinery/cm_vending/sorted/attachments/blend, - /obj/structure/machinery/cm_vending/sorted/cargo_ammo/blend, - /obj/structure/machinery/cm_vending/sorted/cargo_guns/blend, + /obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, + /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, ) + /// The type of wall decoration we use, to avoid the wall changing icon all the time + var/decoration_type + +/turf/closed/wall/almayer/Initialize(mapload, ...) + if(!special_icon && prob(20)) + decoration_type = rand(0,3) + return ..() + /turf/closed/wall/almayer/update_icon() - ..() - if(special_icon) - return + if(decoration_type == null) + return ..() if(neighbors_list in list(EAST|WEST)) - var/r1 = rand(0,10) //Make a random chance for this to happen - var/r2 = rand(0,3) // Which wall if we do choose it - if(r1 >= 9) - overlays += image(icon, icon_state = "almayer_deco_wall[r2]") + special_icon = TRUE + icon_state = "almayer_deco_wall[decoration_type]" + else // Wall connection was broken, return to normality + special_icon = FALSE + return ..() /turf/closed/wall/almayer/take_damage(dam, mob/M) var/damage_check = max(0, damage + dam) @@ -51,6 +59,24 @@ damage_cap = HEALTH_WALL_REINFORCED icon_state = "reinforced" +/// Acts like /turf/closed/wall/almayer/outer until post-hijack where it reverts to /turf/closed/wall/almayer/reinforced. +/turf/closed/wall/almayer/reinforced/temphull + name = "heavy reinforced hull" + desc = "A highly reinforced metal wall used to separate rooms and make up the ship. It would take a great impact to weaken this wall." + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "temphull" + hull = TRUE + +/turf/closed/wall/almayer/reinforced/temphull/Initialize() + . = ..() + if(is_mainship_level(z)) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_IMPACTED, PROC_REF(de_hull)) + +/turf/closed/wall/almayer/reinforced/temphull/proc/de_hull() + SIGNAL_HANDLER + hull = FALSE + desc = "A highly reinforced metal wall used to separate rooms and make up the ship. It has been weakened by a great impact." + /turf/closed/wall/almayer/outer name = "outer hull" desc = "A metal wall used to separate space from the ship" @@ -255,15 +281,15 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) tag = "LOBBYART" /proc/force_lobby_art(art_id) - displayed_lobby_art = art_id + GLOB.displayed_lobby_art = art_id var/turf/closed/wall/indestructible/splashscreen/SS = locate("LOBBYART") var/list/lobby_arts = CONFIG_GET(str_list/lobby_art_images) var/list/lobby_authors = CONFIG_GET(str_list/lobby_art_authors) - SS.icon_state = lobby_arts[displayed_lobby_art] - SS.desc = "Artwork by [lobby_authors[displayed_lobby_art]]" + SS.icon_state = lobby_arts[GLOB.displayed_lobby_art] + SS.desc = "Artwork by [lobby_authors[GLOB.displayed_lobby_art]]" for(var/client/C in GLOB.clients) - if(displayed_lobby_art != -1) - var/author = lobby_authors[displayed_lobby_art] + if(GLOB.displayed_lobby_art != -1) + var/author = lobby_authors[GLOB.displayed_lobby_art] if(author != "Unknown") to_chat_forced(C, SPAN_ROUNDBODY("
    This round's lobby art is brought to you by [author]
    ")) @@ -814,7 +840,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) var/datum/movable_wall_group/MWG = new() MWG.add_structure(current) - for(var/dir in cardinal) + for(var/dir in GLOB.cardinals) connected = locate() in get_step(current, dir) if(connected in current_walls) if(connected.group == src) @@ -949,7 +975,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) /obj/structure/alien/movable_wall/proc/update_connections(propagate = FALSE) var/list/wall_dirs = list() - for(var/dir in alldirs) + for(var/dir in GLOB.alldirs) var/obj/structure/alien/movable_wall/MW = locate() in get_step(src, dir) if(!(MW in group.walls)) continue @@ -1003,7 +1029,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) /obj/structure/alien/movable_wall/proc/recalculate_structure() var/list/found_structures = list() var/current_walls = 0 - for(var/i in cardinal) + for(var/i in GLOB.cardinals) var/turf/T = get_step(src, i) var/obj/structure/alien/movable_wall/MW = locate() in T if(!MW) @@ -1060,7 +1086,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) return COMPONENT_TURF_ALLOW_MOVEMENT /obj/structure/alien/movable_wall/Move(NewLoc, direct) - if(!(direct in cardinal)) + if(!(direct in GLOB.cardinals)) return group.try_move_in_direction(direct) @@ -1114,6 +1140,10 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) if(src in P.permutated) return + //Ineffective if someone is sitting on the wall + if(locate(/mob) in contents) + return ..() + if(!prob(chance_to_reflect)) if(P.ammo.damage_type == BRUTE) P.damage *= brute_multiplier @@ -1189,7 +1219,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) M.animation_attack_on(src) M.visible_message(SPAN_XENONOTICE("\The [M] claws \the [src]!"), \ - SPAN_XENONOTICE("You claw \the [src].")) + SPAN_XENONOTICE("We claw \the [src].")) playsound(src, "alien_resin_break", 25) if (M.hivenumber == hivenumber) take_damage(Ceiling(HEALTH_WALL_XENO * 0.25)) //Four hits for a regular wall @@ -1230,7 +1260,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) . = ..() if(.) var/turf/T - for(var/i in cardinal) + for(var/i in GLOB.cardinals) T = get_step(src, i) if(!istype(T)) continue for(var/obj/structure/mineral_door/resin/R in T) diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm index 2387a2086192..77143384e7e7 100644 --- a/code/game/turfs/walls/walls.dm +++ b/code/game/turfs/walls/walls.dm @@ -73,7 +73,7 @@ . = ..() if(.) //successful turf change var/turf/T - for(var/i in cardinal) + for(var/i in GLOB.cardinals) T = get_step(src, i) //nearby glowshrooms updated @@ -88,7 +88,7 @@ if(istype(found_object, /obj/structure/sign/poster)) var/obj/structure/sign/poster/found_poster = found_object found_poster.roll_and_drop(src) - if(istype(found_object, /obj/effect/alien/weeds)) + if(istype(found_object, /obj/effect/alien/weeds/weedwall)) qdel(found_object) var/list/turf/cardinal_neighbors = list(get_step(src, NORTH), get_step(src, SOUTH), get_step(src, EAST), get_step(src, WEST)) @@ -170,6 +170,9 @@ if (acided_hole) . += SPAN_WARNING("There's a large hole in the wall that could've been caused by some sort of acid.") + if(flags_turf & TURF_ORGANIC) + return // Skip the part below. 'Organic' walls aren't deconstructable with tools. + switch(d_state) if(WALL_STATE_WELD) . += SPAN_INFO("The outer plating is intact. A blowtorch should slice it open.") diff --git a/code/game/verbs/discord.dm b/code/game/verbs/discord.dm index 210038084caa..2446c89aafe5 100644 --- a/code/game/verbs/discord.dm +++ b/code/game/verbs/discord.dm @@ -29,7 +29,7 @@ var/datum/entity/discord_identifier/new_identifier = DB_ENTITY(/datum/entity/discord_identifier) var/not_unique = TRUE - var/long_list = operation_postfixes + operation_prefixes + operation_titles + var/long_list = GLOB.operation_postfixes + GLOB.operation_prefixes + GLOB.operation_titles var/token while(not_unique) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 3c964cf4011b..2fe22ef3d4da 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -15,10 +15,10 @@ return if(!admin_holder || !(admin_holder.rights & R_MOD)) - if(!ooc_allowed) //Send to LOOC instead + if(!GLOB.ooc_allowed) //Send to LOOC instead looc(msg) return - if(!dooc_allowed && (mob.stat == DEAD || isobserver(mob))) + if(!GLOB.dooc_allowed && (mob.stat == DEAD || isobserver(mob))) to_chat(usr, SPAN_DANGER("OOC for dead mobs has been turned off.")) return if(prefs.muted & MUTE_OOC) @@ -108,10 +108,10 @@ return if(!admin_holder || !(admin_holder.rights & R_MOD)) - if(!looc_allowed) + if(!GLOB.looc_allowed) to_chat(src, SPAN_DANGER("LOOC is globally muted")) return - if(!dlooc_allowed && (mob.stat != CONSCIOUS || isobserver(mob))) + if(!GLOB.dlooc_allowed && (mob.stat != CONSCIOUS || isobserver(mob))) to_chat(usr, SPAN_DANGER("Sorry, you cannot utilize LOOC while dead or incapacitated.")) return if(prefs.muted & MUTE_OOC) @@ -150,7 +150,7 @@ if(C.prefs.toggles_chat & CHAT_LOOC) to_chat(C, "LOOC: [display_name]: [msg]") - if(mob.looc_overhead || ooc_allowed) + if(mob.looc_overhead || GLOB.ooc_allowed) var/transmit_language = isxeno(mob) ? LANGUAGE_XENOMORPH : LANGUAGE_ENGLISH mob.langchat_speech(msg, heard, GLOB.all_languages[transmit_language], "#ff47d7") diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm index f09de72da2e6..6b80d19bbabf 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -84,7 +84,7 @@ var/list/options = list() if(CLIENT_IS_STAFF(src)) - options = note_categories.Copy() + options = GLOB.note_categories.Copy() if(admin_holder.rights & R_PERMISSIONS) MA = TRUE else if(!isCouncil(src)) @@ -97,13 +97,13 @@ return target = ckey(target) - if(RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_COUNCIL) + if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_COUNCIL) options |= "Commanding Officer" edit_C = TRUE - if(RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_COUNCIL) + if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_COUNCIL) options |= "Synthetic" edit_S = TRUE - if(RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_COUNCIL) + if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_COUNCIL) options |= "Yautja" edit_Y = TRUE @@ -116,17 +116,17 @@ if("Merit") show_other_record(NOTE_MERIT, choice, target, TRUE) if("Commanding Officer") - if(MA || (RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_LEADER)) + if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_LEADER)) show_other_record(NOTE_COMMANDER, choice, target, TRUE, TRUE) else show_other_record(NOTE_COMMANDER, choice, target, edit_C) if("Synthetic") - if(MA || (RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_LEADER)) + if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_LEADER)) show_other_record(NOTE_SYNTHETIC, choice, target, TRUE, TRUE) else show_other_record(NOTE_SYNTHETIC, choice, target, edit_S) if("Yautja") - if(MA || (RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_LEADER)) + if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_LEADER)) show_other_record(NOTE_YAUTJA, choice, target, TRUE, TRUE) else show_other_record(NOTE_YAUTJA, choice, target, edit_Y) @@ -143,7 +143,7 @@ dat += "" var/color = "#008800" - var/add_dat = "Add Admin Note
    Add Confidential Admin Note
    " + var/add_dat = "Add Admin Note
    Add Confidential Admin Note
    " switch(note_category) if(NOTE_MERIT) color = "#9e3dff" @@ -181,3 +181,47 @@ dat += "" show_browser(src, dat, "[target]'s [category_text] Notes", "otherplayersinfo", "size=480x480") + +GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) + +/datum/medals_view_tgui/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MedalsViewer", "[user.ckey]'s Medals") + ui.open() + +/datum/medals_view_tgui/ui_static_data(mob/user) + . = ..() + .["medals"] = list() + + for(var/datum/view_record/medal_view/medal as anything in DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id))) + var/xeno_medal = FALSE + if(medal.medal_type in GLOB.xeno_medals) + xeno_medal = TRUE + + var/list/current_medal = list( + "round_id" = medal.round_id, + "medal_type" = medal.medal_type, + "medal_icon" = replacetext(medal.medal_type, " ", "-"), + "xeno_medal" = xeno_medal, + "recipient_name" = medal.recipient_name, + "recipient_role" = medal.recipient_role, + "giver_name" = medal.giver_name, + "citation" = medal.citation + ) + + .["medals"] += list(current_medal) + +/datum/medals_view_tgui/ui_state(mob/user) + return GLOB.always_state + +/datum/medals_view_tgui/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/medal) + ) + +/client/verb/view_own_medals() + set name = "View Own Medals" + set category = "OOC.Records" + + GLOB.medals_view_tgui.tgui_interact(mob) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 8a249d297cbe..5871fdc7a152 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -42,6 +42,8 @@ var/list/Lines = list() if(admin_holder && ((R_ADMIN & admin_holder.rights) || (R_MOD & admin_holder.rights))) for(var/client/C in GLOB.clients) + if(!CLIENT_HAS_RIGHTS(src, R_STEALTH) && (CLIENT_IS_STEALTHED(C))) + continue var/entry = "[C.key]" if(C.mob) //Juuuust in case if(istype(C.mob, /mob/new_player)) @@ -83,7 +85,7 @@ counted_humanoids["Infected humans"]++ if(C.mob.faction == FACTION_MARINE) counted_humanoids[FACTION_MARINE]++ - if(C.mob.job in (ROLES_MARINES)) + if(C.mob.job in (GLOB.ROLES_MARINES)) counted_humanoids["USCM Marines"]++ else counted_humanoids[C.mob.faction]++ @@ -139,7 +141,7 @@ else for(var/client/C in GLOB.clients) - if(C.admin_holder && C.admin_holder.fakekey) + if((C.admin_holder && C.admin_holder.fakekey) || (CLIENT_IS_STEALTHED(C))) continue Lines += C.key @@ -160,7 +162,7 @@ if(CONFIG_GET(flag/show_manager)) LAZYSET(mappings, "Management", R_PERMISSIONS) if(CONFIG_GET(flag/show_devs)) - LAZYSET(mappings, "Maintainers", R_PROFILER) + LAZYSET(mappings, "Maintainers", R_PROFILER) LAZYSET(mappings, "Admins", R_ADMIN) if(CONFIG_GET(flag/show_mods)) LAZYSET(mappings, "Moderators", R_MOD) @@ -172,6 +174,8 @@ LAZYSET(listings, category, list()) for(var/client/C in GLOB.admins) + if(CLIENT_IS_STEALTHED(C) && !CLIENT_HAS_RIGHTS(src, R_STEALTH)) + continue if(C.admin_holder?.fakekey && !CLIENT_IS_STAFF(src)) continue for(var/category in mappings) @@ -182,12 +186,14 @@ for(var/category in listings) dat += "
    Current [category] ([length(listings[category])]):
    \n" for(var/client/entry in listings[category]) - dat += "\t[entry.key] is a [entry.admin_holder.rank]" + dat += "\t[entry.key] is \a [entry.admin_holder.rank]" if(entry.admin_holder.extra_titles?.len) for(var/srank in entry.admin_holder.extra_titles) dat += " & [srank]" if(CLIENT_IS_STAFF(src)) - if(entry.admin_holder?.fakekey) + if(CLIENT_IS_STEALTHED(entry)) + dat += " (STEALTHED)" + else if(entry.admin_holder?.fakekey) dat += " (HIDDEN)" if(istype(entry.mob, /mob/dead/observer)) dat += " - Observing" diff --git a/code/game/world.dm b/code/game/world.dm index fce40ca468ae..f68263412715 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -1,10 +1,8 @@ -var/world_view_size = 7 -var/lobby_view_size = 16 +GLOBAL_VAR_INIT(world_view_size, 7) +GLOBAL_VAR_INIT(lobby_view_size, 16) -var/internal_tick_usage = 0 - -var/list/reboot_sfx = file2list("config/reboot_sfx.txt") +GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world mob = /mob/new_player turf = /turf/open/space/basic @@ -18,7 +16,6 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") if (debug_server) LIBCALL(debug_server, "auxtools_init")() enable_debugging() - internal_tick_usage = 0.2 * world.tick_lag hub_password = "kMZy3U5jJHSiBQjr" #ifdef BYOND_TRACY @@ -49,8 +46,6 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") LoadBans() load_motd() load_tm_message() - load_mode() - loadShuttleInfoDatums() populate_gear_list() initialize_global_regex() @@ -67,12 +62,10 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") // Only do offline sleeping when the server isn't running unit tests or hosting a local dev test sleep_offline = (!running_tests && !testing_locally) - if(!RoleAuthority) - RoleAuthority = new /datum/authority/branch/role() + if(!GLOB.RoleAuthority) + GLOB.RoleAuthority = new /datum/authority/branch/role() to_world(SPAN_DANGER("\b Job setup complete")) - if(!EvacuationAuthority) EvacuationAuthority = new - initiate_minimap_icons() change_tick_lag(CONFIG_GET(number/ticklag)) @@ -91,8 +84,8 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") update_status() //Scramble the coords obsfucator - obfs_x = rand(-500, 500) //A number between -100 and 100 - obfs_y = rand(-500, 500) //A number between -100 and 100 + GLOB.obfs_x = rand(-500, 500) //A number between -100 and 100 + GLOB.obfs_y = rand(-500, 500) //A number between -100 and 100 spawn(3000) //so we aren't adding to the round-start lag if(CONFIG_GET(flag/ToRban)) @@ -101,7 +94,7 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") // If the server's configured for local testing, get everything set up ASAP. // Shamelessly stolen from the test manager's host_tests() proc if(testing_locally) - master_mode = "Extended" + GLOB.master_mode = "Extended" // Wait for the game ticker to initialize while(!SSticker.initialized) @@ -111,9 +104,6 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") SSticker.request_start() return -var/world_topic_spam_protect_ip = "0.0.0.0" -var/world_topic_spam_protect_time = world.timeofday - /proc/start_logging() GLOB.round_id = SSentity_manager.round.id @@ -174,11 +164,6 @@ var/world_topic_spam_protect_time = world.timeofday response["response"] = "Payload too large" return json_encode(response) - if(SSfail_to_topic?.IsRateLimited(addr)) - response["statuscode"] = 429 - response["response"] = "Rate limited" - return json_encode(response) - var/logging = CONFIG_GET(flag/log_world_topic) var/topic_decoded = rustg_url_decode(T) if(!rustg_json_is_valid(topic_decoded)) @@ -262,44 +247,29 @@ var/world_topic_spam_protect_time = world.timeofday shutdown() /world/proc/send_tgs_restart() - if(CONFIG_GET(string/new_round_alert_channel) && CONFIG_GET(string/new_round_alert_role_id)) - if(round_statistics) - send2chat("[round_statistics.round_name][GLOB.round_id ? " (Round [GLOB.round_id])" : ""] completed!", CONFIG_GET(string/new_round_alert_channel)) - if(SSmapping.next_map_configs) - var/datum/map_config/next_map = SSmapping.next_map_configs[GROUND_MAP] - if(next_map) - send2chat("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Restarting! Next map is [next_map.map_name]", CONFIG_GET(string/new_round_alert_channel)) - else - send2chat("<@&[CONFIG_GET(string/new_round_alert_role_id)]> Restarting!", CONFIG_GET(string/new_round_alert_channel)) - return + if(!CONFIG_GET(string/new_round_alert_channel)) + return + + if(!GLOB.round_statistics) + return + + send2chat(new /datum/tgs_message_content("[GLOB.round_statistics.round_name][GLOB.round_id ? " (Round [GLOB.round_id])" : ""] completed!"), CONFIG_GET(string/new_round_alert_channel)) /world/proc/send_reboot_sound() - var/reboot_sound = SAFEPICK(reboot_sfx) + var/reboot_sound = SAFEPICK(GLOB.reboot_sfx) if(reboot_sound) var/sound/reboot_sound_ref = sound(reboot_sound) for(var/client/client as anything in GLOB.clients) if(client?.prefs.toggles_sound & SOUND_REBOOT) SEND_SOUND(client, reboot_sound_ref) -/world/proc/load_mode() - var/list/Lines = file2list("data/mode.txt") - if(Lines.len) - if(Lines[1]) - master_mode = Lines[1] - log_misc("Saved mode is '[master_mode]'") - -/world/proc/save_mode(the_mode) - var/F = file("data/mode.txt") - fdel(F) - F << the_mode - /world/proc/load_motd() - join_motd = file2text("config/motd.txt") + GLOB.join_motd = file2text("config/motd.txt") /world/proc/load_tm_message() var/datum/getrev/revdata = GLOB.revdata if(revdata.testmerge.len) - current_tms = revdata.GetTestMergeInfo() + GLOB.current_tms = revdata.GetTestMergeInfo() /world/proc/update_status() //Note: Hub content is limited to 254 characters, including limited HTML/CSS. @@ -317,32 +287,10 @@ var/world_topic_spam_protect_time = world.timeofday world.status = s -#define FAILED_DB_CONNECTION_CUTOFF 1 -var/failed_db_connections = 0 -var/failed_old_db_connections = 0 - -// /hook/startup/proc/connectDB() -// if(!setup_database_connection()) -// world.log << "Your server failed to establish a connection with the feedback database." -// else -// world.log << "Feedback database connection established." -// return 1 - -var/datum/BSQL_Connection/connection -/proc/setup_database_connection() - - if(failed_db_connections > FAILED_DB_CONNECTION_CUTOFF) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to conenct anymore. - return 0 - - - return . - /proc/set_global_view(view_size) - world_view_size = view_size + GLOB.world_view_size = view_size for(var/client/c in GLOB.clients) - c.view = world_view_size - -#undef FAILED_DB_CONNECTION_CUTOFF + c.view = GLOB.world_view_size /proc/give_image_to_client(obj/O, icon_text) var/image/I = image(null, O) diff --git a/code/global.dm b/code/global.dm index bdde529a9af8..f141dc5d68ac 100644 --- a/code/global.dm +++ b/code/global.dm @@ -33,148 +33,9 @@ #define CLIENT_HAS_RIGHTS(cli, flags) ((cli?.admin_holder?.rights & flags) == flags) #define CLIENT_IS_STAFF(cli) (cli?.admin_holder?.rights & (R_MOD|R_ADMIN)) #define CLIENT_IS_MENTOR(cli) CLIENT_HAS_RIGHTS(cli, R_MENTOR) +#define CLIENT_IS_STEALTHED(cli) (CLIENT_HAS_RIGHTS(cli, R_STEALTH) && cli.prefs?.toggles_admin & ADMIN_STEALTHMODE) #define AHOLD_IS_MOD(ahold) (ahold && (ahold.rights & R_MOD)) #define AHOLD_IS_ADMIN(ahold) (ahold && (ahold.rights & R_ADMIN)) //items that ask to be called every cycle - -////////////// -var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \ - "big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \ - "table","td","th","tr") - -/////////////// - -var/command_name = "Central Command" -var/station_name = "[MAIN_SHIP_NAME]" -var/game_version = "Colonial Marines" -var/game_year = 2182 - -var/going = 1 -var/master_mode = "Distress Signal" - -/// If this is anything but "secret", the secret rotation will forceably choose this mode. -var/secret_force_mode = "secret" - -var/host = null -var/ooc_allowed = 1 -var/looc_allowed = 1 -var/dsay_allowed = 1 -var/dooc_allowed = 1 -var/dlooc_allowed = 0 -var/abandon_allowed = 1 -var/enter_allowed = 1 -var/shuttle_frozen = 0 -var/shuttle_left = 0 -var/midi_playing = 0 -var/heard_midi = 0 -var/total_silenced = 0 - -var/list/admin_log = list() -var/list/asset_log = list() - -var/CELLRATE = 0.006 // multiplier for watts per tick <> cell storage (eg: 0.02 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) - //It's a conversion constant. power_used*CELLRATE = charge_provided, or charge_used/CELLRATE = power_provided -var/CHARGELEVEL = 0.001 // Cap for how fast cells charge, as a percentage-per-tick (0.01 means cellcharge is capped to 1% per second) - -var/VehicleElevatorConsole -var/VehicleGearConsole - -//Spawnpoints. -var/list/fallen_list = list() -/// This is for dogtags placed on crosses- they will show up at the end-round memorial. -var/list/fallen_list_cross = list() -var/list/cardinal = list(NORTH, SOUTH, EAST, WEST) -var/list/diagonals = list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) -var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) -var/list/reverse_dir = list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63) - -var/list/combatlog = list() -var/list/IClog = list() -var/list/OOClog = list() -var/list/adminlog = list() - -var/Debug = 0 // global debug switch - -var/datum/moduletypes/mods = new() - -var/join_motd = null -var/current_tms - -// nanomanager, the manager for Nano UIs -var/datum/nanomanager/nanomanager = new() - -var/list/BorgWireColorToFlag = RandomBorgWires() -var/list/BorgIndexToFlag -var/list/BorgIndexToWireColor -var/list/BorgWireColorToIndex -var/list/AAlarmWireColorToFlag = RandomAAlarmWires() -var/list/AAlarmIndexToFlag -var/list/AAlarmIndexToWireColor -var/list/AAlarmWireColorToIndex - -//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 1024 -#define MAX_EMOTE_LEN 256 -#define MAX_PAPER_MESSAGE_LEN 3072 -#define MAX_BOOK_MESSAGE_LEN 9216 -#define MAX_NAME_LEN 26 - -/// 3 minutes in the station. -#define shuttle_time_in_station 3 MINUTES -/// 10 minutes to arrive. -#define shuttle_time_to_arrive 10 MINUTES - - // MySQL configuration - -var/sqladdress = "localhost" -var/sqlport = "3306" -var/sqldb = "cmdb" -var/sqllogin = "root" -var/sqlpass = "" - - - // For FTP requests. (i.e. downloading runtime logs.) - // However it'd be ok to use for accessing attack logs and such too, which are even laggier. -var/fileaccess_timer = 0 - -// Reference list for disposal sort junctions. Filled up by sorting junction's New() -/var/list/tagger_locations = list() - -//added for Xenoarchaeology, might be useful for other stuff -var/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") -var/list/alphabet_lowercase = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") - -var/list/greek_letters = list("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omnicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega") -var/list/nato_phonetic_alphabet = list("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliett", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-Ray", "Yankee", "Zulu") - -//Used for autocall procs on ERT -var/distress_cancel = 0 -var/destroy_cancel = 0 - -//Coordinate obsfucator -//Used by the rangefinders and linked systems to prevent coords collection/prefiring - -/// A number between -500 and 500. -var/global/obfs_x = 0 -/// A number between -500 and 500. -var/global/obfs_y = 0 - -// Which lobby art is on display -// This is updated by the lobby art turf when it initializes -var/displayed_lobby_art = -1 - -// Last global ID that was assigned to a mob (for round recording purposes) -var/last_mob_gid = 0 - -// be careful messing with this. the section names are hardcoded here, while defines are used everywhere else -// see the big commented block for an explanation -var/list/almayer_ship_sections = list( - "Upper deck Foreship", - "Upper deck Midship", - "Upper deck Aftship", - "Lower deck Foreship", - "Lower deck Midship", - "Lower deck Aftship" -) diff --git a/code/js/byjax.dm b/code/js/byjax.dm deleted file mode 100644 index 8e196ef013f4..000000000000 --- a/code/js/byjax.dm +++ /dev/null @@ -1,50 +0,0 @@ -//this function places received data into element with specified id. -var/const/js_byjax = {" - -function replaceContent() { - var args = Array.prototype.slice.call(arguments); - var id = args\[0\]; - var content = args\[1\]; - var callback = null; - if(args\[2\]){ - callback = args\[2\]; - if(args\[3\]){ - args = args.slice(3); - } - } - var parent = document.getElementById(id); - if(typeof(parent)!=='undefined' && parent!=null){ - parent.innerHTML = content?content:''; - } - if(callback && window\[callback\]){ - window\[callback\].apply(null,args); - } -} -"} - -/* -sends data to control_id:replaceContent - -receiver - mob -control_id - window id (for windows opened with browse(), it'll be "windowname.browser") -target_element - HTML element id -new_content - HTML content -callback - js function that will be called after the data is sent -callback_args - arguments for callback function - -Be sure to include required js functions in your page, or it'll raise an exception. -*/ -/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null) - if(receiver && target_element && control_id) // && winexists(receiver, control_id)) - var/list/argums = list(target_element, new_content) - if(callback) - argums += callback - if(callback_args) - argums += callback_args - argums = list2params(argums) -/* if(callback_args) - argums += "&[list2params(callback_args)]" -*/ - receiver << output(argums,"[control_id]:replaceContent") - return - diff --git a/code/js/menus.dm b/code/js/menus.dm deleted file mode 100644 index 0064522c2f81..000000000000 --- a/code/js/menus.dm +++ /dev/null @@ -1,37 +0,0 @@ -var/const/js_dropdowns = {" -function dropdowns() { - var divs = document.getElementsByTagName('div'); - var headers = new Array(); - var links = new Array(); - for(var i=0;i=0) { - elem.className = elem.className.replace('visible','hidden'); - this.className = this.className.replace('open','closed'); - this.innerHTML = this.innerHTML.replace('-','+'); - } - else { - elem.className = elem.className.replace('hidden','visible'); - this.className = this.className.replace('closed','open'); - this.innerHTML = this.innerHTML.replace('+','-'); - } - return false; - } - })(links\[i\]); - } - } -} -"} diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index bf6d8e261ab3..94f40629fc6a 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -18,7 +18,7 @@ return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.") WAIT_DB_READY - if(admin_datums[ckey] && (admin_datums[ckey].rights & R_MOD)) + if(GLOB.admin_datums[ckey] && (GLOB.admin_datums[ckey].rights & R_MOD)) return ..() if(CONFIG_GET(number/limit_players) && CONFIG_GET(number/limit_players) < GLOB.clients.len) diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index b64b1e4682fd..7dca354129ff 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -1,75 +1,75 @@ -var/CMinutes = null -var/savefile/Banlist +GLOBAL_VAR(CMinutes) +GLOBAL_DATUM(Banlist, /savefile) /proc/CheckBan(ckey, id, address) - if(!Banlist) // if Banlist cannot be located for some reason + if(!GLOB.Banlist) // if GLOB.Banlist cannot be located for some reason LoadBans() // try to load the bans - if(!Banlist) // uh oh, can't find bans! + if(!GLOB.Banlist) // uh oh, can't find bans! return 0 // ABORT ABORT ABORT . = list() var/appeal if(CONFIG_GET(string/banappeals)) appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)]" - Banlist.cd = "/base" - if( "[ckey][id]" in Banlist.dir ) - Banlist.cd = "[ckey][id]" - if (Banlist["temp"]) - if (!GetExp(Banlist["minutes"])) + GLOB.Banlist.cd = "/base" + if( "[ckey][id]" in GLOB.Banlist.dir ) + GLOB.Banlist.cd = "[ckey][id]" + if (GLOB.Banlist["temp"]) + if (!GetExp(GLOB.Banlist["minutes"])) ClearTempbans() return 0 else - .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]" + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" else - Banlist.cd = "/base/[ckey][id]" - .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: PERMENANT\nBy: [Banlist["bannedby"]][appeal]" + GLOB.Banlist.cd = "/base/[ckey][id]" + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" .["reason"] = "ckey/id" return . else - for (var/A in Banlist.dir) - Banlist.cd = "/base/[A]" + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" var/matches - if( ckey == Banlist["key"] ) + if( ckey == GLOB.Banlist["key"] ) matches += "ckey" - if( id == Banlist["id"] ) + if( id == GLOB.Banlist["id"] ) if(matches) matches += "/" matches += "id" - if( address == Banlist["ip"] ) + if( address == GLOB.Banlist["ip"] ) if(matches) matches += "/" matches += "ip" if(matches) - if(Banlist["temp"]) - if (!GetExp(Banlist["minutes"])) + if(GLOB.Banlist["temp"]) + if (!GetExp(GLOB.Banlist["minutes"])) ClearTempbans() return 0 else - .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]" + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]][appeal]" else - .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: PERMENANT\nBy: [Banlist["bannedby"]][appeal]" + .["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT\nBy: [GLOB.Banlist["bannedby"]][appeal]" .["reason"] = matches return . return 0 /proc/UpdateTime() //No idea why i made this a proc. - CMinutes = (world.realtime / 10) / 60 + GLOB.CMinutes = (world.realtime / 10) / 60 return 1 /proc/LoadBans() - Banlist = new("data/banlist.bdb") - log_admin("Loading Banlist") + GLOB.Banlist = new("data/banlist.bdb") + log_admin("Loading GLOB.Banlist") - if (!length(Banlist.dir)) log_admin("Banlist is empty.") + if (!length(GLOB.Banlist.dir)) log_admin("GLOB.Banlist is empty.") - if (!Banlist.dir.Find("base")) - log_admin("Banlist missing base dir.") - Banlist.dir.Add("base") - Banlist.cd = "/base" - else if (Banlist.dir.Find("base")) - Banlist.cd = "/base" + if (!GLOB.Banlist.dir.Find("base")) + log_admin("GLOB.Banlist missing base dir.") + GLOB.Banlist.dir.Add("base") + GLOB.Banlist.cd = "/base" + else if (GLOB.Banlist.dir.Find("base")) + GLOB.Banlist.cd = "/base" ClearTempbans() return 1 @@ -77,64 +77,64 @@ var/savefile/Banlist /proc/ClearTempbans() UpdateTime() - Banlist.cd = "/base" - for (var/A in Banlist.dir) - Banlist.cd = "/base/[A]" - if (!Banlist["key"] || !Banlist["id"]) + GLOB.Banlist.cd = "/base" + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" + if (!GLOB.Banlist["key"] || !GLOB.Banlist["id"]) RemoveBan(A) log_admin("Invalid Ban.") message_admins("Invalid Ban.") continue - if (!Banlist["temp"]) continue - if (CMinutes >= Banlist["minutes"]) RemoveBan(A) + if (!GLOB.Banlist["temp"]) continue + if (GLOB.CMinutes >= GLOB.Banlist["minutes"]) RemoveBan(A) return 1 /proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) - if(!Banlist) // if Banlist cannot be located for some reason + if(!GLOB.Banlist) // if GLOB.Banlist cannot be located for some reason LoadBans() // try to load the bans - if(!Banlist) // uh oh, can't find bans! + if(!GLOB.Banlist) // uh oh, can't find bans! return 0 // ABORT ABORT ABORT var/bantimestamp if (temp) UpdateTime() - bantimestamp = CMinutes + minutes + bantimestamp = GLOB.CMinutes + minutes - Banlist.cd = "/base" - if ( Banlist.dir.Find("[ckey][computerid]")) + GLOB.Banlist.cd = "/base" + if ( GLOB.Banlist.dir.Find("[ckey][computerid]")) RemoveBan("[ckey][computerid]") //have to remove dirs before processing - Banlist.dir.Add("[ckey][computerid]") - Banlist.cd = "/base/[ckey][computerid]" - Banlist["key"] << ckey - Banlist["id"] << computerid - Banlist["ip"] << address - Banlist["reason"] << reason - Banlist["bannedby"] << bannedby - Banlist["temp"] << temp + GLOB.Banlist.dir.Add("[ckey][computerid]") + GLOB.Banlist.cd = "/base/[ckey][computerid]" + GLOB.Banlist["key"] << ckey + GLOB.Banlist["id"] << computerid + GLOB.Banlist["ip"] << address + GLOB.Banlist["reason"] << reason + GLOB.Banlist["bannedby"] << bannedby + GLOB.Banlist["temp"] << temp if (temp) - Banlist["minutes"] << bantimestamp + GLOB.Banlist["minutes"] << bantimestamp return 1 /proc/RemoveBan(foldername) - if(!Banlist) // if Banlist cannot be located for some reason + if(!GLOB.Banlist) // if GLOB.Banlist cannot be located for some reason LoadBans() // try to load the bans - if(!Banlist) // uh oh, can't find bans! + if(!GLOB.Banlist) // uh oh, can't find bans! return 0 // ABORT ABORT ABORT var/key var/id - Banlist.cd = "/base/[foldername]" - Banlist["key"] >> key - Banlist["id"] >> id - Banlist.cd = "/base" + GLOB.Banlist.cd = "/base/[foldername]" + GLOB.Banlist["key"] >> key + GLOB.Banlist["id"] >> id + GLOB.Banlist.cd = "/base" - if (!Banlist.dir.Remove(foldername)) return 0 + if (!GLOB.Banlist.dir.Remove(foldername)) return 0 if(!usr) log_admin("Ban Expired: [key]") @@ -143,18 +143,18 @@ var/savefile/Banlist ban_unban_log_save("[key_name_admin(usr)] unbanned [key]") log_admin("[key_name_admin(usr)] unbanned [key]") message_admins("[key_name_admin(usr)] unbanned: [key]") - for (var/A in Banlist.dir) - Banlist.cd = "/base/[A]" - if (key == Banlist["key"] /*|| id == Banlist["id"]*/) - Banlist.cd = "/base" - Banlist.dir.Remove(A) + for (var/A in GLOB.Banlist.dir) + GLOB.Banlist.cd = "/base/[A]" + if (key == GLOB.Banlist["key"] /*|| id == GLOB.Banlist["id"]*/) + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Remove(A) continue return 1 /proc/GetExp(minutes as num) UpdateTime() - var/exp = minutes - CMinutes + var/exp = minutes - GLOB.CMinutes if (exp <= 0) return 0 else @@ -202,27 +202,27 @@ var/savefile/Banlist var/a = pick(1,0) var/b = pick(1,0) if(b) - Banlist.cd = "/base" - Banlist.dir.Add("trash[i]trashid[i]") - Banlist.cd = "/base/trash[i]trashid[i]" - Banlist["key"] << "trash[i]" + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Add("trash[i]trashid[i]") + GLOB.Banlist.cd = "/base/trash[i]trashid[i]" + GLOB.Banlist["key"] << "trash[i]" else - Banlist.cd = "/base" - Banlist.dir.Add("[last]trashid[i]") - Banlist.cd = "/base/[last]trashid[i]" - Banlist["key"] << last - Banlist["id"] << "trashid[i]" - Banlist["reason"] << "Trashban[i]." - Banlist["temp"] << a - Banlist["minutes"] << CMinutes + rand(1,2000) - Banlist["bannedby"] << "trashmin" + GLOB.Banlist.cd = "/base" + GLOB.Banlist.dir.Add("[last]trashid[i]") + GLOB.Banlist.cd = "/base/[last]trashid[i]" + GLOB.Banlist["key"] << last + GLOB.Banlist["id"] << "trashid[i]" + GLOB.Banlist["reason"] << "Trashban[i]." + GLOB.Banlist["temp"] << a + GLOB.Banlist["minutes"] << GLOB.CMinutes + rand(1,2000) + GLOB.Banlist["bannedby"] << "trashmin" last = "trash[i]" - Banlist.cd = "/base" + GLOB.Banlist.cd = "/base" /proc/ClearAllBans() - Banlist.cd = "/base" - for (var/A in Banlist.dir) + GLOB.Banlist.cd = "/base" + for (var/A in GLOB.Banlist.dir) RemoveBan(A) /client/proc/cmd_admin_do_ban(mob/M) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 5042167023e6..fe95affaffd2 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -121,10 +121,10 @@ var/t //text to show in the window var/u //unban button href arg var/dat = "" - for(r in jobban_keylist) - L = jobban_keylist[r] + for(r in GLOB.jobban_keylist) + L = GLOB.jobban_keylist[r] for(c in L) - i = jobban_keylist[r][c] //These are already strings, as you're iterating through them. Anyway, establish jobban. + i = GLOB.jobban_keylist[r][c] //These are already strings, as you're iterating through them. Anyway, establish jobban. t = "[c] - [r] ## [i]" u = "[c] - [r]" dat += "" @@ -138,8 +138,6 @@ var/dat = {" Change Game Mode
    "} - if(master_mode == "secret") - dat += "(Force Secret Mode)
    " dat += {"
    @@ -261,7 +259,7 @@ if("Remove") if(!GLOB.trait_name_map) GLOB.trait_name_map = generate_trait_name_map() - for(var/trait in D.status_traits) + for(var/trait in D._status_traits) var/name = GLOB.trait_name_map[trait] || trait available_traits[name] = trait @@ -282,7 +280,7 @@ if("All") source = null if("Specific") - source = input("Source to be removed","Trait Remove/Add") as null|anything in sort_list(D.status_traits[chosen_trait]) + source = input("Source to be removed","Trait Remove/Add") as null|anything in sort_list(D._status_traits[chosen_trait]) if(!source) return REMOVE_TRAIT(D,chosen_trait,source) diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index cbeb1169c807..5bb9692b0368 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -1,8 +1,8 @@ -var/list/admin_ranks = list() //list of all ranks with associated rights +GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights //load our rank - > rights associations /proc/load_admin_ranks() - admin_ranks.Cut() + GLOB.admin_ranks.Cut() var/previous_rights = 0 @@ -46,19 +46,19 @@ var/list/admin_ranks = list() //list of all ranks with associated rights if("host") rights |= RL_HOST if("everything") rights |= RL_EVERYTHING - admin_ranks[rank] = rights + GLOB.admin_ranks[rank] = rights previous_rights = rights #ifdef TESTING var/msg = "Permission Sets Built:\n" - for(var/rank in admin_ranks) - msg += "\t[rank] - [admin_ranks[rank]]\n" + for(var/rank in GLOB.admin_ranks) + msg += "\t[rank] - [GLOB.admin_ranks[rank]]\n" testing(msg) #endif /proc/load_admins() //clear the datums references - admin_datums.Cut() + GLOB.admin_datums.Cut() for(var/client/C in GLOB.admins) C.remove_admin_verbs() C.admin_holder = null @@ -78,9 +78,9 @@ var/list/admin_ranks = list() //list of all ranks with associated rights #ifdef TESTING var/msg = "Admins Built:\n" - for(var/ckey in admin_datums) + for(var/ckey in GLOB.admin_datums) var/rank - var/datum/admins/D = admin_datums[ckey] + var/datum/admins/D = GLOB.admin_datums[ckey] if(D) rank = D.rank msg += "\t[ckey] - [rank]\n" testing(msg) @@ -115,7 +115,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights return //load permissions associated with this rank - var/rights = admin_ranks[rank] + var/rights = GLOB.admin_ranks[rank] //create the admin datum and store it for later use var/datum/admins/D = new /datum/admins(rank, rights, ckey, extra_titles) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 7d9127313094..4623df8a5dc5 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1,5 +1,5 @@ //admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless -var/list/admin_verbs_default = list( +GLOBAL_LIST_INIT(admin_verbs_default, list( /datum/admins/proc/show_player_panel, /*shows an interface for individual players, with various links (links require additional flags*/ /client/proc/toggleadminhelpsound, /*toggles whether we hear a sound when adminhelps/PMs are used*/ /client/proc/becomelarva, /*lets you forgo your larva protection as staff member. */ @@ -36,6 +36,7 @@ var/list/admin_verbs_default = list( /client/proc/togglenichelogs, /datum/admins/proc/display_tags, /datum/admins/proc/player_notes_show, + /datum/admins/proc/check_ckey, /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/ /datum/admins/proc/togglelooc, /*toggles ooc on/off for everyone*/ /datum/admins/proc/toggledsay, /*toggles dsay on/off for everyone*/ @@ -66,12 +67,13 @@ var/list/admin_verbs_default = list( /datum/admins/proc/subtlemessageall, /datum/admins/proc/alertall, /datum/admins/proc/imaginary_friend, - /client/proc/toggle_ares_ping, + /client/proc/toggle_admin_pings, /client/proc/cmd_admin_say, /*staff-only ooc chat*/ /client/proc/cmd_mod_say, /* alternate way of typing asay, no different than cmd_admin_say */ - ) + /client/proc/cmd_admin_tacmaps_panel, + )) -var/list/admin_verbs_admin = list( +GLOBAL_LIST_INIT(admin_verbs_admin, list( /datum/admins/proc/togglejoin, /*toggles whether people can join the current game*/ /datum/admins/proc/announce, /*priority announce something to all clients.*/ /datum/admins/proc/view_game_log, /*shows the server game log (diary) for this round*/ @@ -91,22 +93,20 @@ var/list/admin_verbs_admin = list( /client/proc/force_teleporter, /client/proc/matrix_editor, /datum/admins/proc/open_shuttlepanel -) +)) -var/list/admin_verbs_ban = list( +GLOBAL_LIST_INIT(admin_verbs_ban, list( /client/proc/unban_panel // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes. Don't forget the comma in the line above when uncommenting this! -) +)) -var/list/admin_verbs_sounds = list( - /client/proc/play_web_sound, - /client/proc/play_sound, - /client/proc/stop_web_sound, - /client/proc/stop_sound, +GLOBAL_LIST_INIT(admin_verbs_sounds, list( + /client/proc/play_admin_sound, + /client/proc/stop_admin_sound, /client/proc/cmd_admin_vox_panel -) +)) -var/list/admin_verbs_minor_event = list( +GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/cmd_admin_change_custom_event, /datum/admins/proc/admin_force_distress, /datum/admins/proc/admin_force_ERT_shuttle, @@ -137,9 +137,9 @@ var/list/admin_verbs_minor_event = list( /client/proc/admin_biohazard_alert, /client/proc/toggle_hardcore_perma, /client/proc/toggle_bypass_joe_restriction, -) +)) -var/list/admin_verbs_major_event = list( +GLOBAL_LIST_INIT(admin_verbs_major_event, list( /client/proc/enable_event_mob_verbs, /client/proc/cmd_admin_dress_all, /client/proc/free_all_mobs_in_view, @@ -158,16 +158,16 @@ var/list/admin_verbs_major_event = list( /client/proc/change_taskbar_icon, /client/proc/change_weather, /client/proc/admin_blurb -) +)) -var/list/admin_verbs_spawn = list( +GLOBAL_LIST_INIT(admin_verbs_spawn, list( /datum/admins/proc/spawn_atom, /client/proc/game_panel, /client/proc/create_humans, /client/proc/create_xenos -) +)) -var/list/admin_verbs_server = list( +GLOBAL_LIST_INIT(admin_verbs_server, list( /datum/admins/proc/startnow, /datum/admins/proc/restart, /datum/admins/proc/delay, @@ -181,9 +181,9 @@ var/list/admin_verbs_server = list( /client/proc/cmd_debug_del_all, /datum/admins/proc/togglejoin, /client/proc/toggle_cdn, -) +)) -var/list/admin_verbs_debug = list( +GLOBAL_LIST_INIT(admin_verbs_debug, list( /client/proc/debug_role_authority, /client/proc/cmd_debug_make_powernets, /client/proc/cmd_debug_list_processing_items, @@ -215,19 +215,19 @@ var/list/admin_verbs_debug = list( /datum/admins/proc/view_href_log, /*shows the server HREF log for this round*/ /datum/admins/proc/view_tgui_log, /*shows the server TGUI log for this round*/ /client/proc/admin_blurb, -) +)) -var/list/admin_verbs_debug_advanced = list( +GLOBAL_LIST_INIT(admin_verbs_debug_advanced, list( /client/proc/callproc_datum, /client/proc/callproc, /client/proc/SDQL2_query, -) +)) -var/list/clan_verbs = list( +GLOBAL_LIST_INIT(clan_verbs, list( /client/proc/usr_create_new_clan -) +)) -var/list/debug_verbs = list( +GLOBAL_LIST_INIT(debug_verbs, list( /client/proc/Cell, /client/proc/cmd_assume_direct_control, /client/proc/ticklag, @@ -235,23 +235,26 @@ var/list/debug_verbs = list( /client/proc/view_power_update_stats_area, /client/proc/view_power_update_stats_machines, /client/proc/toggle_power_update_profiling, - /client/proc/nanomapgen_DumpImage, -) +)) -var/list/admin_verbs_possess = list( +GLOBAL_LIST_INIT(admin_verbs_possess, list( /client/proc/possess, /client/proc/release -) +)) -var/list/admin_verbs_permissions = list( +GLOBAL_LIST_INIT(admin_verbs_permissions, list( /client/proc/ToRban -) +)) -var/list/admin_verbs_color = list( +GLOBAL_LIST_INIT(admin_verbs_color, list( /client/proc/set_ooc_color_self -) +)) + +GLOBAL_LIST_INIT(admin_verbs_stealth, list( + /client/proc/toggle_admin_stealth +)) -var/list/admin_mob_event_verbs_hideable = list( +GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( /client/proc/hide_event_mob_verbs, /client/proc/cmd_admin_select_mob_rank, /client/proc/cmd_admin_dress, @@ -266,10 +269,10 @@ var/list/admin_mob_event_verbs_hideable = list( /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_grantallskills, /client/proc/admin_create_account -) +)) //verbs which can be hidden - needs work -var/list/admin_verbs_hideable = list( +GLOBAL_LIST_INIT(admin_verbs_hideable, list( /client/proc/release, /client/proc/possess, /client/proc/callproc_datum, @@ -288,9 +291,9 @@ var/list/admin_verbs_hideable = list( /datum/admins/proc/togglesleep, /client/proc/debug_variables, /client/proc/debug_global_variables -) +)) -var/list/admin_verbs_teleport = list( +GLOBAL_LIST_INIT(admin_verbs_teleport, list( /client/proc/teleport_panel, /*teleport panel, for jumping to things/places and getting things/places */ /client/proc/jumptocoord, /client/proc/jumptooffsetcoord, @@ -302,75 +305,78 @@ var/list/admin_verbs_teleport = list( /client/proc/Getmob, /client/proc/Getkey, /client/proc/toggle_noclip -) +)) -var/list/roundstart_mod_verbs = list( +GLOBAL_LIST_INIT(roundstart_mod_verbs, list( /client/proc/toggle_ob_spawn -) +)) /client/proc/add_admin_verbs() if(!admin_holder) return if(CLIENT_IS_STAFF(src)) - add_verb(src, admin_verbs_default) + add_verb(src, GLOB.admin_verbs_default) if(CLIENT_HAS_RIGHTS(src, R_MOD)) - add_verb(src, admin_verbs_ban) - add_verb(src, admin_verbs_teleport) + add_verb(src, GLOB.admin_verbs_ban) + add_verb(src, GLOB.admin_verbs_teleport) if(CLIENT_HAS_RIGHTS(src, R_EVENT)) - add_verb(src, admin_verbs_minor_event) + add_verb(src, GLOB.admin_verbs_minor_event) if(CLIENT_HAS_RIGHTS(src, R_ADMIN)) - add_verb(src, admin_verbs_admin) - add_verb(src, admin_verbs_major_event) + add_verb(src, GLOB.admin_verbs_admin) + add_verb(src, GLOB.admin_verbs_major_event) if(CLIENT_HAS_RIGHTS(src, R_MENTOR)) add_verb(src, /client/proc/cmd_mentor_say) add_verb(src, /datum/admins/proc/imaginary_friend) if(CLIENT_HAS_RIGHTS(src, R_BUILDMODE)) add_verb(src, /client/proc/togglebuildmodeself) if(CLIENT_HAS_RIGHTS(src, R_SERVER)) - add_verb(src, admin_verbs_server) + add_verb(src, GLOB.admin_verbs_server) if(CLIENT_HAS_RIGHTS(src, R_DEBUG)) - add_verb(src, admin_verbs_debug) + add_verb(src, GLOB.admin_verbs_debug) if(!CONFIG_GET(flag/debugparanoid) || CLIENT_HAS_RIGHTS(src, R_ADMIN)) - add_verb(src, admin_verbs_debug_advanced) // Right now it's just callproc but we can easily add others later on. + add_verb(src, GLOB.admin_verbs_debug_advanced) // Right now it's just callproc but we can easily add others later on. if(CLIENT_HAS_RIGHTS(src, R_POSSESS)) - add_verb(src, admin_verbs_possess) + add_verb(src, GLOB.admin_verbs_possess) if(CLIENT_HAS_RIGHTS(src, R_PERMISSIONS)) - add_verb(src, admin_verbs_permissions) + add_verb(src, GLOB.admin_verbs_permissions) if(CLIENT_HAS_RIGHTS(src, R_COLOR)) - add_verb(src, admin_verbs_color) + add_verb(src, GLOB.admin_verbs_color) if(CLIENT_HAS_RIGHTS(src, R_SOUNDS)) - add_verb(src, admin_verbs_sounds) + add_verb(src, GLOB.admin_verbs_sounds) if(CLIENT_HAS_RIGHTS(src, R_SPAWN)) - add_verb(src, admin_verbs_spawn) - if(RoleAuthority && (RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER)) - add_verb(src, clan_verbs) + add_verb(src, GLOB.admin_verbs_spawn) + if(CLIENT_HAS_RIGHTS(src, R_STEALTH)) + add_verb(src, GLOB.admin_verbs_stealth) + if(GLOB.RoleAuthority && (GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER)) + add_verb(src, GLOB.clan_verbs) /client/proc/add_admin_whitelists() if(CLIENT_IS_MENTOR(src)) - RoleAuthority.roles_whitelist[ckey] |= WHITELIST_MENTOR + GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_MENTOR if(CLIENT_IS_STAFF(src)) - RoleAuthority.roles_whitelist[ckey] |= WHITELIST_JOE + GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_JOE /client/proc/remove_admin_verbs() remove_verb(src, list( - admin_verbs_default, + GLOB.admin_verbs_default, /client/proc/togglebuildmodeself, - admin_verbs_admin, - admin_verbs_ban, - admin_verbs_minor_event, - admin_verbs_major_event, - admin_verbs_server, - admin_verbs_debug, - admin_verbs_debug_advanced, - admin_verbs_possess, - admin_verbs_permissions, - admin_verbs_color, - admin_verbs_sounds, - admin_verbs_spawn, - admin_verbs_teleport, - admin_mob_event_verbs_hideable, - admin_verbs_hideable, - debug_verbs, + GLOB.admin_verbs_admin, + GLOB.admin_verbs_ban, + GLOB.admin_verbs_minor_event, + GLOB.admin_verbs_major_event, + GLOB.admin_verbs_server, + GLOB.admin_verbs_debug, + GLOB.admin_verbs_debug_advanced, + GLOB.admin_verbs_possess, + GLOB.admin_verbs_permissions, + GLOB.admin_verbs_color, + GLOB.admin_verbs_sounds, + GLOB.admin_verbs_spawn, + GLOB.admin_verbs_teleport, + GLOB.admin_mob_event_verbs_hideable, + GLOB.admin_verbs_hideable, + GLOB.debug_verbs, + GLOB.admin_verbs_stealth, )) /client/proc/jobbans() @@ -405,7 +411,7 @@ var/list/roundstart_mod_verbs = list( if(!check_rights(R_ADMIN)) return if(!warned_ckey || !istext(warned_ckey)) return - if(warned_ckey in admin_datums) + if(warned_ckey in GLOB.admin_datums) to_chat(usr, "Error: warn(): You can't warn admins.") return @@ -436,7 +442,7 @@ var/list/roundstart_mod_verbs = list( set name = "Give Disease (old)" set desc = "Gives a (tg-style) Disease to a mob." var/list/disease_names = list() - for(var/v in diseases) + for(var/v in GLOB.diseases) disease_names.Add(copytext("[v]", 16, 0)) var/datum/disease/D = tgui_input_list(usr, "Choose the disease to give to that guy", "ACHOO", disease_names) if(!D) return @@ -586,16 +592,24 @@ var/list/roundstart_mod_verbs = list( message_admins("[key_name(usr)] announced a random fact.") SSticker.mode?.declare_fun_facts() -/client/proc/toggle_ares_ping() - set name = "Toggle ARES notification sound" - set category = "Preferences.Logs" +/client/proc/toggle_admin_pings() + set name = "Toggle StaffIC log sounds" + set category = "Preferences.Sound" prefs.toggles_sound ^= SOUND_ARES_MESSAGE if (prefs.toggles_sound & SOUND_ARES_MESSAGE) - to_chat(usr, SPAN_BOLDNOTICE("You will now hear a ping for ARES messages.")) + to_chat(usr, SPAN_BOLDNOTICE("You will now hear an audio cue for ARES and Prayer messages.")) else - to_chat(usr, SPAN_BOLDNOTICE("You will no longer hear a ping for ARES messages.")) + to_chat(usr, SPAN_BOLDNOTICE("You will no longer hear an audio cue for ARES and Prayer messages.")) +/client/proc/toggle_admin_stealth() + set name = "Toggle Admin Stealth" + set category = "Preferences" + prefs.toggles_admin ^= ADMIN_STEALTHMODE + if(prefs.toggles_admin & ADMIN_STEALTHMODE) + to_chat(usr, SPAN_BOLDNOTICE("You enabled admin stealth mode.")) + else + to_chat(usr, SPAN_BOLDNOTICE("You disabled admin stealth mode.")) #undef MAX_WARNS #undef AUTOBANTIME diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 18f06e79a66a..13c3b4664a15 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -7,23 +7,23 @@ won't recognize the older one, as an example. */ -var/jobban_runonce // Updates legacy bans with new info -var/jobban_keylist[0] //to store the keys & ranks +GLOBAL_VAR(jobban_runonce) // Updates legacy bans with new info +GLOBAL_LIST_EMPTY(jobban_keylist) /proc/check_jobban_path(X) . = ckey(X) - if(!islist(jobban_keylist[.])) //If it's not a list, we're in trouble. - jobban_keylist[.] = list() + if(!islist(GLOB.jobban_keylist[.])) //If it's not a list, we're in trouble. + GLOB.jobban_keylist[.] = list() /proc/jobban_fullban(mob/M, rank, reason) if (!M || !M.ckey) return rank = check_jobban_path(rank) - jobban_keylist[rank][M.ckey] = reason + GLOB.jobban_keylist[rank][M.ckey] = reason /proc/jobban_client_fullban(ckey, rank) if (!ckey || !rank) return rank = check_jobban_path(rank) - jobban_keylist[rank][ckey] = "Reason Unspecified" + GLOB.jobban_keylist[rank][ckey] = "Reason Unspecified" //returns a reason if M is banned from rank, returns 0 otherwise /proc/jobban_isbanned(mob/M, rank, datum/entity/player/P = null) @@ -49,17 +49,17 @@ var/jobban_keylist[0] //to store the keys & ranks /proc/jobban_loadbanfile() var/savefile/S=new("data/job_new.ban") - S["new_bans"] >> jobban_keylist + S["new_bans"] >> GLOB.jobban_keylist log_admin("Loading jobban_rank") - S["runonce"] >> jobban_runonce + S["runonce"] >> GLOB.jobban_runonce - if (!length(jobban_keylist)) - jobban_keylist=list() + if (!length(GLOB.jobban_keylist)) + GLOB.jobban_keylist=list() log_admin("jobban_keylist was empty") /proc/jobban_savebanfile() var/savefile/S=new("data/job_new.ban") - S["new_bans"] << jobban_keylist + S["new_bans"] << GLOB.jobban_keylist /proc/jobban_unban(mob/M, rank) jobban_remove("[M.ckey] - [ckey(rank)]") @@ -70,7 +70,7 @@ var/jobban_keylist[0] //to store the keys & ranks /proc/jobban_remove(X) var/regex/r1 = new("(.*) - (.*)") if(r1.Find(X)) - var/L[] = jobban_keylist[r1.group[2]] + var/L[] = GLOB.jobban_keylist[r1.group[2]] L.Remove(r1.group[1]) return 1 @@ -89,7 +89,7 @@ var/jobban_keylist[0] //to store the keys & ranks if(!M.ckey) //sanity to_chat(usr, "This mob has no ckey") return - if(!RoleAuthority) + if(!GLOB.RoleAuthority) to_chat(usr, "The Role Authority is not set up!") return @@ -109,31 +109,31 @@ var/jobban_keylist[0] //to store the keys & ranks WARNING!*/ //Regular jobs //Command (Blue) - jobs += generate_job_ban_list(M, P, ROLES_CIC, "CIC", "ddddff") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_CIC, "CIC", "ddddff") jobs += "
    " // SUPPORT - jobs += generate_job_ban_list(M, P, ROLES_AUXIL_SUPPORT, "Support", "ccccff") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_AUXIL_SUPPORT, "Support", "ccccff") jobs += "
    " // MPs - jobs += generate_job_ban_list(M, P, ROLES_POLICE, "Police", "ffdddd") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_POLICE, "Police", "ffdddd") jobs += "
    " //Engineering (Yellow) - jobs += generate_job_ban_list(M, P, ROLES_ENGINEERING, "Engineering", "fff5cc") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_ENGINEERING, "Engineering", "fff5cc") jobs += "
    " //Cargo (Yellow) //Copy paste, yada, yada. Hopefully Snail can rework this in the future. - jobs += generate_job_ban_list(M, P, ROLES_REQUISITION, "Requisition", "fff5cc") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_REQUISITION, "Requisition", "fff5cc") jobs += "
    " //Medical (White) - jobs += generate_job_ban_list(M, P, ROLES_MEDICAL, "Medical", "ffeef0") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_MEDICAL, "Medical", "ffeef0") jobs += "
    " //Marines - jobs += generate_job_ban_list(M, P, ROLES_MARINES, "Marines", "ffeeee") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_MARINES, "Marines", "ffeeee") jobs += "
    " // MISC - jobs += generate_job_ban_list(M, P, ROLES_MISC, "Misc", "aaee55") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_MISC, "Misc", "aaee55") jobs += "
    " // Xenos (Orange) - jobs += generate_job_ban_list(M, P, ROLES_XENO, "Xenos", "a268b1") + jobs += generate_job_ban_list(M, P, GLOB.ROLES_XENO, "Xenos", "a268b1") jobs += "
    " //Extra (Orange) var/isbanned_dept = jobban_isbanned(M, "Syndicate", P) diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index 37ffcd114e91..c5036e7ca1f7 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -8,7 +8,7 @@ /datum/tgs_chat_command/sdql/Run(datum/tgs_chat_user/sender, params) var/list/results = HandleUserlessSDQL(sender.friendly_name, params) if(!results) - return "Query produced no output" + return new /datum/tgs_message_content("Query produced no output") var/list/text_res = results.Copy(1, 3) var/list/refs = length(results) > 3 ? results.Copy(4) : null - return "[text_res.Join("\n")][refs ? "\nRefs: [refs.Join(" ")]" : ""]" + return new /datum/tgs_message_content("[text_res.Join("\n")][refs ? "\nRefs: [refs.Join(" ")]" : ""]") diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 644165be0fa0..910bafd50a9b 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -1,4 +1,5 @@ -/var/create_mob_html = null +/datum/admins/var/static/create_mob_html = null + /datum/admins/proc/create_mob(mob/user) if (!create_mob_html) var/mobjs = null @@ -7,4 +8,4 @@ create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"") create_mob_html = replacetext(create_mob_html, "/* href token */", RawHrefToken(forceGlobal = TRUE)) - show_browser(user, replacetext(create_mob_html, "/* ref src */", "\ref[src]"), "Create Mob", "create_mob", "size=425x475") + show_browser(user, replacetext(create_mob_html, "/* ref src */", "\ref[src]"), "Create Mob", "create_mob", "size=450x525") diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 9d344a1f551c..054fc20aef5e 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -1,4 +1,4 @@ -/var/create_object_html = null +/datum/admins/var/static/create_object_html = null /datum/admins/proc/create_object(mob/user) if (!create_object_html) @@ -8,7 +8,7 @@ create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"") create_object_html = replacetext(create_object_html, "/* href token */", RawHrefToken(forceGlobal = TRUE)) - show_browser(user, replacetext(create_object_html, "/* ref src */", "\ref[src]"), "Create Object", "create_object", "size=425x475") + show_browser(user, replacetext(create_object_html, "/* ref src */", "\ref[src]"), "Create Object", "create_object", "size=450x525") /datum/admins/proc/quick_create_object(mob/user) @@ -46,4 +46,4 @@ quick_create_object_html = replacetext(quick_create_object_html, "null /* object types */", "\"[objectjs]\"") quick_create_object_html = replacetext(quick_create_object_html, "/* href token */", RawHrefToken(forceGlobal = TRUE)) - show_browser(user, replacetext(quick_create_object_html, "/* ref src */", "\ref[src]"), "Quick Create Object", "quick_create_object", "size=425x475") + show_browser(user, replacetext(quick_create_object_html, "/* ref src */", "\ref[src]"), "Quick Create Object", "quick_create_object", "size=450x525") diff --git a/code/modules/admin/create_turf.dm b/code/modules/admin/create_turf.dm index c87034ecfd9f..cc8bd1a5ec77 100644 --- a/code/modules/admin/create_turf.dm +++ b/code/modules/admin/create_turf.dm @@ -1,4 +1,5 @@ -/var/create_turf_html = null +/datum/admins/var/static/create_turf_html = null + /datum/admins/proc/create_turf(mob/user) if (!create_turf_html) var/turfjs = null @@ -7,4 +8,4 @@ create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"") create_turf_html = replacetext(create_turf_html, "/* href token */", RawHrefToken(forceGlobal = TRUE)) - show_browser(usr, replacetext(create_turf_html, "/* ref src */", "\ref[src]"), "Create Turf", "create_turf", "size=425x475") + show_browser(usr, replacetext(create_turf_html, "/* ref src */", "\ref[src]"), "Create Turf", "create_turf", "size=450x525") diff --git a/code/modules/admin/fax_templates.dm b/code/modules/admin/fax_templates.dm index 91b23abb2422..2522acf92b3b 100644 --- a/code/modules/admin/fax_templates.dm +++ b/code/modules/admin/fax_templates.dm @@ -1,11 +1,13 @@ /proc/generate_templated_fax(show_wy_logo, fax_header, fax_subject, addressed_to, message_body, sent_by, sent_title, sent_department) + var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper) + var/dat = "" dat += "") == 1 || findtext(current_tag, " iwidth) ? iheight : iwidth + alert_overlay.pixel_y = initial(source.pixel_y) + alert_overlay.pixel_x = initial(source.pixel_x) if(higher_power > 32) var/diff = 32 / higher_power alert_overlay.transform = alert_overlay.transform.Scale(diff, diff) if(higher_power > 48) - alert_overlay.pixel_y = -(iheight / 2) * diff - alert_overlay.pixel_x = -(iwidth / 2) * diff + alert_overlay.pixel_y = -(iheight * 0.5) * diff + alert_overlay.pixel_x = -(iwidth * 0.5) * diff alert_overlay.layer = FLOAT_LAYER diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index c3266982b20d..8e9a513fdc88 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -95,7 +95,13 @@ mob.next_delay_update = world.time + mob.next_delay_delay /client/Move(n, direct) - if(world.time < next_movement || (mob.lying && mob.crawling)) + var/mob/living/living_mob + if(isliving(mob)) + living_mob = mob + + if(world.time < next_movement) + return + if(living_mob && living_mob.body_position == LYING_DOWN && mob.crawling) return next_move_dir_add = 0 @@ -134,7 +140,17 @@ if(!isliving(mob)) return mob.Move(n, direct) - if(!mob.canmove || mob.is_mob_incapacitated(TRUE) || (mob.lying && !mob.can_crawl)) + if(mob.is_mob_incapacitated(TRUE)) + return + + if(mob.buckled) + // Handle buckled relay before mobility because buckling inherently immobilizes + // This means you can (try to) move with a cargo tug or powerloader while immobilized, which i think makes sense + return mob.buckled.relaymove(mob, direct) + + if(!(living_mob.mobility_flags & MOBILITY_MOVE)) + return + if(living_mob.body_position == LYING_DOWN && !living_mob.can_crawl) return //Check if you are being grabbed and if so attemps to break it @@ -150,9 +166,6 @@ next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL return - if(mob.buckled) - return mob.buckled.relaymove(mob, direct) - if(!mob.z)//Inside an object, tell it we moved var/atom/O = mob.loc if(!O) @@ -169,10 +182,12 @@ move_delay += MOVE_REDUCTION_DIRECTION_LOCKED // by Geeves mob.cur_speed = Clamp(10/(move_delay + 0.5), MIN_SPEED, MAX_SPEED) - //We are now going to move - moving = TRUE - mob.move_intentionally = TRUE - if(mob.lying) + next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL // We pre-set this now for the crawling case. If crawling do_after fails, next_movement would be set after the attempt end instead of now. + + //Try to crawl first + if(living_mob && living_mob.body_position == LYING_DOWN) + if(mob.crawling) + return // Already doing it. //check for them not being a limbless blob (only humans have limbs) if(ishuman(mob)) var/mob/living/carbon/human/human = mob @@ -181,21 +196,19 @@ if(!(human.get_limb(zone))) extremities.Remove(zone) if(extremities.len < 4) - next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL - mob.move_intentionally = FALSE - moving = FALSE return //now crawl mob.crawling = TRUE - if(!do_after(mob, 3 SECONDS, INTERRUPT_MOVED|INTERRUPT_UNCONSCIOUS|INTERRUPT_STUNNED|INTERRUPT_RESIST|INTERRUPT_CHANGED_LYING, BUSY_ICON_GENERIC)) + if(!do_after(mob, 1 SECONDS, INTERRUPT_MOVED|INTERRUPT_UNCONSCIOUS|INTERRUPT_STUNNED|INTERRUPT_RESIST|INTERRUPT_CHANGED_LYING, NO_BUSY_ICON)) mob.crawling = FALSE - next_movement = world.time + MINIMAL_MOVEMENT_INTERVAL - mob.move_intentionally = FALSE - moving = FALSE return + if(!mob.crawling) + return // Crawling interrupted by a "real" move. Do nothing. In theory INTERRUPT_MOVED|INTERRUPT_CHANGED_LYING catches this in do_after. mob.crawling = FALSE + mob.move_intentionally = TRUE + moving = TRUE if(mob.confused) - mob.Move(get_step(mob, pick(cardinal))) + mob.Move(get_step(mob, pick(GLOB.cardinals))) else . = ..() diff --git a/code/modules/mob/mob_status_procs.dm b/code/modules/mob/mob_status_procs.dm index b700fad2c136..ced7b7bdaf45 100644 --- a/code/modules/mob/mob_status_procs.dm +++ b/code/modules/mob/mob_status_procs.dm @@ -1,301 +1,3 @@ -/mob/var/stun_timer = TIMER_ID_NULL - -/mob/proc/stun_callback() - stunned = 0 - handle_regular_status_updates(FALSE) - update_canmove() - if(stun_timer != TIMER_ID_NULL) - deltimer(stun_timer) - stun_timer = TIMER_ID_NULL - -/mob/proc/stun_callback_check() - if(stunned && stunned < recovery_constant) - stun_timer = addtimer(CALLBACK(src, PROC_REF(stun_callback)), (stunned/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) - return - - if(stun_timer != TIMER_ID_NULL) - deltimer(stun_timer) - stun_timer = TIMER_ID_NULL - -// adjust stun if needed, do not call it in adjust stunned -/mob/proc/stun_clock_adjustment() - return - -/mob/proc/Stun(amount) - if(status_flags & CANSTUN) - stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun - stun_clock_adjustment() - stun_callback_check() - update_canmove() - return - -/mob/proc/SetStun(amount) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned" - if(status_flags & CANSTUN) - stunned = max(amount,0) - stun_clock_adjustment() - stun_callback_check() - update_canmove() - return - -/mob/proc/AdjustStun(amount) - if(status_flags & CANSTUN) - stunned = max(stunned + amount,0) - stun_callback_check() - update_canmove() - return - -/mob/proc/Daze(amount) - if(status_flags & CANDAZE) - dazed = max(max(dazed,amount),0) - return - -/mob/proc/SetDaze(amount) - if(status_flags & CANDAZE) - dazed = max(amount,0) - return - -/mob/proc/AdjustDaze(amount) - if(status_flags & CANDAZE) - dazed = max(dazed + amount,0) - return - -/mob/proc/Slow(amount) - if(status_flags & CANSLOW) - slowed = max(slowed, amount, 0) - return - -/mob/proc/SetSlow(amount) - if(status_flags & CANSLOW) - slowed = max(amount,0) - return - -/mob/proc/AdjustSlow(amount) - SetSlow(amount + slowed) - return - -/mob/proc/Superslow(amount) - if(status_flags & CANSLOW) - superslowed = max(superslowed, amount, 0) - return - -/mob/proc/SetSuperslow(amount) - if(status_flags & CANSLOW) - superslowed = max(amount,0) - return - -/mob/proc/AdjustSuperslow(amount) - SetSuperslow(superslowed + amount) - return - -/mob/var/knocked_down_timer - -/mob/proc/knocked_down_callback() - knocked_down = 0 - handle_regular_status_updates(FALSE) - update_canmove() - knocked_down_timer = null - -/mob/proc/knocked_down_callback_check() - if(knocked_down && knocked_down < recovery_constant) - knocked_down_timer = addtimer(CALLBACK(src, PROC_REF(knocked_down_callback)), (knocked_down/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) // times whatever amount we have per tick - return - - if(knocked_down_timer) - deltimer(knocked_down_timer) - knocked_down_timer = null - -/mob/var/knocked_out_timer - -/mob/proc/knocked_out_start() - return - -/mob/proc/knocked_out_callback() - knocked_out = 0 - handle_regular_status_updates(FALSE) - update_canmove() - knocked_out_timer = null - -/mob/proc/knocked_out_callback_check() - if(knocked_out && knocked_out < recovery_constant) - knocked_out_start() - knocked_out_timer = addtimer(CALLBACK(src, PROC_REF(knocked_out_callback)), (knocked_out/recovery_constant) * 2 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE|TIMER_STOPPABLE) // times whatever amount we have per tick - return - else if(!knocked_out) - //It's been called, and we're probably inconscious, so fix that. - knocked_out_callback() - - if(knocked_out_timer) - deltimer(knocked_out_timer) - knocked_out_timer = null - -// adjust knockdown if needed, do not call it in adjust knockdown -/mob/proc/knockdown_clock_adjustment() - return - -/mob/proc/KnockDown(amount, force) - if((status_flags & CANKNOCKDOWN) || force) - knocked_down = max(max(knocked_down,amount),0) - knockdown_clock_adjustment() - knocked_down_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/SetKnockDown(amount) - if(status_flags & CANKNOCKDOWN) - knocked_down = max(amount,0) - knockdown_clock_adjustment() - knocked_down_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/AdjustKnockDown(amount) - if(status_flags & CANKNOCKDOWN) - knocked_down = max(knocked_down + amount,0) - knocked_down_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/knockout_clock_adjustment() - return - -/mob/proc/KnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(max(knocked_out,amount),0) - knockout_clock_adjustment() - knocked_out_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/SetKnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(amount,0) - knockout_clock_adjustment() - knocked_out_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/AdjustKnockOut(amount) - if(status_flags & CANKNOCKOUT) - knocked_out = max(knocked_out + amount,0) - knocked_out_callback_check() - update_canmove() //updates lying, canmove and icons - return - -/mob/proc/Sleeping(amount) - sleeping = max(max(sleeping,amount),0) - return - -/mob/proc/SetSleeping(amount) - sleeping = max(amount,0) - return - -/mob/proc/AdjustSleeping(amount) - sleeping = max(sleeping + amount,0) - return - -/mob/proc/Resting(amount) - resting = max(max(resting,amount),0) - return - -/mob/proc/SetResting(amount) - resting = max(amount,0) - return - -/mob/proc/AdjustResting(amount) - resting = max(resting + amount,0) - return - -/mob/proc/EyeBlur(amount) - eye_blurry = max(max(eye_blurry, amount), 0) - update_eye_blur() - return - -/mob/proc/SetEyeBlur(amount) - eye_blurry = max(amount, 0) - update_eye_blur() - return - -/mob/proc/AdjustEyeBlur(amount) - eye_blurry = max(eye_blurry + amount, 0) - update_eye_blur() - return - -/mob/proc/ReduceEyeBlur(amount) - eye_blurry = max(eye_blurry - amount, 0) - update_eye_blur() - return - -///Apply the blurry overlays to a mobs clients screen -/mob/proc/update_eye_blur() - if(!client) - return - var/atom/movable/plane_master_controller/game_plane_master_controller = hud_used.plane_master_controllers[PLANE_MASTERS_GAME] - - if(!eye_blurry) - clear_fullscreen("eye_blur", 0.5 SECONDS) - game_plane_master_controller.remove_filter("eye_blur") - return - - switch(client.prefs?.pain_overlay_pref_level) - if(PAIN_OVERLAY_IMPAIR) - overlay_fullscreen("eye_blur", /atom/movable/screen/fullscreen/impaired, CEILING(clamp(eye_blurry * 0.3, 1, 6), 1)) - if(PAIN_OVERLAY_LEGACY) - overlay_fullscreen("eye_blur", /atom/movable/screen/fullscreen/blurry) - else // PAIN_OVERLAY_BLURRY - game_plane_master_controller.add_filter("eye_blur", 1, gauss_blur_filter(clamp(eye_blurry * 0.1, 0.6, 3))) - - -/mob/proc/TalkStutter(amount) - stuttering = max(max(stuttering, amount), 0) - return - -/mob/proc/SetTalkStutter(amount) - stuttering = max(amount, 0) - return - -/mob/proc/AdjustTalkStutter(amount) - stuttering = max(stuttering + amount,0) - return - -/mob/proc/SetEyeBlind(amount) - eye_blind = max(amount, 0) - return - -/mob/proc/AdjustEyeBlind(amount) - eye_blind = max(eye_blind + amount, 0) - return - -/mob/proc/ReduceEyeBlind(amount) - eye_blind = max(eye_blind - amount, 0) - return - -/mob/proc/AdjustEarDeafness(amount) - var/prev_deaf = ear_deaf - ear_deaf = max(ear_deaf + amount, 0) - if(prev_deaf) - if(ear_deaf == 0) - on_deafness_loss() - else if(ear_deaf) - on_deafness_gain() - - -/mob/proc/SetEarDeafness(amount) - var/prev_deaf = ear_deaf - ear_deaf = max(amount, 0) - if(prev_deaf) - if(ear_deaf == 0) - on_deafness_loss() - else if(ear_deaf) - on_deafness_gain() - -/mob/proc/on_deafness_gain() - to_chat(src, SPAN_WARNING("You notice you can't hear anything... you're deaf!")) - SEND_SIGNAL(src, COMSIG_MOB_DEAFENED) - -/mob/proc/on_deafness_loss() - to_chat(src, SPAN_WARNING("You start hearing things again!")) - SEND_SIGNAL(src, COMSIG_MOB_REGAINED_HEARING) - /mob/proc/getBruteLoss() return diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index 92e46454cc5e..cd76618f3243 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -4,7 +4,7 @@ //Note that this proc does NOT do MMI related stuff! /mob/proc/change_mob_type(new_type = null, turf/location = null, new_name = null as text, delete_old_mob = 0 as num, subspecies) if(istype(src,/mob/new_player)) - to_chat(usr, SPAN_DANGER("cannot convert players who have not entered yet.")) + to_chat(usr, SPAN_DANGER("Cannot convert players who have not entered yet.")) return if(!new_type) @@ -18,7 +18,7 @@ return if( new_type == /mob/new_player ) - to_chat(usr, SPAN_DANGER("cannot convert into a new_player mob type.")) + to_chat(usr, SPAN_DANGER("Cannot convert into a new_player mob type.")) return var/mob/M diff --git a/code/modules/mob/mob_verbs.dm b/code/modules/mob/mob_verbs.dm index 19296ba90b20..1ba8985d56bd 100644 --- a/code/modules/mob/mob_verbs.dm +++ b/code/modules/mob/mob_verbs.dm @@ -32,7 +32,7 @@ return /mob/verb/view_stats() - set category = "OOC" + set category = "OOC.Records" set name = "View Playtimes" set desc = "View your playtimes." if(!SSentity_manager.ready) @@ -98,8 +98,8 @@ if(length(mind.memory) < 4000) mind.store_memory(msg) else - src.sleeping = 9999999 - message_admins("[key_name(usr)] auto-slept for attempting to exceed mob memory limit. [ADMIN_JMP(src.loc)]") + message_admins("[key_name(usr)] warned for attempting to exceed mob memory limit.]", loc.x, loc.y, loc.z) + to_chat(src, "You have exceeded the maximum memory limit. Sorry!") else to_chat(src, "The game appears to have misplaced your mind datum, so we can't show you your notes.") @@ -155,7 +155,7 @@ return M.key = key - if(M.client) M.client.change_view(world_view_size) + if(M.client) M.client.change_view(GLOB.world_view_size) // M.Login() //wat return @@ -222,6 +222,7 @@ set category = "IC" if(pulling) + REMOVE_TRAIT(pulling, TRAIT_FLOORED, CHOKEHOLD_TRAIT) var/mob/M = pulling pulling.pulledby = null pulling = null @@ -244,4 +245,3 @@ //so we must undo it here so the victim can move right away M.client.next_movement = world.time M.update_transform(TRUE) - M.update_canmove() diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm index 9ff317260ccf..4b25d7a2ae39 100644 --- a/code/modules/mob/new_player/login.dm +++ b/code/modules/mob/new_player/login.dm @@ -25,14 +25,14 @@ client.playtitlemusic() // To show them the full lobby art. This fixes itself on a mind transfer so no worries there. - client.change_view(lobby_view_size) + client.change_view(GLOB.lobby_view_size) // Credit the lobby art author - if(displayed_lobby_art != -1) + if(GLOB.displayed_lobby_art != -1) var/list/lobby_authors = CONFIG_GET(str_list/lobby_art_authors) - var/author = lobby_authors[displayed_lobby_art] + var/author = lobby_authors[GLOB.displayed_lobby_art] if(author != "Unknown") to_chat(src, SPAN_ROUNDBODY("
    This round's lobby art is brought to you by [author]
    ")) - if(join_motd) - to_chat(src, "
    [join_motd]
    ") - if(current_tms) - to_chat(src, SPAN_BOLDANNOUNCE(current_tms)) + if(GLOB.join_motd) + to_chat(src, "
    [GLOB.join_motd]
    ") + if(GLOB.current_tms) + to_chat(src, SPAN_BOLDANNOUNCE(GLOB.current_tms)) diff --git a/code/modules/mob/new_player/logout.dm b/code/modules/mob/new_player/logout.dm index 11589f59ee34..4f9a45f5667e 100644 --- a/code/modules/mob/new_player/logout.dm +++ b/code/modules/mob/new_player/logout.dm @@ -1,6 +1,6 @@ /mob/new_player/Logout() if(ready) - readied_players-- + GLOB.readied_players-- ready = FALSE . = ..() if(!spawning)//Here so that if they are spawning and log out, the other procs can play out and they will have a mob to come back to. diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 5da499dabc52..ccf649fb0509 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -6,7 +6,6 @@ invisibility = 101 density = FALSE - canmove = FALSE anchored = TRUE universal_speak = TRUE stat = DEAD @@ -15,10 +14,11 @@ . = ..() GLOB.new_player_list += src GLOB.dead_mob_list -= src + ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_INHERENT) /mob/new_player/Destroy() if(ready) - readied_players-- + GLOB.readied_players-- GLOB.new_player_list -= src return ..() @@ -34,14 +34,15 @@ return var/tempnumber = rand(1, 999) - var/postfix_text = (client.prefs && client.prefs.xeno_postfix) ? ("-"+client.prefs.xeno_postfix) : "" - var/prefix_text = (client.prefs && client.prefs.xeno_prefix) ? client.prefs.xeno_prefix : "XX" + var/postfix_text = (client.xeno_postfix) ? ("-"+client.xeno_postfix) : "" + var/prefix_text = (client.xeno_prefix) ? client.xeno_prefix : "XX" var/xeno_text = "[prefix_text]-[tempnumber][postfix_text]" var/round_start = !SSticker || !SSticker.mode || SSticker.current_state <= GAME_STATE_PREGAME var/output = "
    Welcome," output +="
    [(client.prefs && client.prefs.real_name) ? client.prefs.real_name : client.key]" output +="
    [xeno_text]" + output += "

    Tutorial

    " output += "

    Setup Character

    " output += "

    View Playtimes

    " @@ -63,7 +64,7 @@ output += "
    " if (refresh) close_browser(src, "playersetup") - show_browser(src, output, null, "playersetup", "size=240x[round_start ? 330 : 460];can_close=0;can_minimize=0") + show_browser(src, output, null, "playersetup", "size=240x[round_start ? 500 : 610];can_close=0;can_minimize=0") return /mob/new_player/Topic(href, href_list[]) @@ -97,14 +98,14 @@ if("ready") if( (SSticker.current_state <= GAME_STATE_PREGAME) && !ready) // Make sure we don't ready up after the round has started ready = TRUE - readied_players++ + GLOB.readied_players++ new_player_panel_proc() if("unready") if((SSticker.current_state <= GAME_STATE_PREGAME) && ready) // Make sure we don't ready up after the round has started ready = FALSE - readied_players-- + GLOB.readied_players-- new_player_panel_proc() @@ -145,12 +146,12 @@ mind.transfer_to(observer, TRUE) if(observer.client) - observer.client.change_view(world_view_size) + observer.client.change_view(GLOB.world_view_size) observer.set_huds_from_prefs() qdel(src) - return 1 + return TRUE if("late_join") @@ -162,6 +163,11 @@ to_chat(src, SPAN_WARNING("Sorry, you cannot late join during [SSticker.mode.name]. You have to start at the beginning of the round. You may observe or try to join as an alien, if possible.")) return + if(client.player_data?.playtime_loaded && (client.get_total_human_playtime() < CONFIG_GET(number/notify_new_player_age)) && !length(client.prefs.completed_tutorials)) + if(tgui_alert(src, "You have little playtime and haven't completed any tutorials. Would you like to go to the tutorial menu?", "Tutorial", list("Yes", "No")) == "Yes") + tutorial_menu() + return + if(client.prefs.species != "Human") if(!is_alien_whitelisted(src, client.prefs.species) && CONFIG_GET(flag/usealienwhitelist)) to_chat(src, "You are currently not whitelisted to play [client.prefs.species].") @@ -207,7 +213,7 @@ if("SelectedJob") - if(!enter_allowed) + if(!GLOB.enter_allowed) to_chat(usr, SPAN_WARNING("There is an administrative lock on entering the game! (The dropship likely crashed into the Almayer. This should take at most 20 minutes.)")) return @@ -224,20 +230,39 @@ AttemptLateSpawn(href_list["job_selected"]) return + if("tutorial") + tutorial_menu() + else new_player_panel() +/mob/new_player/proc/tutorial_menu() + if(SSticker.current_state <= GAME_STATE_SETTING_UP) + to_chat(src, SPAN_WARNING("Please wait for the round to start before entering a tutorial.")) + return + + if(SSticker.current_state == GAME_STATE_FINISHED) + to_chat(src, SPAN_WARNING("The round has ended. Please wait for the next round to enter a tutorial.")) + return + + if(SSticker.tutorial_disabled) + to_chat(src, SPAN_WARNING("Tutorials are currently disabled because something broke, sorry!")) + return + + var/datum/tutorial_menu/menu = new(src) + menu.ui_interact(src) + /mob/new_player/proc/AttemptLateSpawn(rank) - var/datum/job/player_rank = RoleAuthority.roles_for_mode[rank] + var/datum/job/player_rank = GLOB.RoleAuthority.roles_for_mode[rank] if (src != usr) return if(SSticker.current_state != GAME_STATE_PLAYING) to_chat(usr, SPAN_WARNING("The round is either not ready, or has already finished!")) return - if(!enter_allowed) + if(!GLOB.enter_allowed) to_chat(usr, SPAN_WARNING("There is an administrative lock on entering the game! (The dropship likely crashed into the Almayer. This should take at most 20 minutes.)")) return - if(!RoleAuthority.assign_role(src, player_rank, 1)) + if(!GLOB.RoleAuthority.assign_role(src, player_rank, 1)) to_chat(src, alert("[rank] is not available. Please try another.")) return @@ -245,24 +270,25 @@ close_spawn_windows() var/mob/living/carbon/human/character = create_character(TRUE) //creates the human and transfers vars and mind - RoleAuthority.equip_role(character, player_rank, late_join = TRUE) + GLOB.RoleAuthority.equip_role(character, player_rank, late_join = TRUE) EquipCustomItems(character) - if((security_level > SEC_LEVEL_BLUE || EvacuationAuthority.evac_status) && player_rank.gets_emergency_kit) - to_chat(character, SPAN_HIGHDANGER("As you stagger out of hypersleep, the sleep bay blares: '[EvacuationAuthority.evac_status ? "VESSEL UNDERGOING EVACUATION PROCEDURES, SELF DEFENSE KIT PROVIDED" : "VESSEL IN HEIGHTENED ALERT STATUS, SELF DEFENSE KIT PROVIDED"]'.")) + if((GLOB.security_level > SEC_LEVEL_BLUE || SShijack.hijack_status) && player_rank.gets_emergency_kit) + to_chat(character, SPAN_HIGHDANGER("As you stagger out of hypersleep, the sleep bay blares: '[SShijack.evac_status ? "VESSEL UNDERGOING EVACUATION PROCEDURES, SELF DEFENSE KIT PROVIDED" : "VESSEL IN HEIGHTENED ALERT STATUS, SELF DEFENSE KIT PROVIDED"]'.")) character.put_in_hands(new /obj/item/storage/box/kit/cryo_self_defense(character.loc)) GLOB.data_core.manifest_inject(character) SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn - SSticker.mode.latejoin_tally += RoleAuthority.calculate_role_weight(player_rank) + SSticker.mode.latejoin_update(player_rank) + SSticker.mode.update_gear_scale() - for(var/datum/squad/sq in RoleAuthority.squads) + for(var/datum/squad/sq in GLOB.RoleAuthority.squads) if(sq) sq.max_engineers = engi_slot_formula(GLOB.clients.len) sq.max_medics = medic_slot_formula(GLOB.clients.len) - if(SSticker.mode.latejoin_larva_drop && SSticker.mode.latejoin_tally >= SSticker.mode.latejoin_larva_drop) - SSticker.mode.latejoin_tally -= SSticker.mode.latejoin_larva_drop + if(SSticker.mode.latejoin_larva_drop && SSticker.mode.latejoin_tally - SSticker.mode.latejoin_larva_used >= SSticker.mode.latejoin_larva_drop) + SSticker.mode.latejoin_larva_used += SSticker.mode.latejoin_larva_drop var/datum/hive_status/hive for(var/hivenumber in GLOB.hive_datum) hive = GLOB.hive_datum[hivenumber] @@ -276,11 +302,11 @@ if(player.get_playtime(STATISTIC_HUMAN) == 0 && player.get_playtime(STATISTIC_XENO) == 0) msg_admin_niche("NEW JOIN: [key_name(character, 1, 1, 0)]. IP: [character.lastKnownIP], CID: [character.computer_id]") if(character.client) - var/client/C = character.client - if(C.player_data && C.player_data.playtime_loaded && length(C.player_data.playtimes) == 0) + var/client/client = character.client + if(client.player_data && client.player_data.playtime_loaded && length(client.player_data.playtimes) == 0) msg_admin_niche("NEW PLAYER: [key_name(character, 1, 1, 0)]. IP: [character.lastKnownIP], CID: [character.computer_id]") - if(C.player_data && C.player_data.playtime_loaded && ((round(C.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1)) <= 5)) - msg_sea("NEW PLAYER: [key_name(character, 0, 1, 0)] only has [(round(C.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1))] hours as a human. Current role: [get_actual_job_name(character)] - Current location: [get_area(character)]") + if(client.player_data && client.player_data.playtime_loaded && ((round(client.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1)) <= CONFIG_GET(number/notify_new_player_age))) + msg_sea("NEW PLAYER: [key_name(character, 0, 1, 0)] only has [(round(client.get_total_human_playtime() DECISECONDS_TO_HOURS, 0.1))] hours as a human. Current role: [get_actual_job_name(character)] - Current location: [get_area(character)]") character.client.init_verbs() qdel(src) @@ -295,52 +321,52 @@ var/dat = "
    " dat += "Round Duration: [round(hours)]h [round(mins)]m
    " - if(EvacuationAuthority) - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_INITIATING) dat += "The [MAIN_SHIP_NAME] is being evacuated.
    " - if(EVACUATION_STATUS_COMPLETE) dat += "The [MAIN_SHIP_NAME] has undergone evacuation.
    " + if(SShijack) + switch(SShijack.evac_status) + if(EVACUATION_STATUS_INITIATED) + dat += "The [MAIN_SHIP_NAME] is being evacuated.
    " dat += "Choose from the following open positions:
    " var/roles_show = FLAG_SHOW_ALL_JOBS - for(var/i in RoleAuthority.roles_for_mode) - var/datum/job/J = RoleAuthority.roles_for_mode[i] - if(!RoleAuthority.check_role_entry(src, J, TRUE)) + for(var/i in GLOB.RoleAuthority.roles_for_mode) + var/datum/job/J = GLOB.RoleAuthority.roles_for_mode[i] + if(!GLOB.RoleAuthority.check_role_entry(src, J, TRUE)) continue var/active = 0 // Only players with the job assigned and AFK for less than 10 minutes count as active for(var/mob/M in GLOB.player_list) if(M.client && M.job == J.title) active++ - if(roles_show & FLAG_SHOW_CIC && ROLES_CIC.Find(J.title)) + if(roles_show & FLAG_SHOW_CIC && GLOB.ROLES_CIC.Find(J.title)) dat += "Command:
    " roles_show ^= FLAG_SHOW_CIC - else if(roles_show & FLAG_SHOW_AUXIL_SUPPORT && ROLES_AUXIL_SUPPORT.Find(J.title)) + else if(roles_show & FLAG_SHOW_AUXIL_SUPPORT && GLOB.ROLES_AUXIL_SUPPORT.Find(J.title)) dat += "
    Auxiliary Combat Support:
    " roles_show ^= FLAG_SHOW_AUXIL_SUPPORT - else if(roles_show & FLAG_SHOW_MISC && ROLES_MISC.Find(J.title)) + else if(roles_show & FLAG_SHOW_MISC && GLOB.ROLES_MISC.Find(J.title)) dat += "
    Other:
    " roles_show ^= FLAG_SHOW_MISC - else if(roles_show & FLAG_SHOW_POLICE && ROLES_POLICE.Find(J.title)) + else if(roles_show & FLAG_SHOW_POLICE && GLOB.ROLES_POLICE.Find(J.title)) dat += "
    Military Police:
    " roles_show ^= FLAG_SHOW_POLICE - else if(roles_show & FLAG_SHOW_ENGINEERING && ROLES_ENGINEERING.Find(J.title)) + else if(roles_show & FLAG_SHOW_ENGINEERING && GLOB.ROLES_ENGINEERING.Find(J.title)) dat += "
    Engineering:
    " roles_show ^= FLAG_SHOW_ENGINEERING - else if(roles_show & FLAG_SHOW_REQUISITION && ROLES_REQUISITION.Find(J.title)) + else if(roles_show & FLAG_SHOW_REQUISITION && GLOB.ROLES_REQUISITION.Find(J.title)) dat += "
    Requisitions:
    " roles_show ^= FLAG_SHOW_REQUISITION - else if(roles_show & FLAG_SHOW_MEDICAL && ROLES_MEDICAL.Find(J.title)) + else if(roles_show & FLAG_SHOW_MEDICAL && GLOB.ROLES_MEDICAL.Find(J.title)) dat += "
    Medbay:
    " roles_show ^= FLAG_SHOW_MEDICAL - else if(roles_show & FLAG_SHOW_MARINES && ROLES_MARINES.Find(J.title)) + else if(roles_show & FLAG_SHOW_MARINES && GLOB.ROLES_MARINES.Find(J.title)) dat += "
    Squad Riflemen:
    " roles_show ^= FLAG_SHOW_MARINES @@ -369,31 +395,9 @@ new_character.lastarea = get_area(loc) - client.prefs.copy_all_to(new_character, job, is_late_join) - - if (client.prefs.be_random_body) - var/datum/preferences/TP = new() - TP.randomize_appearance(new_character) - - if(mind) - mind_initialize() - mind.active = 0 //we wish to transfer the key manually - mind.original = new_character - mind.transfer_to(new_character) //won't transfer key since the mind is not active - mind.setup_human_stats() - - new_character.job = job - new_character.name = real_name - new_character.voice = real_name - - // Update the character icons - // This is done in set_species when the mob is created as well, but - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, regenerate_icons)) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_body), 1, 0) - INVOKE_ASYNC(new_character, TYPE_PROC_REF(/mob/living/carbon/human, update_hair)) + setup_human(new_character, src, is_late_join) - new_character.key = key //Manually transfer the key to log them in - new_character.client?.change_view(world_view_size) + new_character.client?.change_view(GLOB.world_view_size) return new_character diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index fb4dbac3c160..a4525e16a6c6 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -198,6 +198,16 @@ arm_equipment(preview_dummy, J, FALSE, FALSE, owner, show_job_gear) + // If the dummy was equipped with marine armor. + var/jacket = preview_dummy.get_item_by_slot(WEAR_JACKET) + if(istype(jacket, /obj/item/clothing/suit/storage/marine)) + var/obj/item/clothing/suit/storage/marine/armor = jacket + // If the armor has different sprite variants. + if(armor.armor_variation) + // Set its `icon_state` to the style the player picked as their 'Preferred Armor'. + armor.set_armor_style(preferred_armor) + armor.update_icon(preview_dummy) + if(isnull(preview_front)) preview_front = new() owner.add_to_screen(preview_front) @@ -237,9 +247,9 @@ if(JOB_SQUAD_TEAM_LEADER) return /datum/equipment_preset/uscm/tl_equipped if(JOB_CO) - if(length(RoleAuthority.roles_whitelist)) - var/datum/job/J = RoleAuthority.roles_by_name[JOB_CO] - return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(RoleAuthority.roles_whitelist, owner)]"] + if(length(GLOB.RoleAuthority.roles_whitelist)) + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_CO] + return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] return /datum/equipment_preset/uscm_ship/commander if(JOB_SO) return /datum/equipment_preset/uscm_ship/so @@ -258,9 +268,9 @@ if(JOB_COMBAT_REPORTER) return /datum/equipment_preset/uscm_ship/reporter if(JOB_SYNTH) - if(length(RoleAuthority.roles_whitelist)) - var/datum/job/J = RoleAuthority.roles_by_name[JOB_SYNTH] - return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(RoleAuthority.roles_whitelist, owner)]"] + if(length(GLOB.RoleAuthority.roles_whitelist)) + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_SYNTH] + return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] return /datum/equipment_preset/synth/uscm if(JOB_WORKING_JOE) return /datum/equipment_preset/synth/working_joe @@ -307,9 +317,9 @@ return pick(SSmapping.configs[GROUND_MAP].CO_survivor_types) return /datum/equipment_preset/uscm_ship/commander if(JOB_PREDATOR) - if(length(RoleAuthority.roles_whitelist)) - var/datum/job/J = RoleAuthority.roles_by_name[JOB_PREDATOR] - return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(RoleAuthority.roles_whitelist, owner)]"] + if(length(GLOB.RoleAuthority.roles_whitelist)) + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] + return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] return /datum/equipment_preset/yautja/blooded return /datum/equipment_preset/uscm/private_equipped diff --git a/code/modules/mob/new_player/sprite_accessories/hair.dm b/code/modules/mob/new_player/sprite_accessories/hair.dm index 0a112cadb11b..558884f26ff0 100644 --- a/code/modules/mob/new_player/sprite_accessories/hair.dm +++ b/code/modules/mob/new_player/sprite_accessories/hair.dm @@ -734,3 +734,29 @@ /datum/sprite_accessory/hair/croft name = "Croft" icon_state = "hair_croft" + +/datum/sprite_accessory/hair/aviator + name = "Aviator" + icon_state = "hair_aviator" + +/datum/sprite_accessory/hair/gantleponytail + name = "Gentle Ponytail" + icon_state = "hair_gantleponytail" + gender = FEMALE + +/datum/sprite_accessory/hair/edgar + name = "Edgar" + icon_state = "hair_edgar" + +/datum/sprite_accessory/hair/emobun + name = "Emo Little Bun" + icon_state = "hair_emobun" + +/datum/sprite_accessory/hair/taper + name = "Taper" + icon_state = "hair_taper" + +/datum/sprite_accessory/hair/gentlebraid + name = "Gentle Braid" + icon_state = "hair_braid3" + gender = FEMALE diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 8cd5b148a161..032888f26709 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -66,7 +66,7 @@ return if(!src.client.admin_holder || !(client.admin_holder.rights & R_MOD)) - if(!dsay_allowed) + if(!GLOB.dsay_allowed) to_chat(src, SPAN_DANGER("Deadchat is globally muted")) return @@ -174,7 +174,7 @@ for it but just ignore it. if(length(message) >= 2) var/channel_prefix = copytext(message, 1 ,3) - return department_radio_keys[channel_prefix] + return GLOB.department_radio_keys[channel_prefix] return null diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index dcb478d0fc7c..6dda93e4d9c2 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -7,8 +7,8 @@ drop_inv_item_on_ground(W) regenerate_icons() monkeyizing = 1 - canmove = 0 - stunned = 1 + anchored = TRUE + ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") icon = null invisibility = 101 for(var/t in limbs) @@ -68,7 +68,7 @@ for(var/obj/item/W in src) drop_inv_item_on_ground(W) monkeyizing = 1 - canmove = 0 + ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") icon = null invisibility = 101 return ..() @@ -85,7 +85,7 @@ drop_inv_item_on_ground(W) regenerate_icons() monkeyizing = 1 - canmove = 0 + ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") icon = null invisibility = 101 for(var/t in limbs) @@ -108,7 +108,7 @@ O.mind.original = O else O.key = key - if(O.client) O.client.change_view(world_view_size) + if(O.client) O.client.change_view(GLOB.world_view_size) O.forceMove(loc) O.job = "Cyborg" @@ -131,7 +131,7 @@ drop_inv_item_on_ground(W) regenerate_icons() monkeyizing = 1 - canmove = 0 + ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") icon = null invisibility = 101 for(var/t in limbs) @@ -180,34 +180,12 @@ new_xeno.a_intent = INTENT_HARM new_xeno.key = key - if(new_xeno.client) new_xeno.client.change_view(world_view_size) + if(new_xeno.client) new_xeno.client.change_view(GLOB.world_view_size) to_chat(new_xeno, "You are now an alien.") qdel(src) return -/mob/living/carbon/human/proc/corgize() - if (monkeyizing) - return - for(var/obj/item/W in src) - drop_inv_item_on_ground(W) - regenerate_icons() - monkeyizing = 1 - canmove = 0 - icon = null - invisibility = 101 - for(var/t in limbs) //this really should not be necessary - qdel(t) - - var/mob/living/simple_animal/corgi/new_corgi = new /mob/living/simple_animal/corgi (loc) - new_corgi.a_intent = INTENT_HARM - new_corgi.key = key - if(new_corgi.client) new_corgi.client.change_view(world_view_size) - - to_chat(new_corgi, "You are now a Corgi. Yap Yap!") - qdel(src) - return - /mob/living/carbon/human/Animalize() var/list/mobtypes = typesof(/mob/living/simple_animal) @@ -224,7 +202,7 @@ regenerate_icons() monkeyizing = 1 - canmove = 0 + ADD_TRAIT(src, TRAIT_INCAPACITATED, "Terminal Monkeyziation") icon = null invisibility = 101 @@ -234,7 +212,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - if(new_mob.client) new_mob.client.change_view(world_view_size) + if(new_mob.client) new_mob.client.change_view(GLOB.world_view_size) new_mob.a_intent = INTENT_HARM @@ -254,7 +232,7 @@ var/mob/new_mob = new mobpath(src.loc) new_mob.key = key - if(new_mob.client) new_mob.client.change_view(world_view_size) + if(new_mob.client) new_mob.client.change_view(GLOB.world_view_size) new_mob.a_intent = INTENT_HARM to_chat(new_mob, "You feel more... animalistic") diff --git a/code/modules/movement/launching/launching.dm b/code/modules/movement/launching/launching.dm index 96db667fe2ff..f72a7c773490 100644 --- a/code/modules/movement/launching/launching.dm +++ b/code/modules/movement/launching/launching.dm @@ -120,7 +120,7 @@ return TRUE // Proc for throwing items (should only really be used for throw) -/atom/movable/proc/throw_atom(atom/target, range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS) +/atom/movable/proc/throw_atom(atom/target, range, speed = 0, atom/thrower, spin, launch_type = NORMAL_LAUNCH, pass_flags = NO_FLAGS, list/end_throw_callbacks, list/collision_callbacks) var/temp_pass_flags = pass_flags switch (launch_type) if (NORMAL_LAUNCH) @@ -135,6 +135,10 @@ LM.speed = speed LM.thrower = thrower LM.spin = spin + if(end_throw_callbacks) + LM.end_throw_callbacks = end_throw_callbacks + if(collision_callbacks) + LM.collision_callbacks = collision_callbacks if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_LAUNCH, LM) & COMPONENT_LAUNCH_CANCEL) return diff --git a/code/modules/nano/nanomapgen.dm b/code/modules/nano/nanomapgen.dm deleted file mode 100644 index 749a07feb311..000000000000 --- a/code/modules/nano/nanomapgen.dm +++ /dev/null @@ -1,90 +0,0 @@ -// This file is a modified version of https://raw2.github.com/Baystation12/OldCode-BS12/master/code/TakePicture.dm - -#define NANOMAP_ICON_SIZE 4 -#define NANOMAP_MAX_ICON_DIMENSION 1024 - -#define NANOMAP_TILES_PER_IMAGE (NANOMAP_MAX_ICON_DIMENSION / NANOMAP_ICON_SIZE) - -#define NANOMAP_TERMINALERR 5 -#define NANOMAP_INPROGRESS 2 -#define NANOMAP_BADOUTPUT 2 -#define NANOMAP_SUCCESS 1 -#define NANOMAP_WATCHDOGSUCCESS 4 -#define NANOMAP_WATCHDOGTERMINATE 3 - - -//Call these procs to dump your world to a series of image files (!!) -//NOTE: Does not explicitly support non 32x32 icons or stuff with large pixel_* values, so don't blame me if it doesn't work perfectly - -/client/proc/nanomapgen_DumpImage() - set name = "Generate NanoUI Map" - set category = "Debug" - - if(admin_holder) - nanomapgen_DumpTile(1, 1, text2num(input(usr,"Enter the Z level to generate"))) - -/client/proc/nanomapgen_DumpTile(startX = 1, startY = 1, currentZ = 1, endX = -1, endY = -1) - - if (endX < 0 || endX > world.maxx) - endX = world.maxx - - if (endY < 0 || endY > world.maxy) - endY = world.maxy - - if (currentZ < 0 || currentZ > world.maxz) - to_chat(usr, "NanoMapGen: ERROR: currentZ ([currentZ]) must be between 1 and [world.maxz]") - - sleep(3) - return NANOMAP_TERMINALERR - - if (startX > endX) - to_chat(usr, "NanoMapGen: ERROR: startX ([startX]) cannot be greater than endX ([endX])") - - sleep(3) - return NANOMAP_TERMINALERR - - if (startY > endX) - to_chat(usr, "NanoMapGen: ERROR: startY ([startY]) cannot be greater than endY ([endY])") - sleep(3) - return NANOMAP_TERMINALERR - - var/icon/Tile = icon(file("nano/mapbase1024.png")) - if (Tile.Width() != NANOMAP_MAX_ICON_DIMENSION || Tile.Height() != NANOMAP_MAX_ICON_DIMENSION) - world.log << "NanoMapGen: ERROR: BASE IMAGE DIMENSIONS ARE NOT [NANOMAP_MAX_ICON_DIMENSION]x[NANOMAP_MAX_ICON_DIMENSION]" - sleep(3) - return NANOMAP_TERMINALERR - - world.log << "NanoMapGen: GENERATE MAP ([startX],[startY],[currentZ]) to ([endX],[endY],[currentZ])" - to_chat(usr, "NanoMapGen: GENERATE MAP ([startX],[startY],[currentZ]) to ([endX],[endY],[currentZ])") - - var/count = 0; - for(var/WorldX = startX, WorldX <= endX, WorldX++) - for(var/WorldY = startY, WorldY <= endY, WorldY++) - - var/atom/Turf = locate(WorldX, WorldY, currentZ) - - var/icon/TurfIcon = new(Turf.icon, Turf.icon_state) - TurfIcon.Scale(NANOMAP_ICON_SIZE, NANOMAP_ICON_SIZE) - - Tile.Blend(TurfIcon, ICON_OVERLAY, ((WorldX - 1) * NANOMAP_ICON_SIZE), ((WorldY - 1) * NANOMAP_ICON_SIZE)) - - count++ - - if (count % 8000 == 0) - world.log << "NanoMapGen: [count] tiles done" - sleep(1) - - var/mapFilename = "nanomap_z[currentZ]-new.png" - - world.log << "NanoMapGen: sending [mapFilename] to client" - - usr << browse(Tile, "window=picture;file=[mapFilename];display=0") - - world.log << "NanoMapGen: Done." - - to_chat(usr, "NanoMapGen: Done. File [mapFilename] uploaded to your cache.") - - if (Tile.Width() != NANOMAP_MAX_ICON_DIMENSION || Tile.Height() != NANOMAP_MAX_ICON_DIMENSION) - return NANOMAP_BADOUTPUT - - return NANOMAP_SUCCESS diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index ce01931f5daf..46a30b313bb8 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -105,7 +105,7 @@ nanoui is used to open and update nano browser uis */ /datum/nanoui/Destroy() if(user) - nanomanager.ui_closed(src) + SSnano.nanomanager.ui_closed(src) close_browser(user, "[window_id]") user = null @@ -177,9 +177,13 @@ nanoui is used to open and update nano browser uis close() return + var/mob/living/living_user + if(isliving(user)) + living_user = user + if ((allowed_user_stat > -1) && (user.stat > allowed_user_stat)) set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility) - else if (user.is_mob_restrained() || user.lying) + else if (user.is_mob_restrained() || (living_user && living_user.body_position == LYING_DOWN)) set_status(STATUS_UPDATE, push_update) // update only (orange visibility) else if (!(src_object in view(4, user))) // If the src object is not in visable, set status to 0 set_status(STATUS_DISABLED, push_update) // interactive (green visibility) @@ -440,7 +444,7 @@ nanoui is used to open and update nano browser uis winset(user, "mapwindow.map", "focus=true") // return keyboard focus to map on_close_winset() //onclose(user, window_id) - nanomanager.ui_opened(src) + SSnano.nanomanager.ui_opened(src) /** * Close this UI @@ -449,7 +453,7 @@ nanoui is used to open and update nano browser uis */ /datum/nanoui/proc/close() is_auto_updating = 0 - nanomanager.ui_closed(src) + SSnano.nanomanager.ui_closed(src) close_browser(user, "[window_id]") qdel(src) @@ -516,7 +520,7 @@ nanoui is used to open and update nano browser uis map_update = 1 if ((src_object && src_object.Topic(href, href_list)) || map_update) - nanomanager.update_uis(src_object) // update all UIs attached to src_object + SSnano.nanomanager.update_uis(src_object) // update all UIs attached to src_object /** * Process this UI, updating the entire UI or just the status (aka visibility) diff --git a/code/modules/objectives/data_retrieval.dm b/code/modules/objectives/data_retrieval.dm index 955d2cc8e63e..f66c578f48fb 100644 --- a/code/modules/objectives/data_retrieval.dm +++ b/code/modules/objectives/data_retrieval.dm @@ -14,7 +14,7 @@ /datum/cm_objective/retrieve_data/New() . = ..() - decryption_password = "[pick(alphabet_uppercase)][rand(100,999)][pick(alphabet_uppercase)][rand(10,99)]" + decryption_password = "[pick(GLOB.alphabet_uppercase)][rand(100,999)][pick(GLOB.alphabet_uppercase)][rand(10,99)]" /datum/cm_objective/retrieve_data/pre_round_start() SSobjectives.statistics["data_retrieval_total_instances"]++ @@ -177,6 +177,8 @@ var/datum/cm_objective/retrieve_item/document/retrieve_objective var/display_color = "white" var/disk_color = "White" + ground_offset_x = 9 + ground_offset_y = 8 /obj/item/disk/objective/Initialize(mapload, ...) . = ..() @@ -206,12 +208,10 @@ disk_color = "Bloodied blue" display_color = "#5296e3" - label = "[pick(greek_letters)]-[rand(100,999)]" + label = "[pick(GLOB.greek_letters)]-[rand(100,999)]" name = "[disk_color] computer disk [label]" objective = new /datum/cm_objective/retrieve_data/disk(src) retrieve_objective = new /datum/cm_objective/retrieve_item/document(src) - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) w_class = SIZE_TINY /obj/item/disk/objective/Destroy() @@ -237,7 +237,7 @@ /obj/structure/machinery/computer/objective/Initialize() . = ..() - label = "[pick(greek_letters)]-[rand(100,999)]" + label = "[pick(GLOB.greek_letters)]-[rand(100,999)]" name = "data terminal [label]" objective = new /datum/cm_objective/retrieve_data/terminal(src) diff --git a/code/modules/objectives/documents.dm b/code/modules/objectives/documents.dm index 14bef02245f0..8562f1985e7f 100644 --- a/code/modules/objectives/documents.dm +++ b/code/modules/objectives/documents.dm @@ -122,17 +122,17 @@ unacidable = TRUE indestructible = 1 is_objective = TRUE + ground_offset_x = 9 + ground_offset_y = 8 var/label // label on the document var/renamed = FALSE //Once someone reads a document the item gets renamed based on the objective they are linked to) /obj/item/document_objective/Initialize(mapload, ...) . = ..() - label = "[pick(alphabet_uppercase)][rand(100,999)]" + label = "[pick(GLOB.alphabet_uppercase)][rand(100,999)]" objective = new objective_type(src) retrieve_objective = new /datum/cm_objective/retrieve_item/document(src) LAZYADD(objective.enables_objectives, retrieve_objective) - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) /obj/item/document_objective/Destroy() qdel(objective) diff --git a/code/modules/objectives/objective_memory_storage.dm b/code/modules/objectives/objective_memory_storage.dm index 08dfc8cdb2c2..161c78d4d1ba 100644 --- a/code/modules/objectives/objective_memory_storage.dm +++ b/code/modules/objectives/objective_memory_storage.dm @@ -77,26 +77,26 @@ /datum/objective_memory_storage/proc/synchronize_objectives() clean_objectives() - if(!intel_system || !intel_system.oms) + if(!GLOB.intel_system || !GLOB.intel_system.oms) return - intel_system.oms.clean_objectives() + GLOB.intel_system.oms.clean_objectives() - for(var/datum/cm_objective/O in intel_system.oms.folders) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.folders) addToListNoDupe(folders, O) - for(var/datum/cm_objective/O in intel_system.oms.progress_reports) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.progress_reports) addToListNoDupe(progress_reports, O) - for(var/datum/cm_objective/O in intel_system.oms.technical_manuals) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.technical_manuals) addToListNoDupe(technical_manuals, O) - for(var/datum/cm_objective/O in intel_system.oms.terminals) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.terminals) addToListNoDupe(terminals, O) - for(var/datum/cm_objective/O in intel_system.oms.disks) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.disks) addToListNoDupe(disks, O) - for(var/datum/cm_objective/O in intel_system.oms.retrieve_items) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.retrieve_items) addToListNoDupe(retrieve_items, O) - for(var/datum/cm_objective/O in intel_system.oms.other) + for(var/datum/cm_objective/O in GLOB.intel_system.oms.other) addToListNoDupe(other, O) -var/global/datum/intel_system/intel_system = new() +GLOBAL_DATUM_INIT(intel_system, /datum/intel_system, new()) /datum/intel_system var/datum/objective_memory_storage/oms = new() @@ -127,7 +127,7 @@ var/global/datum/intel_system/intel_system = new() if(!powered()) to_chat(user, SPAN_WARNING("This computer has no power!")) return FALSE - if(!intel_system) + if(!GLOB.intel_system) to_chat(user, SPAN_WARNING("The computer doesn't seem to be connected to anything...")) return FALSE if(user.action_busy) @@ -197,9 +197,9 @@ var/global/datum/intel_system/intel_system = new() return TRUE /obj/structure/machinery/computer/intel/proc/transfer_intel(mob/living/user, datum/cm_objective/O) - if(!intel_system || !intel_system.oms) + if(!GLOB.intel_system || !GLOB.intel_system.oms) return 0 - if(intel_system.oms.has_objective(O)) + if(GLOB.intel_system.oms.has_objective(O)) return 0 if(user.action_busy) return 0 @@ -215,7 +215,7 @@ var/global/datum/intel_system/intel_system = new() return -1 to_chat(user, SPAN_NOTICE("...something about \"[clue]\"...")) - intel_system.store_single_objective(O) + GLOB.intel_system.store_single_objective(O) return 1 // -------------------------------------------- @@ -236,7 +236,7 @@ var/global/datum/intel_system/intel_system = new() if(!powered()) to_chat(user, SPAN_WARNING("This computer has no power!")) return FALSE - if(!intel_system) + if(!GLOB.intel_system) to_chat(user, SPAN_WARNING("The computer doesn't seem to be connected to anything...")) return FALSE if(user.action_busy) diff --git a/code/modules/objectives/power_objectives.dm b/code/modules/objectives/power_objectives.dm index ecd192caa32e..8f18af9337ea 100644 --- a/code/modules/objectives/power_objectives.dm +++ b/code/modules/objectives/power_objectives.dm @@ -16,7 +16,7 @@ /datum/cm_objective/power/pre_round_start() if(uses_smes) - for(var/obj/structure/machinery/power/smes/colony_smes in machines) + for(var/obj/structure/machinery/power/smes/colony_smes in GLOB.machines) if(!is_ground_level(colony_smes.loc.z)) continue LAZYADD(power_objects, colony_smes) diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm index 58d0a4780681..949104c5d673 100644 --- a/code/modules/organs/limbs.dm +++ b/code/modules/organs/limbs.dm @@ -171,6 +171,7 @@ */ /obj/limb/emp_act(severity) + . = ..() if(!(status & (LIMB_ROBOT|LIMB_SYNTHSKIN))) //meatbags do not care about EMP return var/probability = 30 @@ -546,6 +547,7 @@ This function completely restores a damaged organ to perfect condition. /obj/limb/proc/remove_all_bleeding(external = FALSE, internal = FALSE) + SEND_SIGNAL(src, COMSIG_LIMB_STOP_BLEEDING, external, internal) if(external) for(var/datum/effects/bleeding/external/B in bleeding_effects_list) qdel(B) @@ -944,7 +946,7 @@ This function completely restores a damaged organ to perfect condition. if(organ) //Throw organs around - var/lol = pick(cardinal) + var/lol = pick(GLOB.cardinals) step(organ,lol) owner.update_body() //Among other things, this calls update_icon() and updates our visuals. @@ -953,7 +955,13 @@ This function completely restores a damaged organ to perfect condition. // OK so maybe your limb just flew off, but if it was attached to a pair of cuffs then hooray! Freedom! release_restraints() - if(vital) owner.death(cause) + if(vital) + var/mob/caused_mob + if(istype(cause, /mob)) + caused_mob = cause + if(!istype(cause, /datum/cause_data)) + cause = create_cause_data("lost vital limb", caused_mob) + owner.death(cause) /* HELPERS diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index f38f4505796f..9f00aa3a659a 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -50,7 +50,7 @@ W.forceMove(src) if(istype(W, /obj/item/paper)) toppaper = W - to_chat(user, SPAN_NOTICE("You clip the [W] onto \the [src].")) + to_chat(user, SPAN_NOTICE("You clip [W] onto [src].")) update_icon() else if(istype(toppaper) && HAS_TRAIT(W, TRAIT_TOOL_PEN)) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 478dcc0a8e04..ad9da68a591d 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -48,7 +48,7 @@ /obj/item/folder/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo) || istype(W, /obj/item/paper_bundle)) if(user.drop_inv_item_to_loc(W, src)) - to_chat(user, SPAN_NOTICE("You put the [W] into \the [src].")) + to_chat(user, SPAN_NOTICE("You put [W] into [src].")) update_icon() else if(HAS_TRAIT(W, TRAIT_TOOL_PEN)) var/n_name = strip_html(input(usr, "What would you like to label the folder?", "Folder Labelling", null) as text) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 71d1090b20e0..8220f60e77ed 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -19,6 +19,8 @@ flags_equip_slot = SLOT_HEAD flags_armor_protection = BODY_FLAG_HEAD attack_verb = list("bapped") + ground_offset_x = 9 + ground_offset_y = 8 var/info //What's actually written on the paper. var/info_links //A different version of the paper which includes html links at fields and EOF @@ -42,8 +44,6 @@ /obj/item/paper/Initialize(mapload, photo_list) . = ..() - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) stamps = "" src.photo_list = photo_list @@ -75,26 +75,25 @@ /obj/item/paper/get_examine_text(mob/user) . = ..() - if(in_range(user, src) || istype(user, /mob/dead/observer)) + if(in_range(user, src) || isobserver(user)) if(!(istype(user, /mob/dead/observer) || istype(user, /mob/living/carbon/human) || isRemoteControlling(user))) // Show scrambled paper if they aren't a ghost, human, or silicone. - if(photo_list) - for(var/photo in photo_list) - user << browse_rsc(photo_list[photo], photo) - show_browser(user, "[stars(info)][stamps]", name, name, "size=650x700") - onclose(user, name) + read_paper(user,scramble = TRUE) else read_paper(user) else . += SPAN_NOTICE("It is too far away.") -/obj/item/paper/proc/read_paper(mob/user) +/obj/item/paper/proc/read_paper(mob/user, scramble = FALSE) var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/paper) asset_datum.send(user) if(photo_list) for(var/photo in photo_list) user << browse_rsc(photo_list[photo], photo) - show_browser(user, "[info][stamps]", name, name, "size=650x700") + var/paper_info = info + if(scramble) + paper_info = stars_decode_html(info) + show_browser(user, "[paper_info][stamps]", name, name, "size=650x700") onclose(user, name) /obj/item/paper/verb/rename() @@ -227,10 +226,10 @@ t = replacetext(t, "\[large\]", "") t = replacetext(t, "\[/large\]", "") t = replacetext(t, "\[sign\]", "[user ? user.real_name : "Anonymous"]") - t = replacetext(t, "\[date\]", "[time2text(REALTIMEOFDAY, "Day DD Month [game_year]")]") - t = replacetext(t, "\[shortdate\]", "[time2text(REALTIMEOFDAY, "DD/MM/[game_year]")]") + t = replacetext(t, "\[date\]", "[time2text(REALTIMEOFDAY, "Day DD Month [GLOB.game_year]")]") + t = replacetext(t, "\[shortdate\]", "[time2text(REALTIMEOFDAY, "DD/MM/[GLOB.game_year]")]") t = replacetext(t, "\[time\]", "[worldtime2text("hh:mm")]") - t = replacetext(t, "\[date+time\]", "[worldtime2text("hh:mm")], [time2text(REALTIMEOFDAY, "Day DD Month [game_year]")]") + t = replacetext(t, "\[date+time\]", "[worldtime2text("hh:mm")], [time2text(REALTIMEOFDAY, "Day DD Month [GLOB.game_year]")]") t = replacetext(t, "\[field\]", "") t = replacetext(t, "\[h1\]", "

    ") @@ -382,9 +381,6 @@ /obj/item/paper/attackby(obj/item/P, mob/user) ..() - var/clown = 0 - if(user.mind && (user.job == "Clown")) - clown = 1 if(istype(P, /obj/item/paper) || istype(P, /obj/item/photo)) if (istype(P, /obj/item/paper/carbon)) @@ -424,6 +420,7 @@ return stamps += (stamps=="" ? "
    " : "
    ") + "This paper has been stamped with the [P.name]." + playsound(src, 'sound/effects/alien_footstep_medium3.ogg', 20, TRUE, 6) var/image/stampoverlay = image('icons/obj/items/paper.dmi') var/x @@ -439,11 +436,6 @@ stampoverlay.pixel_x = x stampoverlay.pixel_y = y - if(istype(P, /obj/item/tool/stamp/clown)) - if(!clown) - to_chat(user, SPAN_NOTICE("You are totally unable to use the stamp. HONK!")) - return - if(!ico) ico = new ico += "paper_[P.icon_state]" @@ -576,6 +568,10 @@ name = "crumpled note" info = "there is cotten candy in the walls" +/obj/item/paper/bigred/lambda + name = "ripped diary entry" + info = "Director Smith's Diary\nEntry Date: 15 December 2181\nToday, I've felt true progress! The XX-121 reproduction program is in full effect, and Administrator Cooper have given us the all clear to continue producing specimens. To think that all this is coming from just that first specimen, a single 'Queen' form... It's grown to almost 5 meters tall and shows no signs of ceasing egg production! These creatures will be the next Synthetic of our time, we'll show those Seegson bastards." + /obj/item/paper/bigred/union name = "Shaft miners union" info = "Today we have had enough of being underpaid and treated like shit for not reaching the higher up's unreasonable quotas of ore. They say this place has a \"sea of valuable ores,\" yet we have been mining for years and are yet to find a single diamond. We have had it, enough is enough. They think they can control everything we do, they thought wrong! We, the oppressed workers, shall rise up against the capitalist dogs in a mutiny and take back our pay by force. \n If they send their dogs here to bust us, we will kill each and every single one of them." @@ -673,34 +669,34 @@ if(!C) var/random_chem if(tier) - random_chem = pick(chemical_gen_classes_list[tier]) + random_chem = pick(GLOB.chemical_gen_classes_list[tier]) else if(note_type == "test") - random_chem = pick(chemical_gen_classes_list["T4"]) + random_chem = pick(GLOB.chemical_gen_classes_list["T4"]) else - random_chem = pick( prob(55);pick(chemical_gen_classes_list["T2"]), - prob(30);pick(chemical_gen_classes_list["T3"]), - prob(15);pick(chemical_gen_classes_list["T4"])) + random_chem = pick( prob(55);pick(GLOB.chemical_gen_classes_list["T2"]), + prob(30);pick(GLOB.chemical_gen_classes_list["T3"]), + prob(15);pick(GLOB.chemical_gen_classes_list["T4"])) if(!random_chem) - random_chem = pick(chemical_gen_classes_list["T1"]) - C = chemical_reagents_list["[random_chem]"] + random_chem = pick(GLOB.chemical_gen_classes_list["T1"]) + C = GLOB.chemical_reagents_list["[random_chem]"] var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper) var/txt = "

    Official Weyland-Yutani Document
    Experiment Notes

    " switch(note_type) if("synthesis") - var/datum/chemical_reaction/G = chemical_reactions_list[C.id] + var/datum/chemical_reaction/G = GLOB.chemical_reactions_list[C.id] name = "Synthesis of [C.name]" icon_state = "paper_wy_partial_report" txt += "[name]

    " txt += "During experiment [pick("C","Q","V","W","X","Y","Z")][rand(100,999)][pick("a","b","c")] the theorized compound identified as [C.name], was successfully synthesized using the following formula:
    \n
    \n" for(var/I in G.required_reagents) - var/datum/reagent/R = chemical_reagents_list["[I]"] + var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] var/U = G.required_reagents[I] txt += " - [U] [R.name]
    \n" if(G.required_catalysts && G.required_catalysts.len) txt += "
    \nWhile using the following catalysts:
    \n
    \n" for(var/I in G.required_catalysts) - var/datum/reagent/R = chemical_reagents_list["[I]"] + var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] var/U = G.required_catalysts[I] txt += " - [U] [R.name]
    \n" if(full_report) @@ -777,16 +773,16 @@ /obj/item/paper/research_notes/unique/Initialize() //Each one of these get a new unique chem var/datum/reagent/generated/C = new /datum/reagent/generated - C.id = "tau-[length(chemical_gen_classes_list["tau"])]" + C.id = "tau-[length(GLOB.chemical_gen_classes_list["tau"])]" C.generate_name() C.chemclass = CHEM_CLASS_RARE if(gen_tier) C.gen_tier = gen_tier else - C.gen_tier = chemical_data.clearance_level + C.gen_tier = GLOB.chemical_data.clearance_level C.generate_stats() - chemical_gen_classes_list["tau"] += C.id //Because each unique_vended should be unique, we do not save the chemclass anywhere but in the tau list - chemical_reagents_list[C.id] = C + GLOB.chemical_gen_classes_list["tau"] += C.id //Because each unique_vended should be unique, we do not save the chemclass anywhere but in the tau list + GLOB.chemical_reagents_list[C.id] = C C.generate_assoc_recipe() data = C msg_admin_niche("New reagent with id [C.id], name [C.name], level [C.gen_tier], generated and printed at [loc] [ADMIN_JMP(loc)].") @@ -810,7 +806,7 @@ info += "ID: [S.name]

    \n" info += "Database Details:
    \n" if(S.chemclass >= CHEM_CLASS_ULTRA) - if(chemical_data.clearance_level >= S.gen_tier || info_only) + if(GLOB.chemical_data.clearance_level >= S.gen_tier || info_only) info += "The following information relating to [S.name] is restricted with a level [S.gen_tier] clearance classification.
    " info += "[S.description]\n" info += "
    Overdoses at: [S.overdose] units\n" @@ -820,7 +816,7 @@ else info += "CLASSIFIED: Clearance level [S.gen_tier] required to read the database entry.
    \n" icon_state = "paper_wy_partial_report" - else if(S.chemclass == CHEM_CLASS_SPECIAL && !chemical_data.clearance_x_access && !info_only) + else if(S.chemclass == CHEM_CLASS_SPECIAL && !GLOB.chemical_data.clearance_x_access && !info_only) info += "CLASSIFIED: Clearance level X required to read the database entry.
    \n" icon_state = "paper_wy_partial_report" else if(S.description) @@ -832,14 +828,14 @@ else info += "No details on this reagent could be found in the database.
    \n" icon_state = "paper_wy_synthesis" - if(S.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[S.id] && !info_only) + if(S.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[S.id] && !info_only) info += "
    Saved emission spectrum of [S.name] to the database.
    \n" info += "
    Composition Details:
    \n" - if(chemical_reactions_list[S.id]) - var/datum/chemical_reaction/C = chemical_reactions_list[S.id] + if(GLOB.chemical_reactions_list[S.id]) + var/datum/chemical_reaction/C = GLOB.chemical_reactions_list[S.id] for(var/I in C.required_reagents) - var/datum/reagent/R = chemical_reagents_list["[I]"] - if(R.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[R.id] && !info_only) + var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] + if(R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id] && !info_only) info += " - Unknown emission spectrum
    \n" completed = FALSE else @@ -849,14 +845,14 @@ if(C.required_catalysts.len) info += "
    Reaction would require the following catalysts:
    \n" for(var/I in C.required_catalysts) - var/datum/reagent/R = chemical_reagents_list["[I]"] - if(R.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[R.id] && !info_only) + var/datum/reagent/R = GLOB.chemical_reagents_list["[I]"] + if(R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id] && !info_only) info += " - Unknown emission spectrum
    \n" completed = FALSE else var/U = C.required_catalysts[I] info += " - [U] [R.name]
    \n" - else if(chemical_gen_classes_list["C1"].Find(S.id)) + else if(GLOB.chemical_gen_classes_list["C1"].Find(S.id)) info += " - [S.name]
    \n" else info += "ERROR: Unable to analyze emission spectrum of sample." //A reaction to make this doesn't exist, so this is our IC excuse @@ -867,7 +863,7 @@ else if(!S.properties) //Safety for empty reagents completed = FALSE - if(S.chemclass == CHEM_CLASS_SPECIAL && chemical_data.clearance_x_access) + if(S.chemclass == CHEM_CLASS_SPECIAL && GLOB.chemical_data.clearance_x_access) completed = TRUE data = S @@ -913,3 +909,14 @@ info = parsepencode(template, null, null, FALSE) #undef MAX_FIELDS + +/obj/item/paper/colonial_grunts + icon = 'icons/obj/items/paper.dmi' + icon_state = "paper_stack_words" + name = "Colonial Space Grunts" + desc = "A tabletop game based around the USCM, easy to get into, simple to play, and most inportantly fun for the whole squad." + +/obj/item/paper/colonial_grunts/Initialize(mapload, ...) + . = ..() + info = "
    " + update_icon() diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 521045a56717..c094c8f32569 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -23,8 +23,7 @@ /obj/item/paper_bin/MouseDrop(atom/over_object) if(over_object == usr && ishuman(usr) && !usr.is_mob_restrained() && !usr.stat && (loc == usr || in_range(src, usr))) if(!usr.get_active_hand()) //if active hand is empty - attack_hand(usr, 1, 1) - + usr.put_in_hands(src) return /obj/item/paper_bin/attack_hand(mob/user) @@ -57,7 +56,7 @@ P.forceMove(user.loc) user.put_in_hands(P) - to_chat(user, SPAN_NOTICE("You take [P] out of the [src].")) + to_chat(user, SPAN_NOTICE("You take [P] out of [src].")) else to_chat(user, SPAN_NOTICE("[src] is empty!")) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 70d6bf3898a6..b47f630974e6 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -82,8 +82,6 @@ p.update_icon() p.icon_state = "paper_words" p.name = bundle.name - p.pixel_y = rand(-8, 8) - p.pixel_x = rand(-9, 9) sleep(15*j) updateUsrDialog() else if(href_list["remove"]) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index e004715f326a..40d88f684791 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -46,7 +46,7 @@ ..() /obj/item/photo/get_examine_text(mob/user) - if(in_range(user, src)) + if(in_range(user, src) || isobserver(user)) show(user) return list(desc) else @@ -175,81 +175,110 @@ res.Scale(size*32, size*32) // Initialize the photograph to black. res.Blend("#000", ICON_OVERLAY) + CHECK_TICK - var/atoms[] = list() - for(var/turf/the_turf in turfs) - // Add outselves to the list of stuff to draw + var/pixel_size = world.icon_size + var/radius = (size - 1) * 0.5 + var/center_offset = radius * pixel_size + 1 + var/x_min = center.x - radius + var/x_max = center.x + radius + var/y_min = center.y - radius + var/y_max = center.y + radius + + var/list/atoms = list() + for(var/turf/the_turf as anything in turfs) + // Add ourselves to the list of stuff to draw atoms.Add(the_turf); + // As well as anything that isn't invisible. - for(var/atom/A in the_turf) - if(A.invisibility) continue - atoms.Add(A) + for(var/atom/cur_atom as anything in the_turf) + if(!cur_atom || cur_atom.invisibility) + continue + atoms.Add(cur_atom) // Sort the atoms into their layers var/list/sorted = sort_atoms_by_layer(atoms) - var/center_offset = (size-1)/2 * 32 + 1 - for(var/i; i <= sorted.len; i++) - var/atom/A = sorted[i] - if(A) - var/icon/IM = getFlatIcon(A)//build_composite_icon(A) - - // If what we got back is actually a picture, draw it. - if(istype(IM, /icon)) - // Check if we're looking at a mob that's lying down - if(istype(A, /mob/living)) - var/mob/living/L = A - if(!istype(L, /mob/living/carbon/xenomorph)) //xenos don't use icon rotatin for lying. - if(L.lying) - // If they are, apply that effect to their picture. - IM.BecomeLying() - // Calculate where we are relative to the center of the photo - var/xoff = (A.x - center.x) * 32 + center_offset - var/yoff = (A.y - center.y) * 32 + center_offset - if (istype(A,/atom/movable)) - xoff+=A:step_x - yoff+=A:step_y - res.Blend(IM, blendMode2iconMode(A.blend_mode), A.pixel_x + xoff, A.pixel_y + yoff) + for(var/atom/cur_atom as anything in sorted) + if(QDELETED(cur_atom)) + continue + + if(cur_atom.x < x_min || cur_atom.x > x_max || cur_atom.y < y_min || cur_atom.y > y_max) + // they managed to move out of frame with all this CHECK_TICK... + continue + + var/icon/cur_icon = getFlatIcon(cur_atom)//build_composite_icon(cur_atom) + + // If what we got back is actually a picture, draw it. + if(istype(cur_icon, /icon)) + // Check if we're looking at a mob that's lying down + if(istype(cur_atom, /mob/living)) + var/mob/living/cur_mob = cur_atom + if(!isxeno(cur_mob) && cur_mob.body_position == LYING_DOWN) //xenos don't use icon rotatin for lying. + cur_icon.BecomeLying() + + // Calculate where we are relative to the center of the photo + var/xoff = (cur_atom.x - center.x) * pixel_size + center_offset + var/yoff = (cur_atom.y - center.y) * pixel_size + center_offset + if(istype(cur_atom, /atom/movable)) + xoff += cur_atom:step_x + yoff += cur_atom:step_y + res.Blend(cur_icon, blendMode2iconMode(cur_atom.blend_mode), cur_atom.pixel_x + xoff, cur_atom.pixel_y + yoff) + + CHECK_TICK // Lastly, render any contained effects on top. for(var/turf/the_turf as anything in turfs) // Calculate where we are relative to the center of the photo - var/xoff = (the_turf.x - center.x) * 32 + center_offset - var/yoff = (the_turf.y - center.y) * 32 + center_offset - var/image/IM = getFlatIcon(the_turf.loc) - if(IM) - res.Blend(IM, blendMode2iconMode(the_turf.blend_mode),xoff,yoff) + var/xoff = (the_turf.x - center.x) * pixel_size + center_offset + var/yoff = (the_turf.y - center.y) * pixel_size + center_offset + var/image/cur_icon = getFlatIcon(the_turf.loc) + CHECK_TICK + + if(cur_icon) + res.Blend(cur_icon, blendMode2iconMode(the_turf.blend_mode), xoff, yoff) + CHECK_TICK return res +/obj/item/device/camera/proc/get_mob_descriptions(turf/the_turf, existing_descripion) + var/mob_detail = existing_descripion + for(var/mob/living/carbon/cur_carbon in the_turf) + if(cur_carbon.invisibility) + continue -/obj/item/device/camera/proc/get_mobs(turf/the_turf as turf) - var/mob_detail - for(var/mob/living/carbon/A in the_turf) - if(A.invisibility) continue var/holding = null - if(A.l_hand || A.r_hand) - if(A.l_hand) holding = "They are holding \a [A.l_hand]" - if(A.r_hand) + if(cur_carbon.l_hand || cur_carbon.r_hand) + if(cur_carbon.l_hand) + holding = "They are holding \a [cur_carbon.l_hand]" + if(cur_carbon.r_hand) if(holding) - holding += " and \a [A.r_hand]" + holding += " and \a [cur_carbon.r_hand]" else - holding = "They are holding \a [A.r_hand]" + holding = "They are holding \a [cur_carbon.r_hand]" + + var/hurt = "" + if(cur_carbon.health < 75) + hurt = prob(25) ? " - they look hurt" : " - [cur_carbon] looks hurt" if(!mob_detail) - mob_detail = "You can see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]. " + mob_detail = "You can see [cur_carbon] in the photo[hurt].[holding ? " [holding]" : "."]." else - mob_detail += "You can also see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]." + mob_detail += " You [prob(50) ? "can" : "also"] see [cur_carbon] in the photo[hurt].[holding ? " [holding]" : "."]." return mob_detail /obj/item/device/camera/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag) - if(!on || !pictures_left || ismob(target.loc) || isstorage(target.loc)) return - if(user.contains(target) || istype(target, /atom/movable/screen)) return - captureimage(target, user, flag) + if(!on || !pictures_left || ismob(target.loc) || isstorage(target.loc)) + return + if(user.contains(target) || istype(target, /atom/movable/screen)) + return playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 15, 1) pictures_left-- desc = "A polaroid camera. It has [pictures_left] photos left." to_chat(user, SPAN_NOTICE("[pictures_left] photos left.")) + + captureimage(target, user, flag) + icon_state = icon_off on = 0 spawn(64) @@ -257,37 +286,46 @@ on = 1 /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) - var/mobs = "" + var/mob_descriptions = "" var/radius = (size-1)*0.5 - var/list/turf/turfs = RANGE_TURFS(radius, target) & view(world_view_size + radius, user.client) - for(var/turf/T as anything in turfs) - mobs += get_mobs(T) - var/datum/picture/P = createpicture(target, user, turfs, mobs, flag) - printpicture(user, P) + var/list/turf/turfs = RANGE_TURFS(radius, target) & view(GLOB.world_view_size + radius, user.client) + for(var/turf/the_turf as anything in turfs) + mob_descriptions = get_mob_descriptions(the_turf, mob_descriptions) + var/datum/picture/the_picture = createpicture(target, user, turfs, mob_descriptions, flag) -/obj/item/device/camera/proc/createpicture(atom/target, mob/user, list/turfs, mobs, flag) + if(QDELETED(user)) + return + + printpicture(user, the_picture) + +/obj/item/device/camera/proc/createpicture(atom/target, mob/user, list/turfs, description, flag) var/icon/photoimage = get_icon(turfs, target) + if(!description) + description = "A very scenic photo" + var/icon/small_img = icon(photoimage) var/icon/tiny_img = icon(photoimage) - var/icon/ic = icon('icons/obj/items/items.dmi',"photo") - var/icon/pc = icon('icons/obj/items/paper.dmi', "photo") + var/icon/item_icon = icon('icons/obj/items/items.dmi',"photo") + var/icon/paper_icon = icon('icons/obj/items/paper.dmi', "photo") small_img.Scale(8, 8) tiny_img.Scale(4, 4) - ic.Blend(small_img,ICON_OVERLAY, 10, 13) - pc.Blend(tiny_img,ICON_OVERLAY, 12, 19) - - var/datum/picture/P = new() - P.fields["author"] = user - P.fields["icon"] = ic - P.fields["tiny"] = pc - P.fields["img"] = photoimage - P.fields["desc"] = mobs - P.fields["pixel_x"] = rand(-10, 10) - P.fields["pixel_y"] = rand(-10, 10) - P.fields["size"] = size - - return P + item_icon.Blend(small_img, ICON_OVERLAY, 10, 13) + CHECK_TICK + paper_icon.Blend(tiny_img, ICON_OVERLAY, 12, 19) + CHECK_TICK + + var/datum/picture/the_picture = new() + the_picture.fields["author"] = user + the_picture.fields["icon"] = item_icon + the_picture.fields["tiny"] = paper_icon + the_picture.fields["img"] = photoimage + the_picture.fields["desc"] = description + the_picture.fields["pixel_x"] = rand(-10, 10) + the_picture.fields["pixel_y"] = rand(-10, 10) + the_picture.fields["size"] = size + + return the_picture /obj/item/device/camera/proc/printpicture(mob/user, datum/picture/P) var/obj/item/photo/Photo = new/obj/item/photo() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index fc3f213fff35..dd0327e3821d 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1000,7 +1000,7 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( SEND_SIGNAL(user, COMSIG_MOB_APC_POWER_PULSE, src) addtimer(VARSET_CALLBACK(src, shorted, FALSE), 2 MINUTES) -/obj/structure/machinery/power/apc/proc/can_use(mob/user as mob, loud = 0) //used by attack_hand() and Topic() +/obj/structure/machinery/power/apc/proc/can_use(mob/living/user as mob, loud = 0) //used by attack_hand() and Topic() if(user.client && user.client.remote_control) return TRUE @@ -1011,12 +1011,12 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( return 0 if(!(ishuman(user) || isRemoteControlling(user))) to_chat(user, SPAN_WARNING("You don't have the dexterity to use [src]!")) - nanomanager.close_user_uis(user, src) + SSnano.nanomanager.close_user_uis(user, src) return 0 if(user.is_mob_restrained()) to_chat(user, SPAN_WARNING("You must have free hands to use [src].")) return 0 - if(user.lying) + if(user.body_position == LYING_DOWN) to_chat(user, SPAN_WARNING("You can't reach [src]!")) return 0 autoflag = 5 @@ -1024,11 +1024,11 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( if(aidisabled) if(!loud) to_chat(user, SPAN_WARNING("[src] has AI control disabled!")) - nanomanager.close_user_uis(user, src) + SSnano.nanomanager.close_user_uis(user, src) return 0 else if((!in_range(src, user) || !istype(src.loc, /turf))) - nanomanager.close_user_uis(user, src) + SSnano.nanomanager.close_user_uis(user, src) return 0 var/mob/living/carbon/human/H = user @@ -1266,6 +1266,7 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( //Damage and destruction acts /obj/structure/machinery/power/apc/emp_act(severity) + . = ..() if(cell) cell.emp_act(severity) lighting = 0 @@ -1274,7 +1275,6 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( spawn(1 MINUTES) equipment = 3 environ = 3 - ..() /obj/structure/machinery/power/apc/ex_act(severity) switch(severity) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 992e0f3464ff..31a096a3a2ee 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -71,12 +71,12 @@ /obj/item/cell/emp_act(severity) + . = ..() charge -= 1000 / severity if (charge < 0) charge = 0 if(reliability != 100 && prob(50/severity)) reliability -= 10 / severity - ..() /obj/item/cell/ex_act(severity) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index bee3e0aac8c2..00e6b92eab8f 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -81,13 +81,13 @@ if(has_power || !src.needs_power) if(machine_processing) if(stat & NOPOWER) - addToListNoDupe(processing_machines, src) // power interupted us, start processing again + addToListNoDupe(GLOB.processing_machines, src) // power interupted us, start processing again stat &= ~NOPOWER src.update_use_power(USE_POWER_IDLE) else if(machine_processing) - processing_machines -= src // no power, can't process. + GLOB.processing_machines -= src // no power, can't process. stat |= NOPOWER src.update_use_power(USE_POWER_NONE) @@ -97,19 +97,19 @@ // rebuild all power networks from scratch /proc/makepowernets() - for(var/datum/powernet/PN in powernets) + for(var/datum/powernet/PN in GLOB.powernets) del(PN) //not qdel on purpose, powernet is still using del. - powernets.Cut() + GLOB.powernets.Cut() - for(var/area/A in all_areas) - if(powernets_by_name[A.powernet_name]) + for(var/area/A in GLOB.all_areas) + if(GLOB.powernets_by_name[A.powernet_name]) continue var/datum/powernet/PN = new() PN.powernet_name = A.powernet_name - powernets += PN - powernets_by_name[A.powernet_name] = PN + GLOB.powernets += PN + GLOB.powernets_by_name[A.powernet_name] = PN - for(var/obj/structure/machinery/power/M in machines) + for(var/obj/structure/machinery/power/M in GLOB.machines) M.connect_to_network() return 1 @@ -222,7 +222,7 @@ var/cdir - for(var/card in cardinal) + for(var/card in GLOB.cardinals) var/turf/T = get_step(loc,card) cdir = get_dir(T,loc) @@ -250,7 +250,7 @@ var/area/A = get_area(src) if(!A) return 0 - var/datum/powernet/PN = powernets_by_name[A.powernet_name] + var/datum/powernet/PN = GLOB.powernets_by_name[A.powernet_name] if(!PN) return 0 powernet = PN diff --git a/code/modules/power/profiling.dm b/code/modules/power/profiling.dm index 21c8e2a63538..b4b67b8c8543 100644 --- a/code/modules/power/profiling.dm +++ b/code/modules/power/profiling.dm @@ -1,29 +1,27 @@ -datum +GLOBAL_VAR_INIT(enable_power_update_profiling, FALSE) -var/global/enable_power_update_profiling = 0 - -var/global/power_profiled_time = 0 -var/global/power_last_profile_time = 0 -var/global/list/power_update_requests_by_machine = list() -var/global/list/power_update_requests_by_area = list() +GLOBAL_VAR_INIT(power_profiled_time, 0) +GLOBAL_VAR_INIT(power_last_profile_time, 0) +GLOBAL_LIST_EMPTY(power_update_requests_by_machine) +GLOBAL_LIST_EMPTY(power_update_requests_by_area) /proc/log_power_update_request(area/A, obj/structure/machinery/M) - if (!enable_power_update_profiling) + if (!GLOB.enable_power_update_profiling) return var/machine_type = "[M.type]" - if (machine_type in power_update_requests_by_machine) - power_update_requests_by_machine[machine_type]++ + if (machine_type in GLOB.power_update_requests_by_machine) + GLOB.power_update_requests_by_machine[machine_type]++ else - power_update_requests_by_machine[machine_type] = 1 + GLOB.power_update_requests_by_machine[machine_type] = 1 - if (A.name in power_update_requests_by_area) - power_update_requests_by_area[A.name]++ + if (A.name in GLOB.power_update_requests_by_area) + GLOB.power_update_requests_by_area[A.name]++ else - power_update_requests_by_area[A.name] = 1 + GLOB.power_update_requests_by_area[A.name] = 1 - power_profiled_time += (world.time - power_last_profile_time) - power_last_profile_time = world.time + GLOB.power_profiled_time += (world.time - GLOB.power_last_profile_time) + GLOB.power_last_profile_time = world.time /client/proc/toggle_power_update_profiling() set name = "Toggle Area Power Update Profiling" @@ -31,14 +29,14 @@ var/global/list/power_update_requests_by_area = list() set category = "Debug.Profiling" if(!check_rights(R_DEBUG)) return if(!ishost(usr) || alert("Are you sure you want to do this?",, "Yes", "No") != "Yes") return - if(enable_power_update_profiling) - enable_power_update_profiling = 0 + if(GLOB.enable_power_update_profiling) + GLOB.enable_power_update_profiling = 0 to_chat(usr, "Area power update profiling disabled.") message_admins("[key_name(src)] toggled area power update profiling off.") else - enable_power_update_profiling = 1 - power_last_profile_time = world.time + GLOB.enable_power_update_profiling = 1 + GLOB.power_last_profile_time = world.time to_chat(usr, "Area power update profiling enabled.") message_admins("[key_name(src)] toggled area power update profiling on.") @@ -52,9 +50,9 @@ var/global/list/power_update_requests_by_area = list() if(!check_rights(R_DEBUG)) return - to_chat(usr, "Total profiling time: [power_profiled_time] ticks") - for (var/M in power_update_requests_by_machine) - to_chat(usr, "[M] = [power_update_requests_by_machine[M]]") + to_chat(usr, "Total profiling time: [GLOB.power_profiled_time] ticks") + for (var/M in GLOB.power_update_requests_by_machine) + to_chat(usr, "[M] = [GLOB.power_update_requests_by_machine[M]]") /client/proc/view_power_update_stats_area() set name = "View Area Power Update Statistics By Area" @@ -63,7 +61,7 @@ var/global/list/power_update_requests_by_area = list() if(!check_rights(R_DEBUG)) return - to_chat(usr, "Total profiling time: [power_profiled_time] ticks") - to_chat(usr, "Total profiling time: [power_profiled_time] ticks") - for (var/A in power_update_requests_by_area) - to_chat(usr, "[A] = [power_update_requests_by_area[A]]") + to_chat(usr, "Total profiling time: [GLOB.power_profiled_time] ticks") + to_chat(usr, "Total profiling time: [GLOB.power_profiled_time] ticks") + for (var/A in GLOB.power_update_requests_by_area) + to_chat(usr, "[A] = [GLOB.power_update_requests_by_area[A]]") diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index ac19d1ba0c67..7cf72ce1cb81 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -46,7 +46,7 @@ connect_to_network() dir_loop: - for(var/d in cardinal) + for(var/d in GLOB.cardinals) var/turf/T = get_step(src, d) for(var/obj/structure/machinery/power/terminal/term in T) if(term && term.dir == turn(d, 180)) @@ -390,6 +390,7 @@ /obj/structure/machinery/power/smes/emp_act(severity) + . = ..() outputting = 0 inputting = 0 output_level = 0 @@ -400,7 +401,6 @@ output_level = initial(output_level) inputting = initial(inputting) outputting = initial(outputting) - ..() diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 98208069c8dd..1eb249b5ecfa 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -85,7 +85,7 @@ if (user_protected && prob(80)) to_chat(h_user, "Small electrical arc almost burns your hand. Luckily you had your gloves on!") else - to_chat(h_user, "Small electrical arc sparks and burns your hand as you touch the [src]!") + to_chat(h_user, "Small electrical arc sparks and burns your hand as you touch [src]!") h_user.apply_damage(rand(5,10), BURN) h_user.apply_effect(2, PARALYZE) charge = 0 @@ -98,7 +98,7 @@ if (user_protected && prob(25)) to_chat(h_user, "Medium electrical arc sparks and almost burns your hand. Luckily you had your gloves on!") else - to_chat(h_user, "Medium electrical sparks as you touch the [src], severely burning your hand!") + to_chat(h_user, "Medium electrical sparks as you touch [src], severely burning your hand!") h_user.apply_damage(rand(10,25), BURN) h_user.apply_effect(5, PARALYZE) spawn(0) @@ -182,7 +182,7 @@ /obj/structure/machinery/power/smes/buildable/attackby(obj/item/W as obj, mob/user as mob) // No more disassembling of overloaded SMESs. You broke it, now enjoy the consequences. if (failing) - to_chat(user, SPAN_WARNING("The [src]'s screen is flashing with alerts. It seems to be overloaded! Touching it now is probably not a good idea.")) + to_chat(user, SPAN_WARNING("[src]'s screen is flashing with alerts. It seems to be overloaded! Touching it now is probably not a good idea.")) return // If parent returned 1: // - Hatch is open, so we can modify the SMES @@ -195,7 +195,7 @@ return if (outputting || input_attempt) - to_chat(user, SPAN_WARNING("Turn off the [src] first!")) + to_chat(user, SPAN_WARNING("Turn off [src] first!")) return // Probability of failure if safety circuit is disabled (in %) @@ -212,7 +212,7 @@ return playsound(get_turf(src), 'sound/items/Crowbar.ogg', 25, 1) - to_chat(user, SPAN_WARNING("You begin to disassemble the [src]!")) + to_chat(user, SPAN_WARNING("You begin to disassemble [src]!")) if (do_after(usr, 100 * cur_coils * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) // More coils = takes longer to disassemble. It's complex so largest one with 5 coils will take 50s if (failure_probability && prob(failure_probability)) diff --git a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm index 831923415453..df8a7d7bdd76 100644 --- a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm @@ -85,6 +85,8 @@ var/handful = "shells" //used for 'magazine' boxes that give handfuls to determine what kind for the sprite can_explode = TRUE limit_per_tile = 2 + ground_offset_x = 5 + ground_offset_y = 5 /obj/item/ammo_box/magazine/empty empty = TRUE @@ -102,8 +104,6 @@ while(i < num_of_magazines) contents += new magazine_type(src) i++ - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) update_icon() /obj/item/ammo_box/magazine/update_icon() diff --git a/code/modules/projectiles/ammo_boxes/box_structures.dm b/code/modules/projectiles/ammo_boxes/box_structures.dm index cb119e1a2190..b34c0543bb2c 100644 --- a/code/modules/projectiles/ammo_boxes/box_structures.dm +++ b/code/modules/projectiles/ammo_boxes/box_structures.dm @@ -134,7 +134,7 @@ if(istype(W, /obj/item/storage/box/m94)) var/obj/item/storage/box/m94/flare_pack = W if(flare_pack.contents.len < flare_pack.max_storage_space) - to_chat(user, SPAN_WARNING("\The [W] is not full.")) + to_chat(user, SPAN_WARNING("[W] is not full.")) return var/flare_type if(istype(W, /obj/item/storage/box/m94/signal)) @@ -143,28 +143,28 @@ flare_type = /obj/item/device/flashlight/flare for(var/obj/item/device/flashlight/flare/F in flare_pack.contents) if(F.fuel < 1) - to_chat(user, SPAN_WARNING("Some flares in \the [F] are used.")) + to_chat(user, SPAN_WARNING("Some flares in [F] are used.")) return if(F.type != flare_type) - to_chat(user, SPAN_WARNING("Some flares in \the [W] are not of the correct type.")) + to_chat(user, SPAN_WARNING("Some flares in [W] are not of the correct type.")) return else if(istype(W, /obj/item/storage/box/MRE)) var/obj/item/storage/box/MRE/mre_pack = W if(mre_pack.isopened) - to_chat(user, SPAN_WARNING("\The [W] was already opened and isn't suitable for storing in \the [src].")) + to_chat(user, SPAN_WARNING("[W] was already opened and isn't suitable for storing in [src].")) return else if(istype(W, /obj/item/cell/high)) var/obj/item/cell/high/cell = W if(cell.charge != cell.maxcharge) - to_chat(user, SPAN_WARNING("\The [W] needs to be fully charged before it can be stored in \the [src].")) + to_chat(user, SPAN_WARNING("[W] needs to be fully charged before it can be stored in [src].")) return if(item_box.contents.len < item_box.num_of_magazines) user.drop_inv_item_to_loc(W, src) item_box.contents += W - to_chat(user, SPAN_NOTICE("You put a [W] in to \the [src]")) + to_chat(user, SPAN_NOTICE("You put \a [W] into [src]")) update_icon() else - to_chat(user, SPAN_WARNING("\The [src] is full.")) + to_chat(user, SPAN_WARNING("[src] is full.")) else to_chat(user, SPAN_WARNING("You don't want to mix different magazines in one box.")) else @@ -175,10 +175,10 @@ return if(O.default_ammo == AM.default_ammo) if(O.current_rounds <= 0) - to_chat(user, SPAN_WARNING("\The [O] is empty.")) + to_chat(user, SPAN_WARNING("[O] is empty.")) return if(AM.current_rounds >= AM.max_rounds) - to_chat(user, SPAN_WARNING("\The [src] is full.")) + to_chat(user, SPAN_WARNING("[src] is full.")) return else if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) @@ -187,7 +187,7 @@ var/S = min(O.current_rounds, AM.max_rounds - AM.current_rounds) AM.current_rounds += S O.current_rounds -= S - to_chat(user, SPAN_NOTICE("You transfer shells from [O] into \the [src]")) + to_chat(user, SPAN_NOTICE("You transfer shells from [O] into [src]")) update_icon() O.update_icon() else diff --git a/code/modules/projectiles/ammo_boxes/grenade_packets.dm b/code/modules/projectiles/ammo_boxes/grenade_packets.dm index 83c222a0a128..5546fe3bc520 100644 --- a/code/modules/projectiles/ammo_boxes/grenade_packets.dm +++ b/code/modules/projectiles/ammo_boxes/grenade_packets.dm @@ -25,7 +25,7 @@ for(var/i in 1 to storage_slots) new content_type(src) -var/list/grenade_packets = list( +GLOBAL_LIST_INIT(grenade_packets, list( /obj/item/storage/box/packet/high_explosive, /obj/item/storage/box/packet/baton_slug, /obj/item/storage/box/packet/flare, @@ -37,7 +37,7 @@ var/list/grenade_packets = list( /obj/item/storage/box/packet/m15, /obj/item/storage/box/packet/airburst_he, /obj/item/storage/box/packet/airburst_incen - ) + )) /obj/item/storage/box/packet/high_explosive name = "\improper HEDP grenade packet" diff --git a/code/modules/projectiles/ammo_boxes/handful_boxes.dm b/code/modules/projectiles/ammo_boxes/handful_boxes.dm index 28eab8463011..9ac2aeea8870 100644 --- a/code/modules/projectiles/ammo_boxes/handful_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/handful_boxes.dm @@ -48,6 +48,15 @@ /obj/item/ammo_box/magazine/shotgun/incendiary/empty empty = TRUE +/obj/item/ammo_box/magazine/shotgun/incendiarybuck + name = "\improper shotgun shell box (Incendiary buckshot x 100)" + icon_state = "base_incbuck" + overlay_content = "_incenbuck" + magazine_type = /obj/item/ammo_magazine/shotgun/incendiarybuck + +/obj/item/ammo_box/magazine/shotgun/incendiarybuck/empty + empty = TRUE + /obj/item/ammo_box/magazine/shotgun/beanbag name = "\improper shotgun shell box (Beanbag x 100)" icon_state = "base_bean" diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm index ff90a6659fb2..6d20dcc75949 100644 --- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm @@ -286,6 +286,15 @@ /obj/item/ammo_box/magazine/m4a3/hp/empty empty = TRUE +/obj/item/ammo_box/magazine/m4a3/incen + name = "\improper magazine box (Incen M4A3 x 16)" + overlay_ammo_type = "_incen" + overlay_content = "_incen" + magazine_type = /obj/item/ammo_magazine/pistol/incendiary + +/obj/item/ammo_box/magazine/m4a3/incen/empty + empty = TRUE + //-----------------------M44 Revolver Speed Loaders Box----------------------- /obj/item/ammo_box/magazine/m44 @@ -410,3 +419,306 @@ /obj/item/ammo_box/magazine/nailgun/empty empty = TRUE + +//-----------------------M56B Drum Box----------------------- + +/obj/item/ammo_box/magazine/m56b + name = "\improper drum box (M56B x 8)" + icon_state = "base_m56b" + overlay_ammo_type = "_reg_heavy" + overlay_gun_type = "_sg" + overlay_content = "_sg" + magazine_type = /obj/item/ammo_magazine/smartgun + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/m56b/empty + empty = TRUE + +/obj/item/ammo_box/magazine/m56b/dirty + name = "\improper drum box (M56B 'Dirty' x 8)" + overlay_ammo_type = "_red_heavy" + overlay_content = "_sgdirty" + magazine_type = /obj/item/ammo_magazine/smartgun/dirty + +/obj/item/ammo_box/magazine/m56b/dirty/empty + empty = TRUE + +//-----------------------M56D Drum Box----------------------- + +/obj/item/ammo_box/magazine/m56d + name = "\improper drum box (M56D x 8)" + icon_state = "base_m56d" + overlay_ammo_type = "" + overlay_gun_type = "_m56d" + overlay_content = "_m56d" + magazine_type = /obj/item/ammo_magazine/m56d + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/m56d/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/m56d/empty + empty = TRUE + + +//-----------------------M2C Ammo Box----------------------- + +/obj/item/ammo_box/magazine/m2c + name = "\improper ammo box (M2C x 8)" + icon_state = "base_m2c" + overlay_ammo_type = "" + overlay_gun_type = "_m2c" + overlay_content = "_m2c" + magazine_type = /obj/item/ammo_magazine/m2c + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/m2c/update_icon() + if(overlays) + overlays.Cut() + overlays += image(icon, icon_state = "[icon_state]_lid") //adding lid + overlays += image(text_markings_icon, icon_state = "text[overlay_gun_type]") //adding text + +/obj/item/ammo_box/magazine/m2c/empty + empty = TRUE + +//-----------------------M41AE2 Ammo Box----------------------- + +/obj/item/ammo_box/magazine/m41ae2 + name = "\improper magazine (M41AE2 x 8)" + icon_state = "base_m41ae2" + overlay_ammo_type = "_reg_heavy" + overlay_gun_type = "_m41ae2" + overlay_content = "_m41ae2" + magazine_type = /obj/item/ammo_magazine/rifle/lmg + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/m41ae2/empty + empty = TRUE + +/obj/item/ammo_box/magazine/m41ae2/holo + name = "\improper magazine box (M41AE2 Holo-Target x 8)" + overlay_ammo_type = "_holo_heavy" + overlay_content = "_m41ae2_holo" + magazine_type = /obj/item/ammo_magazine/rifle/lmg/holo_target + +/obj/item/ammo_box/magazine/m41ae2/holo/empty + empty = TRUE + +/obj/item/ammo_box/magazine/m41ae2/heap + name = "\improper magazine box (M41AE2 HEAP x 8)" + overlay_ammo_type = "_heap_heavy" + overlay_content = "_m41ae2_heap" + magazine_type = /obj/item/ammo_magazine/rifle/lmg/heap + +/obj/item/ammo_box/magazine/m41ae2/heap/empty + empty = TRUE + +//-----------------------Flamer Fuel Tank Box----------------------- + +/obj/item/ammo_box/magazine/flamer + name = "\improper flamer tank box (UT-Napthal Fuel x 8)" + icon_state = "base_flamer" + overlay_ammo_type = "_flamer" + overlay_gun_type = "_blank" + overlay_content = "_flamer" + magazine_type = /obj/item/ammo_magazine/flamer_tank + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/flamer/empty + empty = TRUE + +/obj/item/ammo_box/magazine/flamer/bgel + name = "\improper flamer fuel box (Napalm B-Gel x 8)" + overlay_ammo_type = "_flamer_bgel" + overlay_content = "_flamer_bgel" + magazine_type = /obj/item/ammo_magazine/flamer_tank/gellied + +/obj/item/ammo_box/magazine/flamer/bgel/empty + empty = TRUE + +//-----------------------M41A MK1 Rifle Mag Boxes----------------------- + +/obj/item/ammo_box/magazine/mk1 + name = "\improper magazine box (M41A MK1 x 8)" + overlay_ammo_type = "_reg_mk1" + overlay_gun_type = "_mk1" + overlay_content = "_reg" + magazine_type = /obj/item/ammo_magazine/rifle/m41aMK1 + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/mk1/empty + empty = TRUE + +/obj/item/ammo_box/magazine/mk1/ap + name = "\improper magazine box (M41A MK1 AP x 8)" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "_ap_mk1" + overlay_content = "_ap" + magazine_type = /obj/item/ammo_magazine/rifle/m41aMK1/ap + +/obj/item/ammo_box/magazine/mk1/ap/empty + empty = TRUE + +//-----------------------NSG 23 Rifle Mag Boxes----------------------- + +/obj/item/ammo_box/magazine/nsg23 + name = "\improper magazine box (NSG 23 x 16)" + icon_state = "base_nsg23" + overlay_gun_type = "_nsg23" + overlay_content = "_reg" + magazine_type = /obj/item/ammo_magazine/rifle/nsg23 + num_of_magazines = 16 + +/obj/item/ammo_box/magazine/nsg23/empty + empty = TRUE + +/obj/item/ammo_box/magazine/nsg23/ap + name = "\improper magazine box (NSG 23 AP x 12)" + overlay_ammo_type = "_ap" + overlay_content = "_ap" + magazine_type = /obj/item/ammo_magazine/rifle/nsg23/ap + num_of_magazines = 12 + +/obj/item/ammo_box/magazine/nsg23/ap/empty + empty = TRUE + +/obj/item/ammo_box/magazine/nsg23/ex + name = "\improper magazine box (NSG 23 Extended x 8)" + overlay_ammo_type = "_ext" + magazine_type = /obj/item/ammo_magazine/rifle/nsg23/extended + num_of_magazines = 8 + +/obj/item/ammo_box/magazine/nsg23/ex/empty + empty = TRUE + +/obj/item/ammo_box/magazine/nsg23/heap + name = "\improper magazine box (NSG 23 HEAP x 16)" + overlay_ammo_type = "_heap" + overlay_content = "_heap" + magazine_type = /obj/item/ammo_magazine/rifle/nsg23/heap + +/obj/item/ammo_box/magazine/nsg23/heap/empty + empty = TRUE + +//-----------------------Spearhead Autorevolver Speed Loaders Box----------------------- + +/obj/item/ammo_box/magazine/spearhead + name = "\improper speed loaders box (Spearhead HP x 12)" + icon_state = "base_cmb" + overlay_ammo_type = "_357_hp" + overlay_gun_type = "_357" + overlay_content = "_speed" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/revolver/cmb + +/obj/item/ammo_box/magazine/spearhead/empty + empty = TRUE + +/obj/item/ammo_box/magazine/spearhead/normalpoint + name = "\improper speed loaders box (Spearhead x 12)" + overlay_ammo_type = "_357_reg" + magazine_type = /obj/item/ammo_magazine/revolver/cmb/normalpoint + +/obj/item/ammo_box/magazine/spearhead/normalpoint/empty + empty = TRUE + +//-----------------------Type 73 Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/type73 + name = "\improper magazine box (Type 73 x 16)" + icon_state = "base_type73" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "_type71_reg" + overlay_gun_type = "_type73" + overlay_content = "_type71_reg" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/t73 + +/obj/item/ammo_box/magazine/type73/empty + empty = TRUE + +/obj/item/ammo_box/magazine/type73/impact + name = "\improper magazine box (Type 73 High-Impact x 10)" + overlay_ammo_type = "_type73_impact" + overlay_content = "_type73_impact" + num_of_magazines = 10 + magazine_type = /obj/item/ammo_magazine/pistol/t73_impact + +/obj/item/ammo_box/magazine/type73/impact/empty + empty = TRUE + + +//-----------------------AR10 Rifle Mag Box----------------------- + +/obj/item/ammo_box/magazine/ar10 + name = "\improper magazine box (AR10 x 12)" + icon_state = "base_ar10" + flags_equip_slot = SLOT_BACK + overlay_gun_type = "_ar10" + overlay_content = "_reg" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/rifle/ar10 + +/obj/item/ammo_box/magazine/ar10/empty + empty = TRUE + +//-----------------------MP5 Smg Mag Box----------------------- + +/obj/item/ammo_box/magazine/mp5 + name = "\improper magazine box (MP5 x 12)" + icon_state = "base_m16" + flags_equip_slot = SLOT_BACK + overlay_gun_type = "_mp5" + overlay_content = "_reg" + num_of_magazines = 12 + magazine_type = /obj/item/ammo_magazine/smg/mp5 + +/obj/item/ammo_box/magazine/mp5/empty + empty = TRUE + + +//-----------------------Desert Eagle Pistol Mag Box----------------------- + +/obj/item/ammo_box/magazine/deagle + name = "\improper magazine box (Desert Eagle x 12)" + icon_state = "base_deagle" + flags_equip_slot = SLOT_BACK + overlay_ammo_type = "_reg" + overlay_gun_type = "_deagle" + overlay_content = "_reg" + num_of_magazines = 16 + magazine_type = /obj/item/ammo_magazine/pistol/heavy + +/obj/item/ammo_box/magazine/deagle/empty + empty = TRUE + +/obj/item/ammo_box/magazine/deagle/super + name = "\improper magazine box (Heavy Desert Eagle x 8)" + overlay_ammo_type = "_hp" + overlay_content = "_hp" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/pistol/heavy/super + +/obj/item/ammo_box/magazine/deagle/super/empty + empty = TRUE + +/obj/item/ammo_box/magazine/deagle/super/highimpact + name = "\improper magazine box (High Impact Desert Eagle x 8)" + overlay_ammo_type = "_impact" + overlay_content = "_impact" + magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact + +/obj/item/ammo_box/magazine/deagle/super/highimpact/empty + empty = TRUE + +/obj/item/ammo_box/magazine/deagle/super/highimpact/ap + name = "\improper magazine box (High Impact Armor-Piercing Desert Eagle x 8)" + overlay_ammo_type = "_ap" + overlay_content = "_ap" + magazine_type = /obj/item/ammo_magazine/pistol/heavy/super/highimpact/ap + +/obj/item/ammo_box/magazine/deagle/super/highimpact/ap/empty + empty = TRUE diff --git a/code/modules/projectiles/ammo_boxes/misc_boxes.dm b/code/modules/projectiles/ammo_boxes/misc_boxes.dm index d09a69e5bb50..7b19555f4de5 100644 --- a/code/modules/projectiles/ammo_boxes/misc_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/misc_boxes.dm @@ -75,6 +75,15 @@ overlay_gun_type = "_m94" overlay_content = "_flares" +//------------------------M89 Signal Flare Packs Box-------------------------- + +/obj/item/ammo_box/magazine/misc/flares/signal + name = "\improper box of M89 signal flare packs" + desc = "A box of M89 signal flare packs, to mark up the way." + magazine_type = /obj/item/storage/box/m94/signal + overlay_gun_type = "_m89" + overlay_content = "_flares_signal" + //---------------------FIRE HANDLING PROCS //flare box has unique stuff @@ -139,6 +148,9 @@ /obj/item/ammo_box/magazine/misc/flares/empty empty = TRUE +/obj/item/ammo_box/magazine/misc/flares/signal/empty + empty = TRUE + //------------------------Flashlight Box-------------------------- /obj/item/ammo_box/magazine/misc/flashlight diff --git a/code/modules/projectiles/ammo_boxes/round_boxes.dm b/code/modules/projectiles/ammo_boxes/round_boxes.dm index 95115b76df43..ab1d1667c15f 100644 --- a/code/modules/projectiles/ammo_boxes/round_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/round_boxes.dm @@ -130,3 +130,43 @@ /obj/item/ammo_box/rounds/type71/heap/empty empty = TRUE + +//----------------9mm Pistol Ammunition Boxes (for mod88, M4A3 pistols)------------------ + +/obj/item/ammo_box/rounds/pistol + name = "\improper pistol ammunition box (9mm)" + desc = "A 9mm ammunition box. Used to refill M4A3 magazines. It comes with a leather strap allowing to wear it on the back." + caliber = "9mm" + icon_state = "base_m4a3" + overlay_content = "_reg" + default_ammo = /datum/ammo/bullet/pistol + +/obj/item/ammo_box/rounds/pistol/empty + empty = TRUE + +/obj/item/ammo_box/rounds/pistol/ap + name = "\improper pistol ammunition box (9mm AP)" + desc = "A 9mm armor-piercing ammunition box. Used to refill mod88 and M4A3 magazines. It comes with a leather strap allowing to wear it on the back." + overlay_content = "_ap" + default_ammo = /datum/ammo/bullet/pistol/ap + +/obj/item/ammo_box/rounds/pistol/ap/empty + empty = TRUE + +/obj/item/ammo_box/rounds/pistol/hp + name = "\improper pistol ammunition box (9mm HP)" + desc = "A 9mm hollow-point ammunition box. Used to refill M4A3 magazines. It comes with a leather strap allowing to wear it on the back." + overlay_content = "_hp" + default_ammo = /datum/ammo/bullet/pistol/hollow + +/obj/item/ammo_box/rounds/pistol/hp/empty + empty = TRUE + +/obj/item/ammo_box/rounds/pistol/incen + name = "\improper pistol ammunition box (9mm Incendiary)" + desc = "A 9mm incendiary ammunition box. Used to refill M4A3 magazines. It comes with a leather strap allowing to wear it on the back." + overlay_content = "_incen" + default_ammo = /datum/ammo/bullet/pistol/incendiary + +/obj/item/ammo_box/rounds/pistol/incen/empty + empty = TRUE diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm deleted file mode 100644 index 1bb1083a9d4f..000000000000 --- a/code/modules/projectiles/ammo_datums.dm +++ /dev/null @@ -1,3450 +0,0 @@ -/datum/ammo - var/name = "generic bullet" - var/headshot_state = null //Icon state when a human is permanently killed with it by execution/suicide. - var/icon = 'icons/obj/items/weapons/projectiles.dmi' - var/icon_state = "bullet" - var/ping = "ping_b" //The icon that is displayed when the bullet bounces off something. - var/sound_hit //When it deals damage. - var/sound_armor //When it's blocked by human armor. - var/sound_miss //When it misses someone. - var/sound_bounce //When it bounces off something. - var/sound_shield_hit //When the bullet is absorbed by a xeno_shield - - var/accurate_range_min = 0 // Snipers use this to simulate poor accuracy at close ranges - var/scatter = 0 // How much the ammo scatters when burst fired, added to gun scatter, along with other mods - var/stamina_damage = 0 - var/damage = 0 // This is the base damage of the bullet as it is fired - var/damage_type = BRUTE // BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here - var/penetration = 0 // How much armor it ignores before calculations take place - var/shrapnel_chance = 0 // The % chance it will imbed in a human - var/shrapnel_type = 0 // The shrapnel type the ammo will embed, if the chance rolls - var/bonus_projectiles_type // Type path of the extra projectiles - var/bonus_projectiles_amount = 0 // How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together - var/debilitate[] = null // Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony - var/pen_armor_punch = 0.5 // how much armor breaking will be done per point of penetration. This is for weapons that penetrate with their shape (like needle bullets) - var/damage_armor_punch = 0.5 // how much armor breaking is done by sheer weapon force. This is for big blunt weapons - var/sound_override = null // if we should play a special sound when firing. - var/flags_ammo_behavior = NO_FLAGS - - var/accuracy = HIT_ACCURACY_TIER_1 // This is added to the bullet's base accuracy. - var/accuracy_var_low = PROJECTILE_VARIANCE_TIER_9 // How much the accuracy varies when fired. // This REDUCES the lower bound of accuracy variance by 2%, to 96%. - var/accuracy_var_high = PROJECTILE_VARIANCE_TIER_9 // This INCREASES the upper bound of accuracy variance by 2%, to 107%. - var/accurate_range = 6 // For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though. - var/max_range = 22 // This will de-increment a counter on the bullet. - var/damage_var_low = PROJECTILE_VARIANCE_TIER_9 // Same as with accuracy variance. - var/damage_var_high = PROJECTILE_VARIANCE_TIER_9 // This INCREASES the upper bound of damage variance by 2%, to 107%. - var/damage_falloff = DAMAGE_FALLOFF_TIER_10 // How much damage the bullet loses per turf traveled after the effective range - var/damage_buildup = DAMAGE_BUILDUP_TIER_1 // How much damage the bullet loses per turf away before the effective range - var/effective_range_min = EFFECTIVE_RANGE_OFF //What minimum range the ammo deals full damage, builds up the closer you get. 0 for no minimum. Added onto gun range as a modifier. - var/effective_range_max = EFFECTIVE_RANGE_OFF //What maximum range the ammo deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum. Added onto gun range as a modifier. - var/shell_speed = AMMO_SPEED_TIER_1 // How fast the projectile moves. - - var/handful_type = /obj/item/ammo_magazine/handful - var/handful_color - var/handful_state = "bullet" //custom handful sprite, for shotgun shells or etc. - var/multiple_handful_name //so handfuls say 'buckshot shells' not 'shell' - - /// Does this apply xenomorph behaviour delegate? - var/apply_delegate = TRUE - - /// An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args)) - /// that will be given to a projectile with the current ammo datum - var/list/list/traits_to_give - - var/flamer_reagent_type = /datum/reagent/napalm/ut - - /// The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all. - var/hit_effect_color = "#FF0000" - -/datum/ammo/New() - set_bullet_traits() - -/datum/ammo/proc/on_bullet_generation(obj/projectile/generated_projectile, mob/bullet_generator) //NOT used on New(), applied to the projectiles. - return - -/// Populate traits_to_give in this proc -/datum/ammo/proc/set_bullet_traits() - return - -/datum/ammo/can_vv_modify() - return FALSE - -/datum/ammo/proc/do_at_half_range(obj/projectile/P) - SHOULD_NOT_SLEEP(TRUE) - return - -/datum/ammo/proc/on_embed(mob/embedded_mob, obj/limb/target_organ) - return - -/datum/ammo/proc/do_at_max_range(obj/projectile/P) - SHOULD_NOT_SLEEP(TRUE) - return - -/datum/ammo/proc/on_shield_block(mob/M, obj/projectile/P) //Does it do something special when shield blocked? Ie. a flare or grenade that still blows up. - return - -/datum/ammo/proc/on_hit_turf(turf/T, obj/projectile/P) //Special effects when hitting dense turfs. - SHOULD_NOT_SLEEP(TRUE) - return - -/datum/ammo/proc/on_hit_mob(mob/M, obj/projectile/P, mob/user) //Special effects when hitting mobs. - SHOULD_NOT_SLEEP(TRUE) - return - -///Special effects when pointblanking mobs. Ultimately called from /living/attackby(). Return TRUE to end the PB attempt. -/datum/ammo/proc/on_pointblank(mob/living/L, obj/projectile/P, mob/living/user, obj/item/weapon/gun/fired_from) - return - -/datum/ammo/proc/on_hit_obj(obj/O, obj/projectile/P) //Special effects when hitting objects. - SHOULD_NOT_SLEEP(TRUE) - return - -/datum/ammo/proc/on_near_target(turf/T, obj/projectile/P) //Special effects when passing near something. Range of things that triggers it is controlled by other ammo flags. - return 0 //return 0 means it flies even after being near something. Return 1 means it stops - -/datum/ammo/proc/knockback(mob/living/living_mob, obj/projectile/fired_projectile, max_range = 2) - if(!living_mob || living_mob == fired_projectile.firer) - return - if(fired_projectile.distance_travelled > max_range || living_mob.lying) - return //Two tiles away or more, basically. - - if(living_mob.mob_size >= MOB_SIZE_BIG) - return //Big xenos are not affected. - - shake_camera(living_mob, 3, 4) - knockback_effects(living_mob, fired_projectile) - slam_back(living_mob, fired_projectile) - -/datum/ammo/proc/slam_back(mob/living/living_mob, obj/projectile/fired_projectile) - //Either knockback or slam them into an obstacle. - var/direction = Get_Compass_Dir(fired_projectile.z ? fired_projectile : fired_projectile.firer, living_mob) //More precise than get_dir. - if(!direction) //Same tile. - return - if(!step(living_mob, direction)) - living_mob.animation_attack_on(get_step(living_mob, direction)) - playsound(living_mob.loc, "punch", 25, 1) - living_mob.visible_message(SPAN_DANGER("[living_mob] slams into an obstacle!"), - isxeno(living_mob) ? SPAN_XENODANGER("You slam into an obstacle!") : SPAN_HIGHDANGER("You slam into an obstacle!"), null, 4, CHAT_TYPE_TAKING_HIT) - living_mob.apply_damage(MELEE_FORCE_TIER_2) - -///The applied effects for knockback(), overwrite to change slow/stun amounts for different ammo datums -/datum/ammo/proc/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) - if(iscarbonsizexeno(living_mob)) - var/mob/living/carbon/xenomorph/target = living_mob - target.apply_effect(0.7, WEAKEN) // 0.9 seconds of stun, per agreement from Balance Team when switched from MC stuns to exact stuns - target.apply_effect(1, SUPERSLOW) - target.apply_effect(2, SLOW) - to_chat(target, SPAN_XENODANGER("You are shaken by the sudden impact!")) - else - living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) - -/datum/ammo/proc/pushback(mob/target_mob, obj/projectile/fired_projectile, max_range = 2) - if(!target_mob || target_mob == fired_projectile.firer || fired_projectile.distance_travelled > max_range || target_mob.lying) - return - - if(target_mob.mob_size >= MOB_SIZE_BIG) - return //too big to push - - to_chat(target_mob, isxeno(target_mob) ? SPAN_XENODANGER("You are pushed back by the sudden impact!") : SPAN_HIGHDANGER("You are pushed back by the sudden impact!"), null, 4, CHAT_TYPE_TAKING_HIT) - slam_back(target_mob, fired_projectile, max_range) - -/datum/ammo/proc/burst(atom/target, obj/projectile/P, damage_type = BRUTE, range = 1, damage_div = 2, show_message = SHOW_MESSAGE_VISIBLE) //damage_div says how much we divide damage - if(!target || !P) return - for(var/mob/living/carbon/M in orange(range,target)) - if(P.firer == M) - continue - if(show_message) - var/msg = "You are hit by backlash from \a [P.name]!" - M.visible_message(SPAN_DANGER("[M] is hit by backlash from \a [P.name]!"),isxeno(M) ? SPAN_XENODANGER("[msg]"):SPAN_HIGHDANGER("[msg]")) - var/damage = P.damage/damage_div - - var/mob/living/carbon/xenomorph/XNO = null - - if(isxeno(M)) - XNO = M - var/total_explosive_resistance = XNO.caste.xeno_explosion_resistance + XNO.armor_explosive_buff - damage = armor_damage_reduction(GLOB.xeno_explosive, damage, total_explosive_resistance , 60, 0, 0.5, XNO.armor_integrity) - var/armor_punch = armor_break_calculation(GLOB.xeno_explosive, damage, total_explosive_resistance, 60, 0, 0.5, XNO.armor_integrity) - XNO.apply_armorbreak(armor_punch) - - M.apply_damage(damage,damage_type) - - if(XNO && XNO.xeno_shields.len) - P.play_shielded_hit_effect(M) - else - P.play_hit_effect(M) - -/datum/ammo/proc/fire_bonus_projectiles(obj/projectile/original_P) - set waitfor = 0 - - var/turf/curloc = get_turf(original_P.shot_from) - var/initial_angle = Get_Angle(curloc, original_P.target_turf) - - for(var/i in 1 to bonus_projectiles_amount) //Want to run this for the number of bonus projectiles. - var/final_angle = initial_angle - - var/obj/projectile/P = new /obj/projectile(curloc, original_P.weapon_cause_data) - P.generate_bullet(GLOB.ammo_list[bonus_projectiles_type]) //No bonus damage or anything. - P.accuracy = round(P.accuracy * original_P.accuracy/initial(original_P.accuracy)) //if the gun changes the accuracy of the main projectile, it also affects the bonus ones. - original_P.give_bullet_traits(P) - - var/total_scatter_angle = P.scatter - final_angle += rand(-total_scatter_angle, total_scatter_angle) - var/turf/new_target = get_angle_target_turf(curloc, final_angle, 30) - - P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range, P.ammo.shell_speed, original_P.original) //Fire! - -/datum/ammo/proc/drop_flame(turf/T, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 - if(!istype(T)) - return - if(locate(/obj/flamer_fire) in T) - return - - var/datum/reagent/R = new flamer_reagent_type() - new /obj/flamer_fire(T, cause_data, R) - - -/* -//====== - Default Ammo -//====== -*/ -//Only when things screw up do we use this as a placeholder. -/datum/ammo/bullet - name = "default bullet" - icon_state = "bullet" - headshot_state = HEADSHOT_OVERLAY_LIGHT - flags_ammo_behavior = AMMO_BALLISTIC - sound_hit = "ballistic_hit" - sound_armor = "ballistic_armor" - sound_miss = "ballistic_miss" - sound_bounce = "ballistic_bounce" - sound_shield_hit = "ballistic_shield_hit" - - accurate_range_min = 0 - damage = 10 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_1 - shrapnel_type = /obj/item/shard/shrapnel - shell_speed = AMMO_SPEED_TIER_4 - -/datum/ammo/bullet/proc/handle_battlefield_execution(datum/ammo/firing_ammo, mob/living/hit_mob, obj/projectile/firing_projectile, mob/living/user, obj/item/weapon/gun/fired_from) - SIGNAL_HANDLER - - if(!user || hit_mob == user || user.zone_selected != "head" || user.a_intent != INTENT_HARM || !ishuman_strict(hit_mob)) - return - - if(!skillcheck(user, SKILL_EXECUTION, SKILL_EXECUTION_TRAINED)) - to_chat(user, SPAN_DANGER("You don't know how to execute someone correctly.")) - return - - var/mob/living/carbon/human/execution_target = hit_mob - - if(execution_target.status_flags & PERMANENTLY_DEAD) - to_chat(user, SPAN_DANGER("[execution_target] has already been executed!")) - return - - INVOKE_ASYNC(src, PROC_REF(attempt_battlefield_execution), src, execution_target, firing_projectile, user, fired_from) - - return COMPONENT_CANCEL_AMMO_POINT_BLANK - -/datum/ammo/bullet/proc/attempt_battlefield_execution(datum/ammo/firing_ammo, mob/living/carbon/human/execution_target, obj/projectile/firing_projectile, mob/living/user, obj/item/weapon/gun/fired_from) - user.affected_message(execution_target, - SPAN_HIGHDANGER("You aim \the [fired_from] at [execution_target]'s head!"), - SPAN_HIGHDANGER("[user] aims \the [fired_from] directly at your head!"), - SPAN_DANGER("[user] aims \the [fired_from] at [execution_target]'s head!")) - - user.next_move += 1.1 SECONDS //PB has no click delay; readding it here to prevent people accidentally queuing up multiple executions. - - if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE) || !user.Adjacent(execution_target)) - fired_from.delete_bullet(firing_projectile, TRUE) - return - - if(!(fired_from.flags_gun_features & GUN_SILENCED)) - playsound(user, fired_from.fire_sound, fired_from.firesound_volume, FALSE) - else - playsound(user, fired_from.fire_sound, 25, FALSE) - - shake_camera(user, 1, 2) - - execution_target.apply_damage(damage * 3, BRUTE, "head", no_limb_loss = TRUE, permanent_kill = TRUE) //Apply gobs of damage and make sure they can't be revived later... - execution_target.apply_damage(200, OXY) //...fill out the rest of their health bar with oxyloss... - execution_target.death(create_cause_data("execution", user)) //...make certain they're properly dead... - shake_camera(execution_target, 3, 4) - execution_target.update_headshot_overlay(headshot_state) //...and add a gory headshot overlay. - - execution_target.visible_message(SPAN_HIGHDANGER(uppertext("[execution_target] WAS EXECUTED!")), \ - SPAN_HIGHDANGER("You WERE EXECUTED!")) - - user.count_niche_stat(STATISTICS_NICHE_EXECUTION, 1, firing_projectile.weapon_cause_data?.cause_name) - - var/area/execution_area = get_area(execution_target) - - msg_admin_attack(FONT_SIZE_HUGE("[key_name(usr)] has battlefield executed [key_name(execution_target)] in [get_area(usr)] ([usr.loc.x],[usr.loc.y],[usr.loc.z])."), usr.loc.x, usr.loc.y, usr.loc.z) - log_attack("[key_name(usr)] battlefield executed [key_name(execution_target)] at [execution_area.name].") - - if(flags_ammo_behavior & AMMO_EXPLOSIVE) - execution_target.gib() - - -/* -//====== - Pistol Ammo -//====== -*/ - -// Used by M4A3, M4A3 Custom and B92FS -/datum/ammo/bullet/pistol - name = "pistol bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - accuracy = -HIT_ACCURACY_TIER_3 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - damage = 40 - penetration= ARMOR_PENETRATION_TIER_2 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/datum/ammo/bullet/pistol/tiny - name = "light pistol bullet" - -/datum/ammo/bullet/pistol/tranq - name = "tranquilizer bullet" - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST - stamina_damage = 30 - damage = 15 - -//2020 rebalance: is supposed to counter runners and lurkers, dealing high damage to the only castes with no armor. -//Limited by its lack of versatility and lower supply, so marines finally have an answer for flanker castes that isn't just buckshot. - -/datum/ammo/bullet/pistol/hollow - name = "hollowpoint pistol bullet" - - damage = 55 //hollowpoint is strong - penetration = 0 //hollowpoint can't pierce armor! - shrapnel_chance = SHRAPNEL_CHANCE_TIER_3 //hollowpoint causes shrapnel - -// Used by M4A3 AP and mod88 -/datum/ammo/bullet/pistol/ap - name = "armor-piercing pistol bullet" - - damage = 25 - accuracy = HIT_ACCURACY_TIER_2 - penetration= ARMOR_PENETRATION_TIER_8 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/datum/ammo/bullet/pistol/ap/penetrating - name = "wall-penetrating pistol bullet" - shrapnel_chance = 0 - - damage = 30 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/pistol/ap/penetrating/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/pistol/ap/toxin - name = "toxic pistol bullet" - var/acid_per_hit = 10 - var/organic_damage_mult = 3 - -/datum/ammo/bullet/pistol/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) - -/datum/ammo/bullet/pistol/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) - . = ..() - if(T.flags_turf & TURF_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/pistol/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) - . = ..() - if(O.flags_obj & OBJ_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/pistol/le - name = "armor-shredding pistol bullet" - - damage = 15 - penetration = ARMOR_PENETRATION_TIER_4 - pen_armor_punch = 3 - -/datum/ammo/bullet/pistol/rubber - name = "rubber pistol bullet" - sound_override = 'sound/weapons/gun_c99.ogg' - - damage = 0 - stamina_damage = 25 - shrapnel_chance = 0 - -// Reskinned rubber bullet used for the ES-4 CL pistol. -/datum/ammo/bullet/pistol/rubber/stun - name = "stun pistol bullet" - sound_override = null - -// Used by M1911, Deagle and KT-42 -/datum/ammo/bullet/pistol/heavy - name = "heavy pistol bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - accuracy = -HIT_ACCURACY_TIER_3 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - damage = 55 - penetration = ARMOR_PENETRATION_TIER_3 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/datum/ammo/bullet/pistol/heavy/super //Commander's variant - name = ".50 heavy pistol bullet" - damage = 60 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_6 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/pistol/heavy/super/highimpact - name = ".50 high-impact pistol bullet" - penetration = ARMOR_PENETRATION_TIER_1 - debilitate = list(0,1.5,0,0,0,1,0,0) - flags_ammo_behavior = AMMO_BALLISTIC - -/datum/ammo/bullet/pistol/heavy/super/highimpact/ap - name = ".50 high-impact armor piercing pistol bullet" - penetration = ARMOR_PENETRATION_TIER_10 - damage = 45 - -/datum/ammo/bullet/pistol/heavy/super/highimpact/upp - name = "high-impact pistol bullet" - sound_override = 'sound/weapons/gun_DE50.ogg' - penetration = ARMOR_PENETRATION_TIER_6 - debilitate = list(0,1.5,0,0,0,1,0,0) - flags_ammo_behavior = AMMO_BALLISTIC - -/datum/ammo/bullet/pistol/heavy/super/highimpact/New() - ..() - RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) - -/datum/ammo/bullet/pistol/heavy/super/highimpact/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) - -/datum/ammo/bullet/pistol/deagle - name = ".50 heavy pistol bullet" - damage = 45 - headshot_state = HEADSHOT_OVERLAY_HEAVY - accuracy = -HIT_ACCURACY_TIER_3 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - penetration = ARMOR_PENETRATION_TIER_6 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_5 - -/datum/ammo/bullet/pistol/incendiary - name = "incendiary pistol bullet" - damage_type = BURN - shrapnel_chance = 0 - flags_ammo_behavior = AMMO_BALLISTIC - - accuracy = HIT_ACCURACY_TIER_3 - damage = 20 - -/datum/ammo/bullet/pistol/incendiary/set_bullet_traits() - ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -// Used by the hipower -// I know that the 'high power' in the name is supposed to mean its 'impressive' magazine capacity -// but this is CM, half our guns have baffling misconceptions and mistakes (how do you grab the type-71?) so it's on-brand. -// maybe in the far flung future of 2280 someone screwed up the design. - -/datum/ammo/bullet/pistol/highpower - name = "high-powered pistol bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - accuracy = HIT_ACCURACY_TIER_3 - damage = 36 - penetration = ARMOR_PENETRATION_TIER_5 - damage_falloff = DAMAGE_FALLOFF_TIER_7 - -// Used by VP78 and Auto 9 -/datum/ammo/bullet/pistol/squash - name = "squash-head pistol bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - debilitate = list(0,0,0,0,0,0,0,2) - - accuracy = HIT_ACCURACY_TIER_4 - damage = 45 - penetration= ARMOR_PENETRATION_TIER_6 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - damage_falloff = DAMAGE_FALLOFF_TIER_6 //"VP78 - the only pistol viable as a primary."-Vampmare, probably. - -/datum/ammo/bullet/pistol/squash/toxin - name = "toxic squash-head pistol bullet" - var/acid_per_hit = 10 - var/organic_damage_mult = 3 - -/datum/ammo/bullet/pistol/squash/toxin/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) - -/datum/ammo/bullet/pistol/squash/toxin/on_hit_turf(turf/T, obj/projectile/P) - . = ..() - if(T.flags_turf & TURF_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/pistol/squash/toxin/on_hit_obj(obj/O, obj/projectile/P) - . = ..() - if(O.flags_obj & OBJ_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/pistol/squash/penetrating - name = "wall-penetrating squash-head pistol bullet" - shrapnel_chance = 0 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/pistol/squash/penetrating/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/pistol/squash/incendiary - name = "incendiary squash-head pistol bullet" - damage_type = BURN - shrapnel_chance = 0 - flags_ammo_behavior = AMMO_BALLISTIC - accuracy = HIT_ACCURACY_TIER_3 - damage = 35 - -/datum/ammo/bullet/pistol/squash/incendiary/set_bullet_traits() - ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - - -/datum/ammo/bullet/pistol/mankey - name = "live monkey" - icon_state = "monkey1" - ping = null //no bounce off. - damage_type = BURN - debilitate = list(4,4,0,0,0,0,0,0) - flags_ammo_behavior = AMMO_IGNORE_ARMOR - - damage = 15 - damage_var_high = PROJECTILE_VARIANCE_TIER_5 - shell_speed = AMMO_SPEED_TIER_2 - -/datum/ammo/bullet/pistol/mankey/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/pistol/mankey/on_hit_mob(mob/M,obj/projectile/P) - if(P && P.loc && !M.stat && !istype(M,/mob/living/carbon/human/monkey)) - P.visible_message(SPAN_DANGER("The [src] chimpers furiously!")) - new /mob/living/carbon/human/monkey(P.loc) - -/datum/ammo/bullet/pistol/smart - name = "smartpistol bullet" - flags_ammo_behavior = AMMO_BALLISTIC - - accuracy = HIT_ACCURACY_TIER_8 - damage = 30 - penetration = 20 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/* -//====== - Revolver Ammo -//====== -*/ - -/datum/ammo/bullet/revolver - name = "revolver bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - damage = 55 - penetration = ARMOR_PENETRATION_TIER_1 - accuracy = HIT_ACCURACY_TIER_1 - -/datum/ammo/bullet/revolver/marksman - name = "marksman revolver bullet" - - shrapnel_chance = 0 - damage_falloff = 0 - accurate_range = 12 - penetration = ARMOR_PENETRATION_TIER_7 - -/datum/ammo/bullet/revolver/heavy - name = "heavy revolver bullet" - - damage = 35 - penetration = ARMOR_PENETRATION_TIER_4 - accuracy = HIT_ACCURACY_TIER_3 - -/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) - -/datum/ammo/bullet/revolver/incendiary - name = "incendiary revolver bullet" - damage = 40 - -/datum/ammo/bullet/revolver/incendiary/set_bullet_traits() - ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/revolver/marksman/toxin - name = "toxic revolver bullet" - var/acid_per_hit = 10 - var/organic_damage_mult = 3 - -/datum/ammo/bullet/revolver/marksman/toxin/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) - -/datum/ammo/bullet/revolver/marksman/toxin/on_hit_turf(turf/T, obj/projectile/P) - . = ..() - if(T.flags_turf & TURF_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/revolver/marksman/toxin/on_hit_obj(obj/O, obj/projectile/P) - . = ..() - if(O.flags_obj & OBJ_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/revolver/penetrating - name = "wall-penetrating revolver bullet" - shrapnel_chance = 0 - - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/revolver/penetrating/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/revolver/upp - name = "heavy revolver bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - penetration = ARMOR_PENETRATION_TIER_4 - damage = 70 - - -/datum/ammo/bullet/revolver/upp/shrapnel - name = "shrapnel shot" - headshot_state = HEADSHOT_OVERLAY_HEAVY //Gol-dang shotgun blow your fething head off. - debilitate = list(0,0,0,0,0,0,0,0) - icon_state = "shrapnelshot" - handful_state = "shrapnel" - bonus_projectiles_type = /datum/ammo/bullet/revolver/upp/shrapnel_bits - - max_range = 6 - damage = 40 // + TIER_4 * 3 - damage_falloff = DAMAGE_FALLOFF_TIER_7 - penetration = ARMOR_PENETRATION_TIER_8 - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 - shrapnel_chance = 100 - shrapnel_type = /obj/item/shard/shrapnel/upp - //roughly 90 or so damage with the additional shrapnel, around 130 in total with primary round - -/datum/ammo/bullet/revolver/upp/shrapnel/on_hit_mob(mob/M, obj/projectile/P) - pushback(M, P, 1) - -/datum/ammo/bullet/revolver/upp/shrapnel_bits - name = "small shrapnel" - icon_state = "shrapnelshot_bit" - - max_range = 6 - damage = 30 - penetration = ARMOR_PENETRATION_TIER_4 - scatter = SCATTER_AMOUNT_TIER_1 - bonus_projectiles_amount = 0 - shrapnel_type = /obj/item/shard/shrapnel/upp/bits - -/datum/ammo/bullet/revolver/small - name = "small revolver bullet" - headshot_state = HEADSHOT_OVERLAY_LIGHT - - damage = 45 - - penetration = ARMOR_PENETRATION_TIER_3 - -/datum/ammo/bullet/revolver/small/hollowpoint - name = "small hollowpoint revolver bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - damage = 75 // way too strong because it's hard to make a good balance between HP and normal with this system, but the damage falloff is really strong - penetration = 0 - damage_falloff = DAMAGE_FALLOFF_TIER_6 - -/datum/ammo/bullet/revolver/mateba - name = ".454 heavy revolver bullet" - - damage = 60 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_6 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/revolver/mateba/highimpact - name = ".454 heavy high-impact revolver bullet" - debilitate = list(0,2,0,0,0,1,0,0) - penetration = ARMOR_PENETRATION_TIER_1 - flags_ammo_behavior = AMMO_BALLISTIC - -/datum/ammo/bullet/revolver/mateba/highimpact/ap - name = ".454 heavy high-impact armor piercing revolver bullet" - penetration = ARMOR_PENETRATION_TIER_10 - damage = 45 - -/datum/ammo/bullet/revolver/mateba/highimpact/New() - ..() - RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) - -/datum/ammo/bullet/revolver/mateba/highimpact/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) - -/datum/ammo/bullet/revolver/mateba/highimpact/explosive //if you ever put this in normal gameplay, i am going to scream - name = ".454 heavy explosive revolver bullet" - damage = 100 - damage_var_low = PROJECTILE_VARIANCE_TIER_10 - damage_var_high = PROJECTILE_VARIANCE_TIER_1 - penetration = ARMOR_PENETRATION_TIER_10 - flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_BALLISTIC - -/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_mob(mob/M, obj/projectile/P) - ..() - cell_explosion(get_turf(M), 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_obj(obj/O, obj/projectile/P) - ..() - cell_explosion(get_turf(O), 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/revolver/mateba/highimpact/explosive/on_hit_turf(turf/T, obj/projectile/P) - ..() - cell_explosion(T, 120, 30, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/revolver/webley //Mateba round without the knockdown. - name = ".455 Webley bullet" - damage = 60 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_6 - penetration = ARMOR_PENETRATION_TIER_2 - -/* -//====== - SMG Ammo -//====== -*/ -//2020 SMG/ammo rebalance. default ammo actually has penetration so it can be useful, by 4khan: should be meh against t3s, better under 15 armor. Perfectly does this right now (oct 2020) -//has reduced falloff compared to the m39. this means it is best for kiting castes (mostly t2s and below admittedly) -//while the m39 ap is better for shredding them at close range, but has reduced velocity, so it's better for just running in and erasing armor-centric castes (defender, crusher) -// which i think is really interesting and good balance, giving both ammo types a reason to exist even against ravagers. -//i feel it is necessary to reflavor the default bullet, because otherwise, people won't be able to notice it has less falloff and faster bullet speed. even with a changelog, -//way too many people don't read the changelog, and after one or two months the changelog entry is all but archive, so there needs to be an ingame description of what the ammo does -//in comparison to armor-piercing rounds. - -/datum/ammo/bullet/smg - name = "submachinegun bullet" - damage = 34 - accurate_range = 4 - effective_range_max = 4 - penetration = ARMOR_PENETRATION_TIER_1 - shell_speed = AMMO_SPEED_TIER_6 - damage_falloff = DAMAGE_FALLOFF_TIER_5 - scatter = SCATTER_AMOUNT_TIER_6 - accuracy = HIT_ACCURACY_TIER_3 - -/datum/ammo/bullet/smg/m39 - name = "high-velocity submachinegun bullet" //i don't want all smgs to inherit 'high velocity' - -/datum/ammo/bullet/smg/ap - name = "armor-piercing submachinegun bullet" - - damage = 26 - penetration = ARMOR_PENETRATION_TIER_6 - shell_speed = AMMO_SPEED_TIER_4 - -/datum/ammo/bullet/smg/heap - name = "high-explosive armor-piercing submachinegun bullet" - - damage = 45 - headshot_state = HEADSHOT_OVERLAY_MEDIUM - penetration = ARMOR_PENETRATION_TIER_6 - shell_speed = AMMO_SPEED_TIER_4 - -/datum/ammo/bullet/smg/ap/toxin - name = "toxic submachinegun bullet" - var/acid_per_hit = 5 - var/organic_damage_mult = 3 - -/datum/ammo/bullet/smg/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) - -/datum/ammo/bullet/smg/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) - . = ..() - if(T.flags_turf & TURF_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/smg/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) - . = ..() - if(O.flags_obj & OBJ_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/smg/nail - name = "7x45mm plasteel nail" - icon_state = "nail-projectile" - - damage = 25 - penetration = ARMOR_PENETRATION_TIER_5 - damage_falloff = DAMAGE_FALLOFF_TIER_6 - accurate_range = 5 - shell_speed = AMMO_SPEED_TIER_4 - -/datum/ammo/bullet/smg/incendiary - name = "incendiary submachinegun bullet" - damage_type = BURN - shrapnel_chance = 0 - flags_ammo_behavior = AMMO_BALLISTIC - - damage = 25 - accuracy = -HIT_ACCURACY_TIER_2 - -/datum/ammo/bullet/smg/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/smg/ap/penetrating - name = "wall-penetrating submachinegun bullet" - shrapnel_chance = 0 - - damage = 30 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/smg/ap/penetrating/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/smg/le - name = "armor-shredding submachinegun bullet" - - scatter = SCATTER_AMOUNT_TIER_10 - damage = 20 - penetration = ARMOR_PENETRATION_TIER_4 - shell_speed = AMMO_SPEED_TIER_3 - damage_falloff = DAMAGE_FALLOFF_TIER_10 - pen_armor_punch = 4 - -/datum/ammo/bullet/smg/rubber - name = "rubber submachinegun bullet" - sound_override = 'sound/weapons/gun_c99.ogg' - - damage = 0 - stamina_damage = 10 - shrapnel_chance = 0 - -/datum/ammo/bullet/smg/mp27 - name = "simple submachinegun bullet" - damage = 40 - accurate_range = 5 - effective_range_max = 7 - penetration = 0 - shell_speed = AMMO_SPEED_TIER_6 - damage_falloff = DAMAGE_FALLOFF_TIER_6 - scatter = SCATTER_AMOUNT_TIER_6 - accuracy = HIT_ACCURACY_TIER_2 - -// less damage than the m39, but better falloff, range, and AP - -/datum/ammo/bullet/smg/ppsh - name = "crude submachinegun bullet" - damage = 26 - accurate_range = 7 - effective_range_max = 7 - penetration = ARMOR_PENETRATION_TIER_2 - damage_falloff = DAMAGE_FALLOFF_TIER_7 - scatter = SCATTER_AMOUNT_TIER_5 - -/datum/ammo/bullet/smg/pps43 - name = "simple submachinegun bullet" - damage = 35 - accurate_range = 7 - effective_range_max = 10 - penetration = ARMOR_PENETRATION_TIER_4 - damage_falloff = DAMAGE_FALLOFF_TIER_6 - scatter = SCATTER_AMOUNT_TIER_6 - -/* -//====== - Rifle Ammo -//====== -*/ - -/datum/ammo/bullet/rifle - name = "rifle bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - damage = 40 - penetration = ARMOR_PENETRATION_TIER_1 - accurate_range = 16 - accuracy = HIT_ACCURACY_TIER_4 - scatter = SCATTER_AMOUNT_TIER_10 - shell_speed = AMMO_SPEED_TIER_6 - effective_range_max = 7 - damage_falloff = DAMAGE_FALLOFF_TIER_7 - max_range = 24 //So S8 users don't have their bullets magically disappaer at 22 tiles (S8 can see 24 tiles) - -/datum/ammo/bullet/rifle/holo_target - name = "holo-targeting rifle bullet" - damage = 30 - var/holo_stacks = 10 - -/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) - -/datum/ammo/bullet/rifle/holo_target/hunting - name = "holo-targeting hunting bullet" - damage = 25 - holo_stacks = 15 - -/datum/ammo/bullet/rifle/explosive - name = "explosive rifle bullet" - - damage = 25 - accurate_range = 22 - accuracy = 0 - shell_speed = AMMO_SPEED_TIER_4 - damage_falloff = DAMAGE_FALLOFF_TIER_9 - -/datum/ammo/bullet/rifle/explosive/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/rifle/explosive/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/rifle/explosive/on_hit_turf(turf/T, obj/projectile/P) - if(T.density) - cell_explosion(T, 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data) - -/datum/ammo/bullet/rifle/ap - name = "armor-piercing rifle bullet" - - damage = 30 - penetration = ARMOR_PENETRATION_TIER_8 - -// Basically AP but better. Focused at taking out armour temporarily -/datum/ammo/bullet/rifle/ap/toxin - name = "toxic rifle bullet" - var/acid_per_hit = 7 - var/organic_damage_mult = 3 - -/datum/ammo/bullet/rifle/ap/toxin/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/toxic_buildup, acid_per_hit) - -/datum/ammo/bullet/rifle/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) - . = ..() - if(T.flags_turf & TURF_ORGANIC) - P.damage *= organic_damage_mult - -/datum/ammo/bullet/rifle/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) - . = ..() - if(O.flags_obj & OBJ_ORGANIC) - P.damage *= organic_damage_mult - - -/datum/ammo/bullet/rifle/ap/penetrating - name = "wall-penetrating rifle bullet" - shrapnel_chance = 0 - - damage = 35 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/rifle/ap/penetrating/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/rifle/le - name = "armor-shredding rifle bullet" - - damage = 20 - penetration = ARMOR_PENETRATION_TIER_4 - pen_armor_punch = 5 - -/datum/ammo/bullet/rifle/heap - name = "high-explosive armor-piercing rifle bullet" - - headshot_state = HEADSHOT_OVERLAY_HEAVY - damage = 55//big damage, doesn't actually blow up because thats stupid. - penetration = ARMOR_PENETRATION_TIER_8 - -/datum/ammo/bullet/rifle/rubber - name = "rubber rifle bullet" - sound_override = 'sound/weapons/gun_c99.ogg' - - damage = 0 - stamina_damage = 15 - shrapnel_chance = 0 - -/datum/ammo/bullet/rifle/incendiary - name = "incendiary rifle bullet" - damage_type = BURN - shrapnel_chance = 0 - flags_ammo_behavior = AMMO_BALLISTIC - - damage = 30 - shell_speed = AMMO_SPEED_TIER_4 - accuracy = -HIT_ACCURACY_TIER_2 - damage_falloff = DAMAGE_FALLOFF_TIER_10 - -/datum/ammo/bullet/rifle/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/rifle/m4ra - name = "A19 high velocity bullet" - shrapnel_chance = 0 - damage_falloff = 0 - flags_ammo_behavior = AMMO_BALLISTIC - accurate_range_min = 4 - - damage = 55 - scatter = -SCATTER_AMOUNT_TIER_8 - penetration= ARMOR_PENETRATION_TIER_7 - shell_speed = AMMO_SPEED_TIER_6 - -/datum/ammo/bullet/rifle/m4ra/incendiary - name = "A19 high velocity incendiary bullet" - flags_ammo_behavior = AMMO_BALLISTIC - - damage = 40 - accuracy = HIT_ACCURACY_TIER_4 - scatter = -SCATTER_AMOUNT_TIER_8 - penetration= ARMOR_PENETRATION_TIER_5 - shell_speed = AMMO_SPEED_TIER_6 - -/datum/ammo/bullet/rifle/m4ra/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/rifle/m4ra/impact - name = "A19 high velocity impact bullet" - flags_ammo_behavior = AMMO_BALLISTIC - - damage = 40 - accuracy = -HIT_ACCURACY_TIER_2 - scatter = -SCATTER_AMOUNT_TIER_8 - penetration = ARMOR_PENETRATION_TIER_10 - shell_speed = AMMO_SPEED_TIER_6 - -/datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 32) // Can knockback basically at max range - -/datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) - if(iscarbonsizexeno(living_mob)) - var/mob/living/carbon/xenomorph/target = living_mob - to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) - target.apply_effect(2, SUPERSLOW) - target.apply_effect(5, SLOW) - else - if(!isyautja(living_mob)) //Not predators. - living_mob.apply_effect(1, SUPERSLOW) - living_mob.apply_effect(2, SLOW) - to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) - living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) - -/datum/ammo/bullet/rifle/mar40 - name = "heavy rifle bullet" - - damage = 55 - -/datum/ammo/bullet/rifle/type71 - name = "heavy rifle bullet" - - damage = 55 - penetration = ARMOR_PENETRATION_TIER_3 - -/datum/ammo/bullet/rifle/type71/ap - name = "heavy armor-piercing rifle bullet" - - damage = 40 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/rifle/type71/heap - name = "heavy high-explosive armor-piercing rifle bullet" - - headshot_state = HEADSHOT_OVERLAY_HEAVY - damage = 65 - penetration = ARMOR_PENETRATION_TIER_10 - -/* -//====== - Shotgun Ammo -//====== -*/ - -/datum/ammo/bullet/shotgun - headshot_state = HEADSHOT_OVERLAY_HEAVY - -/datum/ammo/bullet/shotgun/slug - name = "shotgun slug" - handful_state = "slug_shell" - - accurate_range = 6 - max_range = 8 - damage = 70 - penetration = ARMOR_PENETRATION_TIER_4 - damage_armor_punch = 2 - handful_state = "slug_shell" - -/datum/ammo/bullet/shotgun/slug/on_hit_mob(mob/M,obj/projectile/P) - knockback(M, P, 6) - -/datum/ammo/bullet/shotgun/slug/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) - if(iscarbonsizexeno(living_mob)) - var/mob/living/carbon/xenomorph/target = living_mob - to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) - target.apply_effect(1, SUPERSLOW) - target.apply_effect(3, SLOW) - else - if(!isyautja(living_mob)) //Not predators. - living_mob.apply_effect(1, SUPERSLOW) - living_mob.apply_effect(2, SLOW) - to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) - living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) - -/datum/ammo/bullet/shotgun/beanbag - name = "beanbag slug" - headshot_state = HEADSHOT_OVERLAY_LIGHT //It's not meant to kill people... but if you put it in your mouth, it will. - handful_state = "beanbag_slug" - icon_state = "beanbag" - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST - sound_override = 'sound/weapons/gun_shotgun_riot.ogg' - - max_range = 12 - shrapnel_chance = 0 - damage = 0 - stamina_damage = 45 - accuracy = HIT_ACCURACY_TIER_3 - shell_speed = AMMO_SPEED_TIER_3 - handful_state = "beanbag_slug" - -/datum/ammo/bullet/shotgun/beanbag/on_hit_mob(mob/M, obj/projectile/P) - if(!M || M == P.firer) return - if(ishuman(M)) - var/mob/living/carbon/human/H = M - shake_camera(H, 2, 1) - - -/datum/ammo/bullet/shotgun/incendiary - name = "incendiary slug" - handful_state = "incendiary_slug" - damage_type = BURN - flags_ammo_behavior = AMMO_BALLISTIC - - accuracy = -HIT_ACCURACY_TIER_2 - max_range = 12 - damage = 55 - penetration= ARMOR_PENETRATION_TIER_1 - handful_state = "incendiary_slug" - -/datum/ammo/bullet/shotgun/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/shotgun/incendiary/on_hit_mob(mob/M,obj/projectile/P) - burst(get_turf(M),P,damage_type) - knockback(M,P) - -/datum/ammo/bullet/shotgun/incendiary/on_hit_obj(obj/O,obj/projectile/P) - burst(get_turf(P),P,damage_type) - -/datum/ammo/bullet/shotgun/incendiary/on_hit_turf(turf/T,obj/projectile/P) - burst(get_turf(T),P,damage_type) - - -/datum/ammo/bullet/shotgun/flechette - name = "flechette shell" - icon_state = "flechette" - handful_state = "flechette_shell" - bonus_projectiles_type = /datum/ammo/bullet/shotgun/flechette_spread - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - max_range = 12 - damage = 30 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_7 - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 - handful_state = "flechette_shell" - multiple_handful_name = TRUE - -/datum/ammo/bullet/shotgun/flechette_spread - name = "additional flechette" - icon_state = "flechette" - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - max_range = 12 - damage = 30 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_7 - scatter = SCATTER_AMOUNT_TIER_5 - -/datum/ammo/bullet/shotgun/buckshot - name = "buckshot shell" - icon_state = "buckshot" - handful_state = "buckshot_shell" - multiple_handful_name = TRUE - bonus_projectiles_type = /datum/ammo/bullet/shotgun/spread - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_5 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_5 - accurate_range = 4 - max_range = 4 - damage = 65 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_1 - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 - shell_speed = AMMO_SPEED_TIER_2 - damage_armor_punch = 0 - pen_armor_punch = 0 - handful_state = "buckshot_shell" - multiple_handful_name = TRUE - -/datum/ammo/bullet/shotgun/buckshot/incendiary - name = "incendiary buckshot shell" - handful_state = "incen_buckshot" - handful_type = /obj/item/ammo_magazine/handful/shotgun/buckshot/incendiary - -/datum/ammo/bullet/shotgun/buckshot/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/shotgun/buckshot/on_hit_mob(mob/M,obj/projectile/P) - knockback(M,P) - -//buckshot variant only used by the masterkey shotgun attachment. -/datum/ammo/bullet/shotgun/buckshot/masterkey - bonus_projectiles_type = /datum/ammo/bullet/shotgun/spread/masterkey - - damage = 55 - -/datum/ammo/bullet/shotgun/spread - name = "additional buckshot" - icon_state = "buckshot" - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 4 - max_range = 6 - damage = 65 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_1 - shell_speed = AMMO_SPEED_TIER_2 - scatter = SCATTER_AMOUNT_TIER_1 - damage_armor_punch = 0 - pen_armor_punch = 0 - -/datum/ammo/bullet/shotgun/spread/masterkey - damage = 20 - -/* - 8 GAUGE SHOTGUN AMMO -*/ - -/datum/ammo/bullet/shotgun/heavy/buckshot - name = "heavy buckshot shell" - icon_state = "buckshot" - handful_state = "heavy_buckshot" - multiple_handful_name = TRUE - bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/spread - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 - accurate_range = 3 - max_range = 3 - damage = 75 - penetration = 0 - shell_speed = AMMO_SPEED_TIER_2 - damage_armor_punch = 0 - pen_armor_punch = 0 - -/datum/ammo/bullet/shotgun/heavy/buckshot/on_hit_mob(mob/M,obj/projectile/P) - knockback(M,P) - -/datum/ammo/bullet/shotgun/heavy/buckshot/spread - name = "additional heavy buckshot" - max_range = 4 - scatter = SCATTER_AMOUNT_TIER_1 - bonus_projectiles_amount = 0 - -//basically the same -/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath - name = "dragon's breath shell" - handful_state = "heavy_dragonsbreath" - multiple_handful_name = TRUE - damage_type = BURN - damage = 60 - accurate_range = 3 - max_range = 4 - bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread - -/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread - name = "additional dragon's breath" - bonus_projectiles_amount = 0 - accurate_range = 4 - max_range = 5 //make use of the ablaze property - shell_speed = AMMO_SPEED_TIER_4 // so they hit before the main shell stuns - - -/datum/ammo/bullet/shotgun/heavy/slug - name = "heavy shotgun slug" - handful_state = "heavy_slug" - - accurate_range = 7 - max_range = 8 - damage = 90 //ouch. - penetration = ARMOR_PENETRATION_TIER_6 - damage_armor_punch = 2 - -/datum/ammo/bullet/shotgun/heavy/slug/on_hit_mob(mob/M,obj/projectile/P) - knockback(M, P, 7) - -/datum/ammo/bullet/shotgun/heavy/slug/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) - if(iscarbonsizexeno(living_mob)) - var/mob/living/carbon/xenomorph/target = living_mob - to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) - target.apply_effect(2, SUPERSLOW) - target.apply_effect(5, SLOW) - else - if(!isyautja(living_mob)) //Not predators. - living_mob.apply_effect(1, SUPERSLOW) - living_mob.apply_effect(2, SLOW) - to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) - living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) - -/datum/ammo/bullet/shotgun/heavy/beanbag - name = "heavy beanbag slug" - icon_state = "beanbag" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - handful_state = "heavy_beanbag" - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST - sound_override = 'sound/weapons/gun_shotgun_riot.ogg' - - max_range = 7 - shrapnel_chance = 0 - damage = 0 - stamina_damage = 100 - accuracy = HIT_ACCURACY_TIER_2 - shell_speed = AMMO_SPEED_TIER_2 - -/datum/ammo/bullet/shotgun/heavy/beanbag/on_hit_mob(mob/M, obj/projectile/P) - if(!M || M == P.firer) - return - if(ishuman(M)) - var/mob/living/carbon/human/H = M - shake_camera(H, 2, 1) - -/datum/ammo/bullet/shotgun/heavy/flechette - name = "heavy flechette shell" - icon_state = "flechette" - handful_state = "heavy_flechette" - multiple_handful_name = TRUE - bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/flechette_spread - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_3 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_3 - max_range = 12 - damage = 45 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_10 - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_2 - -/datum/ammo/bullet/shotgun/heavy/flechette_spread - name = "additional heavy flechette" - icon_state = "flechette" - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - max_range = 12 - damage = 45 - damage_var_low = PROJECTILE_VARIANCE_TIER_8 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_10 - scatter = SCATTER_AMOUNT_TIER_4 - -//Enormous shell for Van Bandolier's superheavy double-barreled hunting gun. -/datum/ammo/bullet/shotgun/twobore - name = "two bore bullet" - icon_state = "autocannon" - handful_state = "twobore" - - accurate_range = 8 //Big low-velocity projectile; this is for blasting dangerous game at close range. - max_range = 14 //At this range, it's lost all its damage anyway. - damage = 300 //Hits like a buckshot PB. - penetration = ARMOR_PENETRATION_TIER_3 - damage_falloff = DAMAGE_FALLOFF_TIER_1 * 3 //It has a lot of energy, but the 26mm bullet drops off fast. - effective_range_max = EFFECTIVE_RANGE_MAX_TIER_2 //Full damage up to this distance, then falloff for each tile beyond. - var/hit_messages = list() - -/datum/ammo/bullet/shotgun/twobore/on_hit_mob(mob/living/M, obj/projectile/P) - var/mob/shooter = P.firer - if(shooter && ismob(shooter) && HAS_TRAIT(shooter, TRAIT_TWOBORE_TRAINING) && M.stat != DEAD && prob(40)) //Death is handled by periodic life() checks so this should have a chance to fire on a killshot. - if(!length(hit_messages)) //Pick and remove lines, refill on exhaustion. - hit_messages = list("Got you!", "Aha!", "Bullseye!", "It's curtains for you, Sonny Jim!", "Your head will look fantastic on my wall!", "I have you now!", "You miserable coward! Come and fight me like a man!", "Tally ho!") - var/message = pick_n_take(hit_messages) - shooter.say(message) - - if(P.distance_travelled > 8) - knockback(M, P, 12) - - else if(!M || M == P.firer || M.lying) //These checks are included in knockback and would be redundant above. - return - - shake_camera(M, 3, 4) - M.apply_effect(2, WEAKEN) - M.apply_effect(4, SLOW) - if(iscarbonsizexeno(M)) - to_chat(M, SPAN_XENODANGER("The impact knocks you off your feet!")) - else //This will hammer a Yautja as hard as a human. - to_chat(M, SPAN_HIGHDANGER("The impact knocks you off your feet!")) - - step(M, get_dir(P.firer, M)) - -/datum/ammo/bullet/shotgun/twobore/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile) - if(iscarbonsizexeno(living_mob)) - var/mob/living/carbon/xenomorph/target = living_mob - to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!")) - target.apply_effect(0.5, WEAKEN) - target.apply_effect(2, SUPERSLOW) - target.apply_effect(5, SLOW) - else - if(!isyautja(living_mob)) //Not predators. - living_mob.apply_effect(1, SUPERSLOW) - living_mob.apply_effect(2, SLOW) - to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!")) - living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) - -/datum/ammo/bullet/lever_action - name = "lever-action bullet" - - damage = 80 - penetration = 0 - accuracy = HIT_ACCURACY_TIER_1 - shell_speed = AMMO_SPEED_TIER_6 - accurate_range = 14 - handful_state = "lever_action_bullet" - -//unused and not working. need to refactor MD code. Unobtainable. -//intended mechanic is to have xenos hit with it show up very frequently on any MDs around -/datum/ammo/bullet/lever_action/tracker - name = "tracking lever-action bullet" - icon_state = "redbullet" - damage = 70 - penetration = ARMOR_PENETRATION_TIER_3 - accuracy = HIT_ACCURACY_TIER_1 - handful_state = "tracking_lever_action_bullet" - -/datum/ammo/bullet/lever_action/tracker/on_hit_mob(mob/M, obj/projectile/P, mob/user) - //SEND_SIGNAL(user, COMSIG_BULLET_TRACKING, user, M) - M.visible_message(SPAN_DANGER("You hear a faint beep under [M]'s [M.mob_size > MOB_SIZE_HUMAN ? "chitin" : "skin"].")) - -/datum/ammo/bullet/lever_action/training - name = "lever-action blank" - icon_state = "blank" - damage = 70 //blanks CAN hurt you if shot very close - penetration = 0 - accuracy = HIT_ACCURACY_TIER_1 - damage_falloff = DAMAGE_FALLOFF_BLANK //not much, though (comparatively) - shell_speed = AMMO_SPEED_TIER_5 - handful_state = "training_lever_action_bullet" - -//unused, and unobtainable... for now -/datum/ammo/bullet/lever_action/marksman - name = "marksman lever-action bullet" - shrapnel_chance = 0 - damage_falloff = 0 - accurate_range = 12 - damage = 70 - penetration = ARMOR_PENETRATION_TIER_6 - shell_speed = AMMO_SPEED_TIER_6 - handful_state = "marksman_lever_action_bullet" - -/datum/ammo/bullet/lever_action/xm88 - name = ".458 SOCOM round" - - damage = 80 - penetration = ARMOR_PENETRATION_TIER_2 - accuracy = HIT_ACCURACY_TIER_1 - shell_speed = AMMO_SPEED_TIER_6 - accurate_range = 14 - handful_state = "boomslang_bullet" - -/datum/ammo/bullet/lever_action/xm88/pen20 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/lever_action/xm88/pen30 - penetration = ARMOR_PENETRATION_TIER_6 - -/datum/ammo/bullet/lever_action/xm88/pen40 - penetration = ARMOR_PENETRATION_TIER_8 - -/datum/ammo/bullet/lever_action/xm88/pen50 - penetration = ARMOR_PENETRATION_TIER_10 - -/* -//====== - Sniper Ammo -//====== -*/ - -/datum/ammo/bullet/sniper - name = "sniper bullet" - headshot_state = HEADSHOT_OVERLAY_HEAVY - damage_falloff = 0 - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER - accurate_range_min = 4 - - accuracy = HIT_ACCURACY_TIER_8 - accurate_range = 32 - max_range = 32 - scatter = 0 - damage = 70 - penetration= ARMOR_PENETRATION_TIER_10 - shell_speed = AMMO_SPEED_TIER_6 - damage_falloff = 0 - -/datum/ammo/bullet/sniper/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/mob/living/L = M - L.apply_armoured_damage(damage*2, ARMOR_BULLET, BRUTE, null, penetration) - to_chat(P.firer, SPAN_WARNING("Bullseye!")) - -/datum/ammo/bullet/sniper/incendiary - name = "incendiary sniper bullet" - damage_type = BRUTE - shrapnel_chance = 0 - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER - - //Removed accuracy = 0, accuracy_var_high = Variance Tier 6, and scatter = 0. -Kaga - damage = 60 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/sniper/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/sniper/incendiary/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/mob/living/L = M - var/blind_duration = 5 - if(isxeno(M)) - var/mob/living/carbon/xenomorph/target = M - if(target.mob_size >= MOB_SIZE_BIG) - blind_duration = 2 - L.AdjustEyeBlur(blind_duration) - L.adjust_fire_stacks(10) - to_chat(P.firer, SPAN_WARNING("Bullseye!")) - -/datum/ammo/bullet/sniper/flak - name = "flak sniper bullet" - damage_type = BRUTE - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER - - accuracy = HIT_ACCURACY_TIER_8 - scatter = SCATTER_AMOUNT_TIER_8 - damage = 55 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 //Documenting old code: This converts to a variance of 96-109% damage. -Kaga - penetration = 0 - -/datum/ammo/bullet/sniper/flak/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/slow_duration = 7 - var/mob/living/L = M - if(isxeno(M)) - var/mob/living/carbon/xenomorph/target = M - if(target.mob_size >= MOB_SIZE_BIG) - slow_duration = 4 - M.adjust_effect(slow_duration, SUPERSLOW) - L.apply_armoured_damage(damage, ARMOR_BULLET, BRUTE, null, penetration) - to_chat(P.firer, SPAN_WARNING("Bullseye!")) - else - burst(get_turf(M),P,damage_type, 2 , 2) - burst(get_turf(M),P,damage_type, 1 , 2 , 0) - -/datum/ammo/bullet/sniper/flak/on_near_target(turf/T, obj/projectile/P) - burst(T,P,damage_type, 2 , 2) - burst(T,P,damage_type, 1 , 2, 0) - return 1 - -/datum/ammo/bullet/sniper/crude - name = "crude sniper bullet" - damage = 42 - penetration = ARMOR_PENETRATION_TIER_6 - -/datum/ammo/bullet/sniper/crude/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - pushback(M, P, 3) - -/datum/ammo/bullet/sniper/upp - name = "armor-piercing sniper bullet" - damage = 80 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/bullet/sniper/anti_materiel - name = "anti-materiel sniper bullet" - - shrapnel_chance = 0 // This isn't leaving any shrapnel. - accuracy = HIT_ACCURACY_TIER_8 - damage = 125 - shell_speed = AMMO_SPEED_TIER_6 - -/datum/ammo/bullet/sniper/anti_materiel/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/mob/living/L = M - var/size_damage_mod = 0.8 - if(isxeno(M)) - var/mob/living/carbon/xenomorph/target = M - if(target.mob_size >= MOB_SIZE_XENO) - size_damage_mod += 0.6 - if(target.mob_size >= MOB_SIZE_BIG) - size_damage_mod += 0.6 - L.apply_armoured_damage(damage*size_damage_mod, ARMOR_BULLET, BRUTE, null, penetration) - // 180% damage to all targets (225), 240% (300) against non-Runner xenos, and 300% against Big xenos (375). -Kaga - to_chat(P.firer, SPAN_WARNING("Bullseye!")) - -/datum/ammo/bullet/sniper/anti_materiel/vulture - damage = 400 // Fully intended to vaporize anything smaller than a mini cooper - accurate_range_min = 10 - handful_state = "vulture_bullet" - sound_hit = 'sound/bullets/bullet_vulture_impact.ogg' - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER|AMMO_ANTIVEHICLE - -/datum/ammo/bullet/sniper/anti_materiel/vulture/on_hit_mob(mob/hit_mob, obj/projectile/bullet) - . = ..() - knockback(hit_mob, bullet, 30) - hit_mob.apply_effect(3, SLOW) - -/datum/ammo/bullet/sniper/anti_materiel/vulture/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/heavy) - )) - -/datum/ammo/bullet/sniper/elite - name = "supersonic sniper bullet" - - shrapnel_chance = 0 // This isn't leaving any shrapnel. - accuracy = HIT_ACCURACY_TIER_8 - damage = 150 - shell_speed = AMMO_SPEED_TIER_6 + AMMO_SPEED_TIER_2 - -/datum/ammo/bullet/sniper/elite/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating) - )) - -/datum/ammo/bullet/sniper/elite/on_hit_mob(mob/M,obj/projectile/P) - if((P.projectile_flags & PROJECTILE_BULLSEYE) && M == P.original) - var/mob/living/L = M - var/size_damage_mod = 0.5 - if(isxeno(M)) - var/mob/living/carbon/xenomorph/target = M - if(target.mob_size >= MOB_SIZE_XENO) - size_damage_mod += 0.5 - if(target.mob_size >= MOB_SIZE_BIG) - size_damage_mod += 1 - L.apply_armoured_damage(damage*size_damage_mod, ARMOR_BULLET, BRUTE, null, penetration) - else - L.apply_armoured_damage(damage, ARMOR_BULLET, BRUTE, null, penetration) - // 150% damage to runners (225), 300% against Big xenos (450), and 200% against all others (300). -Kaga - to_chat(P.firer, SPAN_WARNING("Bullseye!")) - -/datum/ammo/bullet/tank/flak - name = "flak autocannon bullet" - icon_state = "autocannon" - damage_falloff = 0 - flags_ammo_behavior = AMMO_BALLISTIC - accurate_range_min = 4 - - accuracy = HIT_ACCURACY_TIER_8 - scatter = 0 - damage = 60 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_6 - accurate_range = 32 - max_range = 32 - shell_speed = AMMO_SPEED_TIER_6 - -/datum/ammo/bullet/tank/flak/on_hit_mob(mob/M,obj/projectile/P) - burst(get_turf(M),P,damage_type, 2 , 3) - burst(get_turf(M),P,damage_type, 1 , 3 , 0) - -/datum/ammo/bullet/tank/flak/on_near_target(turf/T, obj/projectile/P) - burst(get_turf(T),P,damage_type, 2 , 3) - burst(get_turf(T),P,damage_type, 1 , 3, 0) - return 1 - -/datum/ammo/bullet/tank/flak/on_hit_obj(obj/O,obj/projectile/P) - burst(get_turf(P),P,damage_type, 2 , 3) - burst(get_turf(P),P,damage_type, 1 , 3 , 0) - -/datum/ammo/bullet/tank/flak/on_hit_turf(turf/T,obj/projectile/P) - burst(get_turf(T),P,damage_type, 2 , 3) - burst(get_turf(T),P,damage_type, 1 , 3 , 0) - -/datum/ammo/bullet/tank/dualcannon - name = "dualcannon bullet" - icon_state = "autocannon" - damage_falloff = 0 - flags_ammo_behavior = AMMO_BALLISTIC - - accuracy = HIT_ACCURACY_TIER_8 - scatter = 0 - damage = 50 - damage_var_high = PROJECTILE_VARIANCE_TIER_8 - penetration = ARMOR_PENETRATION_TIER_3 - accurate_range = 10 - max_range = 12 - shell_speed = AMMO_SPEED_TIER_5 - -/datum/ammo/bullet/tank/dualcannon/on_hit_mob(mob/M,obj/projectile/P) - for(var/mob/living/carbon/L in get_turf(M)) - if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) - shake_camera(L, 1, 1) - -/datum/ammo/bullet/tank/dualcannon/on_near_target(turf/T, obj/projectile/P) - for(var/mob/living/carbon/L in T) - if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) - shake_camera(L, 1, 1) - return 1 - -/datum/ammo/bullet/tank/dualcannon/on_hit_obj(obj/O,obj/projectile/P) - for(var/mob/living/carbon/L in get_turf(O)) - if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) - shake_camera(L, 1, 1) - -/datum/ammo/bullet/tank/dualcannon/on_hit_turf(turf/T,obj/projectile/P) - for(var/mob/living/carbon/L in T) - if(L.stat == CONSCIOUS && L.mob_size <= MOB_SIZE_XENO) - shake_camera(L, 1, 1) - -/* -//====== - Special Ammo -//====== -*/ - -/datum/ammo/bullet/smartgun - name = "smartgun bullet" - icon_state = "redbullet" - flags_ammo_behavior = AMMO_BALLISTIC - - max_range = 12 - accuracy = HIT_ACCURACY_TIER_4 - damage = 30 - penetration = 0 - -/datum/ammo/bullet/smartgun/armor_piercing - name = "armor-piercing smartgun bullet" - icon_state = "bullet" - - accurate_range = 12 - accuracy = HIT_ACCURACY_TIER_2 - damage = 20 - penetration = ARMOR_PENETRATION_TIER_8 - damage_armor_punch = 1 - -/datum/ammo/bullet/smartgun/dirty - name = "irradiated smartgun bullet" - debilitate = list(0,0,0,3,0,0,0,1) - - shrapnel_chance = SHRAPNEL_CHANCE_TIER_7 - accurate_range = 32 - accuracy = HIT_ACCURACY_TIER_3 - damage = 40 - penetration = 0 - -/datum/ammo/bullet/smartgun/dirty/armor_piercing - debilitate = list(0,0,0,3,0,0,0,1) - - accurate_range = 22 - accuracy = HIT_ACCURACY_TIER_3 - damage = 30 - penetration = ARMOR_PENETRATION_TIER_7 - damage_armor_punch = 3 - -/datum/ammo/bullet/smartgun/holo_target //Royal marines smartgun bullet has only diff between regular ammo is this one does holostacks - name = "holo-targeting smartgun bullet" - damage = 30 -///Stuff for the HRP holotargetting stacks - var/holo_stacks = 15 - -/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) - -/datum/ammo/bullet/smartgun/holo_target/ap - name = "armor-piercing smartgun bullet" - icon_state = "bullet" - - accurate_range = 12 - accuracy = HIT_ACCURACY_TIER_2 - damage = 20 - penetration = ARMOR_PENETRATION_TIER_8 - damage_armor_punch = 1 - -/datum/ammo/bullet/smartgun/m56_fpw - name = "\improper M56 FPW bullet" - icon_state = "redbullet" - flags_ammo_behavior = AMMO_BALLISTIC - - max_range = 7 - accuracy = HIT_ACCURACY_TIER_7 - damage = 35 - penetration = ARMOR_PENETRATION_TIER_1 - -/datum/ammo/bullet/turret - name = "autocannon bullet" - icon_state = "redbullet" //Red bullets to indicate friendly fire restriction - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_COVER - - accurate_range = 22 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_8 - max_range = 22 - damage = 30 - penetration = ARMOR_PENETRATION_TIER_7 - damage_armor_punch = 0 - pen_armor_punch = 0 - shell_speed = 2*AMMO_SPEED_TIER_6 - accuracy = HIT_ACCURACY_TIER_5 - -/datum/ammo/bullet/turret/dumb - icon_state = "bullet" - flags_ammo_behavior = AMMO_BALLISTIC - -/datum/ammo/bullet/machinegun //Adding this for the MG Nests (~Art) - name = "machinegun bullet" - icon_state = "bullet" // Keeping it bog standard with the turret but allows it to be changed - - accurate_range = 12 - damage = 35 - penetration= ARMOR_PENETRATION_TIER_10 //Bumped the penetration to serve a different role from sentries, MGs are a bit more offensive - accuracy = HIT_ACCURACY_TIER_3 - -/datum/ammo/bullet/machinegun/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) - )) - -/datum/ammo/bullet/machinegun/auto // for M2C, automatic variant for M56D, stats for bullet should always be moderately overtuned to fulfill its ultra-offense + flank-push purpose - name = "heavy machinegun bullet" - - accurate_range = 10 - damage = 50 - penetration = ARMOR_PENETRATION_TIER_6 - accuracy = -HIT_ACCURACY_TIER_2 // 75 accuracy - shell_speed = AMMO_SPEED_TIER_2 - max_range = 15 - effective_range_max = 7 - damage_falloff = DAMAGE_FALLOFF_TIER_8 - -/datum/ammo/bullet/machinegun/auto/set_bullet_traits() - return - -/datum/ammo/bullet/minigun - name = "minigun bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - accuracy = -HIT_ACCURACY_TIER_3 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 12 - damage = 35 - penetration = ARMOR_PENETRATION_TIER_6 - -/datum/ammo/bullet/minigun/New() - ..() - if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH)) - damage = 15 - else if(SSticker.current_state < GAME_STATE_PLAYING) - RegisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP, PROC_REF(setup_hvh_damage)) - -/datum/ammo/bullet/minigun/proc/setup_hvh_damage() - if(MODE_HAS_FLAG(MODE_FACTION_CLASH)) - damage = 15 - -/datum/ammo/bullet/minigun/tank - accuracy = -HIT_ACCURACY_TIER_1 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_8 - accurate_range = 12 - -/datum/ammo/bullet/m60 - name = "M60 bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - accuracy = HIT_ACCURACY_TIER_2 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 12 - damage = 45 //7.62x51 is scary - penetration= ARMOR_PENETRATION_TIER_6 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/datum/ammo/bullet/pkp - name = "machinegun bullet" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - - accuracy = HIT_ACCURACY_TIER_1 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_8 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 14 - damage = 35 - penetration= ARMOR_PENETRATION_TIER_6 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - -/* -//====== - Rocket Ammo -//====== -*/ - -/datum/ammo/rocket - name = "high explosive rocket" - icon_state = "missile" - ping = null //no bounce off. - sound_bounce = "rocket_bounce" - damage_falloff = 0 - flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_STRIKES_SURFACE - var/datum/effect_system/smoke_spread/smoke - - accuracy = HIT_ACCURACY_TIER_2 - accurate_range = 7 - max_range = 7 - damage = 15 - shell_speed = AMMO_SPEED_TIER_2 - -/datum/ammo/rocket/New() - ..() - smoke = new() - -/datum/ammo/rocket/Destroy() - qdel(smoke) - smoke = null - . = ..() - -/datum/ammo/rocket/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(M)) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(350, P.dir, P.weapon_cause_data, 100) - smoke.start() - -/datum/ammo/rocket/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(O)) - smoke.start() - -/datum/ammo/rocket/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(T, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) - smoke.start() - -/datum/ammo/rocket/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(P)) - smoke.start() - -/datum/ammo/rocket/ap - name = "anti-armor rocket" - damage_falloff = 0 - flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET - - accuracy = HIT_ACCURACY_TIER_8 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_9 - accurate_range = 6 - max_range = 6 - damage = 10 - penetration= ARMOR_PENETRATION_TIER_10 - -/datum/ammo/rocket/ap/on_hit_mob(mob/M, obj/projectile/P) - var/turf/T = get_turf(M) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, WEAKEN) - M.apply_effect(2, PARALYZE) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(300, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) - smoke.start() - -/datum/ammo/rocket/ap/on_hit_obj(obj/O, obj/projectile/P) - var/turf/T = get_turf(O) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) - smoke.start() - -/datum/ammo/rocket/ap/on_hit_turf(turf/T, obj/projectile/P) - var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(4, WEAKEN) - M.apply_effect(4, PARALYZE) - hit_something = 1 - continue - if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) - hit_something = 1 - continue - if(!hit_something) - T.ex_act(150, P.dir, P.weapon_cause_data, 200) - - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) - smoke.start() - -/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/P) - var/turf/T = get_turf(P) - var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(250, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, WEAKEN) - M.apply_effect(2, PARALYZE) - hit_something = 1 - continue - if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(250, P.dir, P.weapon_cause_data, 100) - hit_something = 1 - continue - if(!hit_something) - T.ex_act(250, P.dir, P.weapon_cause_data) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) - smoke.start() - -/datum/ammo/rocket/ap/anti_tank - name = "anti-tank rocket" - damage = 100 - var/vehicle_slowdown_time = 5 SECONDS - shrapnel_chance = 5 - shrapnel_type = /obj/item/large_shrapnel/at_rocket_dud - -/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/O, obj/projectile/P) - if(istype(O, /obj/vehicle/multitile)) - var/obj/vehicle/multitile/M = O - M.next_move = world.time + vehicle_slowdown_time - playsound(M, 'sound/effects/meteorimpact.ogg', 35) - M.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) - M.interior_crash_effect() - var/turf/T = get_turf(M.loc) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - smoke.set_up(1, T) - smoke.start() - return - return ..() - - -/datum/ammo/rocket/ltb - name = "cannon round" - icon_state = "ltb" - flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_STRIKES_SURFACE - - accuracy = HIT_ACCURACY_TIER_3 - accurate_range = 32 - max_range = 32 - damage = 25 - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/rocket/ltb/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(M), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/rocket/ltb/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(O), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/rocket/ltb/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(get_turf(T), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(T), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(P), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/rocket/wp - name = "white phosphorous rocket" - flags_ammo_behavior = AMMO_ROCKET|AMMO_EXPLOSIVE|AMMO_STRIKES_SURFACE - damage_type = BURN - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 8 - damage = 90 - max_range = 8 - -/datum/ammo/rocket/wp/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/rocket/wp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) - smoke.start() - var/datum/reagent/napalm/blue/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) - - var/datum/effect_system/smoke_spread/phosphorus/landingSmoke = new /datum/effect_system/smoke_spread/phosphorus - landingSmoke.set_up(3, 0, T, null, 6, cause_data) - landingSmoke.start() - landingSmoke = null - -/datum/ammo/rocket/wp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - -/datum/ammo/rocket/wp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - -/datum/ammo/rocket/wp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - -/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - -/datum/ammo/rocket/wp/upp - name = "extreme-intensity incendiary rocket" - flags_ammo_behavior = AMMO_ROCKET|AMMO_EXPLOSIVE|AMMO_STRIKES_SURFACE - damage_type = BURN - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 8 - damage = 150 - max_range = 10 - -/datum/ammo/rocket/wp/upp/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/rocket/wp/upp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) - smoke.start() - var/datum/reagent/napalm/upp/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) - -/datum/ammo/rocket/wp/upp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - -/datum/ammo/rocket/wp/upp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - -/datum/ammo/rocket/wp/upp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - -/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - -/datum/ammo/rocket/wp/quad - name = "thermobaric rocket" - flags_ammo_behavior = AMMO_ROCKET|AMMO_STRIKES_SURFACE - - damage = 100 - max_range = 32 - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/rocket/wp/quad/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) - -/datum/ammo/rocket/wp/quad/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) - -/datum/ammo/rocket/wp/quad/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) - -/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) - -/datum/ammo/rocket/custom - name = "custom rocket" - -/datum/ammo/rocket/custom/proc/prime(atom/A, obj/projectile/P) - var/obj/item/weapon/gun/launcher/rocket/launcher = P.shot_from - var/obj/item/ammo_magazine/rocket/custom/rocket = launcher.current_mag - if(rocket.locked && rocket.warhead && rocket.warhead.detonator) - if(rocket.fuel && rocket.fuel.reagents.get_reagent_amount(rocket.fuel_type) >= rocket.fuel_requirement) - rocket.forceMove(P.loc) - rocket.warhead.cause_data = P.weapon_cause_data - rocket.warhead.prime() - qdel(rocket) - smoke.set_up(1, get_turf(A)) - smoke.start() - -/datum/ammo/rocket/custom/on_hit_mob(mob/M, obj/projectile/P) - prime(M, P) - -/datum/ammo/rocket/custom/on_hit_obj(obj/O, obj/projectile/P) - prime(O, P) - -/datum/ammo/rocket/custom/on_hit_turf(turf/T, obj/projectile/P) - prime(T, P) - -/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/P) - prime(null, P) - -/* -//====== - Energy Ammo -//====== -*/ - -/datum/ammo/energy - ping = null //no bounce off. We can have one later. - sound_hit = "energy_hit" - sound_miss = "energy_miss" - sound_bounce = "energy_bounce" - - damage_type = BURN - flags_ammo_behavior = AMMO_ENERGY - - accuracy = HIT_ACCURACY_TIER_4 - -/datum/ammo/energy/emitter //Damage is determined in emitter.dm - name = "emitter bolt" - icon_state = "emitter" - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_ARMOR - - accurate_range = 6 - max_range = 6 - -/datum/ammo/energy/taser - name = "taser bolt" - icon_state = "stun" - damage_type = OXY - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_ALWAYS_FF //Not that ignoring will do much right now. - - stamina_damage = 45 - accuracy = HIT_ACCURACY_TIER_8 - shell_speed = AMMO_SPEED_TIER_1 // Slightly faster - hit_effect_color = "#FFFF00" - -/datum/ammo/energy/taser/on_hit_mob(mob/M, obj/projectile/P) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.disable_special_items() // Disables scout cloak - -/datum/ammo/energy/taser/precise - name = "precise taser bolt" - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_MP - -/datum/ammo/energy/rxfm_eva - name = "laser blast" - icon_state = "laser_new" - flags_ammo_behavior = AMMO_LASER - accurate_range = 14 - max_range = 22 - damage = 45 - stamina_damage = 25 //why not - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/energy/rxfm_eva/on_hit_mob(mob/living/M, obj/projectile/P) - ..() - if(prob(10)) //small chance for one to ignite on hit - M.fire_act() - -/datum/ammo/energy/laz_uzi - name = "laser bolt" - icon_state = "laser_new" - flags_ammo_behavior = AMMO_ENERGY - damage = 40 - accurate_range = 5 - effective_range_max = 7 - max_range = 10 - shell_speed = AMMO_SPEED_TIER_4 - scatter = SCATTER_AMOUNT_TIER_6 - accuracy = HIT_ACCURACY_TIER_3 - damage_falloff = DAMAGE_FALLOFF_TIER_8 - -/datum/ammo/energy/yautja - headshot_state = HEADSHOT_OVERLAY_MEDIUM - accurate_range = 12 - shell_speed = AMMO_SPEED_TIER_3 - damage_type = BURN - flags_ammo_behavior = AMMO_IGNORE_RESIST - -/datum/ammo/energy/yautja/pistol - name = "plasma pistol bolt" - icon_state = "ion" - - damage = 40 - shell_speed = AMMO_SPEED_TIER_2 - -/datum/ammo/energy/yautja/pistol/incendiary - damage = 10 - -/datum/ammo/energy/yautja/pistol/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/shrapnel/plasma - name = "plasma wave" - shrapnel_chance = 0 - penetration = ARMOR_PENETRATION_TIER_10 - accuracy = HIT_ACCURACY_TIER_MAX - damage = 15 - icon_state = "shrapnel_plasma" - damage_type = BURN - -/datum/ammo/bullet/shrapnel/plasma/on_hit_mob(mob/hit_mob, obj/projectile/hit_projectile) - hit_mob.apply_effect(2, WEAKEN) - -/datum/ammo/energy/yautja/caster - name = "root caster bolt" - icon_state = "ion" - -/datum/ammo/energy/yautja/caster/stun - name = "low power stun bolt" - debilitate = list(2,2,0,0,0,1,0,0) - - damage = 0 - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST - -/datum/ammo/energy/yautja/caster/bolt - name = "plasma bolt" - icon_state = "pulse1" - flags_ammo_behavior = AMMO_IGNORE_RESIST - shell_speed = AMMO_SPEED_TIER_6 - damage = 35 - -/datum/ammo/energy/yautja/caster/bolt/stun - name = "high power stun bolt" - var/stun_time = 2 - - damage = 0 - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST - -/datum/ammo/energy/yautja/caster/bolt/stun/on_hit_mob(mob/M, obj/projectile/P) - var/mob/living/carbon/C = M - var/stun_time = src.stun_time - if(istype(C)) - if(isyautja(C) || ispredalien(C)) - return - to_chat(C, SPAN_DANGER("An electric shock ripples through your body, freezing you in place!")) - log_attack("[key_name(C)] was stunned by a high power stun bolt from [key_name(P.firer)] at [get_area(P)]") - - if(ishuman(C)) - var/mob/living/carbon/human/H = C - stun_time++ - H.apply_effect(stun_time, WEAKEN) - else - M.apply_effect(stun_time, WEAKEN) - - C.apply_effect(stun_time, STUN) - ..() - -/datum/ammo/energy/yautja/caster/sphere - name = "plasma eradicator" - icon_state = "bluespace" - flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_HITS_TARGET_TURF - shell_speed = AMMO_SPEED_TIER_4 - accuracy = HIT_ACCURACY_TIER_8 - - damage = 55 - - accurate_range = 8 - max_range = 8 - - var/vehicle_slowdown_time = 5 SECONDS - -/datum/ammo/energy/yautja/caster/sphere/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(P, 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/energy/yautja/caster/sphere/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(P, 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/energy/yautja/caster/sphere/on_hit_obj(obj/O, obj/projectile/P) - if(istype(O, /obj/vehicle/multitile)) - var/obj/vehicle/multitile/multitile_vehicle = O - multitile_vehicle.next_move = world.time + vehicle_slowdown_time - playsound(multitile_vehicle, 'sound/effects/meteorimpact.ogg', 35) - multitile_vehicle.at_munition_interior_explosion_effect(cause_data = create_cause_data("Plasma Eradicator", P.firer)) - multitile_vehicle.interior_crash_effect() - multitile_vehicle.ex_act(150, P.dir, P.weapon_cause_data, 100) - cell_explosion(get_turf(P), 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - -/datum/ammo/energy/yautja/caster/sphere/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 170, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - - -/datum/ammo/energy/yautja/caster/sphere/stun - name = "plasma immobilizer" - damage = 0 - flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST - accurate_range = 20 - max_range = 20 - - var/stun_range = 4 // Big - var/stun_time = 6 - -/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_mob(mob/M, obj/projectile/P) - do_area_stun(P) - -/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_turf(turf/T,obj/projectile/P) - do_area_stun(P) - -/datum/ammo/energy/yautja/caster/sphere/stun/on_hit_obj(obj/O,obj/projectile/P) - do_area_stun(P) - -/datum/ammo/energy/yautja/caster/sphere/stun/do_at_max_range(obj/projectile/P) - do_area_stun(P) - -/datum/ammo/energy/yautja/caster/sphere/stun/proc/do_area_stun(obj/projectile/P) - playsound(P, 'sound/weapons/wave.ogg', 75, 1, 25) - for (var/mob/living/carbon/M in view(src.stun_range, get_turf(P))) - var/stun_time = src.stun_time - log_attack("[key_name(M)] was stunned by a plasma immobilizer from [key_name(P.firer)] at [get_area(P)]") - if (isyautja(M)) - stun_time -= 2 - if(ispredalien(M)) - continue - to_chat(M, SPAN_DANGER("A powerful electric shock ripples through your body, freezing you in place!")) - M.apply_effect(stun_time, STUN) - - if (ishuman(M)) - var/mob/living/carbon/human/H = M - H.apply_effect(stun_time, WEAKEN) - else - M.apply_effect(stun_time, WEAKEN) - - - - -/datum/ammo/energy/yautja/rifle/bolt - name = "plasma rifle bolt" - icon_state = "ion" - damage_type = BURN - debilitate = list(0,2,0,0,0,0,0,0) - flags_ammo_behavior = AMMO_IGNORE_RESIST - - damage = 55 - penetration = ARMOR_PENETRATION_TIER_10 - -/datum/ammo/energy/yautja/rifle/bolt/on_hit_mob(mob/hit_mob, obj/projectile/hit_projectile) - if(isxeno(hit_mob)) - var/mob/living/carbon/xenomorph/xeno = hit_mob - xeno.apply_damage(damage * 0.75, BURN) - xeno.interference = 30 - -/* -//====== - Xeno Spits -//====== -*/ -/datum/ammo/xeno - icon_state = "neurotoxin" - ping = "ping_x" - damage_type = TOX - flags_ammo_behavior = AMMO_XENO - - ///used to make cooldown of the different spits vary. - var/added_spit_delay = 0 - var/spit_cost - - /// Should there be a windup for this spit? - var/spit_windup = FALSE - - /// Should there be an additional warning while winding up? (do not put to true if there is not a windup) - var/pre_spit_warn = FALSE - accuracy = HIT_ACCURACY_TIER_8*2 - max_range = 12 - -/datum/ammo/xeno/toxin - name = "neurotoxic spit" - damage_falloff = 0 - flags_ammo_behavior = AMMO_XENO|AMMO_IGNORE_RESIST - spit_cost = 25 - var/effect_power = XENO_NEURO_TIER_4 - var/datum/callback/neuro_callback - - shell_speed = AMMO_SPEED_TIER_3 - max_range = 7 - -/datum/ammo/xeno/toxin/New() - ..() - - neuro_callback = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(apply_neuro)) - -/proc/apply_neuro(mob/M, power, insta_neuro) - if(skillcheck(M, SKILL_ENDURANCE, SKILL_ENDURANCE_MAX) && !insta_neuro) - M.visible_message(SPAN_DANGER("[M] withstands the neurotoxin!")) - return //endurance 5 makes you immune to weak neurotoxin - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO || H.species.flags & NO_NEURO) - H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!")) - return //species like zombies or synths are immune to neurotoxin - - if(!isxeno(M)) - if(insta_neuro) - if(M.knocked_down < 3) - M.adjust_effect(1 * power, WEAKEN) - return - - if(ishuman(M)) - M.apply_effect(2.5, SUPERSLOW) - M.visible_message(SPAN_DANGER("[M]'s movements are slowed.")) - - var/no_clothes_neuro = FALSE - - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.wear_suit || H.wear_suit.slowdown == 0) - no_clothes_neuro = TRUE - - if(no_clothes_neuro) - if(M.knocked_down < 5) - M.adjust_effect(1 * power, WEAKEN) // KD them a bit more - M.visible_message(SPAN_DANGER("[M] falls prone.")) - -/proc/apply_scatter_neuro(mob/M) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(skillcheck(M, SKILL_ENDURANCE, SKILL_ENDURANCE_MAX)) - M.visible_message(SPAN_DANGER("[M] withstands the neurotoxin!")) - return //endurance 5 makes you immune to weak neuro - if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO || H.species.flags & NO_NEURO) - H.visible_message(SPAN_DANGER("[M] shrugs off the neurotoxin!")) - return - - if(M.knocked_down < 0.7) // apply knockdown only if current knockdown is less than 0.7 second - M.apply_effect(0.7, WEAKEN) - M.visible_message(SPAN_DANGER("[M] falls prone.")) - -/datum/ammo/xeno/toxin/on_hit_mob(mob/M,obj/projectile/P) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.status_flags & XENO_HOST) - neuro_callback.Invoke(H, effect_power, TRUE) - return - - neuro_callback.Invoke(M, effect_power, FALSE) - -/datum/ammo/xeno/toxin/medium //Spitter - name = "neurotoxic spatter" - spit_cost = 50 - effect_power = 1 - - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/xeno/toxin/queen - name = "neurotoxic spit" - spit_cost = 50 - effect_power = 2 - - accuracy = HIT_ACCURACY_TIER_5*2 - max_range = 6 - 1 - -/datum/ammo/xeno/toxin/queen/on_hit_mob(mob/M,obj/projectile/P) - neuro_callback.Invoke(M, effect_power, TRUE) - -/datum/ammo/xeno/toxin/shotgun - name = "neurotoxic droplet" - flags_ammo_behavior = AMMO_XENO|AMMO_IGNORE_RESIST - bonus_projectiles_type = /datum/ammo/xeno/toxin/shotgun/additional - - accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 - accurate_range = 5 - max_range = 5 - scatter = SCATTER_AMOUNT_NEURO - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_4 - -/datum/ammo/xeno/toxin/shotgun/New() - ..() - - neuro_callback = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(apply_scatter_neuro)) - -/datum/ammo/xeno/toxin/shotgun/additional - name = "additional neurotoxic droplets" - - bonus_projectiles_amount = 0 - -/*proc/neuro_flak(turf/T, obj/projectile/P, datum/callback/CB, power, insta_neuro, radius) - if(!T) return FALSE - var/firer = P.firer - var/hit_someone = FALSE - for(var/mob/living/carbon/M in orange(radius,T)) - if(isxeno(M) && isxeno(firer) && M:hivenumber == firer:hivenumber) - continue - - if(HAS_TRAIT(M, TRAIT_NESTED)) - continue - - hit_someone = TRUE - CB.Invoke(M, power, insta_neuro) - - P.play_hit_effect(M) - - return hit_someone - -/datum/ammo/xeno/toxin/burst //sentinel burst - name = "neurotoxic air splash" - effect_power = XENO_NEURO_TIER_1 - spit_cost = 50 - flags_ammo_behavior = AMMO_XENO|AMMO_IGNORE_RESIST - -/datum/ammo/xeno/toxin/burst/on_hit_mob(mob/M, obj/projectile/P) - if(isxeno(M) && isxeno(P.firer) && M:hivenumber == P.firer:hivenumber) - neuro_callback.Invoke(M, effect_power*1.5, TRUE) - - neuro_flak(get_turf(M), P, neuro_callback, effect_power, FALSE, 1) - -/datum/ammo/xeno/toxin/burst/on_near_target(turf/T, obj/projectile/P) - return neuro_flak(T, P, neuro_callback, effect_power, FALSE, 1) - -/datum/ammo/xeno/sticky - name = "sticky resin spit" - icon_state = "sticky" - ping = null - flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE - added_spit_delay = 5 - spit_cost = 40 - - shell_speed = AMMO_SPEED_TIER_3 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_4 - max_range = 32 - -/datum/ammo/xeno/sticky/on_hit_mob(mob/M,obj/projectile/P) - drop_resin(get_turf(P)) - -/datum/ammo/xeno/sticky/on_hit_obj(obj/O,obj/projectile/P) - drop_resin(get_turf(P)) - -/datum/ammo/xeno/sticky/on_hit_turf(turf/T,obj/projectile/P) - drop_resin(T) - -/datum/ammo/xeno/sticky/do_at_max_range(obj/projectile/P) - drop_resin(get_turf(P)) - -/datum/ammo/xeno/sticky/proc/drop_resin(turf/T) - if(T.density) - return - - for(var/obj/O in T.contents) - if(istype(O, /obj/item/clothing/mask/facehugger)) - return - if(istype(O, /obj/effect/alien/egg)) - return - if(istype(O, /obj/structure/mineral_door) || istype(O, /obj/effect/alien/resin) || istype(O, /obj/structure/bed)) - return - if(O.density && !(O.flags_atom & ON_BORDER)) - return - - new /obj/effect/alien/resin/sticky/thin(T) */ - -/datum/ammo/xeno/acid - name = "acid spit" - icon_state = "xeno_acid" - sound_hit = "acid_hit" - sound_bounce = "acid_bounce" - damage_type = BURN - spit_cost = 25 - flags_ammo_behavior = AMMO_ACIDIC|AMMO_XENO - accuracy = HIT_ACCURACY_TIER_5 - damage = 20 - max_range = 8 // 7 will disappear on diagonals. i love shitcode - penetration = ARMOR_PENETRATION_TIER_2 - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/xeno/acid/on_shield_block(mob/M, obj/projectile/P) - burst(M,P,damage_type) - -/datum/ammo/xeno/acid/on_hit_mob(mob/M, obj/projectile/P) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(C.status_flags & XENO_HOST && HAS_TRAIT(C, TRAIT_NESTED) || C.stat == DEAD) - return FALSE - ..() - -/datum/ammo/xeno/acid/spatter - name = "acid spatter" - - damage = 30 - max_range = 6 - -/datum/ammo/xeno/acid/spatter/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - if(. == FALSE) - return - - new /datum/effects/acid(M, P.firer) - -/datum/ammo/xeno/acid/praetorian - name = "acid splash" - - accuracy = HIT_ACCURACY_TIER_10 + HIT_ACCURACY_TIER_5 - max_range = 8 - damage = 30 - shell_speed = AMMO_SPEED_TIER_2 - added_spit_delay = 0 - -/datum/ammo/xeno/acid/dot - name = "acid spit" - -/datum/ammo/xeno/acid/prae_nade // Used by base prae's acid nade - name = "acid scatter" - - flags_ammo_behavior = AMMO_STOPPED_BY_COVER - accuracy = HIT_ACCURACY_TIER_5 - accurate_range = 32 - max_range = 4 - damage = 25 - shell_speed = AMMO_SPEED_TIER_1 - scatter = SCATTER_AMOUNT_TIER_6 - - apply_delegate = FALSE - -/datum/ammo/xeno/acid/prae_nade/on_hit_mob(mob/M, obj/projectile/P) - if (!ishuman(M)) - return - - var/mob/living/carbon/human/H = M - - var/datum/effects/prae_acid_stacks/PAS = null - for (var/datum/effects/prae_acid_stacks/prae_acid_stacks in H.effects_list) - PAS = prae_acid_stacks - break - - if (PAS == null) - PAS = new /datum/effects/prae_acid_stacks(H) - else - PAS.increment_stack_count() - -/*datum/ammo/xeno/prae_skillshot - name = "blob of acid" - icon_state = "boiler_gas2" - ping = "ping_x" - flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE|AMMO_IGNORE_RESIST - - accuracy = HIT_ACCURACY_TIER_5 - accurate_range = 32 - max_range = 8 - damage = 20 - damage_falloff = DAMAGE_FALLOFF_TIER_10 - shell_speed = AMMO_SPEED_TIER_1 - scatter = SCATTER_AMOUNT_TIER_10 - -/datum/ammo/xeno/prae_skillshot/on_hit_mob(mob/M, obj/projectile/P) - acid_stacks_aoe(get_turf(P)) - -/datum/ammo/xeno/prae_skillshot/on_hit_obj(obj/O, obj/projectile/P) - acid_stacks_aoe(get_turf(P)) - -/datum/ammo/xeno/prae_skillshot/on_hit_turf(turf/T, obj/projectile/P) - acid_stacks_aoe(get_turf(P)) - -/datum/ammo/xeno/prae_skillshot/do_at_max_range(obj/projectile/P) - acid_stacks_aoe(get_turf(P)) - -/datum/ammo/xeno/prae_skillshot/proc/acid_stacks_aoe(turf/T) - - if (!istype(T)) - return - - for (var/mob/living/carbon/human/H in orange(1, T)) - to_chat(H, SPAN_XENODANGER("You are spattered with acid!")) - animation_flash_color(H) - var/datum/effects/prae_acid_stacks/PAS = null - for (var/datum/effects/prae_acid_stacks/prae_acid_stacks in H.effects_list) - PAS = prae_acid_stacks - break - - if (PAS == null) - PAS = new /datum/effects/prae_acid_stacks(H) - PAS.increment_stack_count() - else - PAS.increment_stack_count() - PAS.increment_stack_count() */ - -/datum/ammo/xeno/boiler_gas - name = "glob of neuro gas" - icon_state = "neuro_glob" - ping = "ping_x" - debilitate = list(2,2,0,1,11,12,1,10) // Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony - flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE|AMMO_IGNORE_RESIST|AMMO_HITS_TARGET_TURF|AMMO_ACIDIC - var/datum/effect_system/smoke_spread/smoke_system - spit_cost = 200 - pre_spit_warn = TRUE - spit_windup = 5 SECONDS - accuracy_var_high = PROJECTILE_VARIANCE_TIER_4 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_4 - accuracy = HIT_ACCURACY_TIER_2 - scatter = SCATTER_AMOUNT_TIER_4 - shell_speed = 0.75 - max_range = 16 - /// range on the smoke in tiles from center - var/smokerange = 4 - var/lifetime_mult = 1.0 - -/datum/ammo/xeno/boiler_gas/New() - ..() - set_xeno_smoke() - -/datum/ammo/xeno/boiler_gas/Destroy() - qdel(smoke_system) - smoke_system = null - . = ..() - -/datum/ammo/xeno/boiler_gas/on_hit_mob(mob/moob, obj/projectile/proj) - if(iscarbon(moob)) - var/mob/living/carbon/carbon = moob - if(carbon.status_flags & XENO_HOST && HAS_TRAIT(carbon, TRAIT_NESTED) || carbon.stat == DEAD) - return - var/datum/effects/neurotoxin/neuro_effect = locate() in moob.effects_list - if(!neuro_effect) - neuro_effect = new /datum/effects/neurotoxin(moob, proj.firer) - neuro_effect.duration += 5 - moob.apply_effect(3, DAZE) - to_chat(moob, SPAN_HIGHDANGER("Neurotoxic liquid spreads all over you and immediately soaks into your pores and orifices! Oh fuck!")) // Fucked up but have a chance to escape rather than being game-ended - drop_nade(get_turf(proj), proj,TRUE) - -/datum/ammo/xeno/boiler_gas/on_hit_obj(obj/outbacksteakhouse, obj/projectile/proj) - drop_nade(get_turf(proj), proj) - -/datum/ammo/xeno/boiler_gas/on_hit_turf(turf/Turf, obj/projectile/proj) - if(Turf.density && isturf(proj.loc)) - drop_nade(proj.loc, proj) //we don't want the gas globs to land on dense turfs, they block smoke expansion. - else - drop_nade(Turf, proj) - -/datum/ammo/xeno/boiler_gas/do_at_max_range(obj/projectile/proj) - drop_nade(get_turf(proj), proj) - -/datum/ammo/xeno/boiler_gas/proc/set_xeno_smoke(obj/projectile/proj) - smoke_system = new /datum/effect_system/smoke_spread/xeno_weaken() - -/datum/ammo/xeno/boiler_gas/proc/drop_nade(turf/turf, obj/projectile/proj) - var/lifetime_mult = 1.0 - var/datum/cause_data - if(isboiler(proj.firer)) - cause_data = proj.weapon_cause_data - smoke_system.set_up(smokerange, 0, turf, new_cause_data = cause_data) - smoke_system.lifetime = 12 * lifetime_mult - smoke_system.start() - turf.visible_message(SPAN_DANGER("A glob of acid lands with a splat and explodes into noxious fumes!")) - - -/datum/ammo/xeno/boiler_gas/acid - name = "glob of acid gas" - icon_state = "acid_glob" - ping = "ping_x" - accuracy_var_high = PROJECTILE_VARIANCE_TIER_4 - smokerange = 3 - - -/datum/ammo/xeno/boiler_gas/acid/set_xeno_smoke(obj/projectile/proj) - smoke_system = new /datum/effect_system/smoke_spread/xeno_acid() - -/datum/ammo/xeno/boiler_gas/acid/on_hit_mob(mob/moob, obj/projectile/proj) - if(iscarbon(moob)) - var/mob/living/carbon/carbon = moob - if(carbon.status_flags & XENO_HOST && HAS_TRAIT(carbon, TRAIT_NESTED) || carbon.stat == DEAD) - return - to_chat(moob,SPAN_HIGHDANGER("Acid covers your body! Oh fuck!")) - playsound(moob,"acid_strike",75,1) - INVOKE_ASYNC(moob, TYPE_PROC_REF(/mob, emote), "pain") // why do I need this bullshit - new /datum/effects/acid(moob, proj.firer) - drop_nade(get_turf(proj), proj,TRUE) - -/datum/ammo/xeno/bone_chips - name = "bone chips" - icon_state = "shrapnel_light" - ping = null - flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR - damage_type = BRUTE - bonus_projectiles_type = /datum/ammo/xeno/bone_chips/spread - - damage = 8 - max_range = 6 - accuracy = HIT_ACCURACY_TIER_8 - accuracy_var_low = PROJECTILE_VARIANCE_TIER_7 - accuracy_var_high = PROJECTILE_VARIANCE_TIER_7 - bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_7 - shrapnel_type = /obj/item/shard/shrapnel/bone_chips - shrapnel_chance = 60 - -/datum/ammo/xeno/bone_chips/on_hit_mob(mob/M, obj/projectile/P) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if((HAS_FLAG(C.status_flags, XENO_HOST) && HAS_TRAIT(C, TRAIT_NESTED)) || C.stat == DEAD) - return - if(ishuman_strict(M) || isxeno(M)) - playsound(M, 'sound/effects/spike_hit.ogg', 25, 1, 1) - if(M.slowed < 3) - M.apply_effect(3, SLOW) - -/datum/ammo/xeno/bone_chips/spread - name = "small bone chips" - - scatter = 30 // We want a wild scatter angle - max_range = 5 - bonus_projectiles_amount = 0 - -/datum/ammo/xeno/bone_chips/spread/short_range - name = "small bone chips" - - max_range = 3 // Very short range - -/datum/ammo/xeno/bone_chips/spread/runner_skillshot - name = "bone chips" - - scatter = 0 - max_range = 5 - damage = 10 - shrapnel_chance = 0 - -/datum/ammo/xeno/bone_chips/spread/runner/on_hit_mob(mob/M, obj/projectile/P) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if((HAS_FLAG(C.status_flags, XENO_HOST) && HAS_TRAIT(C, TRAIT_NESTED)) || C.stat == DEAD) - return - if(ishuman_strict(M) || isxeno(M)) - playsound(M, 'sound/effects/spike_hit.ogg', 25, 1, 1) - if(M.slowed < 6) - M.apply_effect(6, SLOW) - -/datum/ammo/xeno/oppressor_tail - name = "tail hook" - icon_state = "none" - ping = null - flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR - damage_type = BRUTE - - damage = XENO_DAMAGE_TIER_5 - max_range = 4 - accuracy = HIT_ACCURACY_TIER_MAX - -/datum/ammo/xeno/oppressor_tail/on_bullet_generation(obj/projectile/generated_projectile, mob/bullet_generator) - //The projectile has no icon, so the overlay shows up in FRONT of the projectile, and the beam connects to it in the middle. - var/image/hook_overlay = new(icon = 'icons/effects/beam.dmi', icon_state = "oppressor_tail_hook", layer = BELOW_MOB_LAYER) - generated_projectile.overlays += hook_overlay - -/datum/ammo/xeno/oppressor_tail/on_hit_mob(mob/target, obj/projectile/fired_proj) - var/mob/living/carbon/xenomorph/xeno_firer = fired_proj.firer - if(xeno_firer.can_not_harm(target)) - return - - shake_camera(target, 5, 0.1 SECONDS) - var/obj/effect/beam/tail_beam = fired_proj.firer.beam(target, "oppressor_tail", 'icons/effects/beam.dmi', 0.5 SECONDS, 5) - var/image/tail_image = image('icons/effects/status_effects.dmi', "hooked") - target.overlays += tail_image - - new /datum/effects/xeno_slow(target, fired_proj.firer, ttl = 0.5 SECONDS) - target.apply_effect(0.5, STUN) - INVOKE_ASYNC(target, TYPE_PROC_REF(/atom/movable, throw_atom), fired_proj.firer, get_dist(fired_proj.firer, target)-1, SPEED_VERY_FAST) - - qdel(tail_beam) - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/ammo/xeno/oppressor_tail, remove_tail_overlay), target, tail_image), 0.5 SECONDS) //needed so it can actually be seen as it gets deleted too quickly otherwise. - -/datum/ammo/xeno/oppressor_tail/proc/remove_tail_overlay(mob/overlayed_mob, image/tail_image) - overlayed_mob.overlays -= tail_image - -/* -//====== - Shrapnel -//====== -*/ -/datum/ammo/bullet/shrapnel - name = "shrapnel" - icon_state = "buckshot" - accurate_range_min = 5 - flags_ammo_behavior = AMMO_BALLISTIC|AMMO_STOPPED_BY_COVER - - accuracy = HIT_ACCURACY_TIER_3 - accurate_range = 32 - max_range = 8 - damage = 25 - damage_var_low = -PROJECTILE_VARIANCE_TIER_6 - damage_var_high = PROJECTILE_VARIANCE_TIER_6 - penetration = ARMOR_PENETRATION_TIER_4 - shell_speed = AMMO_SPEED_TIER_2 - shrapnel_chance = 5 - -/datum/ammo/bullet/shrapnel/on_hit_obj(obj/O, obj/projectile/P) - if(istype(O, /obj/structure/barricade)) - var/obj/structure/barricade/B = O - B.health -= rand(2, 5) - B.update_health(1) - -/datum/ammo/bullet/shrapnel/rubber - name = "rubber pellets" - icon_state = "rubber_pellets" - flags_ammo_behavior = AMMO_STOPPED_BY_COVER - - damage = 0 - stamina_damage = 25 - shrapnel_chance = 0 - - -/datum/ammo/bullet/shrapnel/hornet_rounds - name = ".22 hornet round" - icon_state = "hornet_round" - flags_ammo_behavior = AMMO_BALLISTIC - damage = 20 - shrapnel_chance = 0 - shell_speed = AMMO_SPEED_TIER_3//she fast af boi - penetration = ARMOR_PENETRATION_TIER_5 - -/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/M, obj/projectile/P) - . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, 10, world.time) - -/datum/ammo/bullet/shrapnel/incendiary - name = "flaming shrapnel" - icon_state = "beanbag" // looks suprisingly a lot like flaming shrapnel chunks - flags_ammo_behavior = AMMO_STOPPED_BY_COVER - - shell_speed = AMMO_SPEED_TIER_1 - damage = 20 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/shrapnel/incendiary/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/bullet/shrapnel/metal - name = "metal shrapnel" - icon_state = "shrapnelshot_bit" - flags_ammo_behavior = AMMO_STOPPED_BY_COVER|AMMO_BALLISTIC - shell_speed = AMMO_SPEED_TIER_1 - damage = 30 - shrapnel_chance = 15 - accuracy = HIT_ACCURACY_TIER_8 - penetration = ARMOR_PENETRATION_TIER_4 - -/datum/ammo/bullet/shrapnel/light // weak shrapnel - name = "light shrapnel" - icon_state = "shrapnel_light" - - damage = 10 - penetration = ARMOR_PENETRATION_TIER_1 - shell_speed = AMMO_SPEED_TIER_1 - shrapnel_chance = 0 - -/datum/ammo/bullet/shrapnel/light/human - name = "human bone fragments" - icon_state = "shrapnel_human" - - shrapnel_chance = 50 - shrapnel_type = /obj/item/shard/shrapnel/bone_chips/human - -/datum/ammo/bullet/shrapnel/light/human/var1 // sprite variants - icon_state = "shrapnel_human1" - -/datum/ammo/bullet/shrapnel/light/human/var2 // sprite variants - icon_state = "shrapnel_human2" - -/datum/ammo/bullet/shrapnel/light/xeno - name = "alien bone fragments" - icon_state = "shrapnel_xeno" - - shrapnel_chance = 50 - shrapnel_type = /obj/item/shard/shrapnel/bone_chips/xeno - -/datum/ammo/bullet/shrapnel/spall // weak shrapnel - name = "spall" - icon_state = "shrapnel_light" - - damage = 10 - penetration = ARMOR_PENETRATION_TIER_1 - shell_speed = AMMO_SPEED_TIER_1 - shrapnel_chance = 0 - -/datum/ammo/bullet/shrapnel/light/glass - name = "glass shrapnel" - icon_state = "shrapnel_glass" - -/datum/ammo/bullet/shrapnel/light/effect/ // no damage, but looks bright and neat - name = "sparks" - - damage = 1 // Tickle tickle - -/datum/ammo/bullet/shrapnel/light/effect/ver1 - icon_state = "shrapnel_bright1" - -/datum/ammo/bullet/shrapnel/light/effect/ver2 - icon_state = "shrapnel_bright2" - -/datum/ammo/bullet/shrapnel/jagged - shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 - accuracy = HIT_ACCURACY_TIER_MAX - -/datum/ammo/bullet/shrapnel/jagged/on_hit_mob(mob/M, obj/projectile/P) - if(isxeno(M)) - M.apply_effect(0.4, SLOW) - -/* -//======== - CAS 30mm impacters -//======== -*/ -/datum/ammo/bullet/shrapnel/gau //for the GAU to have a impact bullet instead of firecrackers - name = "30mm Multi-Purpose shell" - - damage = 1 // ALL DAMAGE IS IN dropship_ammo SO WE CAN DEAL DAMAGE TO RESTING MOBS, these will still remain however so that we can get cause_data and status effects. - damage_type = BRUTE - penetration = ARMOR_PENETRATION_TIER_2 - accuracy = HIT_ACCURACY_TIER_MAX - max_range = 0 - shrapnel_chance = 100 //the least of your problems - -/datum/ammo/bullet/shrapnel/gau/at - name = "30mm Anti-Tank shell" - - damage = 1 // ALL DAMAGE IS IN dropship_ammo SO WE CAN DEAL DAMAGE TO RESTING MOBS, these will still remain however so that we can get cause_data and status effects. - penetration = ARMOR_PENETRATION_TIER_8 - accuracy = HIT_ACCURACY_TIER_MAX -/* -//====== - Misc Ammo -//====== -*/ - -/datum/ammo/alloy_spike - name = "alloy spike" - headshot_state = HEADSHOT_OVERLAY_MEDIUM - ping = "ping_s" - icon_state = "MSpearFlight" - sound_hit = "alloy_hit" - sound_armor = "alloy_armor" - sound_bounce = "alloy_bounce" - - accuracy = HIT_ACCURACY_TIER_8 - accurate_range = 12 - max_range = 12 - damage = 30 - penetration= ARMOR_PENETRATION_TIER_10 - shrapnel_chance = SHRAPNEL_CHANCE_TIER_7 - shrapnel_type = /obj/item/shard/shrapnel - -/datum/ammo/flamethrower - name = "flame" - icon_state = "pulse0" - damage_type = BURN - flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_HITS_TARGET_TURF - - max_range = 6 - damage = 35 - -/datum/ammo/flamethrower/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/flamethrower/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - -/datum/ammo/flamethrower/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - -/datum/ammo/flamethrower/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - -/datum/ammo/flamethrower/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - -/datum/ammo/flamethrower/tank_flamer - flamer_reagent_type = /datum/reagent/napalm/blue - -/datum/ammo/flamethrower/sentry_flamer - flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_IGNORE_COVER|AMMO_FLAME - flamer_reagent_type = /datum/reagent/napalm/blue - - accuracy = HIT_ACCURACY_TIER_8 - accurate_range = 6 - max_range = 12 - shell_speed = AMMO_SPEED_TIER_3 - -/datum/ammo/flamethrower/sentry_flamer/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/flamethrower/sentry_flamer/glob - max_range = 14 - accurate_range = 10 - var/datum/effect_system/smoke_spread/phosphorus/smoke - -/datum/ammo/flamethrower/sentry_flamer/glob/New() - . = ..() - smoke = new() - -/datum/ammo/flamethrower/sentry_flamer/glob/drop_flame(turf/T, datum/cause_data/cause_data) - if(!istype(T)) - return - smoke.set_up(1, 0, T, new_cause_data = cause_data) - smoke.start() - -/datum/ammo/flamethrower/sentry_flamer/glob/Destroy() - qdel(smoke) - return ..() - -/datum/ammo/flamethrower/sentry_flamer/mini - name = "normal fire" - -/datum/ammo/flamethrower/sentry_flamer/mini/drop_flame(turf/T, datum/cause_data/cause_data) - if(!istype(T)) - return - var/datum/reagent/napalm/ut/R = new() - R.durationfire = BURN_TIME_INSTANT - new /obj/flamer_fire(T, cause_data, R, 0) - -/datum/ammo/flare - name = "flare" - ping = null //no bounce off. - damage_type = BURN - flags_ammo_behavior = AMMO_HITS_TARGET_TURF - icon_state = "flare" - - damage = 15 - accuracy = HIT_ACCURACY_TIER_3 - max_range = 14 - shell_speed = AMMO_SPEED_TIER_3 - - var/flare_type = /obj/item/device/flashlight/flare/on/gun - handful_type = /obj/item/device/flashlight/flare - -/datum/ammo/flare/set_bullet_traits() - . = ..() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/flare/on_hit_mob(mob/M,obj/projectile/P) - drop_flare(get_turf(M), P, P.firer) - -/datum/ammo/flare/on_hit_obj(obj/O,obj/projectile/P) - drop_flare(get_turf(P), P, P.firer) - -/datum/ammo/flare/on_hit_turf(turf/T, obj/projectile/P) - if(T.density && isturf(P.loc)) - drop_flare(P.loc, P, P.firer) - else - drop_flare(T, P, P.firer) - -/datum/ammo/flare/do_at_max_range(obj/projectile/P, mob/firer) - drop_flare(get_turf(P), P, P.firer) - -/datum/ammo/flare/proc/drop_flare(turf/T, obj/projectile/fired_projectile, mob/firer) - var/obj/item/device/flashlight/flare/G = new flare_type(T) - var/matrix/rotation = matrix() - rotation.Turn(fired_projectile.angle - 90) - G.apply_transform(rotation) - G.visible_message(SPAN_WARNING("\A [G] bursts into brilliant light nearby!")) - return G - -/datum/ammo/flare/signal - name = "signal flare" - icon_state = "flare_signal" - flare_type = /obj/item/device/flashlight/flare/signal/gun - handful_type = /obj/item/device/flashlight/flare/signal - -/datum/ammo/flare/signal/drop_flare(turf/T, obj/projectile/fired_projectile, mob/firer) - var/obj/item/device/flashlight/flare/signal/gun/signal_flare = ..() - signal_flare.activate_signal(firer) - if(istype(fired_projectile.shot_from, /obj/item/weapon/gun/flare)) - var/obj/item/weapon/gun/flare/flare_gun_fired_from = fired_projectile.shot_from - flare_gun_fired_from.last_signal_flare_name = signal_flare.name - -/datum/ammo/flare/starshell - name = "starshell ash" - icon_state = "starshell_bullet" - max_range = 5 - flare_type = /obj/item/device/flashlight/flare/on/starshell_ash - -/datum/ammo/flare/starshell/set_bullet_traits() - LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff, /datum/element/bullet_trait_incendiary) - )) - -/datum/ammo/souto - name = "Souto Can" - ping = null //no bounce off. - damage_type = BRUTE - shrapnel_type = /obj/item/reagent_container/food/drinks/cans/souto/classic - flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_IGNORE_ARMOR|AMMO_IGNORE_RESIST|AMMO_BALLISTIC|AMMO_STOPPED_BY_COVER|AMMO_SPECIAL_EMBED - var/obj/item/reagent_container/food/drinks/cans/souto/can_type - icon_state = "souto_classic" - - max_range = 12 - shrapnel_chance = 10 - accuracy = HIT_ACCURACY_TIER_8 + HIT_ACCURACY_TIER_8 - accurate_range = 12 - shell_speed = AMMO_SPEED_TIER_1 - -/datum/ammo/souto/on_embed(mob/embedded_mob, obj/limb/target_organ) - if(ishuman(embedded_mob) && !isyautja(embedded_mob)) - if(istype(target_organ)) - target_organ.embed(new can_type) - -/datum/ammo/souto/on_hit_mob(mob/M, obj/projectile/P) - if(!M || M == P.firer) return - if(M.throw_mode && !M.get_active_hand()) //empty active hand and we're in throw mode. If so we catch the can. - if(!M.is_mob_incapacitated()) // People who are not able to catch cannot catch. - if(P.contents.len == 1) - for(var/obj/item/reagent_container/food/drinks/cans/souto/S in P.contents) - M.put_in_active_hand(S) - for(var/mob/O in viewers(world_view_size, P)) //find all people in view. - O.show_message(SPAN_DANGER("[M] catches the [S]!"), SHOW_MESSAGE_VISIBLE) //Tell them the can was caught. - return //Can was caught. - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species.name == "Human") //no effect on synths or preds. - H.apply_effect(6, STUN) - H.apply_effect(8, WEAKEN) - H.apply_effect(15, DAZE) - H.apply_effect(15, SLOW) - shake_camera(H, 2, 1) - if(P.contents.len) - drop_can(P.loc, P) //We make a can at the location. - -/datum/ammo/souto/on_hit_obj(obj/O,obj/projectile/P) - drop_can(P.loc, P) //We make a can at the location. - -/datum/ammo/souto/on_hit_turf(turf/T, obj/projectile/P) - drop_can(P.loc, P) //We make a can at the location. - -/datum/ammo/souto/do_at_max_range(obj/projectile/P) - drop_can(P.loc, P) //We make a can at the location. - -/datum/ammo/souto/on_shield_block(mob/M, obj/projectile/P) - drop_can(P.loc, P) //We make a can at the location. - -/datum/ammo/souto/proc/drop_can(loc, obj/projectile/P) - if(P.contents.len) - for(var/obj/item/I in P.contents) - I.forceMove(loc) - randomize_projectile(P) - -/datum/ammo/souto/proc/randomize_projectile(obj/projectile/P) - shrapnel_type = pick(typesof(/obj/item/reagent_container/food/drinks/cans/souto)-/obj/item/reagent_container/food/drinks/cans/souto) - -/datum/ammo/grenade_container - name = "grenade shell" - ping = null - damage_type = BRUTE - var/nade_type = /obj/item/explosive/grenade/high_explosive - icon_state = "grenade" - flags_ammo_behavior = AMMO_IGNORE_COVER|AMMO_SKIPS_ALIENS - - damage = 15 - accuracy = HIT_ACCURACY_TIER_3 - max_range = 6 - -/datum/ammo/grenade_container/on_hit_mob(mob/M,obj/projectile/P) - drop_nade(P) - -/datum/ammo/grenade_container/on_hit_obj(obj/O,obj/projectile/P) - drop_nade(P) - -/datum/ammo/grenade_container/on_hit_turf(turf/T,obj/projectile/P) - drop_nade(P) - -/datum/ammo/grenade_container/do_at_max_range(obj/projectile/P) - drop_nade(P) - -/datum/ammo/grenade_container/proc/drop_nade(obj/projectile/P) - var/turf/T = get_turf(P) - var/obj/item/explosive/grenade/G = new nade_type(T) - G.visible_message(SPAN_WARNING("\A [G] lands on [T]!")) - G.det_time = 10 - G.cause_data = P.weapon_cause_data - G.activate() - -/datum/ammo/grenade_container/rifle - flags_ammo_behavior = NO_FLAGS - -/datum/ammo/grenade_container/smoke - name = "smoke grenade shell" - nade_type = /obj/item/explosive/grenade/smokebomb - icon_state = "smoke_shell" - -/datum/ammo/hugger_container - name = "hugger shell" - ping = null - damage_type = BRUTE - var/hugger_hive = XENO_HIVE_NORMAL - icon_state = "smoke_shell" - - damage = 15 - accuracy = HIT_ACCURACY_TIER_3 - max_range = 6 - -/datum/ammo/hugger_container/on_hit_mob(mob/M,obj/projectile/P) - spawn_hugger(get_turf(P)) - -/datum/ammo/hugger_container/on_hit_obj(obj/O,obj/projectile/P) - spawn_hugger(get_turf(P)) - -/datum/ammo/hugger_container/on_hit_turf(turf/T,obj/projectile/P) - spawn_hugger(get_turf(P)) - -/datum/ammo/hugger_container/do_at_max_range(obj/projectile/P) - spawn_hugger(get_turf(P)) - -/datum/ammo/hugger_container/proc/spawn_hugger(turf/T) - var/obj/item/clothing/mask/facehugger/child = new(T) - child.hivenumber = hugger_hive - INVOKE_ASYNC(child, TYPE_PROC_REF(/obj/item/clothing/mask/facehugger, leap_at_nearest_target)) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index d747525f3feb..594ad6b69dce 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -18,6 +18,8 @@ They're all essentially identical when it comes to getting the job done. w_class = SIZE_SMALL throw_speed = SPEED_SLOW throw_range = 6 + ground_offset_x = 7 + ground_offset_y = 6 var/default_ammo = /datum/ammo/bullet var/caliber = null // This is used for matching handfuls to each other or whatever the mag is. Examples are" "12g" ".44" ".357" etc. var/current_rounds = -1 //Set this to something else for it not to start with different initial counts. @@ -50,8 +52,7 @@ They're all essentially identical when it comes to getting the job done. if(0) icon_state += "_e" //In case it spawns empty instead. item_state += "_e" - pixel_y = rand(-6, 6) - pixel_x = rand(-7, 7) + if(ammo_band_color && ammo_band_icon) update_ammo_band() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 6fd5d4b0d834..131b19c5d81e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -288,16 +288,11 @@ /obj/item/weapon/gun/Destroy() in_chamber = null ammo = null - current_mag = null + QDEL_NULL(current_mag) target = null last_moved_mob = null if(flags_gun_features & GUN_FLASHLIGHT_ON)//Handle flashlight. flags_gun_features &= ~GUN_FLASHLIGHT_ON - if(ismob(loc)) - for(var/slot in attachments) - var/obj/item/attachable/potential_attachment = attachments[slot] - if(!potential_attachment) - continue attachments = null attachable_overlays = null QDEL_NULL(active_attachable) @@ -486,6 +481,7 @@ /obj/item/weapon/gun/emp_act(severity) + . = ..() for(var/obj/O in contents) O.emp_act(severity) @@ -493,12 +489,12 @@ Note: pickup and dropped on weapons must have both the ..() to update zoom AND twohanded, As sniper rifles have both and weapon mods can change them as well. ..() deals with zoom only. */ -/obj/item/weapon/gun/equipped(mob/user, slot) +/obj/item/weapon/gun/equipped(mob/living/user, slot) if(flags_item & NODROP) return unwield(user) pull_time = world.time + wield_delay - if(user.dazed) + if(HAS_TRAIT(user, TRAIT_DAZED)) pull_time += 3 guaranteed_delay_time = world.time + WEAPON_GUARANTEED_DELAY @@ -525,6 +521,10 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w if(fire_delay_group && delay_left > 0) LAZYSET(user.fire_delay_next_fire, src, world.time + delay_left) + for(var/obj/item/attachable/stock/smg/collapsible/brace/current_stock in contents) //SMG armbrace folds to stop it getting stuck on people + if(current_stock.stock_activated) + current_stock.activate_attachment(src, user, turn_off = TRUE) + unwield(user) set_gun_user(null) @@ -733,7 +733,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w // END TGUI \\ -/obj/item/weapon/gun/wield(mob/user) +/obj/item/weapon/gun/wield(mob/living/user) if(!(flags_item & TWOHANDED) || flags_item & WIELDED) return @@ -760,7 +760,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w slowdown = initial(slowdown) + aim_slowdown place_offhand(user, initial(name)) wield_time = world.time + wield_delay - if(user.dazed) + if(HAS_TRAIT(user, TRAIT_DAZED)) wield_time += 5 guaranteed_delay_time = world.time + WEAPON_GUARANTEED_DELAY //slower or faster wield delay depending on skill. @@ -844,6 +844,7 @@ User can be passed as null, (a gun reloading itself for instance), so we need to to_chat(user, SPAN_WARNING("Your reload was interrupted!")) return replace_magazine(user, magazine) + SEND_SIGNAL(user, COMSIG_MOB_RELOADED_GUN, src) else current_mag = magazine magazine.forceMove(src) @@ -1049,6 +1050,7 @@ and you're good to go. user.swap_hand() unload(user, TRUE, drop_to_ground) // We want to quickly autoeject the magazine. This proc does the rest based on magazine type. User can be passed as null. playsound(src, empty_sound, 25, 1) + SEND_SIGNAL(user, COMSIG_MOB_GUN_EMPTY, src) else // Just fired a chambered bullet with no magazine in the gun update_icon() @@ -1401,7 +1403,7 @@ and you're good to go. var/damage_buff = BASE_BULLET_DAMAGE_MULT //if target is lying or unconscious - add damage bonus - if(attacked_mob.lying == TRUE || attacked_mob.stat == UNCONSCIOUS) + if(!(attacked_mob.mobility_flags & MOBILITY_STAND) || attacked_mob.stat == UNCONSCIOUS) damage_buff += BULLET_DAMAGE_MULT_TIER_4 projectile_to_fire.damage *= damage_buff //Multiply the damage for point blank. if(bullets_fired == 1) //First shot gives the PB message. @@ -1425,7 +1427,7 @@ and you're good to go. projectile_to_fire.give_bullet_traits(BP) if(bullets_fired > 1) BP.original = attacked_mob //original == the original target of the projectile. If the target is downed and this isn't set, the projectile will try to fly over it. Of course, it isn't going anywhere, but it's the principle of the thing. Very embarrassing. - if(!BP.handle_mob(attacked_mob) && attacked_mob.lying) //This is the 'handle impact' proc for a flying projectile, including hit RNG, on_hit_mob and bullet_act. If it misses, it doesn't go anywhere. We'll pretend it slams into the ground or punches a hole in the ceiling, because trying to make it bypass the xeno or shoot from the tile beyond it is probably more spaghet than my life is worth. + if(!BP.handle_mob(attacked_mob) && attacked_mob.body_position == LYING_DOWN) //This is the 'handle impact' proc for a flying projectile, including hit RNG, on_hit_mob and bullet_act. If it misses, it doesn't go anywhere. We'll pretend it slams into the ground or punches a hole in the ceiling, because trying to make it bypass the xeno or shoot from the tile beyond it is probably more spaghet than my life is worth. if(BP.ammo.sound_bounce) playsound(attacked_mob.loc, BP.ammo.sound_bounce, 35, 1) attacked_mob.visible_message(SPAN_AVOIDHARM("[BP] slams into [get_turf(attacked_mob)]!"), //Managing to miss an immobile target flat on the ground deserves some recognition, don't you think? @@ -1438,7 +1440,7 @@ and you're good to go. if(bullets_fired > 1) projectile_to_fire.original = attacked_mob - if(!projectile_to_fire.handle_mob(attacked_mob) && attacked_mob.lying) + if(!projectile_to_fire.handle_mob(attacked_mob) && attacked_mob.body_position == LYING_DOWN) if(projectile_to_fire.ammo.sound_bounce) playsound(attacked_mob.loc, projectile_to_fire.ammo.sound_bounce, 35, 1) attacked_mob.visible_message(SPAN_AVOIDHARM("[projectile_to_fire] slams into [get_turf(attacked_mob)]!"), @@ -1539,6 +1541,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed if(flags_gun_features & GUN_TRIGGER_SAFETY) to_chat(user, SPAN_WARNING("The safety is on!")) + gun_user.balloon_alert(gun_user, "safety on") return if(active_attachable) if(active_attachable.flags_attach_features & ATTACH_PROJECTILE) @@ -1934,8 +1937,8 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed if(gun_user.client?.prefs?.toggle_prefs & TOGGLE_HELP_INTENT_SAFETY && (gun_user.a_intent == INTENT_HELP)) if(world.time % 3) // Limits how often this message pops up, saw this somewhere else and thought it was clever - //Absolutely SCREAM this at people so they don't get killed by it - to_chat(gun_user, SPAN_HIGHDANGER("Help intent safety is on! Switch to another intent to fire your weapon.")) + to_chat(gun_user, SPAN_DANGER("Help intent safety is on! Switch to another intent to fire your weapon.")) + gun_user.balloon_alert(gun_user, "help intent safety") click_empty(gun_user) return FALSE @@ -1960,6 +1963,7 @@ not all weapons use normal magazines etc. load_into_chamber() itself is designed /// Setter proc for fa_firing /obj/item/weapon/gun/proc/set_auto_firing(auto = FALSE) + SIGNAL_HANDLER fa_firing = auto /// Getter for gun_user diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 2438947ef254..0f3fde8f3c9b 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -342,6 +342,10 @@ Defined in conflicts.dm of the #defines folder. throw_range = 7 pry_delay = 1 SECONDS +/obj/item/attachable/bayonet/van_bandolier + name = "\improper Fairbairn-Sykes fighting knife" + desc = "This isn't for dressing game or performing camp chores. It's almost certainly not an original. Almost." + /obj/item/attachable/bayonet/co2/update_icon() icon_state = "co2_knife[filled ? "-f" : ""]" attach_icon = "co2_bayonet[filled ? "-f" : ""]_a" @@ -350,16 +354,16 @@ Defined in conflicts.dm of the #defines folder. if(istype(W, /obj/item/co2_cartridge)) if(!filled) filled = TRUE - user.visible_message(SPAN_NOTICE("[user] slots a CO2 cartridge into [src]. A second later, \he apparently looks dismayed."), SPAN_WARNING("You slot a fresh CO2 cartridge into [src] and snap the slot cover into place. Only then do you realize \the [W]'s valve broke inside \the [src]. Fuck.")) + user.visible_message(SPAN_NOTICE("[user] slots a CO2 cartridge into [src]. A second later, \he apparently looks dismayed."), SPAN_WARNING("You slot a fresh CO2 cartridge into [src] and snap the slot cover into place. Only then do you realize [W]'s valve broke inside [src]. Fuck.")) playsound(src, 'sound/machines/click.ogg') qdel(W) update_icon() return else - user.visible_message(SPAN_WARNING("[user] fiddles with \the [src]. \He looks frustrated."), SPAN_NOTICE("No way man! You can't seem to pry the existing container out of \the [src]... try a screwdriver?")) + user.visible_message(SPAN_WARNING("[user] fiddles with [src]. \He looks frustrated."), SPAN_NOTICE("No way man! You can't seem to pry the existing container out of [src]... try a screwdriver?")) return if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER) && do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) - user.visible_message(SPAN_WARNING("[user] screws with \the [src], using \a [W]. \He looks very frustrated."), SPAN_NOTICE("You try to pry the cartridge out of the [src], but it's stuck damn deep. Piece of junk...")) + user.visible_message(SPAN_WARNING("[user] screws with [src], using \a [W]. \He looks very frustrated."), SPAN_NOTICE("You try to pry the cartridge out of [src], but it's stuck damn deep. Piece of junk...")) return ..() @@ -495,6 +499,20 @@ Defined in conflicts.dm of the #defines folder. accuracy_mod = HIT_ACCURACY_MULT_TIER_3 scatter_mod = -SCATTER_AMOUNT_TIER_8 +/obj/item/attachable/pmc_sniperbarrel + name = "sniper barrel" + icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' + icon_state = "pmc_sniperbarrel" + desc = "A heavy barrel. CANNOT BE REMOVED." + slot = "muzzle" + flags_attach_features = NO_FLAGS + hud_offset_mod = -3 + +/obj/item/attachable/pmc_sniperbarrel/New() + ..() + accuracy_mod = HIT_ACCURACY_MULT_TIER_3 + scatter_mod = -SCATTER_AMOUNT_TIER_8 + /obj/item/attachable/sniperbarrel/vulture name = "\improper M707 barrel" icon_state = "vulture_barrel" @@ -1283,7 +1301,7 @@ Defined in conflicts.dm of the #defines folder. switch(action) if("adjust_dir") var/direction = params["offset_dir"] - if(!(direction in alldirs) || !scoping || !scope_user) + if(!(direction in GLOB.alldirs) || !scoping || !scope_user) return var/mob/scoper = scope_user.resolve() @@ -1300,7 +1318,7 @@ Defined in conflicts.dm of the #defines folder. if("adjust_position") var/direction = params["position_dir"] - if(!(direction in alldirs) || !scoping || !scope_user) + if(!(direction in GLOB.alldirs) || !scoping || !scope_user) return var/mob/scoper = scope_user.resolve() @@ -1367,7 +1385,7 @@ Defined in conflicts.dm of the #defines folder. return TRUE /obj/item/attachable/vulture_scope/proc/get_offset_dirs() - var/list/possible_dirs = alldirs.Copy() + var/list/possible_dirs = GLOB.alldirs.Copy() if(scope_offset_x >= scope_drift_max) possible_dirs -= list(NORTHEAST, EAST, SOUTHEAST) else if(scope_offset_x <= -scope_drift_max) @@ -1384,7 +1402,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/vulture_scope/proc/get_adjust_dirs() if(!scoping) return list() - var/list/possible_dirs = alldirs.Copy() + var/list/possible_dirs = GLOB.alldirs.Copy() var/turf/current_turf = get_turf(src) var/turf/scope_tile = locate(scope_x, scope_y, current_turf.z) var/mob/scoper = scope_user.resolve() @@ -1568,7 +1586,7 @@ Defined in conflicts.dm of the #defines folder. scoper.clear_fullscreen("vulture") scoper.client.remove_from_screen(scope_element) scoper.see_in_dark -= darkness_view - scoper.lighting_alpha = 127 + scoper.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE scoper.sync_lighting_plane_alpha() QDEL_NULL(scope_element) recalculate_scope_pos() @@ -2671,7 +2689,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/attached_gun/grenade/unique_action(mob/user) if(!ishuman(usr)) return - if(!user.canmove || user.stat || user.is_mob_restrained() || !user.loc || !isturf(usr.loc)) + if(user.is_mob_incapacitated() || !isturf(usr.loc)) to_chat(user, SPAN_WARNING("Not right now.")) return @@ -3058,9 +3076,6 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/attached_gun/extinguisher/fire_attachment(atom/target, obj/item/weapon/gun/gun, mob/living/user) if(!internal_extinguisher) return - if(!(gun.flags_item & WIELDED)) - to_chat(user, SPAN_WARNING("You must wield [gun] to fire [src]!")) - return if(..()) return internal_extinguisher.afterattack(target, user) @@ -3436,4 +3451,3 @@ Defined in conflicts.dm of the #defines folder. accuracy_mod = HIT_ACCURACY_MULT_TIER_5 accuracy_unwielded_mod = HIT_ACCURACY_MULT_TIER_5 damage_mod -= BULLET_DAMAGE_MULT_TIER_4 - diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index be46fdb15ed0..f73b5550b297 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -462,7 +462,7 @@ DEFINES in setup.dm, referenced here. /obj/item/weapon/gun/proc/get_active_firearm(mob/user, restrictive = TRUE) if(!ishuman(usr)) return - if(!user.canmove || user.stat || user.is_mob_restrained() || !user.loc || !isturf(usr.loc)) + if(user.is_mob_incapacitated() || !isturf(usr.loc)) to_chat(user, SPAN_WARNING("Not right now.")) return diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm index c18e45e38d3e..d21cb5b87254 100644 --- a/code/modules/projectiles/guns/boltaction.dm +++ b/code/modules/projectiles/guns/boltaction.dm @@ -214,7 +214,7 @@ return . for(var/mob/current_mob as anything in get_mobs_in_z_level_range(get_turf(user), fire_message_range) - user) - var/relative_dir = get_dir(current_mob, user) + var/relative_dir = Get_Compass_Dir(current_mob, user) var/final_dir = dir2text(relative_dir) to_chat(current_mob, SPAN_HIGHDANGER("You hear a massive boom coming from [final_dir ? "the [final_dir]" : "nearby"]!")) if(current_mob.client) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index adca6a7cce6f..ee122d8f8edd 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -66,9 +66,9 @@ overlays += charge_icon + "_0" /obj/item/weapon/gun/energy/emp_act(severity) + . = ..() cell.use(round(cell.maxcharge / severity)) update_icon() - ..() /obj/item/weapon/gun/energy/load_into_chamber() if(!cell || cell.charge < charge_cost) diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index 13ccd03c3e82..282edcab9fd6 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -250,6 +250,9 @@ /obj/item/weapon/gun/flamer/deathsquad/nolock flags_gun_features = GUN_WIELDED_FIRING_ONLY +/obj/item/weapon/gun/flamer/deathsquad/standard + current_mag = /obj/item/ammo_magazine/flamer_tank + /obj/item/weapon/gun/flamer/M240T name = "\improper M240-T incinerator unit" desc = "An improved version of the M240A1 incinerator unit, the M240-T model is capable of dispersing a larger variety of fuel types." @@ -372,29 +375,6 @@ . = ..() set_fire_delay(FIRE_DELAY_TIER_7) -GLOBAL_LIST_EMPTY(flamer_particles) -/particles/flamer_fire - icon = 'icons/effects/particles/fire.dmi' - icon_state = "bonfire" - width = 100 - height = 100 - count = 1000 - spawning = 8 - lifespan = 0.7 SECONDS - fade = 1 SECONDS - grow = -0.01 - velocity = list(0, 0) - position = generator("box", list(-16, -16), list(16, 16), NORMAL_RAND) - drift = generator("vector", list(0, -0.2), list(0, 0.2)) - gravity = list(0, 0.95) - scale = generator("vector", list(0.3, 0.3), list(1,1), NORMAL_RAND) - rotation = 30 - spin = generator("num", -20, 20) - -/particles/flamer_fire/New(set_color) - ..() - color = set_color - /obj/flamer_fire name = "fire" desc = "Ouch!" @@ -451,14 +431,11 @@ GLOBAL_LIST_EMPTY(flamer_particles) set_light(l_color = R.burncolor) - if(!GLOB.flamer_particles[R.burncolor]) - GLOB.flamer_particles[R.burncolor] = new /particles/flamer_fire(R.burncolor) - particles = GLOB.flamer_particles[R.burncolor] - tied_reagent = new R.type() // Can't get deleted this way tied_reagent.make_alike(R) - tied_reagents = obj_reagents + if(obj_reagents) + tied_reagents = obj_reagents target_clicked = target @@ -644,7 +621,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) burn_damage = 0 if(!burn_damage) - to_chat(M, SPAN_DANGER("You step over the flames.")) + to_chat(M, SPAN_DANGER("[isxeno(M) ? "We" : "You"] step over the flames.")) return M.last_damage_data = weapon_cause_data @@ -655,7 +632,7 @@ GLOBAL_LIST_EMPTY(flamer_particles) if(FIRE_VARIANT_TYPE_B) if(isxeno(M)) var/mob/living/carbon/xenomorph/X = M - X.armor_deflection?(variant_burn_msg=" You feel the flames weakening your exoskeleton!"):(variant_burn_msg=" You feel the flaming chemicals eating into your body!") + X.armor_deflection?(variant_burn_msg=" We feel the flames weakening our exoskeleton!"):(variant_burn_msg=" You feel the flaming chemicals eating into your body!") to_chat(M, SPAN_DANGER("You are burned![variant_burn_msg?"[variant_burn_msg]":""]")) M.updatehealth() @@ -719,16 +696,16 @@ GLOBAL_LIST_EMPTY(flamer_particles) var/direction_angle = dir2angle(direction) var/obj/flamer_fire/foundflame = locate() in target if(!foundflame) - var/datum/reagent/R = new() - R.intensityfire = burn_lvl - R.durationfire = fire_lvl - R.burn_sprite = burn_sprite - R.burncolor = f_color - new/obj/flamer_fire(target, cause_data, R) + var/datum/reagent/fire_reag = new() + fire_reag.intensityfire = burn_lvl + fire_reag.durationfire = fire_lvl + fire_reag.burn_sprite = burn_sprite + fire_reag.burncolor = f_color + new/obj/flamer_fire(target, cause_data, fire_reag) if(target.density) return - for(var/spread_direction in alldirs) + for(var/spread_direction in GLOB.alldirs) var/spread_power = remaining_distance @@ -737,11 +714,9 @@ GLOBAL_LIST_EMPTY(flamer_particles) var/angle = 180 - abs( abs( direction_angle - spread_direction_angle ) - 180 ) // the angle difference between the spread direction and initial direction switch(angle) //this reduces power when the explosion is going around corners - if (0) - //no change if (45) spread_power *= 0.75 - else //turns out angles greater than 90 degrees almost never happen. This bit also prevents trying to spread backwards + if (90 to 180) //turns out angles greater than 90 degrees almost never happen. This bit also prevents trying to spread backwards continue switch(spread_direction) @@ -753,33 +728,41 @@ GLOBAL_LIST_EMPTY(flamer_particles) if (spread_power < 1) continue - var/turf/T = get_step(target, spread_direction) + var/turf/picked_turf = get_step(target, spread_direction) - if(!T) //prevents trying to spread into "null" (edge of the map?) + if(!picked_turf) //prevents trying to spread into "null" (edge of the map?) continue - if(aerial_flame_level && (T.get_pylon_protection_level() >= aerial_flame_level)) - break + if(aerial_flame_level) + if(picked_turf.get_pylon_protection_level() >= aerial_flame_level) + break + var/area/picked_area = get_area(picked_turf) + if(CEILING_IS_PROTECTED(picked_area?.ceiling, get_ceiling_protection_level(aerial_flame_level))) + break spawn(0) - fire_spread_recur(T, cause_data, spread_power, spread_direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) + fire_spread_recur(picked_turf, cause_data, spread_power, spread_direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) /proc/fire_spread(turf/target, datum/cause_data/cause_data, range, fire_lvl, burn_lvl, f_color, burn_sprite = "dynamic", aerial_flame_level = TURF_PROTECTION_NONE) - var/datum/reagent/R = new() - R.intensityfire = burn_lvl - R.durationfire = fire_lvl - R.burn_sprite = burn_sprite - R.burncolor = f_color - - new/obj/flamer_fire(target, cause_data, R) - for(var/direction in alldirs) + var/datum/reagent/fire_reag = new() + fire_reag.intensityfire = burn_lvl + fire_reag.durationfire = fire_lvl + fire_reag.burn_sprite = burn_sprite + fire_reag.burncolor = f_color + + new/obj/flamer_fire(target, cause_data, fire_reag) + for(var/direction in GLOB.alldirs) var/spread_power = range switch(direction) if(NORTH,SOUTH,EAST,WEST) spread_power-- else spread_power -= 1.414 //diagonal spreading - var/turf/T = get_step(target, direction) - if(aerial_flame_level && (T.get_pylon_protection_level() >= aerial_flame_level)) - continue - fire_spread_recur(T, cause_data, spread_power, direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) + var/turf/picked_turf = get_step(target, direction) + if(aerial_flame_level) + if(picked_turf.get_pylon_protection_level() >= aerial_flame_level) + continue + var/area/picked_area = get_area(picked_turf) + if(CEILING_IS_PROTECTED(picked_area?.ceiling, get_ceiling_protection_level(aerial_flame_level))) + continue + fire_spread_recur(picked_turf, cause_data, spread_power, direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) diff --git a/code/modules/projectiles/guns/flamer/flameshape.dm b/code/modules/projectiles/guns/flamer/flameshape.dm index f5a0699067e4..ae6c2dec0a67 100644 --- a/code/modules/projectiles/guns/flamer/flameshape.dm +++ b/code/modules/projectiles/guns/flamer/flameshape.dm @@ -28,7 +28,7 @@ /datum/flameshape/default/handle_fire_spread(obj/flamer_fire/F, fire_spread_amount, burn_dam, fuel_pressure = 1) var/turf/T var/turf/source_turf = get_turf(F.loc) - for(var/dirn in cardinal) + for(var/dirn in GLOB.cardinals) T = get_step(source_turf, dirn) if(istype(T, /turf/open/space)) continue @@ -64,7 +64,7 @@ id = FLAMESHAPE_STAR /datum/flameshape/star/proc/dirs_to_use() - return alldirs + return GLOB.alldirs /datum/flameshape/star/handle_fire_spread(obj/flamer_fire/F, fire_spread_amount, burn_dam, fuel_pressure = 1) fire_spread_amount = Floor(fire_spread_amount * 1.5) // branch 'length' @@ -102,9 +102,9 @@ /datum/flameshape/star/minor/dirs_to_use() if(prob(50)) - return cardinal + return GLOB.cardinals else - return diagonals + return GLOB.diagonals /datum/flameshape/line name = "Line" diff --git a/code/modules/projectiles/guns/lever_action.dm b/code/modules/projectiles/guns/lever_action.dm index 81d7dc166cd3..849844f4f044 100644 --- a/code/modules/projectiles/guns/lever_action.dm +++ b/code/modules/projectiles/guns/lever_action.dm @@ -373,6 +373,7 @@ their unique feature is that a direct hit will buff your damage and firerate hit_buff_reset_cooldown = 2 SECONDS //how much time after a direct hit until streaks reset var/floating_penetration = FLOATING_PENETRATION_TIER_0 //holder var var/floating_penetration_upper_limit = FLOATING_PENETRATION_TIER_4 + var/direct_hit_sound = 'sound/weapons/gun_xm88_directhit_low.ogg' attachable_allowed = list( /obj/item/attachable/bayonet/upp, // Barrel /obj/item/attachable/bayonet, @@ -405,9 +406,9 @@ their unique feature is that a direct hit will buff your damage and firerate /obj/item/weapon/gun/lever_action/xm88/wield(mob/user) . = ..() - - RegisterSignal(src, COMSIG_ITEM_ZOOM, PROC_REF(scope_on)) - RegisterSignal(src, COMSIG_ITEM_UNZOOM, PROC_REF(scope_off)) + if(.) + RegisterSignal(src, COMSIG_ITEM_ZOOM, PROC_REF(scope_on)) + RegisterSignal(src, COMSIG_ITEM_UNZOOM, PROC_REF(scope_off)) /obj/item/weapon/gun/lever_action/xm88/proc/scope_on(atom/source, mob/current_user) SIGNAL_HANDLER @@ -499,12 +500,16 @@ their unique feature is that a direct hit will buff your damage and firerate switch(floating_penetration) if(FLOATING_PENETRATION_TIER_1) P.ammo = GLOB.ammo_list[/datum/ammo/bullet/lever_action/xm88/pen20] + direct_hit_sound = "sound/weapons/gun_xm88_directhit_low.ogg" if(FLOATING_PENETRATION_TIER_2) P.ammo = GLOB.ammo_list[/datum/ammo/bullet/lever_action/xm88/pen30] + direct_hit_sound = "sound/weapons/gun_xm88_directhit_medium.ogg" if(FLOATING_PENETRATION_TIER_3) P.ammo = GLOB.ammo_list[/datum/ammo/bullet/lever_action/xm88/pen40] + direct_hit_sound = "sound/weapons/gun_xm88_directhit_medium.ogg" if(FLOATING_PENETRATION_TIER_4) P.ammo = GLOB.ammo_list[/datum/ammo/bullet/lever_action/xm88/pen50] + direct_hit_sound = "sound/weapons/gun_xm88_directhit_high.ogg" return ..() /obj/item/weapon/gun/lever_action/xm88/unload(mob/user) @@ -524,6 +529,7 @@ their unique feature is that a direct hit will buff your damage and firerate lever_message = initial(lever_message) wield_delay = initial(wield_delay) cur_onehand_chance = initial(cur_onehand_chance) + direct_hit_sound = "sound/weapons/gun_xm88_directhit_low.ogg" if(in_chamber) var/obj/projectile/P = in_chamber P.ammo = GLOB.ammo_list[/datum/ammo/bullet/lever_action/xm88] @@ -536,6 +542,10 @@ their unique feature is that a direct hit will buff your damage and firerate if(one_hand_lever) addtimer(VARSET_CALLBACK(src, cur_onehand_chance, reset_onehand_chance), 4 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) +/obj/item/weapon/gun/lever_action/xm88/direct_hit_buff(mob/user, mob/target, one_hand_lever = FALSE) + . = ..() + playsound(target, direct_hit_sound, 75) + #undef FLOATING_PENETRATION_TIER_0 #undef FLOATING_PENETRATION_TIER_1 #undef FLOATING_PENETRATION_TIER_2 diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm index 65e4a6f2b7b3..1ee8aa189ed3 100644 --- a/code/modules/projectiles/guns/rifles.dm +++ b/code/modules/projectiles/guns/rifles.dm @@ -357,6 +357,8 @@ burst_scatter_mult = SCATTER_AMOUNT_TIER_10 scatter_unwielded = SCATTER_AMOUNT_TIER_4 +/obj/item/weapon/gun/rifle/m41a/elite/xm40/ap + current_mag = /obj/item/ammo_magazine/rifle/xm40 //------------------------------------------------------- //M41A TRUE AND ORIGINAL diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index 9a4b1551736c..c3b4906c1b29 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -266,14 +266,18 @@ can cause issues with ammo types getting mixed up during the burst. /obj/item/weapon/gun/shotgun/combat/handle_starting_attachment() ..() - var/obj/item/attachable/attached_gun/grenade/G = new(src) - G.flags_attach_features &= ~ATTACH_REMOVABLE - G.hidden = TRUE - G.Attach(src) - update_attachable(G.slot) + var/obj/item/attachable/attached_gun/grenade/ugl = new(src) + var/obj/item/attachable/stock/tactical/stock = new(src) + ugl.flags_attach_features &= ~ATTACH_REMOVABLE + ugl.hidden = TRUE + ugl.Attach(src) + update_attachable(ugl.slot) + stock.hidden = FALSE + stock.Attach(src) + update_attachable(stock.slot) /obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets() - attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 14, "stock_y" = 16) + attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.) @@ -1274,7 +1278,7 @@ can cause issues with ammo types getting mixed up during the burst. /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717 name = "\improper M37-17 pump shotgun" - desc = "A military version of the iconic HG 37-12, this design can fit one extra shell in each of its dual-tube internal magazines, and fires shells with increased velocity, resulting in more damage. Issued to select USCM vessels out on the rim. You can switch the active internal magazine by toggling the shotgun tube." + desc = "A military version of the iconic HG 37-12, this design can fit one extra shell in each of its dual-tube internal magazines, and fires shells with increased velocity, resulting in more damage. Issued to select USCM vessels and stations in the outer veil. A button on the side toggles the internal tubes." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' icon_state = "m3717" item_state = "m3717" diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 22f10cafb35b..8ac629310132 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -144,7 +144,8 @@ /obj/item/weapon/gun/smartgun/attackby(obj/item/attacking_object, mob/user) if(istype(attacking_object, /obj/item/smartgun_battery)) var/obj/item/smartgun_battery/new_cell = attacking_object - visible_message("[user] swaps out the power cell in the [src].","You swap out the power cell in the [src] and drop the old one.") + visible_message(SPAN_NOTICE("[user] swaps out the power cell in [src]."), + SPAN_NOTICE("You swap out the power cell in [src] and drop the old one.")) to_chat(user, SPAN_NOTICE("The new cell contains: [new_cell.power_cell.charge] power.")) battery.update_icon() battery.forceMove(get_turf(user)) diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 89e6594c64e7..24eddf31597d 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -11,7 +11,7 @@ aim_slowdown = SLOWDOWN_ADS_QUICK wield_delay = WIELD_DELAY_VERY_FAST attachable_allowed = list( - /obj/item/attachable/suppressor, + /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, /obj/item/attachable/flashlight, @@ -50,7 +50,8 @@ /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, - /obj/item/attachable/angledgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/verticalgrip, /obj/item/attachable/flashlight/grip, /obj/item/attachable/stock/smg, /obj/item/attachable/stock/smg/collapsible, diff --git a/code/modules/projectiles/guns/souto.dm b/code/modules/projectiles/guns/souto.dm index 6f45f57e1d61..1e9669dd0b7b 100644 --- a/code/modules/projectiles/guns/souto.dm +++ b/code/modules/projectiles/guns/souto.dm @@ -39,11 +39,11 @@ return ..() /obj/item/weapon/gun/souto/reload(mob/user, obj/item/ammo_magazine/magazine) - to_chat(user, SPAN_WARNING("The [src] feed system cannot be reloaded manually.")) + to_chat(user, SPAN_WARNING("[src]'s feed system cannot be reloaded manually.")) return /obj/item/weapon/gun/souto/unload(mob/user, reload_override = 0, drop_override = 0, loc_override = 0) - to_chat(user, SPAN_WARNING("You cannot unload the [src].")) + to_chat(user, SPAN_WARNING("You cannot unload [src].")) return /obj/item/weapon/gun/souto/able_to_fire(mob/user) diff --git a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm index 6d998002134c..356d0e6c3b48 100644 --- a/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm +++ b/code/modules/projectiles/guns/specialist/launcher/rocket_launcher.dm @@ -190,7 +190,7 @@ smoke.start() playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10) for(var/mob/living/carbon/C in backblast_loc) - if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff + if(C.body_position == STANDING_UP && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life C.apply_effect(4, STUN) //For good measure C.apply_effect(6, STUTTER) @@ -362,7 +362,7 @@ smoke.start() playsound(src, 'sound/weapons/gun_rocketlauncher.ogg', 100, TRUE, 10) for(var/mob/living/carbon/C in backblast_loc) - if(!C.lying && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff + if(C.body_position == STANDING_UP && !HAS_TRAIT(C, TRAIT_EAR_PROTECTION)) //Have to be standing up to get the fun stuff C.apply_damage(15, BRUTE) //The shockwave hurts, quite a bit. It can knock unarmored targets unconscious in real life C.apply_effect(4, STUN) //For good measure C.apply_effect(6, STUTTER) diff --git a/code/modules/projectiles/guns/specialist/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm index 17a2c0f26887..673de1a59602 100644 --- a/code/modules/projectiles/guns/specialist/sniper.dm +++ b/code/modules/projectiles/guns/specialist/sniper.dm @@ -75,7 +75,7 @@ /datum/action/item_action/specialist/aimed_shot/can_use_action() var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && !H.lying && (holder_item == H.r_hand || holder_item || H.l_hand)) + if(istype(H) && !H.is_mob_incapacitated() && (holder_item == H.r_hand || holder_item || H.l_hand)) return TRUE /datum/action/item_action/specialist/aimed_shot/proc/use_ability(atom/A) @@ -154,7 +154,7 @@ target.overlays -= lockon_direction_icon qdel(laser_beam) - if(!check_can_use(target, TRUE)) + if(!check_can_use(target, TRUE) || target.is_dead()) return var/obj/projectile/aimed_proj = sniper_rifle.in_chamber @@ -337,12 +337,12 @@ damage_mult = BASE_BULLET_DAMAGE_MULT recoil = RECOIL_AMOUNT_TIER_5 -/obj/item/weapon/gun/rifle/sniper/xm43e1 +/obj/item/weapon/gun/rifle/sniper/XM43E1 name = "\improper XM43E1 experimental anti-materiel rifle" desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' - icon_state = "xm42b" - item_state = "xm42b" + icon_state = "xm43e1" + item_state = "xm43e1" unacidable = TRUE indestructible = 1 @@ -353,12 +353,12 @@ zoomdevicename = "scope" attachable_allowed = list(/obj/item/attachable/bipod) flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER - starting_attachment_types = list(/obj/item/attachable/sniperbarrel) + starting_attachment_types = list(/obj/item/attachable/pmc_sniperbarrel) sniper_beam_type = /obj/effect/ebeam/laser/intense sniper_beam_icon = "laser_beam_intense" sniper_lockon_icon = "sniper_lockon_intense" -/obj/item/weapon/gun/rifle/sniper/XM42B/handle_starting_attachment() +/obj/item/weapon/gun/rifle/sniper/XM43E1/handle_starting_attachment() ..() var/obj/item/attachable/scope/variable_zoom/S = new(src) S.icon_state = "pmcscope" @@ -368,11 +368,11 @@ update_attachable(S.slot) -/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_attachment_offsets() +/obj/item/weapon/gun/rifle/sniper/XM43E1/set_gun_attachment_offsets() attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15) -/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_config_values() +/obj/item/weapon/gun/rifle/sniper/XM43E1/set_gun_config_values() ..() set_fire_delay(FIRE_DELAY_TIER_6 * 6 )//Big boy damage, but it takes a lot of time to fire a shot. //Kaga: Adjusted from 56 (Tier 4, 7*8) -> 30 (Tier 6, 5*6) ticks. 95 really wasn't big-boy damage anymore, although I updated it to 125 to remain consistent with the other 10x99mm caliber weapon (M42C). Now takes only twice as long as the M42A. @@ -382,7 +382,7 @@ damage_mult = BASE_BULLET_DAMAGE_MULT recoil = RECOIL_AMOUNT_TIER_1 -/obj/item/weapon/gun/rifle/sniper/XM42B/set_bullet_traits() +/obj/item/weapon/gun/rifle/sniper/XM43E1/set_bullet_traits() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff), BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating), @@ -415,7 +415,7 @@ force = 17 zoomdevicename = "scope" flags_gun_features = GUN_AUTO_EJECTOR|GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER - starting_attachment_types = list(/obj/item/attachable/sniperbarrel) + starting_attachment_types = list(/obj/item/attachable/pmc_sniperbarrel) sniper_beam_type = /obj/effect/ebeam/laser/intense sniper_beam_icon = "laser_beam_intense" sniper_lockon_icon = "sniper_lockon_intense" @@ -450,10 +450,11 @@ . = ..() if(.) var/mob/living/carbon/human/PMC_sniper = user - if(PMC_sniper.lying == 0 && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc) && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/veteran)) + if(PMC_sniper.body_position == STANDING_UP && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc) && !istype(PMC_sniper.wear_suit,/obj/item/clothing/suit/storage/marine/veteran)) PMC_sniper.visible_message(SPAN_WARNING("[PMC_sniper] is blown backwards from the recoil of the [src.name]!"),SPAN_HIGHDANGER("You are knocked prone by the blowback!")) step(PMC_sniper,turn(PMC_sniper.dir,180)) - PMC_sniper.apply_effect(5, WEAKEN) + PMC_sniper.KnockDown(5) + PMC_sniper.Stun(5) //Type 88 //Based on the actual Dragunov DMR rifle. diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm index 24e482549dac..6c103aaa9677 100644 --- a/code/modules/projectiles/magazines/shotguns.dm +++ b/code/modules/projectiles/magazines/shotguns.dm @@ -8,11 +8,11 @@ you're looking back on the different shotgun projectiles available. In short of one type of shotgun ammo, but I think it helps in referencing it. ~N */ -var/list/shotgun_boxes_12g = list( +GLOBAL_LIST_INIT(shotgun_boxes_12g, list( /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/flechette, /obj/item/ammo_magazine/shotgun/slugs - ) + )) /obj/item/ammo_magazine/shotgun name = "box of shotgun slugs" @@ -46,6 +46,14 @@ var/list/shotgun_boxes_12g = list( default_ammo = /datum/ammo/bullet/shotgun/incendiary handful_state = "incendiary_slug" +/obj/item/ammo_magazine/shotgun/incendiarybuck + name = "box of incendiary buckshots" + desc = "A box filled with self-detonating buckshot incendiary shotgun rounds. 12 Gauge." + icon_state = "incendiarybuck" + item_state = "incendiarybuck" + default_ammo = /datum/ammo/bullet/shotgun/buckshot/incendiary + handful_state = "incen_buckshot" + /obj/item/ammo_magazine/shotgun/buckshot name = "box of buckshot shells" desc = "A box filled with buckshot spread shotgun shells. 12 Gauge." @@ -151,21 +159,21 @@ also doesn't really matter. You can only reload them with handfuls. Handfuls of shotgun rounds. For spawning directly on mobs in roundstart, ERTs, etc */ -var/list/shotgun_handfuls_8g = list( +GLOBAL_LIST_INIT(shotgun_handfuls_8g, list( /obj/item/ammo_magazine/handful/shotgun/heavy/slug, /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot, /obj/item/ammo_magazine/handful/shotgun/heavy/flechette, /obj/item/ammo_magazine/handful/shotgun/heavy/dragonsbreath - ) + )) -var/list/shotgun_handfuls_12g = list( +GLOBAL_LIST_INIT(shotgun_handfuls_12g, list( /obj/item/ammo_magazine/handful/shotgun/slug, /obj/item/ammo_magazine/handful/shotgun/buckshot, /obj/item/ammo_magazine/handful/shotgun/flechette, /obj/item/ammo_magazine/handful/shotgun/incendiary, /obj/item/ammo_magazine/handful/shotgun/buckshot/incendiary, /obj/item/ammo_magazine/handful/shotgun/beanbag - ) + )) /obj/item/ammo_magazine/handful/shotgun name = "handful of shotgun slugs (12g)" diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm index 821273247f66..761e77305254 100644 --- a/code/modules/projectiles/magazines/specialist.dm +++ b/code/modules/projectiles/magazines/specialist.dm @@ -27,14 +27,14 @@ default_ammo = /datum/ammo/bullet/sniper/flak ammo_band_color = AMMO_BAND_COLOR_IMPACT -//M42B Magazine +//XM43E1 Magazine /obj/item/ammo_magazine/sniper/anti_materiel - name = "\improper XM42B marksman magazine (10x99mm)" + name = "\improper XM43E1 marksman magazine (10x99mm)" desc = "A magazine of caseless 10x99mm anti-materiel rounds." max_rounds = 8 caliber = "10x99mm" default_ammo = /datum/ammo/bullet/sniper/anti_materiel - gun_type = /obj/item/weapon/gun/rifle/sniper/XM42B + gun_type = /obj/item/weapon/gun/rifle/sniper/XM43E1 //M42C magazine diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b01203d0f4d8..ee9caa61d7a7 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,8 +13,9 @@ anchored = TRUE //You will not have me, space wind! flags_atom = NOINTERACT //No real need for this, but whatever. Maybe this flag will do something useful in the future. mouse_opacity = MOUSE_OPACITY_TRANSPARENT - invisibility = 100 // We want this thing to be invisible when it drops on a turf because it will be on the user's turf. We then want to make it visible as it travels. + alpha = 0 // We want this thing to be transparent when it drops on a turf because it will be on the user's turf. We then want to make it opaque as it travels. layer = FLY_LAYER + animate_movement = NO_STEPS //disables gliding because it fights against what animate() is doing var/datum/ammo/ammo //The ammo data which holds most of the actual info. @@ -48,6 +49,13 @@ var/vis_travelled = 0 /// Origin point for tracing and visual updates var/turf/vis_source + var/vis_source_pixel_x = 0 + var/vis_source_pixel_y = 0 + + /// Starting point of projectile before each flight. + var/turf/process_start_turf + var/process_start_pixel_x = 0 + var/process_start_pixel_y = 0 var/damage = 0 var/accuracy = 85 //Base projectile accuracy. Can maybe be later taken from the mob if desired. @@ -88,7 +96,10 @@ starting = null permutated = null path = null + vis_source = null + process_start_turf = null weapon_cause_data = null + bullet_traits = null firer = null QDEL_NULL(bound_beam) SSprojectiles.stop_projectile(src) @@ -193,10 +204,10 @@ setDir(get_dir(loc, target_turf)) var/ammo_flags = ammo.flags_ammo_behavior | projectile_override_flags - if(round_statistics && ammo_flags & AMMO_BALLISTIC) - round_statistics.total_projectiles_fired++ + if(GLOB.round_statistics && ammo_flags & AMMO_BALLISTIC) + GLOB.round_statistics.total_projectiles_fired++ if(ammo.bonus_projectiles_amount) - round_statistics.total_projectiles_fired += ammo.bonus_projectiles_amount + GLOB.round_statistics.total_projectiles_fired += ammo.bonus_projectiles_amount if(firer && ismob(firer) && weapon_cause_data) var/mob/M = firer M.track_shot(weapon_cause_data.cause_name) @@ -229,32 +240,24 @@ p_x = Clamp(p_x, -16, 16) p_y = Clamp(p_y, -16, 16) - if(source_turf != vis_source) + if(process_start_turf != vis_source) vis_travelled = 0 - vis_source = source_turf + vis_source = process_start_turf || source_turf + vis_source_pixel_x = process_start_pixel_x + vis_source_pixel_y = process_start_pixel_y - angle = 0 // Stolen from Get_Angle() basically var/dx = p_x + aim_turf.x * 32 - source_turf.x * 32 // todo account for firer offsets var/dy = p_y + aim_turf.y * 32 - source_turf.y * 32 - if(!dy) - if(dx >= 0) - angle = 90 - else - angle = 280 - else - angle = arctan(dx/dy) - if(dy < 0) - angle += 180 - else if(dx < 0) - angle += 360 - - var/matrix/rotate = matrix() //Change the bullet angle. - rotate.Turn(angle) - apply_transform(rotate) + angle = delta_to_angle(dx, dy) /obj/projectile/process(delta_time) . = PROC_RETURN_SLEEP + var/process_start_delta_time = delta_time //easier to take it unaltered than to recalculate it later + process_start_turf = get_turf(src) //obj-level vars so update_angle() can use it without passing it through a ton of procs + process_start_pixel_x = pixel_x + process_start_pixel_y = pixel_y + // Keep going as long as we got speed and time while(speed > 0 && (speed * ((delta_time + time_carry)/10) >= 1)) time_carry -= 1/speed*10 @@ -266,8 +269,72 @@ return PROCESS_KILL time_carry += delta_time + + animate_flight(process_start_turf, process_start_pixel_x, process_start_pixel_y, process_start_delta_time) + return FALSE +//#define LERP(a, b, t) (a + (b - a) * CLAMP01(t)) +#define LERP_UNCLAMPED(a, b, t) (a + (b - a) * t) + +/// Animates the projectile across the process'ed flight. +/obj/projectile/proc/animate_flight(turf/start_turf, start_pixel_x, start_pixel_y, delta_time) + //Get pixelspace coordinates of start and end of visual path + + var/pixel_x_source = vis_source.x * world.icon_size + vis_source_pixel_x + var/pixel_y_source = vis_source.y * world.icon_size + vis_source_pixel_y + + var/turf/vis_target = path[path.len] + var/pixel_x_target = vis_target.x * world.icon_size + p_x + var/pixel_y_target = vis_target.y * world.icon_size + p_y + + //Change the bullet angle to its visual path + + var/vis_angle = delta_to_angle(pixel_x_target - pixel_x_source, pixel_y_target - pixel_y_source) + var/matrix/rotate = matrix() + rotate.Turn(vis_angle) + apply_transform(rotate) + + //Determine apparent position along visual path, then lerp between start and end positions + + var/vis_length = vis_travelled + path.len + var/vis_current = vis_travelled + speed * (time_carry * 0.1) //speed * (time_carry * 0.1) for remainder time movement, visually "catching up" to where it should be + var/vis_interpolant = vis_current / vis_length + + var/pixel_x_lerped = LERP_UNCLAMPED(pixel_x_source, pixel_x_target, vis_interpolant) + var/pixel_y_lerped = LERP_UNCLAMPED(pixel_y_source, pixel_y_target, vis_interpolant) + + //Convert pixelspace to pixel offset relative to current loc + + var/turf/current_turf = get_turf(src) + var/pixel_x_rel_new = pixel_x_lerped - current_turf.x * world.icon_size + var/pixel_y_rel_new = pixel_y_lerped - current_turf.y * world.icon_size + + //Set pixel offset as from current loc to old position, so it appears to start in the old position + + pixel_x = (start_turf.x - current_turf.x) * world.icon_size + start_pixel_x + pixel_y = (start_turf.y - current_turf.y) * world.icon_size + start_pixel_y + + //Determine apparent distance travelled, then lerp for projectile fade-in + + var/dist_current = distance_travelled + speed * (time_carry * 0.1) //speed * (time_carry * 0.1) for remainder time fade-in + var/alpha_interpolant = dist_current - 1 //-1 so it transitions from transparent to opaque between dist 1-2 + var/alpha_new = LERP_UNCLAMPED(0, 255, alpha_interpolant) + + //Animate the visuals from starting position to new position + + if(projectile_flags & PROJECTILE_SHRAPNEL) //there can be a LOT of shrapnel especially from a cluster OB, not important enough for the expense of an animate() + alpha = alpha_new + pixel_x = pixel_x_rel_new + pixel_y = pixel_y_rel_new + return + + var/anim_time = delta_time * 0.1 + animate(src, pixel_x = pixel_x_rel_new, pixel_y = pixel_y_rel_new, alpha = alpha_new, time = anim_time, flags = ANIMATION_END_NOW) + +//#undef LERP +#undef LERP_UNCLAMPED + /// Flies the projectile forward one single turf /obj/projectile/proc/fly() SHOULD_NOT_SLEEP(TRUE) @@ -294,8 +361,6 @@ forceMove(next_turf) distance_travelled++ vis_travelled++ - if(distance_travelled > 1) - invisibility = 0 // Check we're still flying - in the highly unlikely but apparently possible case // we hit something through forceMove callbacks that we didn't pick up in scan_a_turf @@ -320,20 +385,6 @@ p_y *= 2 retarget(aim_turf, keep_angle = TRUE) - // Nowe we update visual offset by tracing the bullet predicted location against real one - // - // Travelled real distance so far - var/dist = vis_travelled * 32 + speed * (time_carry*10) - // Compute where we should be - var/vis_x = vis_source.x * 32 + sin(angle) * dist - var/vis_y = vis_source.y * 32 + cos(angle) * dist - // Get the difference with where we actually are - var/dx = vis_x - loc.x * 32 - var/dy = vis_y - loc.y * 32 - // Clamp and set this as pixel offsets - pixel_x = Clamp(dx, -16, 16) - pixel_y = Clamp(dy, -16, 16) - /obj/projectile/proc/retarget(atom/new_target, keep_angle = FALSE) var/turf/current_turf = get_turf(src) path = getline2(current_turf, new_target) @@ -455,12 +506,31 @@ if(hit_chance) // Calculated from combination of both ammo accuracy and gun accuracy var/hit_roll = rand(1,100) + var/direct_hit = FALSE + + // Wasn't the clicked target + if(original != L) + def_zone = rand_zone() + + // Xenos get a RNG limb miss chance regardless of being clicked target or not, see below + else if(isxeno(L) && hit_roll > hit_chance - 20) + def_zone = rand_zone() - if(original != L || hit_roll > hit_chance-base_miss_chance[def_zone]-20) // If hit roll is high or the firer wasn't aiming at this mob, we still hit but now we might hit the wrong body part + // Other targets do the same roll with penalty - a near hit will hit but redirected to another limb + else if(!isxeno(L) && hit_roll > hit_chance - 20 - GLOB.base_miss_chance[def_zone]) def_zone = rand_zone() + else + direct_hit = TRUE SEND_SIGNAL(firer, COMSIG_BULLET_DIRECT_HIT, L) - hit_chance -= base_miss_chance[def_zone] // Reduce accuracy based on spot. + + // At present, Xenos have no inherent effects or localized damage stemming from limb targeting + // Therefore we exempt the shooter from direct hit accuracy penalties as well, + // simply to avoid them from resetting target to chest every time they want to shoot a xeno + + if(!direct_hit || !isxeno(L)) // For normal people or direct hits we apply the limb accuracy penalty + hit_chance -= GLOB.base_miss_chance[def_zone] + // else for direct hits on xenos, we skip it, pretending it's a chest shot with zero penalty #if DEBUG_HIT_CHANCE to_world(SPAN_DEBUG("([L]) Hit chance: [hit_chance] | Roll: [hit_roll]")) @@ -498,7 +568,7 @@ X.behavior_delegate.on_hitby_projectile(ammo) . = TRUE - else if(!L.lying) + else if(L.body_position != LYING_DOWN) animatation_displace_reset(L) if(ammo.sound_miss) playsound_client(L.client, ammo.sound_miss, get_turf(L), 75, TRUE) L.visible_message(SPAN_AVOIDHARM("[src] misses [L]!"), @@ -747,8 +817,8 @@ //mobs use get_projectile_hit_chance instead of get_projectile_hit_boolean /mob/living/proc/get_projectile_hit_chance(obj/projectile/P) - if(lying && src != P.original) - return FALSE + if((body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_NESTED)) && src != P.original) + return FALSE // Snowflake check for xeno nests, because we want bullets to fly through even though they're standing in it var/ammo_flags = P.ammo.flags_ammo_behavior | P.projectile_override_flags if(ammo_flags & AMMO_XENO) if((status_flags & XENO_HOST) && HAS_TRAIT(src, TRAIT_NESTED)) @@ -756,7 +826,7 @@ . = P.get_effective_accuracy() - if(lying && stat) + if(body_position == LYING_DOWN && stat) . += 15 //Bonus hit against unconscious people. if(isliving(P.firer)) @@ -1157,16 +1227,17 @@ return if(COOLDOWN_FINISHED(src, shot_cooldown)) visible_message(SPAN_DANGER("[src] is hit by the [P.name] in the [parse_zone(P.def_zone)]!"), \ - SPAN_HIGHDANGER("You are hit by the [P.name] in the [parse_zone(P.def_zone)]!"), null, 4, CHAT_TYPE_TAKING_HIT) + SPAN_HIGHDANGER("[isxeno(src) ? "We" : "You"] are hit by the [P.name] in the [parse_zone(P.def_zone)]!"), null, 4, CHAT_TYPE_TAKING_HIT) COOLDOWN_START(src, shot_cooldown, 1 SECONDS) + last_damage_data = P.weapon_cause_data if(P.firer && ismob(P.firer)) var/mob/firingMob = P.firer var/area/A = get_area(src) if(ishuman(firingMob) && ishuman(src) && faction == firingMob.faction && !A?.statistic_exempt) //One human shot another, be worried about it but do everything basically the same //special_role should be null or an empty string if done correctly if(!istype(P.ammo, /datum/ammo/energy/taser)) - round_statistics.total_friendly_fire_instances++ + GLOB.round_statistics.total_friendly_fire_instances++ var/ff_msg = "[key_name(firingMob)] shot [key_name(src)] with \a [P.name] in [get_area(firingMob)] [ADMIN_JMP(firingMob)] [ADMIN_PM(firingMob)]" var/ff_living = TRUE if(src.stat == DEAD) @@ -1184,7 +1255,7 @@ return attack_log += "\[[time_stamp()]\] SOMETHING?? shot [key_name(src)] with a [P]" - msg_admin_attack("SOMETHING?? shot [key_name(src)] with a [P] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) + msg_admin_attack("SOMETHING?? shot [key_name(src)] with \a [P] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) //Abby -- Just check if they're 1 tile horizontal or vertical, no diagonals /proc/get_adj_simple(atom/Loc1,atom/Loc2) diff --git a/code/modules/reagents/Chemistry-Generator.dm b/code/modules/reagents/Chemistry-Generator.dm index bb8f69b714b2..b2e6402d4b06 100644 --- a/code/modules/reagents/Chemistry-Generator.dm +++ b/code/modules/reagents/Chemistry-Generator.dm @@ -75,56 +75,56 @@ if(my_chemid) //Do we want a specific chem? chem_id = my_chemid else if(class) //do we want a specific class? - chem_id = pick(chemical_gen_classes_list["C[class]"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C[class]"]) else var/roll = rand(0,100) switch(tier) if(0) - chem_id = pick(chemical_gen_classes_list["C"])//If tier is 0, we can add any classed chemical + chem_id = pick(GLOB.chemical_gen_classes_list["C"])//If tier is 0, we can add any classed chemical if(1) if(roll<=35) - chem_id = pick(chemical_gen_classes_list["C1"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C1"]) else if(roll<=65) - chem_id = pick(chemical_gen_classes_list["C2"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C2"]) else if(roll<=85) - chem_id = pick(chemical_gen_classes_list["C3"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C3"]) else - chem_id = pick(chemical_gen_classes_list["C4"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C4"]) if(2) if(roll<=30) - chem_id = pick(chemical_gen_classes_list["C1"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C1"]) else if(roll<=55) - chem_id = pick(chemical_gen_classes_list["C2"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C2"]) else if(roll<=70) - chem_id = pick(chemical_gen_classes_list["C3"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C3"]) else - chem_id = pick(chemical_gen_classes_list["C4"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C4"]) if(3) if(roll<=10) - chem_id = pick(chemical_gen_classes_list["C1"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C1"]) else if(roll<=30) - chem_id = pick(chemical_gen_classes_list["C2"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C2"]) else if(roll<=50) - chem_id = pick(chemical_gen_classes_list["C3"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C3"]) else if(roll<=70) - chem_id = pick(chemical_gen_classes_list["C4"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C4"]) else - chem_id = pick(chemical_gen_classes_list["C5"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C5"]) else if(!required_reagents || is_catalyst)//first component is more likely to be special in chems tier 4 or higher, catalysts are always special in tier 4 or higher if (prob(50)) - chem_id = pick(chemical_gen_classes_list["C5"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C5"]) else - chem_id = pick(chemical_gen_classes_list["C4"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C4"]) else if(roll<=15) - chem_id = pick(chemical_gen_classes_list["C2"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C2"]) else if(roll<=40) - chem_id = pick(chemical_gen_classes_list["C3"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C3"]) else if(roll<=65) - chem_id = pick(chemical_gen_classes_list["C4"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C4"]) else - chem_id = pick(chemical_gen_classes_list["C5"]) + chem_id = pick(GLOB.chemical_gen_classes_list["C5"]) //if we are already using this reagent, try again if(required_reagents && required_reagents.Find(chem_id)) @@ -169,7 +169,7 @@ while(!gen_name) gen_name = addtext(pick(prefix),pick(wordroot),pick(suffix)) //Make sure this name is not already used - for(var/datum/reagent/R in chemical_reagents_list) + for(var/datum/reagent/R in GLOB.chemical_reagents_list) if(R.name == gen_name)//if we are already using this name, try again gen_name = "" //set name @@ -249,58 +249,58 @@ var/property var/roll = rand(1,100) if(make_rare) - property = pick(chemical_properties_list["rare"]) + property = pick(GLOB.chemical_properties_list["rare"]) //Pick the property by value and roll else if(value_offset > 0) //Balance the value of our chemical - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) else if(value_offset < 0) if(roll <= gen_tier*10) - property = pick(chemical_properties_list["negative"]) + property = pick(GLOB.chemical_properties_list["negative"]) else - property = pick(chemical_properties_list["neutral"]) + property = pick(GLOB.chemical_properties_list["neutral"]) else switch(gen_tier) if(1) if(roll<=20) - property = pick(chemical_properties_list["negative"]) + property = pick(GLOB.chemical_properties_list["negative"]) else if (roll<=50) - property = pick(chemical_properties_list["neutral"]) + property = pick(GLOB.chemical_properties_list["neutral"]) else - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) if(2) if(roll<=25) - property = pick(chemical_properties_list["negative"]) + property = pick(GLOB.chemical_properties_list["negative"]) else if (roll<=45) - property = pick(chemical_properties_list["neutral"]) + property = pick(GLOB.chemical_properties_list["neutral"]) else - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) if(3) if(roll<=15) - property = pick(chemical_properties_list["negative"]) + property = pick(GLOB.chemical_properties_list["negative"]) else if (roll<=40) - property = pick(chemical_properties_list["neutral"]) + property = pick(GLOB.chemical_properties_list["neutral"]) else - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) else if(roll<=15) - property = pick(chemical_properties_list["negative"]) + property = pick(GLOB.chemical_properties_list["negative"]) else if (roll<=40) - property = pick(chemical_properties_list["neutral"]) + property = pick(GLOB.chemical_properties_list["neutral"]) else - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) if(track_added_properties) //Generated effects are more unique for lower-tier chemicals, but not higher-tier ones var/property_checks = 0 while(!check_generated_properties(property) && property_checks < 4) property_checks++ - if(LAZYISIN(chemical_properties_list["negative"], property)) - property = pick(chemical_properties_list["negative"]) - else if(LAZYISIN(chemical_properties_list["neutral"], property)) - property = pick(chemical_properties_list["neutral"]) + if(LAZYISIN(GLOB.chemical_properties_list["negative"], property)) + property = pick(GLOB.chemical_properties_list["negative"]) + else if(LAZYISIN(GLOB.chemical_properties_list["neutral"], property)) + property = pick(GLOB.chemical_properties_list["neutral"]) else - property = pick(chemical_properties_list["positive"]) + property = pick(GLOB.chemical_properties_list["positive"]) - var/datum/chem_property/P = chemical_properties_list[property] + var/datum/chem_property/P = GLOB.chemical_properties_list[property] //Calculate what our chemical value is with our level var/new_value @@ -389,7 +389,7 @@ return FALSE break //Insert the property - var/datum/chem_property/P = chemical_properties_list[property] + var/datum/chem_property/P = GLOB.chemical_properties_list[property] P = new P.type() P.level = level P.holder = src @@ -397,7 +397,7 @@ //Special case: If it's a catalyst property, add it nonetheless. if(initial_property && initial_property != property) - P = chemical_properties_list[initial_property] + P = GLOB.chemical_properties_list[initial_property] if(P.category & PROPERTY_TYPE_CATALYST) P = new P.type() P.level = level @@ -425,22 +425,22 @@ C.gen_tier = gen_tier if(!C.generate_recipe(complexity)) return //Generating a recipe failed, so return null - chemical_reactions_list[C.id] = C + GLOB.chemical_reactions_list[C.id] = C C.add_to_filtered_list() return C //Returns false if a property has been generated in a previous reagent and all properties of that category haven't been generated yet. /datum/reagent/proc/check_generated_properties(datum/chem_property/P) - if(LAZYISIN(chemical_properties_list["positive"], P)) - if(LAZYISIN(GLOB.generated_properties["positive"], P) && LAZYLEN(GLOB.generated_properties["positive"]) < LAZYLEN(chemical_properties_list["positive"])) + if(LAZYISIN(GLOB.chemical_properties_list["positive"], P)) + if(LAZYISIN(GLOB.generated_properties["positive"], P) && LAZYLEN(GLOB.generated_properties["positive"]) < LAZYLEN(GLOB.chemical_properties_list["positive"])) return FALSE GLOB.generated_properties["positive"] += P - else if(LAZYISIN(chemical_properties_list["negative"], P)) - if(LAZYISIN(GLOB.generated_properties["negative"], P) && LAZYLEN(GLOB.generated_properties["negative"]) < LAZYLEN(chemical_properties_list["negative"])) + else if(LAZYISIN(GLOB.chemical_properties_list["negative"], P)) + if(LAZYISIN(GLOB.generated_properties["negative"], P) && LAZYLEN(GLOB.generated_properties["negative"]) < LAZYLEN(GLOB.chemical_properties_list["negative"])) return FALSE GLOB.generated_properties["negative"] += P - else if(LAZYISIN(chemical_properties_list["neutral"], P)) - if(LAZYISIN(GLOB.generated_properties["neutral"], P) && LAZYLEN(GLOB.generated_properties["neutral"]) < LAZYLEN(chemical_properties_list["neutral"])) + else if(LAZYISIN(GLOB.chemical_properties_list["neutral"], P)) + if(LAZYISIN(GLOB.generated_properties["neutral"], P) && LAZYLEN(GLOB.generated_properties["neutral"]) < LAZYLEN(GLOB.chemical_properties_list["neutral"])) return FALSE GLOB.generated_properties["neutral"] += P return TRUE diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 643130559e94..dcb949424bdf 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -25,7 +25,7 @@ maximum_volume = maximum #ifdef UNIT_TESTS - if(!chemical_reagents_list || !chemical_reactions_filtered_list || !chemical_properties_list) + if(!GLOB.chemical_reagents_list || !GLOB.chemical_reactions_filtered_list || !GLOB.chemical_properties_list) CRASH("Chemistry reagents are not set up!") #endif @@ -240,7 +240,7 @@ O.volume += R.volume qdel(R) break - for(var/reaction in chemical_reactions_filtered_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id + for(var/reaction in GLOB.chemical_reactions_filtered_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id if(!reaction) continue @@ -417,10 +417,10 @@ handle_reactions() return FALSE - var/datum/reagent/D = chemical_reagents_list[reagent] + var/datum/reagent/D = GLOB.chemical_reagents_list[reagent] if(D) if(!istype(D, /datum/reagent)) - CRASH("Not REAGENT - [reagent] - chemical_reagents_list[reagent]") + CRASH("Not REAGENT - [reagent] - GLOB.chemical_reagents_list[reagent]") var/datum/reagent/R = new D.type() if(D.type == /datum/reagent/generated) @@ -713,5 +713,6 @@ // Convenience proc to create a reagents holder for an atom // Max vol is maximum volume of holder /atom/proc/create_reagents(max_vol) + QDEL_NULL(reagents) reagents = new/datum/reagents(max_vol) reagents.my_atom = src diff --git a/code/modules/reagents/Chemistry-Reactions.dm b/code/modules/reagents/Chemistry-Reactions.dm index 1d9c03f9e923..7a8f0b21158a 100644 --- a/code/modules/reagents/Chemistry-Reactions.dm +++ b/code/modules/reagents/Chemistry-Reactions.dm @@ -22,15 +22,15 @@ /datum/chemical_reaction/proc/add_to_filtered_list(reset = FALSE) if(reset) - for(var/R in chemical_reactions_filtered_list) - LAZYREMOVE(chemical_reactions_filtered_list[R], src) + for(var/R in GLOB.chemical_reactions_filtered_list) + LAZYREMOVE(GLOB.chemical_reactions_filtered_list[R], src) for(var/R in required_reagents) - LAZYADD(chemical_reactions_filtered_list[R], src) + LAZYADD(GLOB.chemical_reactions_filtered_list[R], src) /datum/chemical_reaction/proc/check_duplicate() for(var/R in required_reagents) - if(chemical_reactions_filtered_list[R]) - for(var/reaction in chemical_reactions_filtered_list[R])//We filter the chemical_reactions_filtered_list so we don't have to search through as much + if(GLOB.chemical_reactions_filtered_list[R]) + for(var/reaction in GLOB.chemical_reactions_filtered_list[R])//We filter the GLOB.chemical_reactions_filtered_list so we don't have to search through as much var/datum/chemical_reaction/C = reaction var/matches = 0 for(var/B in required_reagents) @@ -43,7 +43,7 @@ // To prevent such a situation, if ALL reagent inside a reaction are medical chemicals, the recipe is considered flawed. /datum/chemical_reaction/proc/check_reaction_uses_all_default_medical() for(var/R in required_reagents) - var/datum/reagent/M = chemical_reagents_list[R] + var/datum/reagent/M = GLOB.chemical_reagents_list[R] if(!(initial(M.flags) & REAGENT_TYPE_MEDICAL)) return FALSE return TRUE diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 7f659c54c40d..4e3f3a91449d 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -152,6 +152,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) handle_processing(M, mods, delta_time) holder.remove_reagent(id, custom_metabolism * delta_time) + if(!holder) + return FALSE + return TRUE //Pre-processing @@ -267,37 +270,37 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) if(chemclass && !(flags & REAGENT_NO_GENERATION)) switch(chemclass) if(CHEM_CLASS_BASIC) - chemical_gen_classes_list["C1"] += id + GLOB.chemical_gen_classes_list["C1"] += id if(CHEM_CLASS_COMMON) - chemical_gen_classes_list["C2"] += id + GLOB.chemical_gen_classes_list["C2"] += id if(CHEM_CLASS_UNCOMMON) - chemical_gen_classes_list["C3"] += id + GLOB.chemical_gen_classes_list["C3"] += id if(CHEM_CLASS_RARE) - chemical_gen_classes_list["C4"] += id + GLOB.chemical_gen_classes_list["C4"] += id if(CHEM_CLASS_SPECIAL) - chemical_gen_classes_list["C5"] += id - chemical_data.add_chemical_objective(src) + GLOB.chemical_gen_classes_list["C5"] += id + GLOB.chemical_data.add_chemical_objective(src) if(CHEM_CLASS_ULTRA) - chemical_gen_classes_list["C6"] += id - chemical_data.add_chemical_objective(src) - chemical_gen_classes_list["C"] += id + GLOB.chemical_gen_classes_list["C6"] += id + GLOB.chemical_data.add_chemical_objective(src) + GLOB.chemical_gen_classes_list["C"] += id if(gen_tier) switch(gen_tier) if(1) - chemical_gen_classes_list["T1"] += id + GLOB.chemical_gen_classes_list["T1"] += id if(2) - chemical_gen_classes_list["T2"] += id + GLOB.chemical_gen_classes_list["T2"] += id if(3) - chemical_gen_classes_list["T3"] += id + GLOB.chemical_gen_classes_list["T3"] += id if(4) - chemical_gen_classes_list["T4"] += id + GLOB.chemical_gen_classes_list["T4"] += id if(5) - chemical_gen_classes_list["T5"] += id + GLOB.chemical_gen_classes_list["T5"] += id /datum/reagent/proc/properties_to_datums() #ifdef UNIT_TESTS - if(!chemical_properties_list) + if(!GLOB.chemical_properties_list) CRASH("Chemistry reagents are not set up!") #endif @@ -306,7 +309,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) if(istype(prop, /datum/chem_property)) new_properties += prop continue - var/datum/chem_property/chem = chemical_properties_list[prop] + var/datum/chem_property/chem = GLOB.chemical_properties_list[prop] if(chem) chem = new chem.type() chem.level = properties[prop] diff --git a/code/modules/reagents/chemical_research/Chemical-Research.dm b/code/modules/reagents/chemical_research/Chemical-Research.dm index 0b1152154dc3..e66cb474df50 100644 --- a/code/modules/reagents/chemical_research/Chemical-Research.dm +++ b/code/modules/reagents/chemical_research/Chemical-Research.dm @@ -1,4 +1,4 @@ -var/global/datum/chemical_data/chemical_data = new /datum/chemical_data +GLOBAL_DATUM_INIT(chemical_data, /datum/chemical_data, new) /datum/chemical_data var/rsc_credits = 0 @@ -38,7 +38,7 @@ var/global/datum/chemical_data/chemical_data = new /datum/chemical_data /datum/chemical_data/proc/get_report(doc_type, doc_title) var/obj/item/paper/research_report/report = null - for(var/document_data in chemical_data.research_documents[doc_type]) + for(var/document_data in GLOB.chemical_data.research_documents[doc_type]) if(document_data["document_title"] == doc_title) report = document_data["document"] break @@ -92,7 +92,7 @@ var/global/datum/chemical_data/chemical_data = new /datum/chemical_data if(LAZYLEN(property_names)) has_new_properties = TRUE for(var/name in property_names) - var/datum/chem_property/ref = chemical_properties_list[name] + var/datum/chem_property/ref = GLOB.chemical_properties_list[name] var/datum/chem_property/P = new ref.type P.level = 0 research_property_data += P @@ -146,7 +146,7 @@ var/global/datum/chemical_data/chemical_data = new /datum/chemical_data chemical_not_completed_objective_list[chem.id] = chem.objective_value /datum/chemical_data/proc/get_tgui_data(chemid) - var/datum/reagent/chem = chemical_reagents_list[chemid] + var/datum/reagent/chem = GLOB.chemical_reagents_list[chemid] if(!chem) error("Invalid chemid [chemid]") return diff --git a/code/modules/reagents/chemical_research/generated_reagents.dm b/code/modules/reagents/chemical_research/generated_reagents.dm index 6eaa664b6d7e..a21d74e26f8a 100644 --- a/code/modules/reagents/chemical_research/generated_reagents.dm +++ b/code/modules/reagents/chemical_research/generated_reagents.dm @@ -16,21 +16,21 @@ //Generate stats if(!id) //So we can initiate a new datum without generating it return - if(!chemical_reagents_list[id]) + if(!GLOB.chemical_reagents_list[id]) generate_name() generate_stats() - chemical_reagents_list[id] = src - make_alike(chemical_reagents_list[id]) + GLOB.chemical_reagents_list[id] = src + make_alike(GLOB.chemical_reagents_list[id]) recalculate_variables() /datum/chemical_reaction/generated/New() //Generate recipe if(!id) //So we can initiate a new datum without generating it return - if(!chemical_reactions_list[id]) + if(!GLOB.chemical_reactions_list[id]) generate_recipe() - chemical_reactions_list[id] = src - make_alike(chemical_reactions_list[id]) + GLOB.chemical_reactions_list[id] = src + make_alike(GLOB.chemical_reactions_list[id]) /////////Tier 1 /datum/chemical_reaction/generated/alpha diff --git a/code/modules/reagents/chemistry_machinery/acid_harness.dm b/code/modules/reagents/chemistry_machinery/acid_harness.dm index ae54474c3aed..b349b3224d1a 100644 --- a/code/modules/reagents/chemistry_machinery/acid_harness.dm +++ b/code/modules/reagents/chemistry_machinery/acid_harness.dm @@ -443,10 +443,10 @@ else if(inject_conditions & ACID_SCAN_CONDITION_DEFIB && vitals_scan < ACID_VITALS_DEAD && last_vitals_scan & ACID_SCAN_CONDITION_DEATH) condition_scan |= ACID_SCAN_CONDITION_DEFIB //If we were previously dead and are now alive, we assume we got defibbed - if(inject_conditions & ACID_SCAN_CONDITION_CONCUSSION && (user.knocked_down || user.knocked_out)) + if(inject_conditions & ACID_SCAN_CONDITION_CONCUSSION && (HAS_TRAIT(src, TRAIT_KNOCKEDOUT) || HAS_TRAIT(src, TRAIT_FLOORED))) condition_scan |= ACID_SCAN_CONDITION_CONCUSSION - if(inject_conditions & ACID_SCAN_CONDITION_INTOXICATION && (user.dazed || user.slowed || user.confused || user.drowsyness || user.dizziness || user.druggy)) + if(inject_conditions & ACID_SCAN_CONDITION_INTOXICATION && (HAS_TRAIT(src, TRAIT_DAZED) || user.slowed || user.confused || user.drowsyness || user.dizziness || user.druggy)) condition_scan |= ACID_SCAN_CONDITION_INTOXICATION //Compare diff --git a/code/modules/reagents/chemistry_machinery/autodispenser.dm b/code/modules/reagents/chemistry_machinery/autodispenser.dm index 3486e97524b8..eed96564da71 100644 --- a/code/modules/reagents/chemistry_machinery/autodispenser.dm +++ b/code/modules/reagents/chemistry_machinery/autodispenser.dm @@ -154,8 +154,7 @@ data["multiplier"] = multiplier data["cycle_limit"] = cycle_limit data["automode"] = automode - data["linked_storage"] = linked_storage - data["networked_storage"] = linked_storage.is_in_network() + data["networked_storage"] = linked_storage?.is_in_network() data["smartlink"] = smartlink data["outputmode"] = outputmode data["buffervolume"] = reagents.total_volume @@ -347,8 +346,7 @@ C.reagents.trans_to(container, amount) //We don't care about keeping empty bottles stored if(C.reagents.total_volume <= 0 && istypestrict(C,/obj/item/reagent_container/glass/bottle)) - linked_storage.item_quants[C.name]-- - qdel(C) //Might want to connect it to a disposal system later instead + linked_storage.delete_contents(C) if(stage_missing) amount = stage_missing diff --git a/code/modules/reagents/chemistry_machinery/centrifuge.dm b/code/modules/reagents/chemistry_machinery/centrifuge.dm index b21c52112d0f..6143313377a0 100644 --- a/code/modules/reagents/chemistry_machinery/centrifuge.dm +++ b/code/modules/reagents/chemistry_machinery/centrifuge.dm @@ -89,7 +89,7 @@ tgui_interact(user) return if(output_container) - to_chat(user, SPAN_NOTICE("You remove the [output_container] from the [src].")) + to_chat(user, SPAN_NOTICE("You remove [output_container] from the [src].")) user.put_in_active_hand(output_container) output_container = null if(input_container) @@ -97,7 +97,7 @@ else icon_state = "centrifuge_empty_open" else if(input_container) - to_chat(user, SPAN_NOTICE("You remove the [input_container] from the [src].")) + to_chat(user, SPAN_NOTICE("You remove [input_container] from the [src].")) user.put_in_active_hand(input_container) input_container = null icon_state = "centrifuge_empty_open" diff --git a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm index 6778bdd3c72b..85ed21543127 100644 --- a/code/modules/reagents/chemistry_machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry_machinery/chem_dispenser.dm @@ -59,7 +59,7 @@ /obj/structure/machinery/chem_dispenser/process() if(!chem_storage) - chem_storage = chemical_data.connect_chem_storage(network) + chem_storage = GLOB.chemical_data.connect_chem_storage(network) /obj/structure/machinery/chem_dispenser/Initialize() . = ..() @@ -68,7 +68,7 @@ /obj/structure/machinery/chem_dispenser/Destroy() if(!chem_storage) - chem_storage = chemical_data.disconnect_chem_storage(network) + chem_storage = GLOB.chemical_data.disconnect_chem_storage(network) return ..() /obj/structure/machinery/chem_dispenser/ex_act(severity) @@ -155,7 +155,7 @@ var/list/chemicals = list() for(var/re in dispensable_reagents) - var/datum/reagent/temp = chemical_reagents_list[re] + var/datum/reagent/temp = GLOB.chemical_reagents_list[re] if(temp) var/chemname = temp.name chemicals.Add(list(list("title" = chemname, "id" = temp.id))) diff --git a/code/modules/reagents/chemistry_machinery/chem_master.dm b/code/modules/reagents/chemistry_machinery/chem_master.dm index 9d2d1ff10a0c..1e7e3bb08384 100644 --- a/code/modules/reagents/chemistry_machinery/chem_master.dm +++ b/code/modules/reagents/chemistry_machinery/chem_master.dm @@ -237,8 +237,6 @@ while (count--) var/obj/item/reagent_container/pill/P = new/obj/item/reagent_container/pill(loc) P.pill_desc = "A custom pill." - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) P.icon_state = "pill"+pillsprite reagents.trans_to(P,amount_per_pill) if(loaded_pill_bottle) @@ -271,8 +269,6 @@ P.name = "[name] vial" reagents.trans_to(P, 30) - P.pixel_x = rand(-7, 7) //random position - P.pixel_y = rand(-7, 7) P.update_icon() if(href_list["store"]) diff --git a/code/modules/reagents/chemistry_machinery/chem_simulator.dm b/code/modules/reagents/chemistry_machinery/chem_simulator.dm index 2c8602b0dab7..8dc34f208549 100644 --- a/code/modules/reagents/chemistry_machinery/chem_simulator.dm +++ b/code/modules/reagents/chemistry_machinery/chem_simulator.dm @@ -13,7 +13,7 @@ #define SIMULATION_STAGE_BEGIN 6 /obj/structure/machinery/chem_simulator - name = "Synthesis Simulator" + name = "synthesis simulator" desc = "This computer uses advanced algorithms to perform simulations of reagent properties, for the purpose of calculating the synthesis required to make a new variant." icon = 'icons/obj/structures/machinery/science_machines_64x32.dmi' icon_state = "modifier" @@ -62,7 +62,7 @@ ..() if(inoperable()) icon_state = "modifier_off" - nanomanager.update_uis(src) // update all UIs attached to src + SSnano.nanomanager.update_uis(src) // update all UIs attached to src /obj/structure/machinery/chem_simulator/attackby(obj/item/B, mob/living/user) if(!skillcheck(user, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) @@ -87,13 +87,13 @@ to_chat(user, SPAN_WARNING("Chemical data already inserted.")) return else - to_chat(user, SPAN_WARNING("The [src] refuses the [B].")) + to_chat(user, SPAN_WARNING("[src] refuses [B].")) return user.drop_inv_item_to_loc(B, src) - to_chat(user, SPAN_NOTICE("You insert [B] into the [src].")) + to_chat(user, SPAN_NOTICE("You insert [B] into [src].")) flick("[icon_state]_reading",src) update_costs() - nanomanager.update_uis(src) // update all UIs attached to src + SSnano.nanomanager.update_uis(src) // update all UIs attached to src /obj/structure/machinery/chem_simulator/attack_hand(mob/user as mob) if(inoperable()) @@ -105,7 +105,7 @@ /obj/structure/machinery/chem_simulator/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 0) var/list/data = list( - "rsc_credits" = chemical_data.rsc_credits, + "rsc_credits" = GLOB.chemical_data.rsc_credits, "target" = target, "reference" = reference, "mode" = mode, @@ -122,7 +122,7 @@ if(simulating == SIMULATION_STAGE_FINAL) for(var/reagent_id in recipe_targets) - var/datum/reagent/R = chemical_reagents_list[reagent_id] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] var/list/id_name[0] id_name["[R.id]"] = R.name data["recipe_targets"] += id_name @@ -134,7 +134,7 @@ //List of all available properties data["property_data_list"] = list() - for(var/datum/chem_property/P in chemical_data.research_property_data) + for(var/datum/chem_property/P in GLOB.chemical_data.research_property_data) data["property_codings"][P.name] = P.code if(template_filter && !check_bitflag(P.category, template_filter)) continue @@ -182,7 +182,7 @@ else data["reference_info"] = "" - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui = SSnano.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if(!ui) ui = new(user, src, ui_key, "chem_simulator.tmpl", "Synthesis Simulator", 800, 550) ui.set_initial_data(data) @@ -198,7 +198,7 @@ if(user.stat || user.is_mob_restrained() || !in_range(src, user)) return - if(mode == MODE_CREATE && chemical_data.has_new_properties) + if(mode == MODE_CREATE && GLOB.chemical_data.has_new_properties) update_costs() if(href_list["simulate"] && ready) @@ -252,7 +252,7 @@ return if(mode == MODE_CREATE) var/target_name = href_list["set_target"] - for(var/datum/chem_property/P in chemical_data.research_property_data) + for(var/datum/chem_property/P in GLOB.chemical_data.research_property_data) if(P.name == target_name) if(target_property && target_property.name == target_name) //Toggle the property @@ -294,15 +294,15 @@ newname = reject_bad_name(newname, TRUE, 20, FALSE) if(isnull(newname)) to_chat(user, "Bad name.") - else if(chemical_reagents_list[newname]) + else if(GLOB.chemical_reagents_list[newname]) to_chat(user, "Name already taken.") else creation_name = newname else if(href_list["set_level"] && target_property) var/level_to_set = 1 - if(chemical_data.clearance_level <= 2) + if(GLOB.chemical_data.clearance_level <= 2) level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4)) - else if(chemical_data.clearance_level <= 4) + else if(GLOB.chemical_data.clearance_level <= 4) level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8)) else level_to_set = tgui_input_list(usr, "Set target level for [target_property.name]:","[src]", list(1,2,3,4,5,6,7,8,9,10)) @@ -350,7 +350,7 @@ calculate_creation_cost() ready = check_ready() playsound(loc, pick('sound/machines/computer_typing1.ogg','sound/machines/computer_typing2.ogg','sound/machines/computer_typing3.ogg'), 5, 1) - nanomanager.update_uis(src) + SSnano.nanomanager.update_uis(src) /obj/structure/machinery/chem_simulator/process() if(inoperable()) @@ -384,7 +384,7 @@ C.name = C.id if(C.id in simulations) //We've already simulated this before, so we don't need to continue - C = chemical_reagents_list[C.id] + C = GLOB.chemical_reagents_list[C.id] print(C.id) status_bar = "SIMULATION COMPLETE" simulating = SIMULATION_STAGE_OFF @@ -398,13 +398,13 @@ else ready = check_ready() stop_processing() - nanomanager.update_uis(src) + SSnano.nanomanager.update_uis(src) /obj/structure/machinery/chem_simulator/proc/update_costs() property_costs = list() var/only_positive = TRUE if(mode == MODE_CREATE) - for(var/datum/chem_property/P in chemical_data.research_property_data) + for(var/datum/chem_property/P in GLOB.chemical_data.research_property_data) property_costs[P.name] = max(abs(P.value), 1) else if(target && target.data && target.completed) for(var/datum/chem_property/P in target.data.properties) @@ -431,7 +431,7 @@ if(only_positive) for(var/P in property_costs) property_costs[P] = property_costs[P] + 1 - chemical_data.has_new_properties = FALSE + GLOB.chemical_data.has_new_properties = FALSE //Here the cost for creating a chemical is calculated. If you're looking to rebalance create mode, this is where you do it /obj/structure/machinery/chem_simulator/proc/calculate_creation_cost() @@ -468,7 +468,7 @@ new_od_level = max(new_od_level - 5, 5) /obj/structure/machinery/chem_simulator/proc/prepare_recipe_options() - var/datum/chemical_reaction/generated/O = chemical_reactions_list[target.data.id] + var/datum/chemical_reaction/generated/O = GLOB.chemical_reactions_list[target.data.id] if(!O) //If it doesn't have a recipe, go immediately to finalizing, which will then generate a new associated recipe return FALSE recipe_targets = list() //reset @@ -481,7 +481,7 @@ if(LAZYLEN(R.required_reagents) > 2) LAZYREMOVE(R.required_reagents, pick(R.required_reagents)) var/new_component_id = R.add_component(tier = max(min(target.data.chemclass, CHEM_CLASS_COMMON), target.data.gen_tier, 1)) - var/datum/reagent/new_component = chemical_reagents_list[new_component_id] + var/datum/reagent/new_component = GLOB.chemical_reagents_list[new_component_id] //Make sure we don't have an identical reaction and that the component is identified if(R.check_duplicate() || R.check_reaction_uses_all_default_medical() || new_component.chemclass >= CHEM_CLASS_SPECIAL) R.required_reagents = old_reaction.Copy() @@ -512,27 +512,27 @@ status_bar = "TARGET CAN NOT BE ALTERED" return FALSE //Safety check in case of irregular papers - var/datum/chemical_reaction/C = chemical_reactions_list[target.data.id] + var/datum/chemical_reaction/C = GLOB.chemical_reactions_list[target.data.id] if(C) for(var/component in C.required_reagents) - var/datum/reagent/R = chemical_reagents_list[component] - if(R && R.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[R.id]) + var/datum/reagent/R = GLOB.chemical_reagents_list[component] + if(R && R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id]) status_bar = "UNREGISTERED COMPONENTS DETECTED" return FALSE for(var/catalyst in C.required_catalysts) - var/datum/reagent/R = chemical_reagents_list[catalyst] - if(R && R.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[R.id]) + var/datum/reagent/R = GLOB.chemical_reagents_list[catalyst] + if(R && R.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[R.id]) status_bar = "UNREGISTERED CATALYSTS DETECTED" return FALSE if(target_property) - if(property_costs[target_property.name] > chemical_data.rsc_credits) + if(property_costs[target_property.name] > GLOB.chemical_data.rsc_credits) status_bar = "INSUFFICIENT FUNDS" return FALSE if(target_property.category & PROPERTY_TYPE_UNADJUSTABLE) status_bar = "TARGET PROPERTY CAN NOT BE SIMULATED" return FALSE if(mode == MODE_AMPLIFY) - if(target_property.level >= chemical_data.clearance_level*TECHTREE_LEVEL_MULTIPLIER + 2 && chemical_data.clearance_level < 5) + if(target_property.level >= GLOB.chemical_data.clearance_level*TECHTREE_LEVEL_MULTIPLIER + 2 && GLOB.chemical_data.clearance_level < 5) status_bar = "CLEARANCE INSUFFICIENT FOR AMPLIFICATION" return FALSE if(target && length(target.data.properties) < 2) @@ -560,7 +560,7 @@ if(LAZYLEN(creation_name) < 2) status_bar = "NAME NOT SET" return FALSE - if(creation_cost > chemical_data.rsc_credits) + if(creation_cost > GLOB.chemical_data.rsc_credits) status_bar = "INSUFFICIENT FUNDS" return FALSE else if(!target) @@ -575,18 +575,18 @@ flick("[icon_state]_printing",src) sleep(10) var/obj/item/paper/research_report/report = new /obj/item/paper/research_report/(loc) - var/datum/reagent/D = chemical_reagents_list[id] + var/datum/reagent/D = GLOB.chemical_reagents_list[id] var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper) report.name = "Simulation result for [D.name]" report.info += "

    Official Company Document
    Simulated Synthesis Report

    Result for [D.name]

    " report.generate(D) - report.info += "

    This report was automatically printed by the Synthesis Simulator.
    The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[game_year], [worldtime2text()]

    \n" + report.info += "

    This report was automatically printed by the Synthesis Simulator.
    The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[GLOB.game_year], [worldtime2text()]

    \n" playsound(loc, 'sound/machines/twobeep.ogg', 15, 1) if(is_new) - chemical_data.save_document(report, "Synthesis Simulations", report.name) + GLOB.chemical_data.save_document(report, "Synthesis Simulations", report.name) /obj/structure/machinery/chem_simulator/proc/encode_reagent(datum/reagent/C) - var/datum/reagent/O = chemical_reagents_list[C.original_id] //So make the new name based on the Original + var/datum/reagent/O = GLOB.chemical_reagents_list[C.original_id] //So make the new name based on the Original var/suffix = " " for(var/datum/chem_property/P in C.properties) suffix += P.code+"[P.level]" @@ -661,7 +661,7 @@ R.gen_tier = C.gen_tier if(mode != MODE_CREATE) - assoc_R = chemical_reactions_list[target.data.id] + assoc_R = GLOB.chemical_reactions_list[target.data.id] if(!assoc_R) //no associated recipe found if(mode == MODE_CREATE) assoc_R = C.generate_assoc_recipe(creation_complexity) @@ -690,25 +690,25 @@ //Pay if(mode == MODE_CREATE) - chemical_data.update_credits(creation_cost * -1) + GLOB.chemical_data.update_credits(creation_cost * -1) else - chemical_data.update_credits(property_costs[target_property.name] * -1) + GLOB.chemical_data.update_credits(property_costs[target_property.name] * -1) //Refund 1 credit if a rare or rarer target was added - var/datum/reagent/component = chemical_reagents_list[recipe_target] + var/datum/reagent/component = GLOB.chemical_reagents_list[recipe_target] if(component && component.chemclass >= CHEM_CLASS_RARE) - chemical_data.update_credits(1) + GLOB.chemical_data.update_credits(1) //Save the reagent C.generate_description() C.chemclass = CHEM_CLASS_RARE //So that we can always scan this in the future, don't generate defcon, and don't get a loop of making credits - chemical_reagents_list[C.id] = C + GLOB.chemical_reagents_list[C.id] = C LAZYADD(simulations, C.id) //Remember we've simulated this //Save the reaction R.id = C.id R.result = C.id - chemical_reactions_list[R.id] = R + GLOB.chemical_reactions_list[R.id] = R R.add_to_filtered_list() status_bar = "SIMULATION COMPLETE" print(C.id, TRUE) diff --git a/code/modules/reagents/chemistry_machinery/chem_storage.dm b/code/modules/reagents/chemistry_machinery/chem_storage.dm index 3a05201dea25..692daef7864f 100644 --- a/code/modules/reagents/chemistry_machinery/chem_storage.dm +++ b/code/modules/reagents/chemistry_machinery/chem_storage.dm @@ -31,11 +31,11 @@ /obj/structure/machinery/chem_storage/Initialize() . = ..() - chemical_data.add_chem_storage(src) + GLOB.chemical_data.add_chem_storage(src) start_processing() /obj/structure/machinery/chem_storage/Destroy() - chemical_data.remove_chem_storage(src) + GLOB.chemical_data.remove_chem_storage(src) return ..() /obj/structure/machinery/chem_storage/get_examine_text(mob/user) diff --git a/code/modules/reagents/chemistry_machinery/pandemic.dm b/code/modules/reagents/chemistry_machinery/pandemic.dm index aef4823effda..5cd7f6584705 100644 --- a/code/modules/reagents/chemistry_machinery/pandemic.dm +++ b/code/modules/reagents/chemistry_machinery/pandemic.dm @@ -59,10 +59,10 @@ if(B) var/datum/disease/D = null if(!vaccine_type) - D = archive_diseases[path] + D = GLOB.archive_diseases[path] vaccine_type = path else - if(vaccine_type in diseases) + if(vaccine_type in GLOB.diseases) D = new vaccine_type(0, null) if(D) @@ -90,11 +90,11 @@ B.icon_state = "bottle3" var/datum/disease/D = null if(!virus_type) - var/datum/disease/advance/A = archive_diseases[href_list["create_virus_culture"]] + var/datum/disease/advance/A = GLOB.archive_diseases[href_list["create_virus_culture"]] if(A) D = new A.type(0, A) else - if(virus_type in diseases) // Make sure this is a disease + if(virus_type in GLOB.diseases) // Make sure this is a disease D = new virus_type(0, null) var/list/data = list("viruses"=list(D)) var/name = strip_html(input(user,"Name:","Name the culture",D.name)) @@ -129,10 +129,10 @@ if(user.stat || user.is_mob_restrained()) return if(!in_range(src, user)) return var/id = href_list["name_disease"] - if(archive_diseases[id]) - var/datum/disease/advance/A = archive_diseases[id] + if(GLOB.archive_diseases[id]) + var/datum/disease/advance/A = GLOB.archive_diseases[id] A.AssignName(new_name) - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in SSdisease.all_diseases) AD.Refresh() updateUsrDialog() @@ -184,7 +184,7 @@ if(istype(D, /datum/disease/advance)) var/datum/disease/advance/A = D - D = archive_diseases[A.GetDiseaseID()] + D = GLOB.archive_diseases[A.GetDiseaseID()] disease_creation = A.GetDiseaseID() if(D.name == "Unknown") dat += "Name Disease
    " @@ -216,7 +216,7 @@ var/disease_name = "Unknown" if(!ispath(type)) - var/datum/disease/advance/A = archive_diseases[type] + var/datum/disease/advance/A = GLOB.archive_diseases[type] if(A) disease_name = A.name else diff --git a/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm b/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm index dc1f72ec41c7..51db188826b8 100644 --- a/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm +++ b/code/modules/reagents/chemistry_machinery/reagent_analyzer.dm @@ -13,22 +13,25 @@ /obj/structure/machinery/reagent_analyzer/attackby(obj/item/B, mob/living/user) if(processing) - to_chat(user, SPAN_WARNING("The [src] is still processing!")) + to_chat(user, SPAN_WARNING("[src] is still processing!")) return if(!skillcheck(usr, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED)) to_chat(user, SPAN_WARNING("You have no idea how to use this.")) return if(istype(B, /obj/item/reagent_container/glass/beaker/vial)) if(sample || status) - to_chat(user, SPAN_WARNING("Something is already loaded into the [src].")) + to_chat(user, SPAN_WARNING("Something is already loaded into [src].")) return if(user.drop_inv_item_to_loc(B, src)) sample = B icon_state = "reagent_analyzer_sample" - to_chat(user, SPAN_NOTICE("You insert [B] and start configuring the [src].")) + to_chat(user, SPAN_NOTICE("You insert [B] and start configuring [src].")) updateUsrDialog() if(!do_after(user, 1 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) return + if(!sample) + to_chat(user, SPAN_WARNING("Someone else removed the sample. Make up your mind!")) + return processing = TRUE if(sample.reagents.total_volume < 30 || sample.reagents.reagent_list.len > 1) icon_state = "reagent_analyzer_error" @@ -72,12 +75,12 @@ /obj/structure/machinery/reagent_analyzer/attack_hand(mob/user as mob) if(processing) - to_chat(user, SPAN_WARNING("The [src] is still processing!")) + to_chat(user, SPAN_WARNING("[src] is still processing!")) return if(!sample) - to_chat(user, SPAN_WARNING("The [src] is empty.")) + to_chat(user, SPAN_WARNING("[src] is empty.")) return - to_chat(user, SPAN_NOTICE("You remove the [sample] from the [src].")) + to_chat(user, SPAN_NOTICE("You remove [sample] from [src].")) user.put_in_active_hand(sample) sample = null icon_state = "reagent_analyzer" @@ -89,27 +92,27 @@ var/datum/reagent/S = sample.reagents.reagent_list[1] S.print_report(report = report, sample_number = sample_number) sample.name = "vial ([S.name])" - chemical_data.save_document(report, "XRF Scans", "[sample_number] - [report.name]") + GLOB.chemical_data.save_document(report, "XRF Scans", "[sample_number] - [report.name]") if(S.chemclass < CHEM_CLASS_SPECIAL || (S.chemclass >= CHEM_CLASS_SPECIAL && report.completed)) - chemical_data.save_new_properties(S.properties) - if(S.chemclass >= CHEM_CLASS_SPECIAL && !chemical_data.chemical_identified_list[S.id]) + GLOB.chemical_data.save_new_properties(S.properties) + if(S.chemclass >= CHEM_CLASS_SPECIAL && !GLOB.chemical_data.chemical_identified_list[S.id]) if(last_used) last_used.count_niche_stat(STATISTICS_NICHE_CHEMS) var/datum/chem_property/P = S.get_property(PROPERTY_DNA_DISINTEGRATING) if(P) - if(chemical_data.clearance_level >= S.gen_tier) + if(GLOB.chemical_data.clearance_level >= S.gen_tier) P.trigger() else return - chemical_data.complete_chemical(S) + GLOB.chemical_data.complete_chemical(S) else var/datum/asset/asset = get_asset_datum(/datum/asset/simple/paper) report.name = "Analysis of ERROR" report.info += "

    Official Weyland-Yutani Document
    Reagent Analysis Print

    Analysis ERROR

    " report.info += "Result:
    Analysis failed for sample #[sample_number].

    \n" report.info += "Reason for error:
    [reason]
    \n" - report.info += "

    This report was automatically printed by the A-XRF Scanner.
    The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[game_year], [worldtime2text()]

    \n" + report.info += "

    This report was automatically printed by the A-XRF Scanner.
    The [MAIN_SHIP_NAME], [time2text(world.timeofday, "MM/DD")]/[GLOB.game_year], [worldtime2text()]

    \n" /datum/reagent/proc/print_report(turf/loc, obj/item/paper/research_report/report, admin_spawned = FALSE, sample_number = 0) if(!report) diff --git a/code/modules/reagents/chemistry_properties/prop_neutral.dm b/code/modules/reagents/chemistry_properties/prop_neutral.dm index d420623879ce..3048b12ee296 100644 --- a/code/modules/reagents/chemistry_properties/prop_neutral.dm +++ b/code/modules/reagents/chemistry_properties/prop_neutral.dm @@ -199,8 +199,8 @@ M.druggy = min(M.druggy + 0.5 * potency * delta_time, potency * 10) /datum/chem_property/neutral/hallucinogenic/process_overdose(mob/living/M, potency = 1, delta_time) - if(isturf(M.loc) && !istype(M.loc, /turf/open/space) && M.canmove && !M.is_mob_restrained()) - step(M, pick(cardinal)) + if(isturf(M.loc) && !istype(M.loc, /turf/open/space) && (M.mobility_flags & MOBILITY_MOVE) && !M.is_mob_restrained()) + step(M, pick(GLOB.cardinals)) M.hallucination += 10 M.make_jittery(5) diff --git a/code/modules/reagents/chemistry_properties/prop_positive.dm b/code/modules/reagents/chemistry_properties/prop_positive.dm index 7f476cecf2c5..a8a11fc299ad 100644 --- a/code/modules/reagents/chemistry_properties/prop_positive.dm +++ b/code/modules/reagents/chemistry_properties/prop_positive.dm @@ -455,7 +455,7 @@ if(prob(10 * delta_time)) to_chat(M, SPAN_WARNING("You feel like you have the worst brain freeze ever!")) M.apply_effect(20, PARALYZE) - M.stunned = max(M.stunned,21) + M.apply_effect(20, STUN) /datum/chem_property/positive/neurocryogenic/process_overdose(mob/living/M, potency = 1, delta_time) M.bodytemperature = max(M.bodytemperature - 2.5 * potency * delta_time,0) @@ -548,7 +548,7 @@ rarity = PROPERTY_RARE category = PROPERTY_TYPE_REACTANT value = 3 - max_level = 1 + COOLDOWN_DECLARE(ghost_notif) /datum/chem_property/positive/defibrillating/on_delete(mob/living/M) ..() @@ -574,19 +574,33 @@ /datum/chem_property/positive/defibrillating/process_dead(mob/living/M, potency = 1, delta_time) if(!ishuman(M)) return - var/mob/living/carbon/human/H = M - H.apply_damage(-H.getOxyLoss(), OXY) - if(H.check_tod() && H.is_revivable() && H.health > HEALTH_THRESHOLD_DEAD) - to_chat(H, SPAN_NOTICE("You feel your heart struggling as you suddenly feel a spark, making it desperately try to continue pumping.")) - playsound_client(H.client, 'sound/effects/Heart Beat Short.ogg', 35) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, handle_revive)), 50, TIMER_UNIQUE) - else if (potency > POTENCY_MAX_TIER_1 && H.check_tod() && H.is_revivable() && H.health < HEALTH_THRESHOLD_DEAD) //Will heal if level is 7 or greater - to_chat(H, SPAN_NOTICE("You feel a faint spark in your chest.")) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BRUTE) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BURN) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, TOX) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, CLONE) - H.apply_damage(-H.getOxyLoss(), OXY) + var/mob/living/carbon/human/dead = M + var/revivable = dead.check_tod() && dead.is_revivable() + if(revivable && (dead.health > HEALTH_THRESHOLD_DEAD)) + addtimer(CALLBACK(dead, TYPE_PROC_REF(/mob/living/carbon/human, handle_revive)), 5 SECONDS) + to_chat(dead, SPAN_NOTICE("You feel your heart struggling as you suddenly feel a spark, making it desperately try to continue pumping.")) + playsound_client(dead.client, 'sound/effects/heart_beat_short.ogg', 35) + else if ((potency >= 1) && revivable && dead.health <= HEALTH_THRESHOLD_DEAD) //heals on all level above 1. This is however, minimal. + to_chat(dead, SPAN_NOTICE("You feel a faint spark in your chest.")) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, BRUTE) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, BURN) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, TOX) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, CLONE) + dead.apply_damage(-dead.getOxyLoss(), OXY) + if(potency > CREATE_MAX_TIER_1) //heal more if higher levels + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BRUTE) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BURN) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, TOX) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, CLONE) + if(dead.health < HEALTH_THRESHOLD_DEAD) + return + if(!COOLDOWN_FINISHED(src, ghost_notif)) + return + var/mob/dead/observer/ghost = dead.get_ghost() + if(ghost?.client) + COOLDOWN_START(src, ghost_notif, 30 SECONDS) + playsound_client(ghost.client, 'sound/effects/adminhelp_new.ogg') + to_chat(ghost, SPAN_BOLDNOTICE("Your heart is struggling to pump! There is a chance you might get up!(Verbs -> Ghost -> Re-enter corpse, or click here!)")) return TRUE /datum/chem_property/positive/hyperdensificating @@ -633,7 +647,7 @@ return H.chem_effect_flags |= CHEM_EFFECT_RESIST_NEURO to_chat(M, SPAN_NOTICE("Your skull feels incredibly thick.")) - M.dazed = 0 + M.SetDaze(0) /datum/chem_property/positive/neuroshielding/process_overdose(mob/living/M, potency = 1, delta_time) if(!ishuman(M)) diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 640e18426311..52354f0d6b01 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -96,8 +96,8 @@ H.contract_disease(new /datum/disease/xeno_transformation(0),1) //This is the real reason PMCs are being sent to retrieve it. /datum/chem_property/special/DNA_Disintegrating/trigger() - SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", TRUE, FALSE, FALSE, holder.name, TRUE) - chemical_data.update_credits(10) + SSticker.mode.get_specific_call("Weyland-Yutani Goon (Chemical Investigation Squad)", TRUE, FALSE, holder.name) + GLOB.chemical_data.update_credits(10) message_admins("The research department has discovered DNA_Disintegrating in [holder.name] adding 10 bonus tech points.") var/datum/techtree/tree = GET_TREE(TREE_MARINE) tree.add_points(10) diff --git a/code/modules/reagents/chemistry_reagents/drink.dm b/code/modules/reagents/chemistry_reagents/drink.dm index 468243a0cc8d..3a49429d664e 100644 --- a/code/modules/reagents/chemistry_reagents/drink.dm +++ b/code/modules/reagents/chemistry_reagents/drink.dm @@ -85,13 +85,13 @@ /datum/reagent/drink/carrotjuice/on_mob_life(mob/living/M) . = ..() - if(!.) return + if(!.) + return M.ReduceEyeBlur(1) M.ReduceEyeBlind(1) - if(!data) data = 1 + if(!data) + data = 1 switch(data) - if(1 to 20) - //nothing if(21 to INFINITY) if(prob(data-10)) M.disabilities &= ~NEARSIGHTED @@ -163,8 +163,10 @@ /datum/reagent/drink/milk/on_mob_life(mob/living/M) . = ..() - if(!.) return - if(M.getBruteLoss() && prob(20)) M.heal_limb_damage(1,0) + if(!.) + return + if(M.getBruteLoss() && prob(20)) + M.heal_limb_damage(1,0) holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) holder.remove_reagent("hotsauce", 10*REAGENTS_METABOLISM) @@ -555,7 +557,7 @@ /datum/reagent/neurotoxin/on_mob_life(mob/living/carbon/M) . = ..() if(!.) return - M.knocked_down = max(M.knocked_down, 3) + M.KnockDown(5) if(!data) data = 1 data++ M.dizziness +=6 diff --git a/code/modules/reagents/chemistry_reagents/toxin.dm b/code/modules/reagents/chemistry_reagents/toxin.dm index 458424a5db11..445918ef284d 100644 --- a/code/modules/reagents/chemistry_reagents/toxin.dm +++ b/code/modules/reagents/chemistry_reagents/toxin.dm @@ -113,8 +113,10 @@ if(!. || deleted) return M.status_flags |= FAKEDEATH + ADD_TRAIT(M, TRAIT_IMMOBILIZED, FAKEDEATH_TRAIT) M.apply_damage(0.5*REM, OXY) - M.apply_effect(2, WEAKEN) + M.KnockDown(2) + M.Stun(2) M.silent = max(M.silent, 10) /datum/reagent/toxin/zombiepowder/on_delete() @@ -125,6 +127,7 @@ var/mob/living/holder_mob = . holder_mob.status_flags &= ~FAKEDEATH + REMOVE_TRAIT(holder_mob, TRAIT_IMMOBILIZED, FAKEDEATH_TRAIT) /datum/reagent/toxin/mindbreaker name = "Mindbreaker Toxin" @@ -279,4 +282,4 @@ color = "#669900" reagent_state = LIQUID chemclass = CHEM_CLASS_NONE - properties = list(PROPERTY_CORROSIVE = 2, PROPERTY_TOXIC = 1) + properties = list(PROPERTY_CORROSIVE = 2, PROPERTY_TOXIC = 1, PROPERTY_CROSSMETABOLIZING = 3) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index b4b4f68ed99d..4c60a9e345e0 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -112,7 +112,7 @@ // attack with hand, move pulled object onto conveyor /obj/structure/machinery/conveyor/attack_hand(mob/user as mob) - if ((!( user.canmove ) || user.is_mob_restrained() || !( user.pulling ))) + if (( user.is_mob_incapacitated() || !( user.pulling ))) return if (user.pulling.anchored) return @@ -197,7 +197,7 @@ /obj/structure/machinery/conveyor_switch/LateInitialize() . = ..() conveyors = list() - for(var/obj/structure/machinery/conveyor/C in machines) + for(var/obj/structure/machinery/conveyor/C in GLOB.machines) if(C.id == id) conveyors += C start_processing() @@ -246,7 +246,7 @@ update() // find any switches with same id as this one, and set their positions to match us - for(var/obj/structure/machinery/conveyor_switch/S in machines) + for(var/obj/structure/machinery/conveyor_switch/S in GLOB.machines) if(S.id == src.id) S.position = position S.update() @@ -266,7 +266,7 @@ update() // find any switches with same id as this one, and set their positions to match us - for(var/obj/structure/machinery/conveyor_switch/S in machines) + for(var/obj/structure/machinery/conveyor_switch/S in GLOB.machines) if(S.id == src.id) S.position = position S.update() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 2c7401ac278c..88efcf7a37ba 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -195,7 +195,7 @@ return FALSE //Need a firm grip to put someone else in there. if(!istype(target) || target.anchored || target.buckled || get_dist(user, src) > 1 || user.is_mob_incapacitated(TRUE) || isRemoteControlling(user) || target.mob_size >= MOB_SIZE_BIG) - to_chat(user, SPAN_WARNING("You cannot get into the [src]!")) + to_chat(user, SPAN_WARNING("You cannot get into [src]!")) return FALSE add_fingerprint(user) var/target_loc = target.loc @@ -221,22 +221,21 @@ update() ///Attempt to move while inside -/obj/structure/machinery/disposal/relaymove(mob/user) - if(user.stat || user.stunned || user.knocked_down || flushing) +/obj/structure/machinery/disposal/relaymove(mob/living/user) + if(user.is_mob_incapacitated(TRUE) || flushing) return FALSE if(user.loc == src) go_out(user) return TRUE ///Leave the disposal -/obj/structure/machinery/disposal/proc/go_out(mob/user) +/obj/structure/machinery/disposal/proc/go_out(mob/living/user) if(user.client) user.client.eye = user.client.mob user.client.perspective = MOB_PERSPECTIVE user.forceMove(loc) - user.stunned = max(user.stunned, 2) //Action delay when going out of a bin - user.update_canmove() //Force the delay to go in action immediately - if(!user.lying) + user.apply_effect(2, STUN) + if(user.mobility_flags & MOBILITY_MOVE) user.visible_message(SPAN_WARNING("[user] suddenly climbs out of [src]!"), SPAN_WARNING("You climb out of [src] and get your bearings!")) update() @@ -302,12 +301,11 @@ for(var/atom/movable/AM in src) AM.forceMove(loc) AM.pipe_eject(0) - if(ismob(AM)) - var/mob/M = AM - M.stunned = max(M.stunned, 2) //Action delay when going out of a bin - M.update_canmove() //Force the delay to go in action immediately - if(!M.lying) - M.visible_message(SPAN_WARNING("[M] is suddenly pushed out of [src]!"), + if(isliving(AM)) + var/mob/living/living = AM + living.Stun(2) + if(living.body_position == STANDING_UP) + living.visible_message(SPAN_WARNING("[living] is suddenly pushed out of [src]!"), SPAN_WARNING("You get pushed out of [src] and get your bearings!")) update() @@ -746,7 +744,7 @@ //Remains : set to leave broken pipe pieces in place /obj/structure/disposalpipe/deconstruct(disassembled = TRUE) if(disassembled) - for(var/D in cardinal) + for(var/D in GLOB.cardinals) if(D & dpdir) var/obj/structure/disposalpipe/broken/P = new(loc) P.setDir(D) @@ -1096,7 +1094,8 @@ /obj/structure/disposalpipe/tagger/Initialize(mapload, ...) . = ..() dpdir = dir|turn(dir, 180) - if(sort_tag) tagger_locations |= sort_tag + if(sort_tag) + GLOB.tagger_locations |= sort_tag updatename() updatedesc() update() @@ -1152,7 +1151,8 @@ /obj/structure/disposalpipe/sortjunction/Initialize(mapload, ...) . = ..() - if(sortType) tagger_locations |= sortType + if(sortType) + GLOB.tagger_locations |= sortType updatedir() updatename() @@ -1457,7 +1457,7 @@ if(direction) dirs = list( direction, turn(direction, -45), turn(direction, 45)) else - dirs = alldirs.Copy() + dirs = GLOB.alldirs.Copy() INVOKE_ASYNC(streak(dirs)) @@ -1466,7 +1466,7 @@ if(direction) dirs = list( direction, turn(direction, -45), turn(direction, 45)) else - dirs = alldirs.Copy() + dirs = GLOB.alldirs.Copy() INVOKE_ASYNC(streak(dirs)) diff --git a/code/modules/recycling/recycler.dm b/code/modules/recycling/recycler.dm index 73d00b763f68..abbf010bf4cc 100644 --- a/code/modules/recycling/recycler.dm +++ b/code/modules/recycling/recycler.dm @@ -9,32 +9,39 @@ density = TRUE var/recycle_dir = NORTH var/list/stored_matter = list("metal" = 0, "glass" = 0) + /// Amount of metal refunded per crate, by default about 2 metal sheets (building one takes 5) + var/crate_reward = 7500 + /// Amount of sheets to stack before outputting a stack + var/sheets_per_batch = 10 var/last_recycle_sound //for sound cooldown var/ignored_items = list(/obj/item/limb) -/obj/structure/machinery/recycler/New() - ..() - update_icon() +/obj/structure/machinery/recycler/whiskey + crate_reward = 15000 // Boosted reward (4 sheets) to make up for workload and the fact you can't sell them +/obj/structure/machinery/recycler/Initialize(mapload, ...) + . = ..() + update_icon() /obj/structure/machinery/recycler/power_change() ..() update_icon() - /obj/structure/machinery/recycler/update_icon() + . = ..() icon_state = "separator-AO[(inoperable()) ? "0":"1"]" - -/obj/structure/machinery/recycler/Collided(atom/movable/AM) +/obj/structure/machinery/recycler/Collided(atom/movable/movable) if(inoperable()) return - var/move_dir = get_dir(loc, AM.loc) - if(!AM.anchored && move_dir == recycle_dir) - if(istype(AM, /obj/item)) - recycle(AM) + var/move_dir = get_dir(loc, movable.loc) + if(!movable.anchored && move_dir == recycle_dir) + if(istype(movable, /obj/item)) + recycle(movable) + else if(istype(movable, /obj/structure/closet/crate)) + recycle_crate(movable) else - AM.forceMove(loc) + movable.forceMove(loc) /obj/structure/machinery/recycler/proc/recycle(obj/item/I) @@ -63,7 +70,32 @@ stored_matter[material] += total_material qdel(I) + play_recycle_sound() + output_materials() + +/obj/structure/machinery/recycler/proc/recycle_crate(obj/structure/closet/crate) + for(var/atom/movable/movable in crate) + movable.forceMove(loc) + recycle(movable) + stored_matter["metal"] += crate_reward + qdel(crate) + play_recycle_sound() + output_materials() + +/obj/structure/machinery/recycler/proc/play_recycle_sound() if(last_recycle_sound < world.time) playsound(loc, 'sound/items/Welder.ogg', 30, 1) last_recycle_sound = world.time + 50 +/obj/structure/machinery/recycler/proc/output_materials() + for(var/material in stored_matter) + if(stored_matter[material] >= sheets_per_batch * 3750) + var/sheets = round(stored_matter[material] / 3750) + stored_matter[material] -= sheets * 3750 + var/obj/item/stack/sheet/sheet_stack + switch(material) + if("metal") sheet_stack = new /obj/item/stack/sheet/metal(loc) + if("glass") sheet_stack = new /obj/item/stack/sheet/glass(loc) + if(sheet_stack) + sheet_stack.amount = sheets + sheet_stack.update_icon() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index e61357188ad6..ec1c8c245f2b 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -215,7 +215,7 @@ icon = 'icons/obj/items/items.dmi' icon_state = "deliveryPaper" w_class = SIZE_MEDIUM - var/amount = 25 + var/amount = 50 /obj/item/packageWrap/afterattack(obj/target as obj, mob/user as mob, proximity) @@ -263,39 +263,55 @@ O.add_fingerprint(usr) src.add_fingerprint(usr) src.amount-- - user.visible_message("\The [user] wraps \a [target] with \a [src].",\ - SPAN_NOTICE("You wrap \the [target], leaving [amount] units of paper on \the [src]."),\ + user.visible_message("[user] wraps [target] with [src].",\ + SPAN_NOTICE("You wrap [target], leaving [amount] units of paper on [src]."),\ "You hear someone taping paper around a small object.") else if (istype(target, /obj/structure/closet/crate)) - var/obj/structure/closet/crate/O = target - if (src.amount > 3 && !O.opened) - var/obj/structure/bigDelivery/P = new /obj/structure/bigDelivery(get_turf(O.loc)) - P.icon_state = "deliverycrate" - P.wrapped = O - O.forceMove(P) - src.amount -= 3 - user.visible_message("\The [user] wraps \a [target] with \a [src].",\ - SPAN_NOTICE("You wrap \the [target], leaving [amount] units of paper on \the [src]."),\ - "You hear someone taping paper around a large object.") - else if(src.amount < 3) - to_chat(user, SPAN_WARNING("You need more paper.")) + var/obj/structure/closet/crate/crate = target + var/answer = tgui_alert(user, "Wrap the crate for delivery or customize it?", "Crate wrapping", list("Customize", "Wrap")) + if(!answer || !user.Adjacent(target) || !target.z) + return + if(answer == "Customize") + if(!length(crate.crate_customizing_types)) + to_chat(user, SPAN_WARNING("You cannot customize this kind of crate.")) + return + var/label = tgui_input_text(user, "Give the crate a new logistic tag:", "Customizing") + if(!label || !user.Adjacent(target) || !target.z) + return + var/chosen_type = tgui_input_list(user, "Select the kind of crate to make this into:", "Customizing", crate.crate_customizing_types) + if(!chosen_type || !ispath(crate.crate_customizing_types[chosen_type]) || !user.Adjacent(target) || !target.z) + return + target.AddComponent(/datum/component/crate_tag, label, crate.crate_customizing_types[chosen_type]) + amount -= 3 + else + if (amount > 3 && !crate.opened) + var/obj/structure/bigDelivery/package = new /obj/structure/bigDelivery(get_turf(crate.loc)) + package.icon_state = "deliverycrate" + package.wrapped = crate + crate.forceMove(package) + amount -= 3 + user.visible_message("[user] wraps [target] with [src].",\ + SPAN_NOTICE("You wrap [target], leaving [amount] units of paper on [src]."),\ + "You hear someone taping paper around a large object.") + else if(amount < 3) + to_chat(user, SPAN_WARNING("You need more paper.")) else if (istype (target, /obj/structure/closet)) - var/obj/structure/closet/O = target - if (src.amount > 3 && !O.opened) - var/obj/structure/bigDelivery/P = new /obj/structure/bigDelivery(get_turf(O.loc)) - P.wrapped = O - O.welded = 1 - O.forceMove(P) - src.amount -= 3 - user.visible_message("\The [user] wraps \a [target] with \a [src].",\ - SPAN_NOTICE("You wrap \the [target], leaving [amount] units of paper on \the [src]."),\ + var/obj/structure/closet/object = target + if (amount > 3 && !object.opened) + var/obj/structure/bigDelivery/package = new /obj/structure/bigDelivery(get_turf(object.loc)) + package.wrapped = object + object.welded = 1 + object.forceMove(package) + amount -= 3 + user.visible_message("[user] wraps [target] with [src].",\ + SPAN_NOTICE("You wrap [target], leaving [amount] units of paper on [src]."),\ "You hear someone taping paper around a large object.") - else if(src.amount < 3) + else if(amount < 3) to_chat(user, SPAN_WARNING("You need more paper.")) else to_chat(user, SPAN_NOTICE(" The object you are trying to wrap is unsuitable for the sorting machinery!")) - if (src.amount <= 0) - new /obj/item/trash/c_tube( src.loc ) + if (amount <= 0) + new /obj/item/trash/c_tube( loc ) qdel(src) return return @@ -321,8 +337,8 @@ var/dat = "

    TagMaster 2.3

    " dat += "

    [t] (unban)
    " - for(var/i = 1, i <= tagger_locations.len, i++) - dat += "" + for(var/i = 1, i <= GLOB.tagger_locations.len, i++) + dat += "" if (i%4==0) dat += "" @@ -341,7 +357,7 @@ if(.) return src.add_fingerprint(usr) - if(href_list["nextTag"] && (href_list["nextTag"] in tagger_locations)) + if(href_list["nextTag"] && (href_list["nextTag"] in GLOB.tagger_locations)) src.currTag = href_list["nextTag"] openwindow(usr) diff --git a/code/modules/round_recording/round_recorder.dm b/code/modules/round_recording/round_recorder.dm index 677b32bba1d2..8748b995aa6c 100644 --- a/code/modules/round_recording/round_recorder.dm +++ b/code/modules/round_recording/round_recorder.dm @@ -31,8 +31,8 @@ game_start = time2text(world.realtime, "DD.MM.YYYY@hh:mm:ss") map = SSmapping.configs[GROUND_MAP].map_name - gamemode = master_mode - round_name = round_statistics.name + gamemode = GLOB.master_mode + round_name = GLOB.round_statistics.name // Record the end time of the game and export the game history /datum/round_recorder/proc/end_game() diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 9d6d862bfc3c..4b7cdd69a449 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -108,7 +108,7 @@ /obj/structure/machinery/keycard_auth/proc/broadcast_request() icon_state = "auth_on" - for(var/obj/structure/machinery/keycard_auth/KA in machines) + for(var/obj/structure/machinery/keycard_auth/KA in GLOB.machines) if(KA == src || KA.channel != channel) continue KA.reset() INVOKE_ASYNC(KA, TYPE_PROC_REF(/obj/structure/machinery/keycard_auth, receive_request), src) @@ -149,14 +149,14 @@ if(CONFIG_GET(flag/ert_admin_call_only)) return 1 return SSticker.mode && SSticker.mode.ert_disabled -var/global/maint_all_access = 1 +GLOBAL_VAR_INIT(maint_all_access, TRUE) /proc/make_maint_all_access() - maint_all_access = 1 + GLOB.maint_all_access = TRUE ai_announcement("The maintenance access requirement has been removed on all airlocks.") /proc/revoke_maint_all_access() - maint_all_access = 0 + GLOB.maint_all_access = FALSE ai_announcement("The maintenance access requirement has been added on all airlocks.") // Keycard reader at the CORSAT locks @@ -209,7 +209,7 @@ var/global/maint_all_access = 1 /obj/structure/machinery/keycard_auth/lockdown/broadcast_request() icon_state = "auth_on" - for(var/obj/structure/machinery/keycard_auth/lockdown/KA in machines) + for(var/obj/structure/machinery/keycard_auth/lockdown/KA in GLOB.machines) if(KA == src || KA.channel != channel) continue KA.reset() @@ -249,7 +249,7 @@ var/global/maint_all_access = 1 /obj/structure/machinery/keycard_auth/lockdown/proc/timed_countdown(timeleft = 0) if(!timeleft) - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == podlock_id && M.density) INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, open)) return diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index ba842fb0bfb9..b6577a2fcbfa 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -1,52 +1,44 @@ -/var/security_level = 0 -//0 = code green -//1 = code blue -//2 = code red -//3 = code delta - -//config.alert_desc_blue_downto - +GLOBAL_VAR_INIT(security_level, SEC_LEVEL_GREEN) /proc/set_security_level(level, no_sound = FALSE, announce = TRUE, log = ARES_LOG_SECURITY) - if(level != security_level) + if(level != GLOB.security_level) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_SECURITY_LEVEL_CHANGED, level) //Will not be announced if you try to set to the same level as it already is - if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != security_level) + if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != GLOB.security_level) switch(level) if(SEC_LEVEL_GREEN) if(announce) ai_announcement("Attention: Security level lowered to GREEN - all clear.", no_sound ? null : 'sound/AI/code_green.ogg', log) - security_level = SEC_LEVEL_GREEN + GLOB.security_level = SEC_LEVEL_GREEN if(SEC_LEVEL_BLUE) - if(security_level < SEC_LEVEL_BLUE) + if(GLOB.security_level < SEC_LEVEL_BLUE) if(announce) ai_announcement("Attention: Security level elevated to BLUE - potentially hostile activity on board.", no_sound ? null : 'sound/AI/code_blue_elevated.ogg', log) else if(announce) ai_announcement("Attention: Security level lowered to BLUE - potentially hostile activity on board.", no_sound ? null : 'sound/AI/code_blue_lowered.ogg', log) - security_level = SEC_LEVEL_BLUE + GLOB.security_level = SEC_LEVEL_BLUE if(SEC_LEVEL_RED) - if(security_level < SEC_LEVEL_RED) + if(GLOB.security_level < SEC_LEVEL_RED) if(announce) ai_announcement("Attention: Security level elevated to RED - there is an immediate threat to the ship.", no_sound ? null : 'sound/AI/code_red_elevated.ogg', log) else if(announce) ai_announcement("Attention: Security level lowered to RED - there is an immediate threat to the ship.", no_sound ? null : 'sound/AI/code_red_lowered.ogg', log) - security_level = SEC_LEVEL_RED + GLOB.security_level = SEC_LEVEL_RED if(SEC_LEVEL_DELTA) if(announce) var/name = "SELF-DESTRUCT SYSTEMS ACTIVE" var/input = "DANGER, THE EMERGENCY DESTRUCT SYSTEM IS NOW ACTIVATED. PROCEED TO THE SELF-DESTRUCT CHAMBER FOR CONTROL ROD INSERTION." marine_announcement(input, name, 'sound/AI/selfdestruct_short.ogg', logging = log) - security_level = SEC_LEVEL_DELTA - EvacuationAuthority.enable_self_destruct() + GLOB.security_level = SEC_LEVEL_DELTA /proc/get_security_level() - switch(security_level) + switch(GLOB.security_level) if(SEC_LEVEL_GREEN) return "green" if(SEC_LEVEL_BLUE) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 26869cfcf448..79377d9c0849 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -281,6 +281,8 @@ icon_state = "terminal" req_access = list() breakable = FALSE + ///If true, the lifeboat is in the process of launching, and so the code will not allow another launch. + var/launch_initiated = FALSE /obj/structure/machinery/computer/shuttle/lifeboat/attack_hand(mob/user) . = ..() @@ -293,19 +295,43 @@ switch(lifeboat.mode) if(SHUTTLE_IDLE) if(!istype(user, /mob/living/carbon/human)) - to_chat(user, SPAN_NOTICE("[src]'s screen says \"Awaiting confirmation of the evacuation order\".")) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) return var/mob/living/carbon/human/human_user = user - if(!(ACCESS_MARINE_SENIOR in human_user.wear_id?.access)) - to_chat(user, SPAN_NOTICE("[src]'s screen says \"Awaiting confirmation of the evacuation order\".")) + if(!(ACCESS_MARINE_SENIOR in human_user.wear_id?.access) && !(ACCESS_MARINE_DROPSHIP in human_user.wear_id?.access)) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) return - if(tgui_alert(user, "Early launch the lifeboat?", "Confirm", list("Yes", "No"), 10 SECONDS) == "Yes") - to_chat(user, SPAN_NOTICE("[src]'s screen blinks and says \"Early launch accepted\".")) - lifeboat.evac_launch() + if(SShijack.current_progress < SShijack.early_launch_required_progress) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unable to launch, fuel insufficient\".")) return + if(launch_initiated) + to_chat(user, SPAN_NOTICE("[src]'s screen blinks and says \"Launch sequence already initiated\".")) + return + + var/response = tgui_alert(user, "Launch the lifeboat?", "Confirm", list("Yes", "No", "Emergency Launch"), 10 SECONDS) + if(launch_initiated) + to_chat(user, SPAN_NOTICE("[src]'s screen blinks and says \"Launch sequence already initiated\".")) + return + switch(response) + if ("Yes") + launch_initiated = TRUE + to_chat(user, "[src]'s screen blinks and says \"Launch command accepted\".") + shipwide_ai_announcement("Launch command received. [lifeboat.id == MOBILE_SHUTTLE_LIFEBOAT_PORT ? "Port" : "Starboard"] Lifeboat doors will close in 10 seconds.") + addtimer(CALLBACK(lifeboat, TYPE_PROC_REF(/obj/docking_port/mobile/crashable/lifeboat, evac_launch)), 10 SECONDS) + lifeboat.alarm_sound_loop.start() + lifeboat.playing_launch_announcement_alarm = TRUE + return + + if ("Emergency Launch") + launch_initiated = TRUE + to_chat(user, "[src]'s screen blinks and says \"Emergency Launch command accepted\".") + lifeboat.evac_launch() + shipwide_ai_announcement("Emergency Launch command received. Launching [lifeboat.id == MOBILE_SHUTTLE_LIFEBOAT_PORT ? "Port" : "Starboard"] Lifeboat.") + return + if(SHUTTLE_IGNITING) to_chat(user, SPAN_NOTICE("[src]'s screen says \"Engines firing\".")) if(SHUTTLE_CALL) @@ -317,14 +343,23 @@ if(lifeboat.status == LIFEBOAT_LOCKED) to_chat(xeno, SPAN_WARNING("We already wrested away control of this metal bird.")) return XENO_NO_DELAY_ACTION + if(lifeboat.mode == SHUTTLE_CALL) + to_chat(xeno, SPAN_WARNING("Too late, you cannot stop the metal bird mid-flight.")) + return XENO_NO_DELAY_ACTION xeno_attack_delay(xeno) if(do_after(usr, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) - if(lifeboat.status != LIFEBOAT_LOCKED) - lifeboat.status = LIFEBOAT_LOCKED - lifeboat.available = FALSE - lifeboat.set_mode(SHUTTLE_IDLE) - xeno_message(SPAN_XENOANNOUNCE("We have wrested away control of one of the metal birds! They shall not escape!"), 3, xeno.hivenumber) + if(lifeboat.status == LIFEBOAT_LOCKED) + return XENO_NO_DELAY_ACTION + if(lifeboat.mode == SHUTTLE_CALL) + to_chat(xeno, SPAN_WARNING("Too late, you cannot stop the metal bird mid-flight.")) + return XENO_NO_DELAY_ACTION + lifeboat.status = LIFEBOAT_LOCKED + lifeboat.available = FALSE + lifeboat.set_mode(SHUTTLE_IDLE) + var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock = lifeboat.get_docked() + lifeboat_dock.open_dock() + xeno_message(SPAN_XENOANNOUNCE("We have wrested away control of one of the metal birds! They shall not escape!"), 3, xeno.hivenumber) return XENO_NO_DELAY_ACTION else return ..() diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index c7a79b9c44ca..d357a15b36f8 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -7,9 +7,7 @@ unacidable = TRUE exproof = TRUE needs_power = FALSE - - // True if we are doing a flyby - var/is_set_flyby = FALSE + var/override_being_removed = FALSE // Admin disabled var/disabled = FALSE @@ -54,15 +52,15 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/enable() disabled = FALSE -/obj/structure/machinery/computer/shuttle/dropship/flight/proc/update_equipment(optimised=FALSE) +/obj/structure/machinery/computer/shuttle/dropship/flight/proc/update_equipment(optimised=FALSE, is_flyby=FALSE) var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) if(!dropship) return // initial flight time - var/flight_duration = is_set_flyby ? DROPSHIP_TRANSIT_DURATION : DROPSHIP_TRANSIT_DURATION * GLOB.ship_alt + var/flight_duration = is_flyby ? DROPSHIP_TRANSIT_DURATION : DROPSHIP_TRANSIT_DURATION * GLOB.ship_alt if(optimised) - if(is_set_flyby) + if(is_flyby) flight_duration = DROPSHIP_TRANSIT_DURATION * 1.5 else flight_duration = DROPSHIP_TRANSIT_DURATION * SHUTTLE_OPTIMIZE_FACTOR_TRAVEL @@ -76,7 +74,7 @@ for(var/obj/structure/dropship_equipment/equipment as anything in dropship.equipments) // fuel enhancer if(istype(equipment, /obj/structure/dropship_equipment/fuel/fuel_enhancer)) - if(is_set_flyby) + if(is_flyby) flight_duration = flight_duration / SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL else flight_duration = flight_duration * SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL @@ -146,15 +144,31 @@ to_chat(user, SPAN_NOTICE("\The [src] is not responsive")) return - if(dropship_control_lost && skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) + if(dropship_control_lost) var/remaining_time = timeleft(door_control_cooldown) / 10 - if(remaining_time > 60) - to_chat(user, SPAN_WARNING("The shuttle is not responding, try again in [remaining_time] seconds.")) + to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt. In large text it says the lockout will be automatically removed in [remaining_time] seconds.")) + if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) return - to_chat(user, SPAN_NOTICE("You start to remove the Queens override.")) - if(!do_after(user, 3 MINUTES, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) - to_chat(user, SPAN_WARNING("You fail to remove the Queens override")) + if(user.action_busy || override_being_removed) return + to_chat(user, SPAN_NOTICE("You start to remove the lockout.")) + override_being_removed = TRUE + while(remaining_time > 20) + if(!do_after(user, 20 SECONDS, INTERRUPT_ALL|INTERRUPT_CHANGED_LYING, BUSY_ICON_HOSTILE, numticks = 20)) + to_chat(user, SPAN_WARNING("You fail to remove the lockout!")) + override_being_removed = FALSE + return + if(!dropship_control_lost) + to_chat(user, SPAN_NOTICE("The lockout is already removed.")) + break + remaining_time = timeleft(door_control_cooldown) / 10 - 20 + if(remaining_time > 0) + to_chat(user, SPAN_NOTICE("You partially bypass the lockout, only [remaining_time] seconds left.")) + door_control_cooldown = addtimer(CALLBACK(src, PROC_REF(remove_door_lock)), remaining_time SECONDS, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_NO_HASH_WAIT) + override_being_removed = FALSE + if(dropship_control_lost) + remove_door_lock() + to_chat(user, SPAN_NOTICE("You succesfully removed the lockout!")) playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) if(!shuttle.is_hijacked) @@ -178,7 +192,9 @@ to_chat(xeno, SPAN_WARNING("The metal bird can not land here. It might be currently occupied!")) return to_chat(xeno, SPAN_NOTICE("You command the metal bird to come down. Clever girl.")) - xeno_announcement(SPAN_XENOANNOUNCE("Your Queen has commanded the metal bird to the hive at [linked_lz]."), xeno.hivenumber, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("Our Queen has commanded the metal bird to the hive at [linked_lz]."), xeno.hivenumber, XENO_GENERAL_ANNOUNCE) + log_ares_flight("Unknown", "Remote launch signal for [shuttle.name] received. Authentication garbled.") + log_ares_security("Security Alert", "Remote launch signal for [shuttle.name] received. Authentication garbled.") return if(shuttle.destination.id != linked_lz) to_chat(xeno, "The shuttle not ready. The screen reads T-[shuttle.timeLeft(10)]. Have patience.") @@ -195,39 +211,50 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/attack_alien(mob/living/carbon/xenomorph/xeno) - if(!is_ground_level(z)) - to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but you can't comprehend their meaning.")) - playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, 1) - return + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) + // If the attacking xeno isn't the queen. if(xeno.hive_pos != XENO_QUEEN) + // If the 'about to launch' alarm is playing, a xeno can whack the computer to stop it. + if(dropship.playing_launch_announcement_alarm) + stop_playing_launch_announcement_alarm() + xeno.animation_attack_on(src) + to_chat(xeno, SPAN_XENONOTICE("We slash at [src], silencing its squawking!")) + playsound(loc, 'sound/machines/terminal_shutdown.ogg', 20) + else + to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but we can't comprehend their meaning.")) + playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, TRUE) + return XENO_NONCOMBAT_ACTION + + if(!is_ground_level(z)) + // "you" rather than "we" for this one since non-queen castes will have returned above. to_chat(xeno, SPAN_NOTICE("Lights flash from the terminal but you can't comprehend their meaning.")) - playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, 1) - return + playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, TRUE) + return XENO_NONCOMBAT_ACTION if(is_remote) groundside_alien_action(xeno) return - var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) if(dropship.is_hijacked) return // door controls being overriden if(!dropship_control_lost) - to_chat(xeno, SPAN_XENONOTICE("You override the doors.")) - xeno_message(SPAN_XENOANNOUNCE("The doors of the metal bird have been overridden! Rejoice!"), 3, xeno.hivenumber) dropship.control_doors("unlock", "all", TRUE) dropship_control_lost = TRUE - door_control_cooldown = addtimer(CALLBACK(src, PROC_REF(remove_door_lock)), SHUTTLE_LOCK_COOLDOWN, TIMER_STOPPABLE) - notify_ghosts(header = "Dropship Locked", message = "[xeno] has locked [dropship]!", source = xeno, action = NOTIFY_ORBIT) - - if(almayer_orbital_cannon) - almayer_orbital_cannon.is_disabled = TRUE - addtimer(CALLBACK(almayer_orbital_cannon, TYPE_PROC_REF(/obj/structure/orbital_cannon, enable)), 10 MINUTES, TIMER_UNIQUE) - + door_control_cooldown = addtimer(CALLBACK(src, PROC_REF(remove_door_lock)), SHUTTLE_LOCK_COOLDOWN, TIMER_STOPPABLE|TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_NO_HASH_WAIT) + if(GLOB.almayer_orbital_cannon) + GLOB.almayer_orbital_cannon.is_disabled = TRUE + addtimer(CALLBACK(GLOB.almayer_orbital_cannon, TYPE_PROC_REF(/obj/structure/orbital_cannon, enable)), 10 MINUTES, TIMER_UNIQUE) if(!GLOB.resin_lz_allowed) set_lz_resin_allowed(TRUE) + stop_playing_launch_announcement_alarm() + + to_chat(xeno, SPAN_XENONOTICE("You override the doors.")) + xeno_message(SPAN_XENOANNOUNCE("The doors of the metal bird have been overridden! Rejoice!"), 3, xeno.hivenumber) + message_admins("[key_name(xeno)] has locked the dropship '[dropship]'", xeno.x, xeno.y, xeno.z) + notify_ghosts(header = "Dropship Locked", message = "[xeno] has locked [dropship]!", source = xeno, action = NOTIFY_ORBIT) return if(dropship_control_lost) @@ -248,11 +275,10 @@ return /obj/structure/machinery/computer/shuttle/dropship/flight/proc/hijack(mob/user, force = FALSE) - // select crash location var/turf/source_turf = get_turf(src) var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttleId) - var/result = tgui_input_list(user, "Where to 'land'?", "Dropship Hijack", almayer_ship_sections , timeout = 10 SECONDS) + var/result = tgui_input_list(user, "Where to 'land'?", "Dropship Hijack", GLOB.almayer_ship_sections , timeout = 10 SECONDS) if(!result) return if(!user.Adjacent(source_turf) && !force) @@ -272,8 +298,7 @@ GLOB.alt_ctrl_disabled = TRUE marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY) - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") + log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") var/mob/living/carbon/xenomorph/xeno = user var/hivenumber = XENO_HIVE_NORMAL @@ -281,7 +306,14 @@ hivenumber = xeno.hivenumber xeno_message(SPAN_XENOANNOUNCE("The Queen has commanded the metal bird to depart for the metal hive in the sky! Rejoice!"), 3, hivenumber) xeno_message(SPAN_XENOANNOUNCE("The hive swells with power! You will now steadily gain pooled larva over time."), 2, hivenumber) - GLOB.hive_datum[hivenumber].abandon_on_hijack() + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] + hive.abandon_on_hijack() + var/original_evilution = hive.evolution_bonus + hive.override_evilution(XENO_HIJACK_EVILUTION_BUFF, TRUE) + if(hive.living_xeno_queen) + var/datum/action/xeno_action/onclick/grow_ovipositor/ovi_ability = get_xeno_action_by_type(hive.living_xeno_queen, /datum/action/xeno_action/onclick/grow_ovipositor) + ovi_ability.reduce_cooldown(ovi_ability.xeno_cooldown) + addtimer(CALLBACK(hive, TYPE_PROC_REF(/datum/hive_status, override_evilution), original_evilution, FALSE), XENO_HIJACK_EVILUTION_TIME) // Notify the yautja too so they stop the hunt message_all_yautja("The serpent Queen has commanded the landing shuttle to depart.") @@ -298,6 +330,7 @@ playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) dropship_control_lost = FALSE if(door_control_cooldown) + deltimer(door_control_cooldown) door_control_cooldown = null /obj/structure/machinery/computer/shuttle/dropship/flight/ui_data(mob/user) @@ -317,13 +350,24 @@ .["primary_lz"] = SSticker.mode.active_lz?.linked_lz if(shuttle.destination) .["target_destination"] = shuttle.in_flyby? "Flyby" : shuttle.destination.name - .["destinations"] = list() .["door_status"] = is_remote ? list() : shuttle.get_door_data() - - .["flight_configuration"] = is_set_flyby ? "flyby" : "ferry" .["has_flyby_skill"] = skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT) + // Launch Alarm Variables + .["playing_launch_announcement_alarm"] = shuttle.playing_launch_announcement_alarm + + .["destinations"] = list() + // add flight + .["destinations"] += list( + list( + "id" = DROPSHIP_FLYBY_ID, + "name" = "Flyby", + "available" = TRUE, + "error" = FALSE + ) + ) + for(var/obj/docking_port/stationary/dock in compatible_landing_zones) var/dock_reserved = FALSE for(var/obj/docking_port/mobile/other_shuttle in SSshuttle.mobile) @@ -352,42 +396,45 @@ to_chat(user, SPAN_WARNING("The dropship isn't responding to controls.")) return - var/datum/ares_link/link = GLOB.ares_link switch(action) if("move") if(shuttle.mode != SHUTTLE_IDLE && (shuttle.mode != SHUTTLE_CALL && !shuttle.destination)) to_chat(usr, SPAN_WARNING("You can't move to a new destination right now.")) return TRUE - if(is_set_flyby && !skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) - to_chat(user, SPAN_WARNING("You don't have the skill to perform a flyby.")) - return FALSE var/is_optimised = FALSE // automatically apply optimisation if user is a pilot if(skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) is_optimised = TRUE - update_equipment(is_optimised) - if(is_set_flyby) + + var/dock_id = params["target"] + if(dock_id == DROPSHIP_FLYBY_ID) + if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)) + to_chat(user, SPAN_WARNING("You don't have the skill to perform a flyby.")) + return FALSE + update_equipment(is_optimised, TRUE) to_chat(user, SPAN_NOTICE("You begin the launch sequence for a flyby.")) - link.log_ares_flight(user.name, "Launched Dropship [shuttle.name] on a flyby.") + log_ares_flight(user.name, "Launched Dropship [shuttle.name] on a flyby.") var/log = "[key_name(user)] launched the dropship [src.shuttleId] on flyby." msg_admin_niche(log) log_interact(user, msg = "[log]") shuttle.send_for_flyby() + stop_playing_launch_announcement_alarm() return TRUE - var/dockId = params["target"] + + update_equipment(is_optimised, FALSE) var/list/local_data = ui_data(user) var/found = FALSE - playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + playsound(loc, get_sfx("terminal_button"), 5, 1) for(var/destination in local_data["destinations"]) - if(destination["id"] == dockId) + if(destination["id"] == dock_id) found = TRUE break if(!found) - log_admin("[key_name(user)] may be attempting a href dock exploit on [src] with target location \"[dockId]\"") - to_chat(user, SPAN_WARNING("The [dockId] dock is not available at this time.")) + log_admin("[key_name(user)] may be attempting a href dock exploit on [src] with target location \"[dock_id]\"") + to_chat(user, SPAN_WARNING("The [dock_id] dock is not available at this time.")) return - var/obj/docking_port/stationary/dock = SSshuttle.getDock(dockId) + var/obj/docking_port/stationary/dock = SSshuttle.getDock(dock_id) var/dock_reserved = FALSE for(var/obj/docking_port/mobile/other_shuttle in SSshuttle.mobile) if(dock == other_shuttle.destination) @@ -398,10 +445,11 @@ return TRUE SSshuttle.moveShuttle(shuttle.id, dock.id, TRUE) to_chat(user, SPAN_NOTICE("You begin the launch sequence to [dock].")) - link.log_ares_flight(user.name, "Launched Dropship [shuttle.name] on a flight to [dock].") + log_ares_flight(user.name, "Launched Dropship [shuttle.name] on a flight to [dock].") var/log = "[key_name(user)] launched the dropship [src.shuttleId] on transport." msg_admin_niche(log) log_interact(user, msg = "[log]") + stop_playing_launch_announcement_alarm() return TRUE if("button-push") playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) @@ -416,18 +464,6 @@ else playsound(loc, 'sound/machines/terminal_error.ogg', KEYBOARD_SOUND_VOLUME, 1) to_chat(user, SPAN_WARNING("Door controls have been overridden. Please call technical support.")) - if("set-ferry") - is_set_flyby = FALSE - link.log_ares_flight(user.name, "Set Dropship [shuttle.name] to transport runs.") - var/log = "[key_name(user)] set the dropship [src.shuttleId] into transport" - msg_admin_niche(log) - log_interact(user, msg = "[log]") - if("set-flyby") - is_set_flyby = TRUE - link.log_ares_flight(user.name, "Set Dropship [shuttle.name] to flyby runs.") - var/log = "[key_name(user)] set the dropship [src.shuttleId] into flyby." - msg_admin_niche(log) - log_interact(user, msg = "[log]") if("set-automate") var/almayer_lz = params["hangar_id"] var/ground_lz = params["ground_id"] @@ -447,7 +483,7 @@ shuttle.automated_lz_id = ground_lz shuttle.automated_delay = delay playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) - link.log_ares_flight(user.name, "Enabled autopilot for Dropship [shuttle.name].") + log_ares_flight(user.name, "Enabled autopilot for Dropship [shuttle.name].") var/log = "[key_name(user)] has enabled auto pilot on '[shuttle.name]'" message_admins(log) log_interact(user, msg = "[log]") @@ -464,7 +500,7 @@ shuttle.automated_lz_id = null shuttle.automated_delay = null playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) - link.log_ares_flight(user.name, "Disabled autopilot for Dropship [shuttle.name].") + log_ares_flight(user.name, "Disabled autopilot for Dropship [shuttle.name].") var/log = "[key_name(user)] has disabled auto pilot on '[shuttle.name]'" message_admins(log) log_interact(user, msg = "[log]") @@ -473,6 +509,23 @@ if("cancel-flyby") if(shuttle.in_flyby && shuttle.timer && shuttle.timeLeft(1) >= DROPSHIP_WARMUP_TIME) shuttle.setTimer(DROPSHIP_WARMUP_TIME) + if("play_launch_announcement_alarm") + if (shuttle.mode != SHUTTLE_IDLE && shuttle.mode != SHUTTLE_RECHARGING) + to_chat(usr, SPAN_WARNING("The Launch Announcement Alarm is designed to tell people that you're going to take off soon.")) + return + shuttle.alarm_sound_loop.start() + shuttle.playing_launch_announcement_alarm = TRUE + return + if ("stop_playing_launch_announcement_alarm") + stop_playing_launch_announcement_alarm() + return + +/obj/structure/machinery/computer/shuttle/dropship/flight/proc/stop_playing_launch_announcement_alarm() + var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) + + shuttle.alarm_sound_loop.stop() + shuttle.playing_launch_announcement_alarm = FALSE + return /obj/structure/machinery/computer/shuttle/dropship/flight/lz1 icon = 'icons/obj/structures/machinery/computer.dmi' diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index 6f9292cfc048..c45ac7d56102 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -12,6 +12,7 @@ unslashable = TRUE unacidable = TRUE var/pod_state = STATE_IDLE + var/launch_without_evac = FALSE /obj/structure/machinery/computer/shuttle/escape_pod_panel/ex_act(severity) return FALSE @@ -56,6 +57,7 @@ .["door_state"] = door.density .["door_lock"] = shuttle.door_handler.is_locked .["can_delay"] = TRUE//launch_status[2] + .["launch_without_evac"] = launch_without_evac /obj/structure/machinery/computer/shuttle/escape_pod_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) @@ -66,7 +68,7 @@ var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle = SSshuttle.getShuttle(shuttleId) switch(action) if("force_launch") - if(pod_state != STATE_READY && pod_state != STATE_DELAYED) + if(!launch_without_evac && pod_state != STATE_READY && pod_state != STATE_DELAYED) return shuttle.evac_launch() @@ -83,6 +85,9 @@ shuttle.door_handler.control_doors("force-lock-launch") . = TRUE +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison + launch_without_evac = TRUE + //========================================================================================= //================================Evacuation Sleeper======================================= //========================================================================================= @@ -92,14 +97,19 @@ unslashable = TRUE unacidable = TRUE time_till_despawn = 6000000 //near infinite so despawn never occurs. + /// The name of the mob who injected the occupant into the pod. If it does not match the occupant, the occupant can leave. + var/injector_name var/being_forced = 0 //Simple variable to prevent sound spam. var/dock_state = STATE_IDLE /obj/structure/machinery/cryopod/evacuation/ex_act(severity) return FALSE -/obj/structure/machinery/cryopod/evacuation/attackby(obj/item/grab/G, mob/user) - if(istype(G)) +/obj/structure/machinery/cryopod/evacuation/attackby(obj/item/grab/the_grab, mob/user) + if(istype(the_grab)) + if(user.is_mob_incapacitated() || !(ishuman(user))) + return FALSE + if(being_forced) to_chat(user, SPAN_WARNING("There's something forcing it open!")) return FALSE @@ -112,16 +122,20 @@ to_chat(user, SPAN_WARNING("The cryo pod is not responding to commands!")) return FALSE - var/mob/living/carbon/human/M = G.grabbed_thing - if(!istype(M)) + var/mob/living/carbon/human/grabbed_mob = the_grab.grabbed_thing + if(!istype(grabbed_mob)) + return FALSE + if(grabbed_mob.stat == DEAD) //This mob is dead + to_chat(user, SPAN_WARNING("[src] immediately rejects [grabbed_mob]. \He passed away!")) return FALSE - visible_message(SPAN_WARNING("[user] starts putting [M.name] into the cryo pod."), null, null, 3) + visible_message(SPAN_WARNING("[user] starts putting [grabbed_mob.name] into the cryo pod."), null, null, 3) if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - if(!M || !G || !G.grabbed_thing || !G.grabbed_thing.loc || G.grabbed_thing != M) + if(!grabbed_mob || !the_grab || !the_grab.grabbed_thing || !the_grab.grabbed_thing.loc || the_grab.grabbed_thing != grabbed_mob) return FALSE - move_mob_inside(M) + move_mob_inside(grabbed_mob) + injector_name = user.real_name /obj/structure/machinery/cryopod/evacuation/eject() set name = "Eject Pod" @@ -131,17 +145,24 @@ if(!occupant || !usr.stat || usr.is_mob_restrained()) return FALSE - if(occupant) //Once you're in, you cannot exit, and outside forces cannot eject you. - //The occupant is actually automatically ejected once the evac is canceled. - if(occupant != usr) to_chat(usr, SPAN_WARNING("You are unable to eject the occupant unless the evacuation is canceled.")) - add_fingerprint(usr) + //Once you're in, you cannot exit, and outside forces cannot eject you. + //The occupant is actually automatically ejected once the evac is canceled. + if(occupant != usr) + to_chat(usr, SPAN_WARNING("You are unable to eject the occupant unless the evacuation is canceled.")) + return FALSE + if(occupant.real_name != injector_name) + go_out() + else + to_chat(usr, SPAN_WARNING("You are unable to leave the [src] until evacuation completes, or is cancelled!.")) + return FALSE /obj/structure/machinery/cryopod/evacuation/go_out() //When the system ejects the occupant. if(occupant) occupant.forceMove(get_turf(src)) occupant.in_stasis = FALSE occupant = null + injector_name = null icon_state = orient_right ? "body_scanner_open-r" : "body_scanner_open" /obj/structure/machinery/cryopod/evacuation/move_inside() @@ -171,6 +192,7 @@ if(do_after(user, 20, INTERRUPT_NO_NEEDHAND, BUSY_ICON_GENERIC)) user.stop_pulling() move_mob_inside(user) + injector_name = user.real_name /obj/structure/machinery/cryopod/evacuation/attack_alien(mob/living/carbon/xenomorph/user) if(being_forced) @@ -204,14 +226,15 @@ /obj/structure/machinery/door/airlock/evacuation name = "\improper Evacuation Airlock" icon = 'icons/obj/structures/doors/pod_doors.dmi' - heat_proof = 1 unslashable = TRUE unacidable = TRUE var/obj/docking_port/mobile/crashable/escape_shuttle/linked_shuttle + var/start_locked = TRUE /obj/structure/machinery/door/airlock/evacuation/Initialize() . = ..() - INVOKE_ASYNC(src, PROC_REF(lock)) + if(start_locked) + INVOKE_ASYNC(src, PROC_REF(lock)) /obj/structure/machinery/door/airlock/evacuation/Destroy() if(linked_shuttle) @@ -250,3 +273,6 @@ if(!density) return -1 return ..() + +/obj/structure/machinery/door/airlock/evacuation/liaison + start_locked = FALSE diff --git a/code/modules/shuttle/computers/trijent_elevator_control.dm b/code/modules/shuttle/computers/trijent_elevator_control.dm index 290d0c94b33d..41c3456a1fe0 100644 --- a/code/modules/shuttle/computers/trijent_elevator_control.dm +++ b/code/modules/shuttle/computers/trijent_elevator_control.dm @@ -1,8 +1,6 @@ /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call name = "\improper Elevator Call" desc = "Control panel for the elevator" - icon = 'icons/obj/structures/machinery/computer.dmi' - icon_state = "elevator_screen" shuttleId = MOBILE_TRIJENT_ELEVATOR is_call = TRUE var/dockId @@ -10,6 +8,13 @@ /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/get_landing_zones() return list(SSshuttle.getDock(dockId)) + +/obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/occupied + dockId = STAT_TRIJENT_OCCUPIED + +/obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/empty + dockId = STAT_TRIJENT_EMPTY + /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/lz1 dockId = STAT_TRIJENT_LZ1 @@ -38,8 +43,15 @@ /obj/structure/machinery/computer/shuttle/elevator_controller/proc/get_landing_zones() . = list() + var/obj/docking_port/mobile/trijent_elevator/shuttle = SSshuttle.getShuttle(shuttleId) + for(var/obj/docking_port/stationary/trijent_elevator/elev in SSshuttle.stationary) - . += list(elev) + if(!shuttle.elevator_network) + . += list(elev) + continue + if(shuttle.elevator_network == elev.elevator_network) + . += list(elev) + continue /obj/structure/machinery/computer/shuttle/elevator_controller/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm index 7796ed0510c8..c01445be5b5b 100644 --- a/code/modules/shuttle/dropship_hijack.dm +++ b/code/modules/shuttle/dropship_hijack.dm @@ -10,7 +10,7 @@ /datum/dropship_hijack/almayer/proc/crash_landing() //break APCs - for(var/obj/structure/machinery/power/apc/A in machines) + for(var/obj/structure/machinery/power/apc/A in GLOB.machines) if(A.z != crash_site.z) continue if(prob(A.crash_break_probability)) @@ -50,28 +50,21 @@ // Break the ultra-reinforced windows. // Break the briefing windows. - for(var/i in GLOB.hijack_bustable_windows) - var/obj/structure/window/H = i - H.deconstruct(FALSE) - - for(var/k in GLOB.hijack_bustable_ladders) - var/obj/structure/ladder/fragile_almayer/L = k - L.deconstruct() - - // Delete the briefing door(s). - for(var/D in GLOB.hijack_deletable_windows) - qdel(D) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_IMPACTED) + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(finish_landing)) // Sleep while the explosions do their job var/explosion_alive = TRUE while(explosion_alive) explosion_alive = FALSE - for(var/datum/automata_cell/explosion/E in cellauto_cells) + for(var/datum/automata_cell/explosion/E in GLOB.cellauto_cells) if(E.explosion_cause_data && E.explosion_cause_data.cause_name == "dropship crash") explosion_alive = TRUE break sleep(10) +/datum/dropship_hijack/almayer/proc/finish_landing() + SShijack.announce_status_on_crash() SSticker.hijack_ocurred() /datum/dropship_hijack/almayer/proc/fire() @@ -79,8 +72,8 @@ return FALSE shuttle.callTime = DROPSHIP_CRASH_TRANSIT_DURATION * GLOB.ship_alt SSshuttle.moveShuttle(shuttle.id, crash_site.id, TRUE) - if(round_statistics) - round_statistics.track_hijack() + if(GLOB.round_statistics) + GLOB.round_statistics.track_hijack() return TRUE /datum/dropship_hijack/almayer/proc/target_crash_site(ship_section) @@ -114,8 +107,8 @@ return // if the AA site matches target site - if(target_ship_section == almayer_aa_cannon.protecting_section) - var/list/remaining_crash_sites = almayer_ship_sections.Copy() + if(target_ship_section == GLOB.almayer_aa_cannon.protecting_section) + var/list/remaining_crash_sites = GLOB.almayer_ship_sections.Copy() remaining_crash_sites -= target_ship_section var/new_target_ship_section = pick(remaining_crash_sites) var/turf/target = get_crashsite_turf(new_target_ship_section) @@ -172,7 +165,7 @@ playsound_z(SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP)), 'sound/effects/dropship_crash.ogg', volume = 75) /datum/dropship_hijack/almayer/proc/disable_latejoin() - enter_allowed = FALSE + GLOB.enter_allowed = FALSE /datum/dropship_hijack/almayer/proc/get_crashsite_turf(ship_section) var/list/turfs = list() @@ -219,7 +212,7 @@ turfs += get_area_turfs(/area/almayer/squads/req) if("Lower deck Aftship") turfs += get_area_turfs(/area/almayer/living/cryo_cells) - turfs += get_area_turfs(/area/almayer/engineering/engineering_workshop) + turfs += get_area_turfs(/area/almayer/engineering/lower/workshop) else CRASH("Crash site [ship_section] unknown.") return pick(turfs) diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm index 1d841581faa0..6b29f155582e 100644 --- a/code/modules/shuttle/helpers.dm +++ b/code/modules/shuttle/helpers.dm @@ -117,21 +117,20 @@ var/list/door_turfs = list(get_turf(air)) if(istype(air, /obj/structure/machinery/door/airlock/multi_tile)) var/obj/structure/machinery/door/airlock/multi_tile/multi_door = air - door_turfs = multi_door.get_filler_turfs() + door_turfs = multi_door.locate_filler_turfs() for(var/turf/door_turf in door_turfs) bump_at_turf(door_turf) lockdown_door(air) /datum/door_controller/single/proc/bump_at_turf(turf/door_turf) - for(var/mob/blocking_mob in door_turf) - if(isliving(blocking_mob)) - to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the [label] doors slam shut!")) - blocking_mob.apply_effect(4, WEAKEN) - for(var/turf/target_turf in orange(1, door_turf)) // Forcemove to a non shuttle turf - if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) - blocking_mob.forceMove(target_turf) - break + for(var/mob/living/blocking_mob in door_turf) + to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the [label] doors slam shut!")) + blocking_mob.KnockDown(4) + for(var/turf/target_turf in orange(1, door_turf)) // Forcemove to a non shuttle turf + if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) + blocking_mob.forceMove(target_turf) + break /datum/door_controller/proc/lockdown_door(obj/structure/machinery/door/target) if(istype(target, /obj/structure/machinery/door/airlock)) diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index d834822e884a..5fe3a7989898 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -184,11 +184,11 @@ All ShuttleMove procs go here . = ..() if(. & MOVE_AREA) . |= MOVE_CONTENTS - cameranet.removeCamera(src) + GLOB.cameranet.removeCamera(src) /obj/structure/machinery/camera/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() - cameranet.addCamera(src) + GLOB.cameranet.addCamera(src) /obj/structure/machinery/atmospherics/pipe/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) . = ..() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 983fffeb2634..85fc38bf5f1b 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -268,9 +268,7 @@ if(!roundstart_template) CRASH("json_key:[json_key] value \[[sid]\] resulted in a null shuttle template for [src]") else if(roundstart_template) // passed a PATH - var/sid = "[initial(roundstart_template.shuttle_id)]" - - roundstart_template = SSmapping.shuttle_templates[sid] + roundstart_template = SSmapping.all_shuttle_templates[roundstart_template] if(!roundstart_template) CRASH("Invalid path ([roundstart_template]) passed to docking port.") @@ -345,6 +343,9 @@ var/rechargeTime = 0 //time spent after arrival before being able to launch again var/prearrivalTime = 0 //delay after call time finishes for sound effects, explosions, etc. + var/playing_launch_announcement_alarm = FALSE // FALSE = off ; TRUE = on + var/datum/looping_sound/looping_launch_announcement_alarm/alarm_sound_loop + var/landing_sound = 'sound/effects/engine_landing.ogg' var/ignition_sound = 'sound/effects/engine_startup.ogg' /// Default shuttle audio ambience while flying @@ -385,6 +386,7 @@ /obj/docking_port/mobile/Destroy(force) if(force) + QDEL_NULL(alarm_sound_loop) SSshuttle.mobile -= src destination = null previous = null @@ -412,6 +414,14 @@ initial_engines = count_engines() current_engines = initial_engines + //Launch Announcement Alarm variables setup + alarm_sound_loop = new(src) + alarm_sound_loop.mid_length = 20 + alarm_sound_loop.extra_range = 30 + alarm_sound_loop.volume = 100 + alarm_sound_loop.is_sound_projecting = TRUE + alarm_sound_loop.falloff_distance = 7 + #ifdef DOCKING_PORT_HIGHLIGHT highlight("#0f0") #endif @@ -433,7 +443,7 @@ // Called after the shuttle is loaded from template /obj/docking_port/mobile/proc/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) var/list/static/shuttle_id = list() - var/idnum = ++shuttle_id[template] + var/idnum = ++shuttle_id[id] if(idnum > 1) if(id == initial(id)) id = "[id][idnum]" diff --git a/code/modules/shuttle/shuttles.md b/code/modules/shuttle/shuttles.md index 373e18b44953..f800303414d2 100644 --- a/code/modules/shuttle/shuttles.md +++ b/code/modules/shuttle/shuttles.md @@ -16,3 +16,28 @@ Shuttle map templates are used to define what the shuttle should look like. When defining the shuttle dimensions, define the height/width as if it was orienting north. The subsystem will properly line everything up, this allows for stationary docks to be in different orientations to their defined map template. A shuttle has a height, width, dheight and dwidth. The height and width is the size of the shuttle, with respect to its direction. If the template direction is North/South then width is your X coordinate and height is your Y. If the template direction is East/West then width is your Y direction and height is your X. On stationary docking ports, you can specify dwidth and dheight (auto generated for mobile), these are offsets for how your shuttle should land on the site. When a mobile port lands on a stationary port it wants to place the bottom left of the shuttle turfs on the stationary port. The dwidth/dheight allows you to offset this. + + +# Generic Elevator Shuttle + +The elevator used on Trijent (DesertDam) can be used in any map and multiple can exist on one map. + +Do not modify the trident shuttle map. You can code in elevators from the following two docking ports (where the elevator can go): + +- /obj/docking_port/stationary/trijent_elevator/occupied +- /obj/docking_port/stationary/trijent_elevator/empty + +An occupied stationary port will start the map with an elevator and an empty one will not. +All docking ports are, by default, linked together. One elevator can go to all docking ports. +To limit access between docking ports you can use tags. + +To setup an elevator: +- place the docking port where you want the elevator to sit +- give the docking port instance a unique ID +- give the docking port instance a unique Name +- make sure the door direction is correct west/east +- give the docking port shuttle_area the area name for where it sits +- if you want to build a docking port 'network' then change the roudnstart_template to a subclass +- if you want to assign a docking port to a 'network' then give it a value in "tag" + +If things are unclear, look at trident. It has two elevator networks. diff --git a/code/modules/shuttle/shuttles/crashable/crashable.dm b/code/modules/shuttle/shuttles/crashable/crashable.dm index de1c5cc8e4fb..f07be5f0c93a 100644 --- a/code/modules/shuttle/shuttles/crashable/crashable.dm +++ b/code/modules/shuttle/shuttles/crashable/crashable.dm @@ -26,7 +26,7 @@ found_turf.ChangeTurf(/turf/open/floor) for(var/mob/current_mob as anything in get_mobs_in_z_level_range(destination.return_center_turf(), 18)) - var/relative_dir = get_dir(current_mob, destination.return_center_turf()) + var/relative_dir = Get_Compass_Dir(current_mob, destination.return_center_turf()) var/final_dir = dir2text(relative_dir) to_chat(current_mob, SPAN_HIGHDANGER("You hear something crashing down from above [final_dir ? "to the [final_dir]" : "nearby"]!")) diff --git a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm index 6029d345b6d7..c2c6b818b37b 100644 --- a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm +++ b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm @@ -11,7 +11,7 @@ /// The % chance of the escape pod crashing into the groundmap before lifeboats leaving var/early_crash_land_chance = 75 /// The % chance of the escape pod crashing into the groundmap - var/crash_land_chance = 25 + var/crash_land_chance = 0 /// How many people can be in the escape pod before it crashes var/max_capacity = 3 @@ -73,6 +73,8 @@ for(var/mob/living/occupant in interior_area) occupant_count++ for(var/obj/structure/machinery/cryopod/evacuation/cryotube in interior_area) + if(cryotube.occupant) + occupant_count++ cryos += list(cryotube) if (occupant_count > max_capacity) playsound(src,'sound/effects/escape_pod_warmup.ogg', 50, 1) @@ -103,7 +105,7 @@ /obj/docking_port/mobile/crashable/escape_shuttle/crash_check() . = ..() - if(prob((EvacuationAuthority.evac_status >= EVACUATION_STATUS_IN_PROGRESS ? crash_land_chance : early_crash_land_chance))) + if(prob((SShijack.hijack_status >= HIJACK_OBJECTIVES_COMPLETE ? crash_land_chance : early_crash_land_chance))) return TRUE /obj/docking_port/mobile/crashable/escape_shuttle/open_doors() @@ -124,8 +126,8 @@ id = ESCAPE_SHUTTLE_EAST_CL width = 4 height = 5 - early_crash_land_chance = 25 - crash_land_chance = 5 + early_crash_land_chance = 0 + crash_land_chance = 0 /obj/docking_port/mobile/crashable/escape_shuttle/w id = ESCAPE_SHUTTLE_WEST diff --git a/code/modules/shuttle/shuttles/crashable/lifeboats.dm b/code/modules/shuttle/shuttles/crashable/lifeboats.dm index 93489ee4a359..415a628be6e5 100644 --- a/code/modules/shuttle/shuttles/crashable/lifeboats.dm +++ b/code/modules/shuttle/shuttles/crashable/lifeboats.dm @@ -47,14 +47,16 @@ set_mode(SHUTTLE_IGNITING) on_ignition() setTimer(ignitionTime) + alarm_sound_loop.stop() + playing_launch_announcement_alarm = FALSE /obj/docking_port/mobile/crashable/lifeboat/crash_check() . = ..() - if(EvacuationAuthority.evac_status >= EVACUATION_STATUS_IN_PROGRESS) + if(SShijack.hijack_status >= HIJACK_OBJECTIVES_COMPLETE) return FALSE - if(prob(abs(((world.time - EvacuationAuthority.evac_time) / EVACUATION_AUTOMATIC_DEPARTURE) - 1) * 100)) + if(prob(abs((SShijack.current_progress - SShijack.required_progress) / SShijack.required_progress) * 100)) return TRUE /obj/docking_port/mobile/crashable/lifeboat/open_doors() @@ -100,6 +102,8 @@ /obj/docking_port/stationary/lifeboat_dock/proc/close_dock() var/obj/docking_port/mobile/crashable/lifeboat/docked_shuttle = get_docked() + if(docked_shuttle.status == LIFEBOAT_LOCKED) + return if(docked_shuttle) for(var/obj/structure/machinery/door/airlock/multi_tile/door in docked_shuttle.doors) INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat, close_and_lock)) diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index d81484b0343d..f741df301bbb 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -30,6 +30,7 @@ var/automated_delay var/automated_timer + /obj/docking_port/mobile/marine_dropship/Initialize(mapload) . = ..() door_control = new() @@ -43,15 +44,28 @@ if("aft_door") door_control.add_door(air, "aft") + RegisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(add_equipment)) + RegisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(remove_equipment)) + /obj/docking_port/mobile/marine_dropship/Destroy(force) . = ..() qdel(door_control) + UnregisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT) + UnregisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT) /obj/docking_port/mobile/marine_dropship/proc/send_for_flyby() in_flyby = TRUE var/obj/docking_port/stationary/dockedAt = get_docked() SSshuttle.moveShuttle(src.id, dockedAt.id, TRUE) +/obj/docking_port/mobile/marine_dropship/proc/add_equipment(obj/docking_port/mobile/marine_dropship/dropship, obj/structure/dropship_equipment/equipment) + SIGNAL_HANDLER + equipments += equipment + +/obj/docking_port/mobile/marine_dropship/proc/remove_equipment(obj/docking_port/mobile/marine_dropship/dropship, obj/structure/dropship_equipment/equipment) + SIGNAL_HANDLER + equipments -= equipment + /obj/docking_port/mobile/marine_dropship/proc/get_door_data() return door_control.get_data() @@ -100,17 +114,19 @@ var/name = "Unidentified Lifesigns" var/input = "Unidentified lifesigns detected onboard. Recommendation: lockdown of exterior access ports, including ducting and ventilation." - shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg') + shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg', ares_logging = ARES_LOG_SECURITY) set_security_level(SEC_LEVEL_RED) return /obj/docking_port/mobile/marine_dropship/alamo name = "Alamo" id = DROPSHIP_ALAMO + preferred_direction = SOUTH /obj/docking_port/mobile/marine_dropship/normandy name = "Normandy" id = DROPSHIP_NORMANDY + preferred_direction = SOUTH /obj/docking_port/mobile/marine_dropship/check() . = ..() @@ -234,8 +250,8 @@ /obj/docking_port/stationary/marine_dropship/on_departure(obj/docking_port/mobile/departing_shuttle) . = ..() turn_off_landing_lights() - var/obj/docking_port/mobile/marine_dropship/shuttle = departing_shuttle - for(var/obj/structure/dropship_equipment/eq as anything in shuttle.equipments) + var/obj/docking_port/mobile/marine_dropship/dropship = departing_shuttle + for(var/obj/structure/dropship_equipment/eq as anything in dropship.equipments) eq.on_launch() /obj/docking_port/stationary/marine_dropship/lz1 @@ -284,6 +300,7 @@ affected_mob.apply_effect(3, WEAKEN) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_LANDED) /datum/map_template/shuttle/alamo name = "Alamo" diff --git a/code/modules/shuttle/shuttles/ert.dm b/code/modules/shuttle/shuttles/ert.dm index 1760caf3d87c..b619645c501c 100644 --- a/code/modules/shuttle/shuttles/ert.dm +++ b/code/modules/shuttle/shuttles/ert.dm @@ -61,14 +61,13 @@ INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door) /obj/docking_port/mobile/emergency_response/proc/lockdown_door_launch(obj/structure/machinery/door/airlock/air) - for(var/mob/blocking_mob in air.loc) // Bump all mobs outta the way for outside airlocks of shuttles - if(isliving(blocking_mob)) - to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) - blocking_mob.apply_effect(4, WEAKEN) - for(var/turf/target_turf in orange(1, air)) // Forcemove to a non shuttle turf - if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) - blocking_mob.forceMove(target_turf) - break + for(var/mob/living/blocking_mob in air.loc) // Bump all mobs outta the way for outside airlocks of shuttles + to_chat(blocking_mob, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) + blocking_mob.KnockDown(4) + for(var/turf/target_turf in orange(1, air)) // Forcemove to a non shuttle turf + if(!istype(target_turf, /turf/open/shuttle) && !istype(target_turf, /turf/closed/shuttle)) + blocking_mob.forceMove(target_turf) + break lockdown_door(air) /obj/docking_port/mobile/emergency_response/proc/lockdown_door(obj/structure/machinery/door/airlock/air) diff --git a/code/modules/shuttle/shuttles/trijent_elevator.dm b/code/modules/shuttle/shuttles/trijent_elevator.dm index 86ad6f7ef217..457c150212c0 100644 --- a/code/modules/shuttle/shuttles/trijent_elevator.dm +++ b/code/modules/shuttle/shuttles/trijent_elevator.dm @@ -19,6 +19,7 @@ movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) var/datum/door_controller/aggregate/door_control + var/elevator_network /obj/docking_port/mobile/trijent_elevator/Initialize(mapload, ...) . = ..() @@ -36,6 +37,12 @@ . = ..() door_control.control_doors("force-lock-launch", "all", force=TRUE) +/obj/docking_port/mobile/trijent_elevator/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) + ..() + var/datum/map_template/shuttle/trijent_elevator/elev = template + elevator_network = elev.elevator_network + log_debug("Adding network [elev.elevator_network] to [id]") + /obj/docking_port/stationary/trijent_elevator dir=NORTH width=7 @@ -43,6 +50,7 @@ // shutters to clear the area var/airlock_area var/airlock_exit + var/elevator_network /obj/docking_port/stationary/trijent_elevator/proc/get_doors() . = list() @@ -74,6 +82,17 @@ door_control.control_doors("force-lock-launch") qdel(door_control) +/obj/docking_port/stationary/trijent_elevator/occupied + name = "occupied" + id = STAT_TRIJENT_OCCUPIED + airlock_exit = "west" + roundstart_template = /datum/map_template/shuttle/trijent_elevator + +/obj/docking_port/stationary/trijent_elevator/empty + name = "empty" + id = STAT_TRIJENT_EMPTY + airlock_exit = "west" + /obj/docking_port/stationary/trijent_elevator/lz1 name="Lz1 Elevator" id=STAT_TRIJENT_LZ1 @@ -98,7 +117,3 @@ id=STAT_TRIJENT_OMEGA airlock_area=/area/shuttle/trijent_shuttle/omega airlock_exit="east" - -/datum/map_template/shuttle/trijent_elevator - name = "Trijent Elevator" - shuttle_id = MOBILE_TRIJENT_ELEVATOR diff --git a/code/modules/shuttle/vehicle_elevator.dm b/code/modules/shuttle/vehicle_elevator.dm index c9a051a261c5..d2e102933fd8 100644 --- a/code/modules/shuttle/vehicle_elevator.dm +++ b/code/modules/shuttle/vehicle_elevator.dm @@ -20,10 +20,10 @@ /obj/docking_port/mobile/vehicle_elevator/register() . = ..() SSshuttle.vehicle_elevator = src - for(var/obj/structure/machinery/gear/G in machines) + for(var/obj/structure/machinery/gear/G in GLOB.machines) if(G.id == "vehicle_elevator_gears") gears += G - for(var/obj/structure/machinery/door/poddoor/railing/R in machines) + for(var/obj/structure/machinery/door/poddoor/railing/R in GLOB.machines) if(R.id == "vehicle_elevator_railing") railings += R diff --git a/code/modules/shuttles/marine_ferry.dm b/code/modules/shuttles/marine_ferry.dm index 426d90c1457a..82c5b8e4403d 100644 --- a/code/modules/shuttles/marine_ferry.dm +++ b/code/modules/shuttles/marine_ferry.dm @@ -58,7 +58,7 @@ for(var/obj/vehicle/multitile/M in D.loc) if(M) return 0 - for(var/turf/T in D.get_filler_turfs()) + for(var/turf/T in D.locate_filler_turfs()) for(var/obj/vehicle/multitile/M in T) if(M) return 0 @@ -73,13 +73,6 @@ control.visible_message(SPAN_WARNING(fail_flavortext)) return //Kill it so as not to repeat -/datum/shuttle/ferry/marine/proc/load_datums() - if(!(info_tag in s_info)) - message_admins(SPAN_WARNING("Error with shuttles: Shuttle tag does not exist. Code: MSD10.\n WARNING: DROPSHIP LAUNCH WILL PROBABLY FAIL")) - - var/list/L = s_info[info_tag] - info_datums = L.Copy() - /datum/shuttle/ferry/marine/proc/set_automated_launch(bool_v) automated_launch = bool_v if(bool_v) @@ -102,8 +95,7 @@ automated_launch = FALSE automated_launch_timer = TIMER_ID_NULL ai_silent_announcement("Dropship '[name]' departing.") - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_flight("Automated", "Dropship [name] launched on an automatic flight.") + log_ares_flight("Automated", "Dropship [name] launched on an automatic flight.") /* @@ -230,7 +222,7 @@ if(X && X.stat != DEAD) var/name = "Unidentified Lifesigns" var/input = "Unidentified lifesigns detected onboard. Recommendation: lockdown of exterior access ports, including ducting and ventilation." - shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg') + shipwide_ai_announcement(input, name, 'sound/AI/unidentified_lifesigns.ogg', ares_logging = ARES_LOG_SECURITY) set_security_level(SEC_LEVEL_RED) break @@ -268,17 +260,11 @@ in_transit_time_left = 0 - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_IN_PROGRESS) - return FALSE //If a nuke is in progress, don't attempt a landing. - playsound_area(get_area(turfs_int[sound_target]), sound_landing, 100) playsound(turfs_trg[sound_target], sound_landing, 100) playsound_area(get_area(turfs_int[sound_target]), channel = SOUND_CHANNEL_AMBIENCE, status = SOUND_UPDATE) sleep(100) //Wait for it to finish. - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - return FALSE //If a nuke finished, don't land. - target_turf = T_trg target_rotation = trg_rot shuttle_turfs = turfs_int @@ -350,17 +336,17 @@ var/target_section = crash_target_section if(isnull(target_section)) - var/list/potential_crash_sections = almayer_ship_sections.Copy() - potential_crash_sections -= almayer_aa_cannon.protecting_section + var/list/potential_crash_sections = GLOB.almayer_ship_sections.Copy() + potential_crash_sections -= GLOB.almayer_aa_cannon.protecting_section target_section = pick(potential_crash_sections) - var/turf/T_trg = pick(shuttle_controller.locs_crash[target_section]) + var/turf/T_trg = pick(SSoldshuttle.shuttle_controller.locs_crash[target_section]) for(var/X in equipments) var/obj/structure/dropship_equipment/E = X if(istype(E, /obj/structure/dropship_equipment/adv_comp/docking)) var/list/crash_turfs = list() - for(var/turf/TU in shuttle_controller.locs_crash[target_section]) + for(var/turf/TU in SSoldshuttle.shuttle_controller.locs_crash[target_section]) if(istype(get_area(TU), /area/almayer/hallways/hangar)) crash_turfs += TU if(crash_turfs.len) T_trg = pick(crash_turfs) @@ -370,7 +356,7 @@ if(!istype(T_src) || !istype(T_int) || !istype(T_trg)) message_admins(SPAN_WARNING("Error with shuttles: Reference turfs not correctly instantiated. Code: MSD04.\n WARNING: DROPSHIP LAUNCH WILL FAIL")) - shuttle_controller.locs_crash[target_section] -= T_trg + SSoldshuttle.shuttle_controller.locs_crash[target_section] -= T_trg //END: Heavy lifting backend @@ -435,9 +421,6 @@ in_transit_time_left = 0 - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_IN_PROGRESS) - return FALSE //If a nuke is in progress, don't attempt a landing. - //This is where things change and shit gets real marine_announcement("DROPSHIP ON COLLISION COURSE. CRASH IMMINENT." , "EMERGENCY", 'sound/AI/dropship_emergency.ogg', logging = ARES_LOG_SECURITY) @@ -450,15 +433,12 @@ sleep(85) - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - return FALSE //If a nuke finished, don't land. - - if(security_level < SEC_LEVEL_RED) //automatically set security level to red. + if(GLOB.security_level < SEC_LEVEL_RED) //automatically set security level to red. set_security_level(SEC_LEVEL_RED, TRUE) shake_cameras(turfs_int) //shake for 1.5 seconds before crash, 0.5 after - for(var/obj/structure/machinery/power/apc/A in machines) //break APCs + for(var/obj/structure/machinery/power/apc/A in GLOB.machines) //break APCs if(A.z != T_trg.z) continue if(prob(A.crash_break_probability)) A.overload_lighting() @@ -474,23 +454,14 @@ // Break the ultra-reinforced windows. // Break the briefing windows. - for(var/i in GLOB.hijack_bustable_windows) - var/obj/structure/window/H = i - H.deconstruct(FALSE) - - for(var/k in GLOB.hijack_bustable_ladders) - var/obj/structure/ladder/fragile_almayer/L = k - L.deconstruct() - // Delete the briefing door(s). - for(var/D in GLOB.hijack_deletable_windows) - qdel(D) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_HIJACK_IMPACTED) // Sleep while the explosions do their job var/explosion_alive = TRUE while(explosion_alive) explosion_alive = FALSE - for(var/datum/automata_cell/explosion/E in cellauto_cells) + for(var/datum/automata_cell/explosion/E in GLOB.cellauto_cells) if(E.explosion_cause_data && E.explosion_cause_data.cause_name == "dropship crash") explosion_alive = TRUE break @@ -533,15 +504,15 @@ open_doors_crashed(turfs_trg) //And now open the doors - for (var/obj/structure/machinery/door_display/research_cell/d in machines) + for (var/obj/structure/machinery/door_display/research_cell/d in GLOB.machines) if(is_mainship_level(d.z) || is_reserved_level(d.z)) d.ion_act() //Breaking xenos out of containment //Stolen from events.dm. WARNING: This code is old as hell - for (var/obj/structure/machinery/power/apc/APC in machines) + for (var/obj/structure/machinery/power/apc/APC in GLOB.machines) if(is_mainship_level(APC.z) || is_reserved_level(APC.z)) APC.ion_act() - for (var/obj/structure/machinery/power/smes/SMES in machines) + for (var/obj/structure/machinery/power/smes/SMES in GLOB.machines) if(is_mainship_level(SMES.z) || is_reserved_level(SMES.z)) SMES.ion_act() @@ -558,7 +529,7 @@ colonial_marines.add_current_round_status_to_end_results("Hijack") /datum/shuttle/ferry/marine/proc/disable_latejoin() - enter_allowed = FALSE + GLOB.enter_allowed = FALSE /datum/shuttle/ferry/marine/short_jump() @@ -619,14 +590,13 @@ /datum/shuttle/ferry/marine/force_close_launch(obj/structure/machinery/door/AL) if(!iselevator) - for(var/mob/M in AL.loc) // Bump all mobs outta the way for outside airlocks of shuttles - if(isliving(M)) - to_chat(M, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) - M.apply_effect(4, WEAKEN) - for(var/turf/T in orange(1, AL)) // Forcemove to a non shuttle turf - if(!istype(T, /turf/open/shuttle) && !istype(T, /turf/closed/shuttle)) - M.forceMove(T) - break + for(var/mob/living/M in AL.loc) // Bump all mobs outta the way for outside airlocks of shuttles + to_chat(M, SPAN_HIGHDANGER("You get thrown back as the dropship doors slam shut!")) + M.KnockDown(4) + for(var/turf/T in orange(1, AL)) // Forcemove to a non shuttle turf + if(!istype(T, /turf/open/shuttle) && !istype(T, /turf/closed/shuttle)) + M.forceMove(T) + break return ..() // Sleeps /datum/shuttle/ferry/marine/open_doors(list/L) diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index a5911d18b3a2..dc6f3a682b24 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -29,8 +29,6 @@ var/iselevator = 0 //Used to remove some shuttle related procs and texts to make it compatible with elevators var/almayerelevator = 0 //elevators on the almayer without limitations - var/list/last_passangers = list() //list of living creatures that were our last passengers - var/require_link = FALSE var/linked = FALSE var/ambience_muffle = MUFFLE_HIGH @@ -202,9 +200,7 @@ origin.move_contents_to(destination, direction=direction) - last_passangers.Cut() - for(var/mob/M in destination) - last_passangers += M + for(var/mob/living/M in destination) if(M.client) spawn(0) if(M.buckled && !iselevator) @@ -215,17 +211,18 @@ shake_camera(M, iselevator? 2 : 10, 1) if(istype(M, /mob/living/carbon) && !iselevator) if(!M.buckled) - M.apply_effect(3, WEAKEN) + M.Stun(3) + M.KnockDown(3) for(var/turf/T in origin) // WOW so hacky - who cares. Abby if(iselevator) if(istype(T,/turf/open/space)) if(is_mainship_level(T.z)) - new /turf/open/floor/almayer/empty(T) + T.ChangeTurf(/turf/open/floor/almayer/empty) else - new /turf/open/gm/empty(T) + T.ChangeTurf(/turf/open/gm/empty) else if(istype(T,/turf/open/space)) - new /turf/open/floor/plating(T) + T.ChangeTurf(/turf/open/floor/plating) return diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 12356754872c..7fe9d04c91b2 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -33,7 +33,7 @@ GLOBAL_LIST_EMPTY(shuttle_controls) return ..() /obj/structure/machinery/computer/shuttle_control/proc/get_shuttle() - var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] + var/datum/shuttle/ferry/shuttle = SSoldshuttle.shuttle_controller.shuttles[shuttle_tag] if(shuttle_datum) shuttle = shuttle_datum @@ -79,17 +79,15 @@ GLOBAL_LIST_EMPTY(shuttle_controls) if(!isxeno(user) && (onboard || is_ground_level(z)) && !shuttle.iselevator) if(shuttle.queen_locked) if(onboard && skillcheck(user, SKILL_PILOT, SKILL_PILOT_TRAINED)) - user.visible_message(SPAN_NOTICE("[user] starts to type on the [src]."), - SPAN_NOTICE("You try to take back the control over the shuttle. It will take around 3 minutes.")) + user.visible_message(SPAN_NOTICE("[user] starts to type on [src]."), + SPAN_NOTICE("You try to take back the control over the shuttle. It will take around 3 minutes.")) if(do_after(user, 3 MINUTES, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) - if(user.lying) - return 0 shuttle.last_locked = world.time shuttle.queen_locked = 0 shuttle.last_door_override = world.time shuttle.door_override = 0 - user.visible_message(SPAN_NOTICE("The [src] blinks with blue lights."), - SPAN_NOTICE("You have successfully taken back the control over the dropship.")) + user.visible_message(SPAN_NOTICE("[src] blinks with blue lights."), + SPAN_NOTICE("You have successfully taken back the control over the dropship.")) ui_interact(user) return else @@ -108,13 +106,13 @@ GLOBAL_LIST_EMPTY(shuttle_controls) shuttle.door_override = 0 if(link && !shuttle.linked) - user.visible_message(SPAN_NOTICE("The [src] blinks with blue lights."), - SPAN_NOTICE("Transport link activated.")) + user.visible_message(SPAN_NOTICE("[src] blinks with blue lights."), + SPAN_NOTICE("Transport link activated.")) shuttle.linked = TRUE if(shuttle.require_link && !shuttle.linked) - user.visible_message(SPAN_NOTICE("The [src] blinks with red lights."), - SPAN_WARNING("Transport terminal unlinked. Manual activation required.")) + user.visible_message(SPAN_NOTICE("[src] blinks with red lights."), + SPAN_WARNING("Transport terminal unlinked. Manual activation required.")) return ui_interact(user) @@ -203,7 +201,7 @@ GLOBAL_LIST_EMPTY(shuttle_controls) "auto_time_cdown" = automated_launch_time_left, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui = SSnano.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, shuttle.iselevator? "elevator_control_console.tmpl" : "shuttle_control_console.tmpl", shuttle.iselevator? "Elevator Control" : "Shuttle Control", 550, 500) @@ -262,7 +260,7 @@ GLOBAL_LIST_EMPTY(shuttle_controls) return // Allow the queen to choose the ship section to crash into - var/crash_target = tgui_input_list(usr, "Choose a ship section to target","Hijack", almayer_ship_sections + list("Cancel")) + var/crash_target = tgui_input_list(usr, "Choose a ship section to target","Hijack", GLOB.almayer_ship_sections + list("Cancel")) if(crash_target == "Cancel") return @@ -280,21 +278,20 @@ GLOBAL_LIST_EMPTY(shuttle_controls) shuttle1.true_crash_target_section = crash_target // If the AA is protecting the target area, pick any other section to crash into at random - if(almayer_aa_cannon.protecting_section == crash_target) - var/list/potential_crash_sections = almayer_ship_sections.Copy() - potential_crash_sections -= almayer_aa_cannon.protecting_section + if(GLOB.almayer_aa_cannon.protecting_section == crash_target) + var/list/potential_crash_sections = GLOB.almayer_ship_sections.Copy() + potential_crash_sections -= GLOB.almayer_aa_cannon.protecting_section crash_target = pick(potential_crash_sections) shuttle1.crash_target_section = crash_target shuttle1.transit_gun_mission = 0 - if(round_statistics) - round_statistics.track_hijack() + if(GLOB.round_statistics) + GLOB.round_statistics.track_hijack() marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY) shuttle.alerts_allowed-- - var/datum/ares_link/link = GLOB.ares_link - link.log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") + log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") to_chat(Q, SPAN_DANGER("A loud alarm erupts from [src]! The fleshy hosts must know that you can access it!")) xeno_message(SPAN_XENOANNOUNCE("The Queen has commanded the metal bird to depart for the metal hive in the sky! Rejoice!"),3,Q.hivenumber) @@ -309,16 +306,16 @@ GLOBAL_LIST_EMPTY(shuttle_controls) if(Q.hive) addtimer(CALLBACK(Q.hive, TYPE_PROC_REF(/datum/hive_status, abandon_on_hijack)), DROPSHIP_WARMUP_TIME + 5 SECONDS, TIMER_UNIQUE) //+ 5 seconds catch standing in doorways - if(bomb_set) + if(GLOB.bomb_set) for(var/obj/structure/machinery/nuclearbomb/bomb in world) bomb.end_round = FALSE - if(almayer_orbital_cannon) - almayer_orbital_cannon.is_disabled = TRUE - addtimer(CALLBACK(almayer_orbital_cannon, TYPE_PROC_REF(/obj/structure/orbital_cannon, enable)), 10 MINUTES, TIMER_UNIQUE) + if(GLOB.almayer_orbital_cannon) + GLOB.almayer_orbital_cannon.is_disabled = TRUE + addtimer(CALLBACK(GLOB.almayer_orbital_cannon, TYPE_PROC_REF(/obj/structure/orbital_cannon, enable)), 10 MINUTES, TIMER_UNIQUE) - if(almayer_aa_cannon) - almayer_aa_cannon.is_disabled = TRUE + if(GLOB.almayer_aa_cannon) + GLOB.almayer_aa_cannon.is_disabled = TRUE else if(shuttle.require_link) use_power(4080) @@ -332,7 +329,7 @@ GLOBAL_LIST_EMPTY(shuttle_controls) shuttle.launch(src) if(onboard && !shuttle.iselevator) M.count_niche_stat(STATISTICS_NICHE_FLIGHT) - msg_admin_niche("[M] ([M.key]) launched a [shuttle.iselevator? "elevator" : "shuttle"] using [src].") + msg_admin_niche("[M] ([M.key]) launched \a [shuttle.iselevator? "elevator" : "shuttle"] using [src].") ui_interact(usr) diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm index 67da9ff4311e..7eb7b96eb2e8 100644 --- a/code/modules/shuttles/shuttle_supply.dm +++ b/code/modules/shuttles/shuttle_supply.dm @@ -77,7 +77,7 @@ lower_railings() return else //at centcom - supply_controller.buy() + GLOB.supply_controller.buy() //We pretend it's a long_jump by making the shuttle stay at centcom for the "in-transit" period. var/area/away_area = get_location_area(away_location) @@ -137,14 +137,14 @@ recharging = 0 /datum/shuttle/ferry/supply/proc/handle_sell() - supply_controller.sell() + GLOB.supply_controller.sell() // returns 1 if the supply shuttle should be prevented from moving because it contains forbidden atoms /datum/shuttle/ferry/supply/proc/forbidden_atoms_check() if (!at_station()) return 0 //if badmins want to send mobs or a nuke on the supply shuttle from centcom we don't care - return supply_controller.forbidden_atoms_check(get_location_area()) + return GLOB.supply_controller.forbidden_atoms_check(get_location_area()) /datum/shuttle/ferry/supply/proc/at_station() return (!location) @@ -155,7 +155,7 @@ /datum/shuttle/ferry/supply/proc/raise_railings() var/effective = 0 - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == railing_id && !M.density) effective = 1 spawn() @@ -165,7 +165,7 @@ /datum/shuttle/ferry/supply/proc/lower_railings() var/effective = 0 - for(var/obj/structure/machinery/door/poddoor/M in machines) + for(var/obj/structure/machinery/door/poddoor/M in GLOB.machines) if(M.id == railing_id && M.density) effective = 1 INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, open)) @@ -173,14 +173,14 @@ playsound(locate(Elevator_x,Elevator_y,Elevator_z), 'sound/machines/elevator_openclose.ogg', 50, 0) /datum/shuttle/ferry/supply/proc/start_gears(direction = 1) - for(var/obj/structure/machinery/gear/M in machines) + for(var/obj/structure/machinery/gear/M in GLOB.machines) if(M.id == gear_id) spawn() M.icon_state = "gear_moving" M.setDir(direction) /datum/shuttle/ferry/supply/proc/stop_gears() - for(var/obj/structure/machinery/gear/M in machines) + for(var/obj/structure/machinery/gear/M in GLOB.machines) if(M.id == gear_id) spawn() M.icon_state = "gear" diff --git a/code/modules/sorokyne/sorokyne_cold_water.dm b/code/modules/sorokyne/sorokyne_cold_water.dm index adf7e3de6228..345014a1e460 100644 --- a/code/modules/sorokyne/sorokyne_cold_water.dm +++ b/code/modules/sorokyne/sorokyne_cold_water.dm @@ -48,13 +48,13 @@ var/dam_amount = COLD_WATER_DAMAGE if(issynth(M) || isyautja(M)) dam_amount -= 0.5 - if(M.lying) - M.apply_damage(5*dam_amount,BURN) - else + if(M.body_position == STANDING_UP) M.apply_damage(dam_amount,BURN,"l_leg") M.apply_damage(dam_amount,BURN,"l_foot") M.apply_damage(dam_amount,BURN,"r_leg") M.apply_damage(dam_amount,BURN,"r_foot") + else + M.apply_damage(5*dam_amount,BURN) if (ishuman(M)) if (M.bodytemperature > MINIMUM_TEMP) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 767f50fc9750..ea075080121b 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -390,7 +390,7 @@ /obj/item/tool/surgery/circular_saw = SURGERY_TOOL_MULT_IDEAL, /obj/item/attachable/bayonet = SURGERY_TOOL_MULT_SUBOPTIMAL, /obj/item/weapon/twohanded/fireaxe = SURGERY_TOOL_MULT_SUBSTITUTE, - /obj/item/weapon/claymore/mercsword/machete = SURGERY_TOOL_MULT_SUBSTITUTE, + /obj/item/weapon/sword/machete = SURGERY_TOOL_MULT_SUBSTITUTE, /obj/item/tool/hatchet = SURGERY_TOOL_MULT_BAD_SUBSTITUTE, /obj/item/tool/kitchen/knife/butcher = SURGERY_TOOL_MULT_BAD_SUBSTITUTE, ) diff --git a/code/modules/surgery/surgery_initiator.dm b/code/modules/surgery/surgery_initiator.dm index 08b4dbdfed60..706b28d0e94e 100644 --- a/code/modules/surgery/surgery_initiator.dm +++ b/code/modules/surgery/surgery_initiator.dm @@ -27,6 +27,13 @@ to_chat(user, SPAN_WARNING("You can't perform surgery under these bad conditions!")) return FALSE + var/obj/limb/surgery_limb = target.get_limb(target_zone) + if(surgery_limb) + var/obj/item/blocker = target.get_sharp_obj_blocker(surgery_limb) + if(blocker) + to_chat(user, SPAN_WARNING("[blocker] [target] is wearing restricts your access to the surgical site, take it off!")) + return + if(user.action_busy) //already doing an action return FALSE @@ -36,7 +43,7 @@ continue //Lying and self-surgery checks. - if(surgeryloop.lying_required && !target.lying) + if(surgeryloop.lying_required && target.body_position != LYING_DOWN) continue if(!surgeryloop.self_operable && target == user) continue @@ -127,9 +134,15 @@ [target_zone == "r_hand"||target_zone == "l_hand" ? "hand":"arm"] you're using!")) return TRUE - if(surgeryinstance.lying_required && !target.lying) + if(surgeryinstance.lying_required && target.body_position != LYING_DOWN) return TRUE + if(surgery_limb) + var/obj/item/blocker = target.get_sharp_obj_blocker(surgery_limb) + if(blocker) + to_chat(user, SPAN_WARNING("[blocker] [target] is wearing restricts your access to the surgical site, take it off!")) + return + if(affecting) if(surgeryinstance.requires_bodypart) if(affecting.status & LIMB_DESTROYED) diff --git a/code/modules/surgery/surgery_procedure.dm b/code/modules/surgery/surgery_procedure.dm index 1e11516a8079..8620c557eb4b 100644 --- a/code/modules/surgery/surgery_procedure.dm +++ b/code/modules/surgery/surgery_procedure.dm @@ -90,7 +90,7 @@ to_chat(user, SPAN_WARNING("You can't operate on [target], \he is being carried by [target.pulledby]!")) return FALSE - if(lying_required && !target.lying) + if(lying_required && target.body_position != LYING_DOWN) to_chat(user, SPAN_WARNING("[user == target ? "You need" : "[target] needs"] to be lying down for this operation!")) return FALSE diff --git a/code/modules/surgery/surgery_steps.dm b/code/modules/surgery/surgery_steps.dm index b58c62b57f68..9e1450868d1c 100644 --- a/code/modules/surgery/surgery_steps.dm +++ b/code/modules/surgery/surgery_steps.dm @@ -92,6 +92,7 @@ affected_limb, or location vars. Also, in that case there may be a wait between var/self_surgery var/tool_modifier var/surface_modifier + var/failure_penalties = 0 //Skill speed modifier. step_duration *= user.get_skill_duration_multiplier(SKILL_SURGERY) @@ -134,16 +135,22 @@ affected_limb, or location vars. Also, in that case there may be a wait between message += "this tool is[pick("n't ideal", " not the best")]" if(SURGERY_TOOL_MULT_SUBSTITUTE) message += "this tool is[pick("n't suitable", " a bad fit", " difficult to use")]" - if(SURGERY_TOOL_MULT_BAD_SUBSTITUTE, SURGERY_TOOL_MULT_AWFUL) + if(SURGERY_TOOL_MULT_BAD_SUBSTITUTE) message += "this tool is [pick("awful", "barely usable")]" + failure_penalties += 1 + if(SURGERY_TOOL_MULT_AWFUL) + message += "this tool is [pick("awful", "barely usable")]" + failure_penalties += 2 switch(surface_modifier) if(SURGERY_SURFACE_MULT_ADEQUATE) message += "[pick("it isn't easy, working", "it's tricky to perform complex surgeries", "this would be quicker if you weren't working")] [pick("in the field", "under these conditions", "without a proper surgical theatre")]" if(SURGERY_SURFACE_MULT_UNSUITED) message += "[pick("it's difficult to work", "it's slow going, working", "you need to take your time")] in these [pick("primitive", "rough", "crude")] conditions" + failure_penalties += 1 if(SURGERY_SURFACE_MULT_AWFUL) message += "[pick("you need to work slowly and carefully", "you need to be very careful", "this is delicate work, especially")] [pick("in these", "under such")] [pick("terrible", "awful", "utterly unsuitable")] conditions" + failure_penalties += 2 if(length(message)) to_chat(user, SPAN_WARNING("[capitalize(english_list(message, final_comma_text = ","))].")) @@ -151,6 +158,20 @@ affected_limb, or location vars. Also, in that case there may be a wait between var/advance //Whether to continue to the next step afterwards. var/pain_failure_chance = max(0, (target.pain?.feels_pain ? surgery.pain_reduction_required - target.pain.reduction_pain : 0) * 2 - human_modifiers["pain_reduction"]) //Each extra pain unit increases the chance by 2 + // Skill compensation for difficult conditions/tools + if(skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_EXPERT)) + failure_penalties -= 2 // will ultimately be -3 + if(skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_TRAINED)) + failure_penalties -= 1 + + var/surgery_failure_chance = SURGERY_FAILURE_IMPOSSIBLE + if(failure_penalties == 1) + surgery_failure_chance = SURGERY_FAILURE_UNLIKELY + else if(failure_penalties == 2) + surgery_failure_chance = SURGERY_FAILURE_POSSIBLE + else if(failure_penalties > 2) + surgery_failure_chance = SURGERY_FAILURE_LIKELY + play_preop_sound(user, target, target_zone, tool, surgery) if(tool?.flags_item & ANIMATED_SURGICAL_TOOL) //If we have an animated tool sprite, run it while we do any do_afters. @@ -171,6 +192,17 @@ affected_limb, or location vars. Also, in that case there may be a wait between target.emote("pain") play_failure_sound(user, target, target_zone, tool, surgery) + else if(prob(surgery_failure_chance)) + do_after(user, max(rand(step_duration * 0.1, step_duration * 0.5), 0.5), INTERRUPT_ALL|INTERRUPT_DIFF_INTENT, + BUSY_ICON_FRIENDLY, target, INTERRUPT_MOVED, BUSY_ICON_MEDICAL) //Brief do_after so that the interrupt doesn't happen instantly. + user.visible_message(SPAN_DANGER("[user] is struggling to perform surgery."), + SPAN_DANGER("You are struggling to perform the surgery with these tools and conditions!")) + if(failure(user, target, target_zone, tool, tool_type, surgery)) //Failure returns TRUE if the step should complete anyway. + advance = TRUE + target.emote("pain") + play_failure_sound(user, target, target_zone, tool, surgery) + msg_admin_niche("[user] failed a [surgery] step on [target] because of [failure_penalties] failure possibility penalties ([surgery_failure_chance]%)") + else //Help intent. if(do_after(user, step_duration, INTERRUPT_ALL|INTERRUPT_DIFF_INTENT, BUSY_ICON_FRIENDLY,target,INTERRUPT_MOVED,BUSY_ICON_MEDICAL)) success(user, target, target_zone, tool, tool_type, surgery) diff --git a/code/modules/teleporters/teleporter_admin_verbs.dm b/code/modules/teleporters/teleporter_admin_verbs.dm index 930f9209d481..61f21fdb34ee 100644 --- a/code/modules/teleporters/teleporter_admin_verbs.dm +++ b/code/modules/teleporters/teleporter_admin_verbs.dm @@ -3,7 +3,7 @@ set desc = "Force a teleporter to teleport" set category = "Admin.Game" - var/available_teleporters = SSteleporter.teleporters + var/list/datum/teleporter/available_teleporters = GLOB.teleporters var/datum/teleporter/teleporter = tgui_input_list(usr, "Which teleporter do you want to use?", "Select a teleporter:", available_teleporters) if(!teleporter) diff --git a/code/modules/teleporters/teleporter_console.dm b/code/modules/teleporters/teleporter_console.dm index b9a3629c881d..88384578a939 100644 --- a/code/modules/teleporters/teleporter_console.dm +++ b/code/modules/teleporters/teleporter_console.dm @@ -40,19 +40,13 @@ if(linked_teleporter) // Maybe should debug log this because it's indicative of bad logic, but I'll leave it out for the sake of (potential) spam return TRUE - if(SSteleporter) - - var/datum/teleporter/found_teleporter = SSteleporter.teleporters_by_id[teleporter_id] - if(found_teleporter) - linked_teleporter = found_teleporter - linked_teleporter.linked_consoles += src - else - log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_CONSOLE_2") - log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_CONSOLE_2") - return FALSE + var/datum/teleporter/found_teleporter = GLOB.teleporters_by_id[teleporter_id] + if(found_teleporter) + linked_teleporter = found_teleporter + linked_teleporter.linked_consoles += src else - log_debug("Couldn't find teleporter SS to pull teleporter from. Code: TELEPORTER_CONSOLE_3") - log_admin("Couldn't find teleporter SS to pull teleporter from. Tell the devs. Code: TELEPORTER_CONSOLE_3") + log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_CONSOLE_2") + log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_CONSOLE_2") return FALSE return TRUE @@ -181,9 +175,9 @@ if(SSmapping.configs[GROUND_MAP].map_name != MAP_CORSAT) // Bad style, but I'm leaving it here for now until someone wants to add a teleporter to another map return - if(SSteleporter.teleporters.len) // already made the damn thing + if(GLOB.teleporters.len) // already made the damn thing return var/datum/teleporter/corsat/teleporter = new - SSteleporter.teleporters_by_id[teleporter.id] = teleporter - SSteleporter.teleporters += teleporter + GLOB.teleporters_by_id[teleporter.id] = teleporter + GLOB.teleporters += teleporter diff --git a/code/modules/teleporters/teleporter_landmarks.dm b/code/modules/teleporters/teleporter_landmarks.dm index 75ce77550f52..fe0ab4648903 100644 --- a/code/modules/teleporters/teleporter_landmarks.dm +++ b/code/modules/teleporters/teleporter_landmarks.dm @@ -41,30 +41,24 @@ /obj/effect/landmark/teleporter_loc/LateInitialize() . = ..() - if (SSteleporter) - var/datum/teleporter/T = SSteleporter.teleporters_by_id[linked_teleporter] - if (T) - if (!T.locations[location_id]) - T.locations[location_id] = list() + var/datum/teleporter/T = GLOB.teleporters_by_id[linked_teleporter] + if (T) + if (!T.locations[location_id]) + T.locations[location_id] = list() - var/list/location = T.locations[location_id] + var/list/location = T.locations[location_id] - if (!location) - log_debug("Teleporter locations turf list not properly instantiated. Code: TELEPORTER_LANDMARK_1") - log_admin("Teleporter locations turf list not properly instantiated. Tell the devs. Code: TELEPORTER_LANDMARK_1") - qdel(src) - return - - location[index] = get_turf(src) - - else - log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_LANDMARK_2") - log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_LANDMARK_2") + if (!location) + log_debug("Teleporter locations turf list not properly instantiated. Code: TELEPORTER_LANDMARK_1") + log_admin("Teleporter locations turf list not properly instantiated. Tell the devs. Code: TELEPORTER_LANDMARK_1") qdel(src) return + + location[index] = get_turf(src) + else - log_debug("Couldn't find teleporter SS to register with. Code: TELEPORTER_LANDMARK_3") - log_admin("Couldn't find teleporter SS to register with. Tell the devs. Code: TELEPORTER_LANDMARK_3") + log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_LANDMARK_2") + log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_LANDMARK_2") qdel(src) return diff --git a/code/modules/tents/deployed_tents.dm b/code/modules/tents/deployed_tents.dm index 9ea06e357d9e..5f74337f9973 100644 --- a/code/modules/tents/deployed_tents.dm +++ b/code/modules/tents/deployed_tents.dm @@ -93,7 +93,7 @@ SPAN_DANGER("You [M.slash_verb] [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) if(health <= 0) - visible_message(SPAN_BOLDWARNING("The [src] collapses!")) + visible_message(SPAN_BOLDWARNING("[src] collapses!")) qdel(src) return XENO_ATTACK_ACTION @@ -102,13 +102,13 @@ var/obj/item/tool/shovel/shovel = item if(!istype(shovel) || shovel.folded || user.action_busy) return - visible_message(SPAN_HIGHDANGER("[user] is trying to tear down the [src]")) + visible_message(SPAN_HIGHDANGER("[user] is trying to tear down [src]")) playsound(src, 'sound/items/paper_ripped.ogg', 25, 1) if(!do_after(user, 150, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, src) || QDELETED(src)) return - visible_message(SPAN_HIGHDANGER("[user] tears down the [src]")) + visible_message(SPAN_HIGHDANGER("[user] tears down [src]")) playsound(src, 'sound/items/paper_ripped.ogg', 25, 1) qdel(src) diff --git a/code/modules/tents/folded_tents.dm b/code/modules/tents/folded_tents.dm index 08b8142ab358..fe1a748b750d 100644 --- a/code/modules/tents/folded_tents.dm +++ b/code/modules/tents/folded_tents.dm @@ -1,20 +1,34 @@ /obj/item/folded_tent - name = "Folded Abstract Tent" + name = "folded abstract tent" icon = 'icons/obj/structures/tents_folded.dmi' + icon_state = "tent" w_class = SIZE_LARGE /// Required cleared area along X axis var/dim_x = 1 /// Required cleared area along Y axis var/dim_y = 1 - /// Deployment X offset - var/off_x = 0 - /// Deployment Y offset - var/off_y = 0 - /// Map Template to use for the tent - var/template + /// Tents map template typepath + var/template_preset = "abstract" + ///Map template datum used for tent + var/datum/map_template/template /// If this tent can be deployed anywhere var/unrestricted_deployment = FALSE +/obj/item/folded_tent/Initialize(mapload, ...) + . = ..() + if(template_preset == "abstract") //So spawning an abstract tent wont fail create and destroy + return + set_template(SSmapping.tent_type_templates[template_preset]) + if(!template) + CRASH("[src] initialized with template preset, \"[template_preset]\", that does not exist.") + +/obj/item/folded_tent/proc/set_template(datum/map_template/new_template) + if(!istype(new_template)) + return + template = new_template + dim_x = template.width + dim_y = template.height + /// Check an area is clear for deployment of the tent /obj/item/folded_tent/proc/check_area(turf/ref_turf, mob/message_receiver, display_error = FALSE) SHOULD_NOT_SLEEP(TRUE) @@ -34,22 +48,24 @@ return FALSE if(turf.density) if(message_receiver) - to_chat(message_receiver, SPAN_WARNING("You cannot deploy the [src] here, something ([turf]) is in the way.")) + to_chat(message_receiver, SPAN_WARNING("You cannot deploy [src] here, something ([turf]) is in the way.")) if(display_error) new /obj/effect/overlay/temp/tent_deployment_area/error(turf) return FALSE for(var/atom/movable/atom as anything in turf) if(isliving(atom) || (atom.density && atom.can_block_movement) || istype(atom, /obj/structure/tent)) if(message_receiver) - to_chat(message_receiver, SPAN_WARNING("You cannot deploy the [src] here, something ([atom.name]) is in the way.")) + to_chat(message_receiver, SPAN_WARNING("You cannot deploy [src] here, something ([atom.name]) is in the way.")) if(display_error) new /obj/effect/overlay/temp/tent_deployment_area/error(turf) return FALSE return TRUE -/obj/item/folded_tent/proc/unfold(turf/ref_turf) - var/datum/map_template/template_instance = new template() - template_instance.load(ref_turf, FALSE, FALSE) +/obj/item/folded_tent/proc/unfold(mob/user, turf/ref_turf) + if(!istype(template)) + to_chat(user, SPAN_BOLDWARNING("[src] does not contain a tent! It is broken!")) + CRASH("[src] attempted to unfold \"[template]\" as a tent.") + template.load(ref_turf, FALSE, FALSE) /obj/item/folded_tent/proc/get_deployment_area(turf/ref_turf) RETURN_TYPE(/list/turf) @@ -58,11 +74,13 @@ /obj/item/folded_tent/attack_self(mob/living/user) . = ..() + var/off_x = -(tgui_input_number(user, "If facing North or South", "Set X Offset", 0, dim_x, 0, 30 SECONDS, TRUE)) + var/off_y = -(tgui_input_number(user, "If facing East or West", "Set Y Offset", 0, dim_y, 0, 30 SECONDS, TRUE)) var/turf/deploy_turf = user.loc if(!istype(deploy_turf)) return // In a locker or something. Get lost you already have a home. - switch(user.dir) // Fix up offset deploy location so tent is better centered + can be deployed under all angles + switch(user.dir) //Handles offsets when deploying if(NORTH) deploy_turf = locate(deploy_turf.x + off_x, deploy_turf.y + 1, deploy_turf.z) if(SOUTH) @@ -90,8 +108,8 @@ for(var/turf/turf in deployment_area) turf_overlay += new /obj/effect/overlay/temp/tent_deployment_area/casting(turf) - user.visible_message(SPAN_INFO("[user] starts deploying the [src]..."), \ - SPAN_WARNING("You start assembling the [src]... Stand still, it might take a bit to figure it out...")) + user.visible_message(SPAN_INFO("[user] starts deploying [src]..."), \ + SPAN_WARNING("You start assembling [src]... Stand still, it might take a bit to figure it out...")) if(!do_after(user, 6 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) to_chat(user, SPAN_WARNING("You were interrupted!")) for(var/gfx in turf_overlay) @@ -103,8 +121,8 @@ QDEL_IN(gfx, 1.5 SECONDS) return - unfold(deploy_turf) - user.visible_message(SPAN_INFO("[user] finishes deploying the [src]!"), SPAN_INFO("You finish deploying the [src]!")) + unfold(user, deploy_turf) + user.visible_message(SPAN_INFO("[user] finishes deploying [src]!"), SPAN_INFO("You finish deploying [src]!")) for(var/gfx in turf_overlay) qdel(gfx) qdel(src) // Success! @@ -113,36 +131,25 @@ name = "folded USCM Command Tent" icon_state = "cmd" desc = "A standard USCM Command Tent. This one comes equipped with a self-powered Overwatch Console and a Telephone. Unfold in a suitable location to maximize usefulness. Staff Officer not included. ENTRANCE TO THE SOUTH." - dim_x = 2 - dim_y = 4 - off_x = -1 - template = /datum/map_template/tent/cmd + template_preset = "tent_cmd" /obj/item/folded_tent/med name = "folded USCM Medical Tent" icon_state = "med" desc = "A standard USCM Medical Tent. This one comes equipped with advanced field surgery facilities. Unfold in a suitable location to maximize health gains. Surgical Tray not included. ENTRANCE TO THE SOUTH." - dim_x = 2 - dim_y = 4 - template = /datum/map_template/tent/med + template_preset = "tent_med" /obj/item/folded_tent/reqs name = "folded USCM Requisitions Tent" icon_state = "req" desc = "A standard USCM Requisitions Tent. Now, you can enjoy req line anywhere you go! Unfold in a suitable location to maximize resource distribution. ASRS not included. ENTRANCE TO THE SOUTH." - dim_x = 4 - dim_y = 4 - off_x = -2 - template = /datum/map_template/tent/reqs + template_preset = "tent_reqs" /obj/item/folded_tent/big name = "folded USCM Big Tent" icon_state = "big" desc = "A standard USCM Tent. This one is just a bigger, general purpose version. Unfold in a suitable location for maximum FOB vibes. Mess Tech not included. ENTRANCE TO THE SOUTH." - dim_x = 3 - dim_y = 4 - off_x = -2 - template = /datum/map_template/tent/big + template_preset = "tent_big" /obj/effect/overlay/temp/tent_deployment_error icon = 'icons/effects/effects.dmi' diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 41a047339452..8be96f27404a 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -42,11 +42,11 @@ var/datum/tgs_version/max_api_version = TgsMaximumApiVersion(); if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) - TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + TGS_ERROR_LOG("Detected unknown Interop API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest if(!api_datum) - TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + TGS_ERROR_LOG("Found unsupported Interop API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") @@ -107,6 +107,13 @@ if(api) return api.ApiVersion() +/world/TgsEngine() +#ifdef OPENDREAM + return TGS_ENGINE_TYPE_OPENDREAM +#else + return TGS_ENGINE_TYPE_BYOND +#endif + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) @@ -153,4 +160,9 @@ /world/TgsSecurityLevel() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) - api.SecurityLevel() + return api.SecurityLevel() + +/world/TgsVisibility() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.Visibility() diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 68b0330fe860..07ce3b684584 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -11,6 +11,15 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.event_handler = event_handler src.version = version +/datum/tgs_api/proc/TerminateWorld() + while(TRUE) + TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") + world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 + del(world) + world.sleep_offline = FALSE // just in case, this is BYOND after all... + sleep(1) + TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") + /datum/tgs_api/latest parent_type = /datum/tgs_api/v5 @@ -57,3 +66,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/SecurityLevel() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/Visibility() + return TGS_UNIMPLEMENTED diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index b9a75c4abb48..945e2e411767 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -73,7 +73,7 @@ if(cached_json["apiValidateOnly"]) TGS_INFO_LOG("Validating API and exiting...") Export(TGS4_COMM_VALIDATE, list(TGS4_PARAMETER_DATA = "[minimum_required_security_level]")) - del(world) + TerminateWorld() security_level = cached_json["securityLevel"] chat_channels_json_path = cached_json["chatChannelsJson"] @@ -188,7 +188,7 @@ requesting_new_port = TRUE if(!world.OpenPort(0)) //open any port TGS_ERROR_LOG("Unable to open random port to retrieve new port![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() //request a new port export_lock = FALSE @@ -196,16 +196,16 @@ if(!new_port_json) TGS_ERROR_LOG("No new port response from server![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() var/new_port = new_port_json[TGS4_PARAMETER_DATA] if(!isnum(new_port) || new_port <= 0) TGS_ERROR_LOG("Malformed new port json ([json_encode(new_port_json)])![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() if(new_port != world.port && !world.OpenPort(new_port)) TGS_ERROR_LOG("Unable to open port [new_port]![TGS4_PORT_CRITFAIL_MESSAGE]") - del(world) + TerminateWorld() requesting_new_port = FALSE while(export_lock) diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 5d3d491a7362..616263098fd3 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.6.1" +"5.8.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index f973338daa03..1c7d67d20cdf 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -8,7 +8,6 @@ #define DMAPI5_TOPIC_REQUEST_LIMIT 65528 #define DMAPI5_TOPIC_RESPONSE_LIMIT 65529 -#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 #define DMAPI5_BRIDGE_COMMAND_STARTUP 1 #define DMAPI5_BRIDGE_COMMAND_PRIME 2 #define DMAPI5_BRIDGE_COMMAND_REBOOT 3 @@ -18,6 +17,7 @@ #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_PARAMETER_TOPIC_PORT "topicPort" #define DMAPI5_CHUNK "chunk" #define DMAPI5_CHUNK_PAYLOAD "payload" @@ -48,6 +48,7 @@ #define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" #define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" #define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" +#define DMAPI5_RUNTIME_INFORMATION_VISIBILITY "visibility" #define DMAPI5_CHAT_UPDATE_CHANNELS "channels" @@ -79,6 +80,7 @@ #define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8 #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 +#define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -88,6 +90,7 @@ #define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" #define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" #define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion" +#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse" #define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 34cc43f8762f..25d49b3e3bdb 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -4,6 +4,7 @@ var/instance_name var/security_level + var/visibility var/reboot_mode = TGS_REBOOT_MODE_NORMAL @@ -16,6 +17,8 @@ var/list/chat_channels var/initialized = FALSE + var/initial_bridge_request_received = FALSE + var/datum/tgs_version/interop_version var/chunked_requests = 0 var/list/chunked_topics = list() @@ -24,7 +27,8 @@ /datum/tgs_api/v5/New() . = ..() - TGS_DEBUG_LOG("V5 API created") + interop_version = version + TGS_DEBUG_LOG("V5 API created: [json_encode(args)]") /datum/tgs_api/v5/ApiVersion() return new /datum/tgs_version( @@ -37,8 +41,8 @@ access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] var/datum/tgs_version/api_version = ApiVersion() - version = null - var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + version = null // we want this to be the TGS version, not the interop version + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") return FALSE @@ -50,10 +54,12 @@ if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) TGS_INFO_LOG("DMAPI validation, exiting...") - del(world) + TerminateWorld() - version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + initial_bridge_request_received = TRUE + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) // reassigning this because it can change if TGS updates security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + visibility = runtime_information[DMAPI5_RUNTIME_INFORMATION_VISIBILITY] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] @@ -100,10 +106,17 @@ initialized = TRUE return TRUE +/datum/tgs_api/v5/proc/GetTopicPort() +#if defined(OPENDREAM) && defined(OPENDREAM_TOPIC_PORT_EXISTS) + return "[world.opendream_topic_port]" +#else + return null +#endif + /datum/tgs_api/v5/proc/RequireInitialBridgeResponse() TGS_DEBUG_LOG("RequireInitialBridgeResponse()") var/logged = FALSE - while(!version) + while(!initial_bridge_request_received) if(!logged) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE @@ -252,3 +265,7 @@ /datum/tgs_api/v5/SecurityLevel() RequireInitialBridgeResponse() return security_level + +/datum/tgs_api/v5/Visibility() + RequireInitialBridgeResponse() + return visibility diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index 37f58bcdf632..a0ab35987670 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -48,7 +48,9 @@ var/json = CreateBridgeData(command, data, TRUE) var/encoded_json = url_encode(json) - var/url = "http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" + var/api_prefix = interop_version.minor >= 8 ? "api/" : "" + + var/url = "http://127.0.0.1:[server_port]/[api_prefix]Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]" return url /datum/tgs_api/v5/proc/CreateBridgeData(command, list/data, needs_auth) @@ -81,11 +83,16 @@ TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return - var/response_json = file2text(export_response["CONTENT"]) - if(!response_json) + var/content = export_response["CONTENT"] + if(!content) TGS_ERROR_LOG("Failed bridge request, missing content!") return + var/response_json = file2text(content) + if(!response_json) + TGS_ERROR_LOG("Failed bridge request, failed to load content!") + return + var/list/bridge_response = json_decode(response_json) if(!bridge_response) TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]") diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index d7d471213813..05e6c4e1b214 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -94,7 +94,7 @@ if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") if(event_handler != null) event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) @@ -141,7 +141,7 @@ if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] if (!isnum(new_port) || !(new_port > 0)) - return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]") server_port = new_port return TopicResponse() @@ -157,7 +157,7 @@ var/error_message = null if (new_port != null) if (!isnum(new_port) || !(new_port > 0)) - error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]" + error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]" else server_port = new_port @@ -165,7 +165,7 @@ if (!istext(new_version_string)) if(error_message != null) error_message += ", " - error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]" + error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]" else var/datum/tgs_version/new_version = new(new_version_string) if (event_handler) @@ -175,6 +175,7 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() + reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -267,4 +268,16 @@ return chunk_to_send + if(DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST) + var/message = topic_parameters[DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE] + if (!istext(message)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE]") + + TGS_WORLD_ANNOUNCE(message) + return TopicResponse() + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/WorldBroadcast(message) + set waitfor = FALSE + TGS_WORLD_ANNOUNCE(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index c679737dfc49..d531d4b7b9dd 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -8,7 +8,6 @@ #undef DMAPI5_TOPIC_REQUEST_LIMIT #undef DMAPI5_TOPIC_RESPONSE_LIMIT -#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE #undef DMAPI5_BRIDGE_COMMAND_STARTUP #undef DMAPI5_BRIDGE_COMMAND_PRIME #undef DMAPI5_BRIDGE_COMMAND_REBOOT @@ -18,6 +17,7 @@ #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_PARAMETER_TOPIC_PORT #undef DMAPI5_CHUNK #undef DMAPI5_CHUNK_PAYLOAD @@ -48,6 +48,7 @@ #undef DMAPI5_RUNTIME_INFORMATION_REVISION #undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES #undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL +#undef DMAPI5_RUNTIME_INFORMATION_VISIBILITY #undef DMAPI5_CHAT_UPDATE_CHANNELS @@ -77,6 +78,9 @@ #undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE #undef DMAPI5_TOPIC_COMMAND_HEALTHCHECK #undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH +#undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK +#undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -86,6 +90,7 @@ #undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME #undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE #undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION +#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE #undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE diff --git a/code/modules/tgui/status_composers.dm b/code/modules/tgui/status_composers.dm index 6d7b5897863e..ba1b29d8152e 100644 --- a/code/modules/tgui/status_composers.dm +++ b/code/modules/tgui/status_composers.dm @@ -56,17 +56,6 @@ /mob/living/silicon/proc/get_ui_access(atom/source) return UI_INTERACTIVE // Ubiquitous networking. Do not abuse. -/// Returns UI_INTERACTIVE if the user is conscious and lying down. -/// Returns UI_UPDATE otherwise. -/proc/ui_status_user_is_conscious_and_lying_down(mob/user) - if (!isliving(user)) - return UI_UPDATE - - var/mob/living/living_user = user - return (living_user.lying && living_user.stat == CONSCIOUS) \ - ? UI_INTERACTIVE \ - : UI_UPDATE - /// Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not. /// Return UI_CLOSE otherwise. /proc/ui_status_user_strictly_adjacent(mob/user, atom/target) diff --git a/code/modules/tgui_panel/audio.dm b/code/modules/tgui_panel/audio.dm index 680696159943..d66421df5348 100644 --- a/code/modules/tgui_panel/audio.dm +++ b/code/modules/tgui_panel/audio.dm @@ -3,8 +3,6 @@ * SPDX-License-Identifier: MIT */ -/// Admin music volume, from 0 to 1. -/client/var/admin_music_volume = 1 /** * public @@ -22,8 +20,9 @@ /datum/tgui_panel/proc/play_music(url, extra_data) if(!is_ready()) return - if(!findtext(url, GLOB.is_http_protocol)) - return + // Commented to allow playing via simple asset transport. Just check when calling. +// if(!findtext(url, GLOB.is_http_protocol)) +// return var/list/payload = list() if(length(extra_data) > 0) for(var/key in extra_data) diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index 9fb8b02b0196..f33f190d80e0 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -85,9 +85,10 @@ ), )) return TRUE - if(type == "audio/setAdminMusicVolume") - client.admin_music_volume = payload["volume"] - return TRUE +// Deprecated due to removal of old sound play commands +// if(type == "audio/setAdminMusicVolume") +// client.admin_music_volume = payload["volume"] +// return TRUE if(type == "telemetry") analyze_telemetry(payload) return TRUE diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index b3dc005c0887..e668196d383a 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -98,10 +98,12 @@ Notes: last_target = null /datum/tooltip/proc/do_hide() - winshow(owner, control, FALSE) + if(owner) + winshow(owner, control, FALSE) /datum/tooltip/Destroy(force, ...) last_target = null + owner = null return ..() //Open a tooltip for user, at a location based on params diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index eb4672b84fc9..55711ba7ecc6 100644 --- a/code/modules/unit_tests/create_and_destroy.dm +++ b/code/modules/unit_tests/create_and_destroy.dm @@ -19,6 +19,8 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE) /obj/item/explosive/grenade/flashbang/cluster_piece, /obj/effect/fake_attacker, /atom/movable/lighting_mask, //leave it alone + //This is meant to fail extremely loud every single time it occurs in any environment in any context, and it falsely alarms when this unit test iterates it. Let's not spawn it in. + /obj/merge_conflict_marker, ) //This turf existing is an error in and of itself ignore += typesof(/turf/baseturf_skipover) diff --git a/code/modules/vehicles/apc/apc.dm b/code/modules/vehicles/apc/apc.dm index d71db37074f1..24b137a6804a 100644 --- a/code/modules/vehicles/apc/apc.dm +++ b/code/modules/vehicles/apc/apc.dm @@ -256,9 +256,16 @@ GLOBAL_LIST_EMPTY(command_apc_list) handle_direction(APC) APC.update_icon() + return APC + /obj/effect/vehicle_spawner/apc/unarmed/load_hardpoints(obj/vehicle/multitile/apc/V) return +/obj/effect/vehicle_spawner/apc/unarmed/broken/spawn_vehicle() + var/obj/vehicle/multitile/apc/apc = ..() + load_damage(apc) + apc.update_icon() + //PRESET: default hardpoints, destroyed /obj/effect/vehicle_spawner/apc/unarmed/decrepit/spawn_vehicle() var/obj/vehicle/multitile/apc/unarmed/APC = new (loc) diff --git a/code/modules/vehicles/apc/apc_command.dm b/code/modules/vehicles/apc/apc_command.dm index c5bd55928362..e0862ae4f2ab 100644 --- a/code/modules/vehicles/apc/apc_command.dm +++ b/code/modules/vehicles/apc/apc_command.dm @@ -59,7 +59,7 @@ continue SSminimaps.remove_marker(current_xeno) - current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|MINIMAP_FLAG_XENO) + current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|get_minimap_flag_for_faction(current_xeno.hivenumber)) minimap_added += WEAKREF(current_xeno) else if(WEAKREF(current_xeno) in minimap_added) @@ -184,9 +184,9 @@ //stole my own code from techpod_vendor /obj/vehicle/multitile/apc/command/proc/get_access_permission(mob/living/carbon/human/user) - if(SSticker.mode == GAMEMODE_WHISKEY_OUTPOST || master_mode == GAMEMODE_WHISKEY_OUTPOST) + if(SSticker.mode == GAMEMODE_WHISKEY_OUTPOST || GLOB.master_mode == GAMEMODE_WHISKEY_OUTPOST) return TRUE - else if(SSticker.mode == "Distress Signal" || master_mode == "Distress Signal") + else if(SSticker.mode == "Distress Signal" || GLOB.master_mode == "Distress Signal") if(techpod_access_settings_override) return TRUE else if(user.get_target_lock(techpod_faction_requirement)) diff --git a/code/modules/vehicles/hardpoints/hardpoint.dm b/code/modules/vehicles/hardpoints/hardpoint.dm index ee49ebc0ab57..21e3e4b29f89 100644 --- a/code/modules/vehicles/hardpoints/hardpoint.dm +++ b/code/modules/vehicles/hardpoints/hardpoint.dm @@ -1,22 +1,20 @@ -/* - Hardpoints are any items that attach to a base vehicle, such as wheels/treads, support systems and guns -*/ - +/** + * Hardpoints are any items that attach to a base vehicle, such as wheels/treads, support systems and guns + */ /obj/item/hardpoint //------MAIN VARS---------- - // Which slot is this hardpoint in - // Purely to check for conflicting hardpoints + /// Which slot is this hardpoint in. Purely to check for conflicting hardpoints. var/slot - // The vehicle this hardpoint is installed on + /// The vehicle this hardpoint is installed on. var/obj/vehicle/multitile/owner health = 100 w_class = SIZE_LARGE - // Determines how much of any incoming damage is actually taken + /// Determines how much of any incoming damage is actually taken. var/damage_multiplier = 1 - // Origin coords of the hardpoint relative to the vehicle + /// Origin coords of the hardpoint relative to the vehicle. var/list/origins = list(0, 0) var/list/buff_multipliers @@ -32,13 +30,13 @@ var/disp_icon //This also differentiates tank vs apc vs other var/disp_icon_state - // List of pixel offsets for each direction + /// List of pixel offsets for each direction. var/list/px_offsets - //visual layer of hardpoint when on vehicle + /// Visual layer of hardpoint when on vehicle. var/hdpt_layer = HDPT_LAYER_WHEELS - // List of offsets for where to place the muzzle flash for each direction + /// List of offsets for where to place the muzzle flash for each direction. var/list/muzzle_flash_pos = list( "1" = list(0, 0), "2" = list(0, 0), @@ -54,33 +52,23 @@ var/const_mz_offset_y = 0 //------SOUNDS VARS---------- - // Sounds to play when the module activated/fired + /// Sounds to play when the module activated/fired. var/list/activation_sounds //------INTERACTION VARS---------- - //which seat can use this module + /// Which seat can use this module. var/allowed_seat = VEHICLE_GUNNER - //Cooldown on use of the hardpoint - var/cooldown = 100 - var/next_use = 0 - - //whether hardpoint has activatable ability like shooting or zooming + /// Whether hardpoint has activatable ability like shooting or zooming. var/activatable = 0 - //used to prevent welder click spam + /// Used to prevent welder click spam. var/being_repaired = FALSE - //current user. We can have only one user at a time. Better never change that - var/user - - //Accuracy of the hardpoint. (which is, in fact, a scatter. Need to change this system) - var/accuracy = 1 - - // The firing arc of this hardpoint + /// The firing arc of this hardpoint. var/firing_arc = 0 //in degrees. 0 skips whole arc of fire check // Muzzleflash @@ -91,17 +79,53 @@ //------AMMUNITION VARS---------- - //Currently loaded ammo that we shoot from + /// Currently loaded ammo that we shoot from. var/obj/item/ammo_magazine/hardpoint/ammo - //spare magazines that we can reload from + /// Spare magazines that we can reload from. var/list/backup_clips - //maximum amount of spare mags + /// Maximum amount of spare mags. var/max_clips = 0 /// An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args)) - /// that will be given to a projectile fired from the hardpoint + /// that will be given to a projectile fired from the hardpoint. var/list/list/traits_to_give + /// How much the bullet scatters when fired, in degrees. + var/scatter = 0 + /// How many bullets the gun fired while burst firing/auto firing. + var/shots_fired = 0 + /// Delay before a new firing sequence can start. + COOLDOWN_DECLARE(fire_cooldown) + + // Firemodes. + /// Current selected firemode of the gun. + var/gun_firemode = GUN_FIREMODE_SEMIAUTO + /// List of allowed firemodes. + var/list/gun_firemode_list = list( + GUN_FIREMODE_SEMIAUTO, + ) + + // Semi-auto and full-auto. + /// For regular shots, how long to wait before firing again. Use modify_fire_delay and set_fire_delay instead of modifying this on the fly + var/fire_delay = 0 + /// The multiplier for how much slower this should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc. Protected due to it never needing to be edited. + var/autofire_slow_mult = 1 + /// If the gun is currently auto firing. + var/auto_firing = FALSE + + // Burst fire. + /// How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst. Use modify_burst_amount and set_burst_amount instead of modifying this + var/burst_amount = 1 + /// The delay in between shots. Lower = less delay = faster. Use modify_burst_delay and set_burst_delay instead of modifying this + var/burst_delay = 1 + /// When burst-firing, this number is extra time before the weapon can fire again. + var/extra_delay = 0 + /// If the gun is currently burst firing. + var/burst_firing = FALSE + + /// Currently selected target to fire at. Set with set_target(). + var/atom/target + //----------------------------- //------GENERAL PROCS---------- //----------------------------- @@ -109,6 +133,7 @@ /obj/item/hardpoint/Initialize() . = ..() set_bullet_traits() + AddComponent(/datum/component/automatedfire/autofire, fire_delay, burst_delay, burst_amount, gun_firemode, autofire_slow_mult, CALLBACK(src, PROC_REF(set_burst_firing)), CALLBACK(src, PROC_REF(reset_fire)), CALLBACK(src, PROC_REF(fire_wrapper)), callback_set_firing = CALLBACK(src, PROC_REF(set_auto_firing))) /obj/item/hardpoint/Destroy() if(owner) @@ -117,7 +142,7 @@ owner = null QDEL_NULL_LIST(backup_clips) QDEL_NULL(ammo) - + set_target(null) return ..() /obj/item/hardpoint/ex_act(severity) @@ -166,37 +191,64 @@ /obj/item/hardpoint/proc/get_integrity_percent() return 100.0*health/initial(health) -/obj/item/hardpoint/proc/on_install(obj/vehicle/multitile/V) - apply_buff(V) - return +/// Apply hardpoint effects to vehicle and self. +/obj/item/hardpoint/proc/on_install(obj/vehicle/multitile/vehicle) + if(!vehicle) //in loose holder + return + RegisterSignal(vehicle, COMSIG_GUN_RECALCULATE_ATTACHMENT_BONUSES, PROC_REF(recalculate_hardpoint_bonuses)) + apply_buff(vehicle) -/obj/item/hardpoint/proc/on_uninstall(obj/vehicle/multitile/V) - remove_buff(V) - return +/// Remove hardpoint effects from vehicle and self. +/obj/item/hardpoint/proc/on_uninstall(obj/vehicle/multitile/vehicle) + if(!vehicle) //in loose holder + return + UnregisterSignal(vehicle, COMSIG_GUN_RECALCULATE_ATTACHMENT_BONUSES) + remove_buff(vehicle) + //resetting values like set_gun_config_values() would be tidy, but unnecessary as it gets recalc'd on install anyway -//applying passive buffs like damage type resistance, speed, accuracy, cooldowns -/obj/item/hardpoint/proc/apply_buff(obj/vehicle/multitile/V) +/// Applying passive buffs like damage type resistance, speed, accuracy, cooldowns. +/obj/item/hardpoint/proc/apply_buff(obj/vehicle/multitile/vehicle) if(buff_applied) return if(LAZYLEN(type_multipliers)) for(var/type in type_multipliers) - V.dmg_multipliers[type] *= LAZYACCESS(type_multipliers, type) + vehicle.dmg_multipliers[type] *= LAZYACCESS(type_multipliers, type) if(LAZYLEN(buff_multipliers)) for(var/type in buff_multipliers) - V.misc_multipliers[type] *= LAZYACCESS(buff_multipliers, type) + vehicle.misc_multipliers[type] *= LAZYACCESS(buff_multipliers, type) buff_applied = TRUE + SEND_SIGNAL(vehicle, COMSIG_GUN_RECALCULATE_ATTACHMENT_BONUSES) -//removing buffs -/obj/item/hardpoint/proc/remove_buff(obj/vehicle/multitile/V) +/// Removing passive buffs like damage type resistance, speed, accuracy, cooldowns. +/obj/item/hardpoint/proc/remove_buff(obj/vehicle/multitile/vehicle) if(!buff_applied) return if(LAZYLEN(type_multipliers)) for(var/type in type_multipliers) - V.dmg_multipliers[type] *= 1 / LAZYACCESS(type_multipliers, type) + vehicle.dmg_multipliers[type] *= 1 / LAZYACCESS(type_multipliers, type) if(LAZYLEN(buff_multipliers)) for(var/type in buff_multipliers) - V.misc_multipliers[type] *= 1 / LAZYACCESS(buff_multipliers, type) + vehicle.misc_multipliers[type] *= 1 / LAZYACCESS(buff_multipliers, type) buff_applied = FALSE + SEND_SIGNAL(vehicle, COMSIG_GUN_RECALCULATE_ATTACHMENT_BONUSES) + +/// Recalculates hardpoint values based on vehicle modifiers. +/obj/item/hardpoint/proc/recalculate_hardpoint_bonuses() + scatter = initial(scatter) / owner.misc_multipliers["accuracy"] + var/cooldown_mult = owner.misc_multipliers["cooldown"] + set_fire_delay(initial(fire_delay) * cooldown_mult) + set_burst_delay(initial(burst_delay) * cooldown_mult) + extra_delay = initial(extra_delay) * cooldown_mult + +/// Setter for fire_delay. +/obj/item/hardpoint/proc/set_fire_delay(value) + fire_delay = value + SEND_SIGNAL(src, COMSIG_GUN_AUTOFIREDELAY_MODIFIED, fire_delay) + +/// Setter for burst_delay. +/obj/item/hardpoint/proc/set_burst_delay(value) + burst_delay = value + SEND_SIGNAL(src, COMSIG_GUN_BURST_SHOT_DELAY_MODIFIED, burst_delay) //this proc called on each move of vehicle /obj/item/hardpoint/proc/on_move(turf/old, turf/new_turf, move_dir) @@ -253,13 +305,12 @@ return data -// Traces backwards from the gun origin to the vehicle to check for obstacles between the vehicle and the muzzle -/obj/item/hardpoint/proc/clear_los(atom/A) - +/// Traces backwards from the gun origin to the vehicle to check for obstacles between the vehicle and the muzzle. +/obj/item/hardpoint/proc/clear_los() if(origins[1] == 0 && origins[2] == 0) //skipping check for modules we don't need this return TRUE - var/turf/muzzle_turf = locate(owner.x + origins[1], owner.y + origins[2], owner.z) + var/turf/muzzle_turf = get_origin_turf() var/turf/checking_turf = muzzle_turf while(!(owner in checking_turf)) @@ -268,24 +319,24 @@ return FALSE // Ensure that we can pass over all objects in the turf - for(var/obj/O in checking_turf) + for(var/obj/object in checking_turf) // Since vehicles are multitile the - if(O == owner) + if(object == owner) continue // Non-dense objects are irrelevant - if(!O.density) + if(!object.density) continue // Make sure we can pass object from all directions - if(!(O.pass_flags.flags_can_pass_all & PASS_OVER_THROW_ITEM)) - if(!(O.flags_atom & ON_BORDER)) + if(!HAS_FLAG(object.pass_flags.flags_can_pass_all, PASS_OVER_THROW_ITEM)) + if(!HAS_FLAG(object.flags_atom, ON_BORDER)) return FALSE //If we're behind the object, check the behind pass flags - else if(dir == O.dir && !(O.pass_flags.flags_can_pass_behind & PASS_OVER_THROW_ITEM)) + else if(dir == object.dir && !HAS_FLAG(object.pass_flags.flags_can_pass_behind, PASS_OVER_THROW_ITEM)) return FALSE //If we're in front, check front pass flags - else if(dir == turn(O.dir, 180) && !(O.pass_flags.flags_can_pass_front & PASS_OVER_THROW_ITEM)) + else if(dir == turn(object.dir, 180) && !HAS_FLAG(object.pass_flags.flags_can_pass_front, PASS_OVER_THROW_ITEM)) return FALSE // Trace back towards the vehicle @@ -297,47 +348,6 @@ //------INTERACTION PROCS---------- //----------------------------- -//If the hardpoint can be activated by current user -/obj/item/hardpoint/proc/can_activate(mob/user, atom/A) - if(!owner) - return - - var/seat = owner.get_mob_seat(user) - if(!seat) - return - - if(seat != allowed_seat) - to_chat(user, SPAN_WARNING("Only [allowed_seat] can use [name].")) - return - - if(health <= 0) - to_chat(user, SPAN_WARNING("\The [name] is broken!")) - return FALSE - - if(world.time < next_use) - if(cooldown >= 20) //filter out guns with high firerate to prevent message spam. - to_chat(user, SPAN_WARNING("You need to wait [SPAN_HELPFUL((next_use - world.time) / 10)] seconds before [name] can be used again.")) - return FALSE - - if(ammo && ammo.current_rounds <= 0) - to_chat(user, SPAN_WARNING("\The [name] is out of ammo! Magazines: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) - return FALSE - - if(!in_firing_arc(A)) - to_chat(user, SPAN_WARNING("The target is not within your firing arc!")) - return FALSE - - if(!clear_los(A)) - to_chat(user, SPAN_WARNING("You don't have a clear line of sight to the target!")) - return FALSE - - return TRUE - -//Called when you want to activate the hardpoint, by default firing a gun -//This can also be used for some type of temporary buff or toggling mode, up to you -/obj/item/hardpoint/proc/activate(mob/user, atom/A) - fire(user, A) - /obj/item/hardpoint/proc/deactivate() return @@ -490,76 +500,201 @@ user.visible_message(SPAN_NOTICE("[user] stops repairing \the [name]."), SPAN_NOTICE("You stop repairing \the [name]. The integrity of the module is at [SPAN_HELPFUL(round(get_integrity_percent()))]%.")) return -//determines whether something is in firing arc of a hardpoint -/obj/item/hardpoint/proc/in_firing_arc(atom/A) - if(!owner) - return FALSE +/// Setter proc for the automatic firing flag. +/obj/item/hardpoint/proc/set_auto_firing(auto = FALSE) + if(auto_firing != auto) + auto_firing = auto + if(!auto_firing) //end-of-fire, show changed ammo + display_ammo() + +/// Setter proc for the burst firing flag. +/obj/item/hardpoint/proc/set_burst_firing(burst = FALSE) + if(burst_firing != burst) + burst_firing = burst + if(!burst_firing) //end-of-fire, show changed ammo + display_ammo() + +/// Clean all firing references. +/obj/item/hardpoint/proc/reset_fire() + shots_fired = 0 + set_target(null) + set_auto_firing(FALSE) //on abnormal exits automatic fire doesn't call set_auto_firing() + +/// Set the target and take care of hard delete. +/obj/item/hardpoint/proc/set_target(atom/object) + if(object == target || object == loc) + return + if(target) + UnregisterSignal(target, COMSIG_PARENT_QDELETING) + target = object + if(target) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(clean_target)) + +/// Set the target to its turf, so we keep shooting even when it was qdeled. +/obj/item/hardpoint/proc/clean_target() + SIGNAL_HANDLER + target = get_turf(target) + +/// Print how much ammo is left to chat. +/obj/item/hardpoint/proc/display_ammo(mob/user) + if(!user) + user = owner.get_seat_mob(allowed_seat) + if(!user) + return - if(!firing_arc) - return TRUE + if(ammo) + to_chat(user, SPAN_WARNING("[name] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) - var/turf/T = get_turf(A) - if(!T) - return FALSE +/// Reset variables used in firing and remove the gun from the autofire system. +/obj/item/hardpoint/proc/stop_fire(datum/source, atom/object, turf/location, control, params) + SEND_SIGNAL(src, COMSIG_GUN_STOP_FIRE) + if(auto_firing) + reset_fire() //automatic fire doesn't reset itself from COMSIG_GUN_STOP_FIRE - var/dx = T.x - (owner.x + origins[1]/2) - var/dy = T.y - (owner.y + origins[2]/2) - - var/deg = 0 - switch(dir) - if(EAST) - deg = 0 - if(NORTH) - deg = -90 - if(WEST) - deg = 180 - if(SOUTH) - deg = 90 - - var/nx = dx * cos(deg) - dy * sin(deg) - var/ny = dx * sin(deg) + dy * cos(deg) - if(nx == 0) - return firing_arc >= 90 - - var/angle = arctan(ny/nx) - if(nx < 0) - angle += 180 - - return abs(angle) <= (firing_arc/2) - -//doing last preparation before actually firing gun -/obj/item/hardpoint/proc/fire(mob/user, atom/A) - if(!ammo) //Prevents a runtime +/// Update the target if you dragged your mouse. +/obj/item/hardpoint/proc/change_target(datum/source, atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params) + set_target(get_turf_on_clickcatcher(over_object, source, params)) + +/// Check if the gun can fire and add it to bucket autofire system if needed, or just fire the gun if not. +/obj/item/hardpoint/proc/start_fire(datum/source, atom/object, turf/location, control, params) + if(istype(object, /atom/movable/screen)) return - if(ammo.current_rounds <= 0) + + if(QDELETED(object)) return - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - A = get_step(get_turf(A), pick(cardinal)) + if(!auto_firing && !burst_firing && !COOLDOWN_FINISHED(src, fire_cooldown)) + if(max(fire_delay, burst_delay + extra_delay) >= 2.0 SECONDS) //filter out guns with high firerate to prevent message spam. + to_chat(source, SPAN_WARNING("You need to wait [SPAN_HELPFUL(COOLDOWN_SECONDSLEFT(src, fire_cooldown))] seconds before [name] can be used again.")) + return - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) + set_target(get_turf_on_clickcatcher(object, source, params)) - fire_projectile(user, A) + if(gun_firemode == GUN_FIREMODE_SEMIAUTO) + var/fire_return = try_fire(object, source, params) + //end-of-fire, show ammo (if changed) + if(fire_return == AUTOFIRE_CONTINUE) + reset_fire() + display_ammo(source) + else + SEND_SIGNAL(src, COMSIG_GUN_FIRE) + +/// Wrapper proc for the autofire system to ensure the important args aren't null. +/obj/item/hardpoint/proc/fire_wrapper(atom/target, mob/living/user, params) + SHOULD_NOT_OVERRIDE(TRUE) + if(!target) + target = src.target + if(!user) + user = owner.get_seat_mob(allowed_seat) + if(!target || !user) + return NONE + + return try_fire(target, user, params) + +/// Tests if firing should be interrupted, otherwise fires. +/obj/item/hardpoint/proc/try_fire(atom/target, mob/living/user, params) + if(health <= 0) + to_chat(user, SPAN_WARNING("\The [name] is broken!")) + return NONE - to_chat(user, SPAN_WARNING("[name] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) + if(ammo && ammo.current_rounds <= 0) + click_empty(user) + return NONE -//finally firing the gun -/obj/item/hardpoint/proc/fire_projectile(mob/user, atom/A) - set waitfor = 0 + if(!in_firing_arc(target)) + to_chat(user, SPAN_WARNING("The target is not within your firing arc!")) + return NONE - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) + if(!clear_los()) + to_chat(user, SPAN_WARNING("The muzzle is obstructed!")) + return NONE - var/obj/projectile/P = generate_bullet(user, origin_turf) - SEND_SIGNAL(P, COMSIG_BULLET_USER_EFFECTS, user) - P.fire_at(A, user, src, P.ammo.max_range, P.ammo.shell_speed) + return handle_fire(target, user, params) - if(use_muzzle_flash) - muzzle_flash(Get_Angle(origin_turf, A)) +/// Actually fires the gun, sets up the projectile and fires it. +/obj/item/hardpoint/proc/handle_fire(atom/target, mob/living/user, params) + var/turf/origin_turf = get_origin_turf() + var/obj/projectile/projectile_to_fire = generate_bullet(user, origin_turf) ammo.current_rounds-- + SEND_SIGNAL(projectile_to_fire, COMSIG_BULLET_USER_EFFECTS, user) + + // turf-targeted projectiles are fired without scatter, because proc would raytrace them further away + var/ammo_flags = projectile_to_fire.ammo.flags_ammo_behavior | projectile_to_fire.projectile_override_flags + if(!HAS_FLAG(ammo_flags, AMMO_HITS_TARGET_TURF) && !HAS_FLAG(ammo_flags, AMMO_EXPLOSIVE)) //AMMO_EXPLOSIVE is also a turf-targeted projectile + projectile_to_fire.scatter = scatter + target = simulate_scatter(projectile_to_fire, target, origin_turf, get_turf(target), user) + + INVOKE_ASYNC(projectile_to_fire, TYPE_PROC_REF(/obj/projectile, fire_at), target, user, src, projectile_to_fire.ammo.max_range, projectile_to_fire.ammo.shell_speed) + projectile_to_fire = null + + shots_fired++ + play_firing_sounds() + if(use_muzzle_flash) + muzzle_flash(Get_Angle(origin_turf, target)) + + set_fire_cooldown(gun_firemode) + + return AUTOFIRE_CONTINUE + +/// Start cooldown to respect delay of firemode. +/obj/item/hardpoint/proc/set_fire_cooldown(firemode) + var/cooldown_time = 0 + switch(firemode) + if(GUN_FIREMODE_SEMIAUTO) + cooldown_time = fire_delay + if(GUN_FIREMODE_BURSTFIRE) + cooldown_time = burst_delay + extra_delay + if(GUN_FIREMODE_AUTOMATIC) + cooldown_time = fire_delay + COOLDOWN_START(src, fire_cooldown, cooldown_time) + +/// Adjust target based on random scatter angle. +/obj/item/hardpoint/proc/simulate_scatter(obj/projectile/projectile_to_fire, atom/target, turf/curloc, turf/targloc) + var/fire_angle = Get_Angle(curloc, targloc) + var/total_scatter_angle = projectile_to_fire.scatter + + //Not if the gun doesn't scatter at all, or negative scatter. + if(total_scatter_angle > 0) + fire_angle += rand(-total_scatter_angle, total_scatter_angle) + target = get_angle_target_turf(curloc, fire_angle, 30) + + return target + +/// Get turf at hardpoint origin offset, used as the muzzle. +/obj/item/hardpoint/proc/get_origin_turf() + return get_offset_target_turf(get_turf(src), origins[1], origins[2]) + +/// Plays 'click' noise and announced to chat. Usually called when weapon empty. +/obj/item/hardpoint/proc/click_empty(mob/user) + playsound(src, 'sound/weapons/gun_empty.ogg', 25, 1, 5) + if(user) + to_chat(user, SPAN_WARNING("*click*")) + +/// Selects and plays a firing sound from the list. +/obj/item/hardpoint/proc/play_firing_sounds() + if(LAZYLEN(activation_sounds)) + playsound(get_turf(src), pick(activation_sounds), 60, 1) + +/// Determines whether something is in firing arc of a hardpoint. +/obj/item/hardpoint/proc/in_firing_arc(atom/target) + if(!firing_arc || !ISINRANGE_EX(firing_arc, 0, 360)) + return TRUE + + var/turf/muzzle_turf = get_origin_turf() + var/turf/target_turf = get_turf(target) + + //same tile angle returns EAST, returning FALSE to ensure consistency + if(muzzle_turf == target_turf) + return FALSE + + var/angle_diff = SIMPLIFY_DEGREES(dir2angle(dir) - Get_Angle(muzzle_turf, target_turf)) + if(angle_diff < -180) + angle_diff += 360 + else if(angle_diff > 180) + angle_diff -= 360 + + return abs(angle_diff) <= (firing_arc * 0.5) //----------------------------- //------ICON PROCS---------- diff --git a/code/modules/vehicles/hardpoints/holder/holder.dm b/code/modules/vehicles/hardpoints/holder/holder.dm index b14e078a3997..df91cbc51b65 100644 --- a/code/modules/vehicles/hardpoints/holder/holder.dm +++ b/code/modules/vehicles/hardpoints/holder/holder.dm @@ -26,7 +26,7 @@ else if(isobserver(user) || (ishuman(user) && (skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED) || skillcheck(user, SKILL_VEHICLE, SKILL_VEHICLE_CREWMAN)))) . += "It's at [round(get_integrity_percent(), 1)]% integrity!" for(var/obj/item/hardpoint/H in hardpoints) - . += "There is a [H] module installed on \the [src]." + . += "There is \a [H] module installed on [src]." . += H.get_examine_text(user, TRUE) /obj/item/hardpoint/holder/get_tgui_info() @@ -43,10 +43,21 @@ for(var/obj/item/hardpoint/H in hardpoints) H.take_damage(damage) -/obj/item/hardpoint/holder/on_install(obj/vehicle/multitile/V) - for(var/obj/item/hardpoint/HP in hardpoints) - HP.owner = V - return +/obj/item/hardpoint/holder/on_install(obj/vehicle/multitile/vehicle) + ..() + if(!vehicle) //in loose holder + return + for(var/obj/item/hardpoint/hardpoint in hardpoints) + hardpoint.owner = vehicle + hardpoint.on_install(vehicle) + +/obj/item/hardpoint/holder/on_uninstall(obj/vehicle/multitile/vehicle) + if(!vehicle) //in loose holder + return + for(var/obj/item/hardpoint/hardpoint in hardpoints) + hardpoint.on_uninstall(vehicle) + hardpoint.owner = null + ..() /obj/item/hardpoint/holder/proc/can_install(obj/item/hardpoint/H) // Can only have 1 hardpoint of each slot type @@ -121,16 +132,17 @@ H.forceMove(src) LAZYADD(hardpoints, H) + H.on_install(owner) H.rotate(turning_angle(H.dir, dir)) /obj/item/hardpoint/holder/proc/remove_hardpoint(obj/item/hardpoint/H, turf/uninstall_to) if(!hardpoints) return - hardpoints -= H H.forceMove(uninstall_to ? uninstall_to : get_turf(src)) + H.on_uninstall(owner) H.reset_rotation() - + hardpoints -= H H.owner = null if(H.health <= 0) diff --git a/code/modules/vehicles/hardpoints/holder/tank_turret.dm b/code/modules/vehicles/hardpoints/holder/tank_turret.dm index 27ab6c95404c..896628e609bb 100644 --- a/code/modules/vehicles/hardpoints/holder/tank_turret.dm +++ b/code/modules/vehicles/hardpoints/holder/tank_turret.dm @@ -13,8 +13,6 @@ density = TRUE //come on, it's huge activatable = TRUE - cooldown = 150 - accuracy = 0.8 ammo = new /obj/item/ammo_magazine/hardpoint/turret_smoke max_clips = 2 @@ -60,6 +58,15 @@ // Used during the windup var/rotating = FALSE + scatter = 4 + gun_firemode = GUN_FIREMODE_BURSTFIRE + gun_firemode_list = list( + GUN_FIREMODE_BURSTFIRE, + ) + burst_amount = 2 + burst_delay = 1.0 SECONDS + extra_delay = 13.0 SECONDS + /obj/item/hardpoint/holder/tank_turret/update_icon() var/broken = (health <= 0) icon_state = "tank_turret_[broken]" @@ -182,12 +189,7 @@ user.client.pixel_x = -1 * AM.view_tile_offset * 32 user.client.pixel_y = 0 -/obj/item/hardpoint/holder/tank_turret/fire(mob/user, atom/A) - if(ammo.current_rounds <= 0) - return - - next_use = world.time + cooldown - +/obj/item/hardpoint/holder/tank_turret/try_fire(atom/target, mob/living/user, params) var/turf/L var/turf/R switch(owner.dir) @@ -204,26 +206,14 @@ L = locate(owner.x - 4, owner.y + 2, owner.z) R = locate(owner.x - 4, owner.y - 2, owner.z) - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, L) + if(shots_fired) + target = R + else + target = L - sleep(10) + return ..() - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, R) - - to_chat(user, SPAN_WARNING("Smoke Screen uses left: [SPAN_HELPFUL(ammo ? ammo.current_rounds / 2 : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds / 2 : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) - -/obj/item/hardpoint/holder/tank_turret/fire_projectile(mob/user, atom/A) - set waitfor = 0 - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) +/obj/item/hardpoint/holder/tank_turret/get_origin_turf() + var/origin_turf = ..() origin_turf = get_step(get_step(origin_turf, owner.dir), owner.dir) //this should get us tile in front of tank to prevent grenade being stuck under us. - - var/obj/projectile/P = generate_bullet(user, origin_turf) - SEND_SIGNAL(P, COMSIG_BULLET_USER_EFFECTS, owner.seats[VEHICLE_GUNNER]) - P.fire_at(A, owner.seats[VEHICLE_GUNNER], src, get_dist(origin_turf, A) + 1, P.ammo.shell_speed) - ammo.current_rounds-- + return origin_turf diff --git a/code/modules/vehicles/hardpoints/primary/autocannon.dm b/code/modules/vehicles/hardpoints/primary/autocannon.dm index df9224011b32..b6dc2cedc674 100644 --- a/code/modules/vehicles/hardpoints/primary/autocannon.dm +++ b/code/modules/vehicles/hardpoints/primary/autocannon.dm @@ -8,8 +8,6 @@ activation_sounds = list('sound/weapons/vehicles/autocannon_fire.ogg') health = 500 - cooldown = 7 - accuracy = 0.98 firing_arc = 60 origins = list(0, -3) @@ -23,3 +21,10 @@ "4" = list(32, 0), "8" = list(-32, 0) ) + + scatter = 1 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.7 SECONDS diff --git a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm index 763bfb69842d..4033a4bffb2a 100644 --- a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm +++ b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm @@ -12,10 +12,7 @@ damage_multiplier = 0.2 health = 500 - cooldown = 7 - accuracy = 0.98 firing_arc = 60 - var/burst_amount = 2 origins = list(0, -2) @@ -33,27 +30,15 @@ "8" = list(14, 9) ) + scatter = 1 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.3 SECONDS + /obj/item/hardpoint/primary/dualcannon/set_bullet_traits() ..() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) - -/obj/item/hardpoint/primary/dualcannon/fire(mob/user, atom/A) - if(ammo.current_rounds <= 0) - return - - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - - for(var/bullets_fired = 1, bullets_fired <= burst_amount, bullets_fired++) - var/atom/T = A - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - T = get_step(get_turf(A), pick(cardinal)) - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, T) - if(ammo.current_rounds <= 0) - break - if(bullets_fired < burst_amount) //we need to sleep only if there are more bullets to shoot in the burst - sleep(3) - to_chat(user, SPAN_WARNING("[src] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) diff --git a/code/modules/vehicles/hardpoints/primary/flamer.dm b/code/modules/vehicles/hardpoints/primary/flamer.dm index 929842df2307..13beee9dd2c2 100644 --- a/code/modules/vehicles/hardpoints/primary/flamer.dm +++ b/code/modules/vehicles/hardpoints/primary/flamer.dm @@ -8,8 +8,6 @@ activation_sounds = list('sound/weapons/vehicles/flamethrower.ogg') health = 400 - cooldown = 20 - accuracy = 0.75 firing_arc = 90 origins = list(0, -3) @@ -26,36 +24,19 @@ use_muzzle_flash = FALSE + scatter = 5 + fire_delay = 2.0 SECONDS + /obj/item/hardpoint/primary/flamer/set_bullet_traits() ..() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) -/obj/item/hardpoint/primary/flamer/can_activate(mob/user, atom/A) - if(!..()) - return FALSE - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) - if(origin_turf == get_turf(A)) - return FALSE - - return TRUE - -/obj/item/hardpoint/primary/flamer/fire_projectile(mob/user, atom/A) - set waitfor = 0 - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) - - var/range = get_dist(origin_turf, A) + 1 - - var/obj/projectile/P = generate_bullet(user, origin_turf) - SEND_SIGNAL(P, COMSIG_BULLET_USER_EFFECTS, owner.seats[VEHICLE_GUNNER]) - P.fire_at(A, owner.seats[VEHICLE_GUNNER], src, range < P.ammo.max_range ? range : P.ammo.max_range, P.ammo.shell_speed) - - if(use_muzzle_flash) - muzzle_flash(Get_Angle(owner, A)) +/obj/item/hardpoint/primary/flamer/try_fire(target, user, params) + var/turf/origin_turf = get_origin_turf() + if(origin_turf == get_turf(target)) + to_chat(user, SPAN_WARNING("The target is too close.")) + return NONE - ammo.current_rounds-- + return ..() diff --git a/code/modules/vehicles/hardpoints/primary/ltb.dm b/code/modules/vehicles/hardpoints/primary/ltb.dm index 7c663dc27fbc..19b5c7e7b9b4 100644 --- a/code/modules/vehicles/hardpoints/primary/ltb.dm +++ b/code/modules/vehicles/hardpoints/primary/ltb.dm @@ -8,8 +8,6 @@ activation_sounds = list('sound/weapons/vehicles/cannon_fire1.ogg', 'sound/weapons/vehicles/cannon_fire2.ogg') health = 500 - cooldown = 200 - accuracy = 0.97 firing_arc = 60 origins = list(0, -3) @@ -30,3 +28,6 @@ "4" = list(89, -4), "8" = list(-89, -4) ) + + scatter = 2 + fire_delay = 20.0 SECONDS diff --git a/code/modules/vehicles/hardpoints/primary/minigun.dm b/code/modules/vehicles/hardpoints/primary/minigun.dm index c6158f1a3b2c..3acf37eec268 100644 --- a/code/modules/vehicles/hardpoints/primary/minigun.dm +++ b/code/modules/vehicles/hardpoints/primary/minigun.dm @@ -7,8 +7,6 @@ disp_icon_state = "ltaaap_minigun" health = 350 - cooldown = 8 - accuracy = 0.6 firing_arc = 90 origins = list(0, -3) @@ -30,46 +28,58 @@ "8" = list(-77, 0) ) - //changed minigun mechanic so instead of having lowered cooldown with each shot it now has increased burst size. - //While it's still spammy, user doesn't have to click as fast as possible anymore and has margin of 2 seconds before minigun will start slowing down - - var/chained_shots = 1 //how many quick succession shots we've fired, 1 by default - var/last_shot_time = 0 //when was last shot fired, after 3 seconds we stop barrel - var/list/chain_bursts = list(1, 1, 2, 2, 3, 3, 3, 4, 4, 4) //how many shots per click we do + scatter = 7 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.8 SECONDS //base fire rate, modified by stage_delay_mult + activation_sounds = list('sound/weapons/gun_minigun.ogg') + /// Active firing time to reach max spin_stage. + var/spinup_time = 8 SECONDS + /// Grace period before losing spin_stage. + var/spindown_grace_time = 2 SECONDS + COOLDOWN_DECLARE(spindown_grace_cooldown) + /// Cooldown time to reach min spin_stage. + var/spindown_time = 3 SECONDS + /// Index of stage_rate. + var/spin_stage = 1 + /// Shots fired per fire_delay at a particular spin_stage. + var/list/stage_rate = list(1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 5) + /// Fire delay multiplier for current spin_stage. + var/stage_delay_mult = 1 + /// When it was last fired, related to world.time. + var/last_fired = 0 -/obj/item/hardpoint/primary/minigun/fire(mob/user, atom/A) +/obj/item/hardpoint/primary/minigun/set_fire_delay(value) + fire_delay = value + SEND_SIGNAL(src, COMSIG_GUN_AUTOFIREDELAY_MODIFIED, fire_delay * stage_delay_mult) - var/S = 'sound/weapons/vehicles/minigun_stop.ogg' - //check how much time since last shot. 2 seconds are grace period before minigun starts to lose rotation momentum - var/t = world.time - last_shot_time - 2 SECONDS - t = round(t / 10) - if(t > 0) - chained_shots = max(chained_shots - t * 3, 1) //we lose 3 chained_shots per second - else - if(chained_shots < 11) - chained_shots++ - S = 'sound/weapons/vehicles/minigun_loop.ogg' +/obj/item/hardpoint/primary/minigun/set_fire_cooldown() + calculate_stage_delay_mult() //needs to check grace_cooldown before refreshed + last_fired = world.time + COOLDOWN_START(src, spindown_grace_cooldown, spindown_grace_time) + COOLDOWN_START(src, fire_cooldown, fire_delay * stage_delay_mult) - if(chained_shots == 1) - playsound(get_turf(src), 'sound/weapons/vehicles/minigun_start.ogg', 40, 1) +/obj/item/hardpoint/primary/minigun/proc/calculate_stage_delay_mult() + var/stage_rate_len = stage_rate.len + var/delta_time = world.time - last_fired - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - - //how many rounds we will shoot in this burst - if(chained_shots > LAZYLEN(chain_bursts)) //5 shots at maximum rotation - t = 5 + var/old_spin_stage = spin_stage + if(auto_firing || burst_firing) //spinup if continuing fire + var/delta_stage = delta_time * (stage_rate_len - 1) + spin_stage += delta_stage / spinup_time + else if(COOLDOWN_FINISHED(src, spindown_grace_cooldown)) //spindown if initiating fire after grace + var/delta_stage = (delta_time - spindown_grace_time) * (stage_rate_len - 1) + spin_stage -= delta_stage / spindown_time else - t = LAZYACCESS(chain_bursts, chained_shots) - for(var/i = 1; i <= t; i++) - var/atom/T = A - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - T = get_step(get_turf(T), pick(cardinal)) - fire_projectile(user, T) - if(ammo.current_rounds <= 0) - break - sleep(2) - to_chat(user, SPAN_WARNING("[src] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) + return + spin_stage = Clamp(spin_stage, 1, stage_rate_len) + + var/old_stage_rate = stage_rate[Floor(old_spin_stage)] + var/new_stage_rate = stage_rate[Floor(spin_stage)] - playsound(get_turf(src), S, 40, 1) - last_shot_time = world.time + if(old_stage_rate != new_stage_rate) + stage_delay_mult = 1 / new_stage_rate + SEND_SIGNAL(src, COMSIG_GUN_AUTOFIREDELAY_MODIFIED, fire_delay * stage_delay_mult) diff --git a/code/modules/vehicles/hardpoints/secondary/cupola.dm b/code/modules/vehicles/hardpoints/secondary/cupola.dm index f1f8f23435c2..f259d6ea2623 100644 --- a/code/modules/vehicles/hardpoints/secondary/cupola.dm +++ b/code/modules/vehicles/hardpoints/secondary/cupola.dm @@ -8,10 +8,7 @@ activation_sounds = list('sound/weapons/gun_smartgun1.ogg', 'sound/weapons/gun_smartgun2.ogg', 'sound/weapons/gun_smartgun3.ogg', 'sound/weapons/gun_smartgun4.ogg') health = 350 - cooldown = 15 - accuracy = 0.9 firing_arc = 120 - var/burst_amount = 3 origins = list(0, -2) @@ -25,27 +22,17 @@ "8" = list(-5, 7) ) + scatter = 3 + gun_firemode = GUN_FIREMODE_BURSTFIRE + gun_firemode_list = list( + GUN_FIREMODE_BURSTFIRE, + ) + burst_amount = 3 + burst_delay = 0.3 SECONDS + extra_delay = 0.6 SECONDS + /obj/item/hardpoint/secondary/m56cupola/set_bullet_traits() ..() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) - -/obj/item/hardpoint/secondary/m56cupola/fire(mob/user, atom/A) - if(ammo.current_rounds <= 0) - return - - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - - for(var/bullets_fired = 1, bullets_fired <= burst_amount, bullets_fired++) - var/atom/T = A - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - T = get_step(get_turf(A), pick(cardinal)) - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, T) - if(ammo.current_rounds <= 0) - break - if(bullets_fired < burst_amount) //we need to sleep only if there are more bullets to shoot in the burst - sleep(3) - to_chat(user, SPAN_WARNING("[src] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) diff --git a/code/modules/vehicles/hardpoints/secondary/flamer.dm b/code/modules/vehicles/hardpoints/secondary/flamer.dm index 10f7453d8c95..5557cfb24e17 100644 --- a/code/modules/vehicles/hardpoints/secondary/flamer.dm +++ b/code/modules/vehicles/hardpoints/secondary/flamer.dm @@ -8,8 +8,6 @@ activation_sounds = list('sound/weapons/vehicles/flamethrower.ogg') health = 300 - cooldown = 30 - accuracy = 0.68 firing_arc = 120 origins = list(0, -2) @@ -28,31 +26,20 @@ "8" = list(-3, 18) ) -/obj/item/hardpoint/secondary/small_flamer/fire_projectile(mob/user, atom/A) - set waitfor = 0 - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) - var/list/turf/turfs = getline2(origin_turf, A) - var/distance = 0 - var/turf/prev_T - - for(var/turf/T in turfs) - if(T == loc) - prev_T = T - continue - if(!ammo.current_rounds) break - if(distance >= max_range) break - if(prev_T && LinkBlocked(prev_T, T)) - break - ammo.current_rounds-- - flame_turf(T, user) - distance++ - prev_T = T - sleep(1) - -/obj/item/hardpoint/secondary/small_flamer/proc/flame_turf(turf/T, mob/user) - if(!istype(T)) return - - if(!locate(/obj/flamer_fire) in T) // No stacking flames! - new/obj/flamer_fire(T, create_cause_data(initial(name), user)) + scatter = 6 + fire_delay = 3.0 SECONDS + +/obj/item/hardpoint/secondary/small_flamer/handle_fire(atom/target, mob/living/user, params) + var/turf/origin_turf = get_origin_turf() + + var/distance = get_dist(origin_turf, get_turf(target)) + var/fire_amount = min(ammo.current_rounds, distance+1, max_range) + ammo.current_rounds -= fire_amount + + new /obj/flamer_fire(origin_turf, create_cause_data(initial(name), user), null, fire_amount, null, FLAMESHAPE_LINE, target, CALLBACK(src, PROC_REF(display_ammo), user)) + + play_firing_sounds() + + COOLDOWN_START(src, fire_cooldown, fire_delay) + + return AUTOFIRE_CONTINUE diff --git a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm index 4d454bed12a4..536b5742cfcd 100644 --- a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm +++ b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm @@ -11,10 +11,7 @@ damage_multiplier = 0.11 health = 350 - cooldown = 16 - accuracy = 0.8 firing_arc = 120 - var/burst_amount = 4 origins = list(0, -2) @@ -32,27 +29,15 @@ "8" = list(-62, -26) ) + scatter = 4 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.3 SECONDS + /obj/item/hardpoint/secondary/frontalcannon/set_bullet_traits() ..() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) - -/obj/item/hardpoint/secondary/frontalcannon/fire(mob/user, atom/A) - if(ammo.current_rounds <= 0) - return - - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - - for(var/bullets_fired = 1, bullets_fired <= burst_amount, bullets_fired++) - var/atom/T = A - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - T = get_step(get_turf(A), pick(cardinal)) - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, T) - if(ammo.current_rounds <= 0) - break - if(bullets_fired < burst_amount) //we need to sleep only if there are more bullets to shoot in the burst - sleep(3) - to_chat(user, SPAN_WARNING("[src] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)] | Mags: [SPAN_HELPFUL(LAZYLEN(backup_clips))]/[SPAN_HELPFUL(max_clips)]")) diff --git a/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm b/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm index 8151a1ee50c1..efd151e93cb3 100644 --- a/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm +++ b/code/modules/vehicles/hardpoints/secondary/grenade_launcher.dm @@ -8,8 +8,6 @@ activation_sounds = list('sound/weapons/gun_m92_attachable.ogg') health = 500 - cooldown = 30 - accuracy = 0.4 firing_arc = 90 var/max_range = 7 @@ -27,40 +25,19 @@ "8" = list(-6, 17) ) + scatter = 10 + fire_delay = 3.0 SECONDS + /obj/item/hardpoint/secondary/grenade_launcher/set_bullet_traits() ..() LAZYADD(traits_to_give, list( BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) )) -/obj/item/hardpoint/secondary/grenade_launcher/can_activate(mob/user, atom/A) - if(!..()) - return FALSE - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) - if(get_dist(origin_turf, A) < 1) - to_chat(usr, SPAN_WARNING("The target is too close.")) - return FALSE - - return TRUE - -/obj/item/hardpoint/secondary/grenade_launcher/fire_projectile(mob/user, atom/A) - set waitfor = 0 - - var/turf/origin_turf = get_turf(src) - origin_turf = locate(origin_turf.x + origins[1], origin_turf.y + origins[2], origin_turf.z) - - //getting distance between supposed target and tank center. - var/range = get_dist(origin_turf, A) + 1 //otherwise nade falls one tile shorter - if(range > max_range) - range = max_range - - var/obj/projectile/P = generate_bullet(user, origin_turf) - SEND_SIGNAL(P, COMSIG_BULLET_USER_EFFECTS, owner.seats[VEHICLE_GUNNER]) - P.fire_at(A, owner.seats[VEHICLE_GUNNER], src, P.ammo.max_range, P.ammo.shell_speed) - - if(use_muzzle_flash) - muzzle_flash(Get_Angle(owner, A)) +/obj/item/hardpoint/secondary/grenade_launcher/try_fire(mob/user, atom/A) + var/turf/origin_turf = get_origin_turf() + if(origin_turf == get_turf(A)) + to_chat(user, SPAN_WARNING("The target is too close.")) + return NONE - ammo.current_rounds-- + return ..() diff --git a/code/modules/vehicles/hardpoints/secondary/tow.dm b/code/modules/vehicles/hardpoints/secondary/tow.dm index 4bdbc6f417fb..7c58f7970c7b 100644 --- a/code/modules/vehicles/hardpoints/secondary/tow.dm +++ b/code/modules/vehicles/hardpoints/secondary/tow.dm @@ -7,8 +7,6 @@ disp_icon_state = "towlauncher" health = 500 - cooldown = 150 - accuracy = 0.8 firing_arc = 60 origins = list(0, -2) @@ -29,3 +27,7 @@ "4" = list(5, -8), "8" = list(-5, 10) ) + + scatter = 4 + fire_delay = 15.0 SECONDS + diff --git a/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm b/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm index 9310556ee94f..780c195f00be 100644 --- a/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm +++ b/code/modules/vehicles/hardpoints/special/firing_port_weapon.dm @@ -10,10 +10,7 @@ activation_sounds = list('sound/weapons/gun_smartgun1.ogg', 'sound/weapons/gun_smartgun2.ogg', 'sound/weapons/gun_smartgun3.ogg', 'sound/weapons/gun_smartgun4.ogg') health = 100 - cooldown = 10 - accuracy = 0.9 firing_arc = 120 - var/burst_amount = 3 //FPWs reload automatically var/reloading = FALSE var/reload_time = 10 SECONDS @@ -30,6 +27,13 @@ underlayer_north_muzzleflash = TRUE + scatter = 3 + gun_firemode = GUN_FIREMODE_AUTOMATIC + gun_firemode_list = list( + GUN_FIREMODE_AUTOMATIC, + ) + fire_delay = 0.3 SECONDS + /obj/item/hardpoint/special/firing_port_weapon/set_bullet_traits() ..() LAZYADD(traits_to_give, list( @@ -49,46 +53,6 @@ return data - -/obj/item/hardpoint/special/firing_port_weapon/can_activate(mob/user, atom/A) - if(!owner) - return FALSE - - var/seat = owner.get_mob_seat(user) - if(!seat) - return FALSE - - if(seat != allowed_seat) - to_chat(user, SPAN_WARNING("Only [allowed_seat] can use [name].")) - return FALSE - - //FPW stop working at 50% hull - if(owner.health < initial(owner.health) * 0.5) - to_chat(user, SPAN_WARNING("\The [owner]'s hull is too damaged!")) - return FALSE - - if(world.time < next_use) - if(cooldown >= 20) //filter out guns with high firerate to prevent message spam. - to_chat(user, SPAN_WARNING("You need to wait [SPAN_HELPFUL((next_use - world.time) / 10)] seconds before [name] can be used again.")) - return FALSE - - if(reloading) - to_chat(user, SPAN_NOTICE("\The [name] is reloading. Wait [SPAN_HELPFUL("[((reload_time_started + reload_time - world.time) / 10)]")] seconds.")) - return FALSE - - if(ammo && ammo.current_rounds <= 0) - if(reloading) - to_chat(user, SPAN_WARNING("\The [name] is out of ammo! You have to wait [(reload_time_started + reload_time - world.time) / 10] seconds before it reloads!")) - else - start_auto_reload(user) - return FALSE - - if(!in_firing_arc(A)) - to_chat(user, SPAN_WARNING("The target is not within your firing arc!")) - return FALSE - - return TRUE - /obj/item/hardpoint/special/firing_port_weapon/reload(mob/user) if(!ammo) ammo = new /obj/item/ammo_magazine/hardpoint/firing_port_weapon @@ -116,27 +80,32 @@ to_chat(user, SPAN_NOTICE("\The [name] reloads automatically.")) return FALSE +/obj/item/hardpoint/special/firing_port_weapon/try_fire(atom/target, mob/living/user, params) + if(!owner) + return NONE + + //FPW stop working at 50% hull + if(owner.health < initial(owner.health) * 0.5) + to_chat(user, SPAN_WARNING("\The [owner]'s hull is too damaged!")) + return NONE -/obj/item/hardpoint/special/firing_port_weapon/fire(mob/user, atom/A) if(user.get_active_hand()) to_chat(user, SPAN_WARNING("You need a free hand to use \the [name].")) - return + return NONE - if(ammo.current_rounds <= 0) - start_auto_reload(user) - return + if(reloading) + to_chat(user, SPAN_NOTICE("\The [name] is reloading. Wait [SPAN_HELPFUL("[((reload_time_started + reload_time - world.time) / 10)]")] seconds.")) + return NONE + + if(ammo && ammo.current_rounds <= 0) + if(reloading) + to_chat(user, SPAN_WARNING("\The [name] is out of ammo! You have to wait [(reload_time_started + reload_time - world.time) / 10] seconds before it reloads!")) + else + start_auto_reload(user) + return NONE + + if(!in_firing_arc(target)) + to_chat(user, SPAN_WARNING("The target is not within your firing arc!")) + return NONE - next_use = world.time + cooldown * owner.misc_multipliers["cooldown"] - - for(var/bullets_fired = 1, bullets_fired <= burst_amount, bullets_fired++) - var/atom/T = A - if(!prob((accuracy * 100) / owner.misc_multipliers["accuracy"])) - T = get_step(get_turf(A), pick(cardinal)) - if(LAZYLEN(activation_sounds)) - playsound(get_turf(src), pick(activation_sounds), 60, 1) - fire_projectile(user, T) - if(ammo.current_rounds <= 0) - break - if(bullets_fired < burst_amount) //we need to sleep only if there are more bullets to shoot in the burst - sleep(3) - to_chat(user, SPAN_WARNING("[src] Ammo: [SPAN_HELPFUL(ammo ? ammo.current_rounds : 0)]/[SPAN_HELPFUL(ammo ? ammo.max_rounds : 0)]")) + return handle_fire(target, user, params) diff --git a/code/modules/vehicles/hardpoints/support/artillery.dm b/code/modules/vehicles/hardpoints/support/artillery.dm index 441817107e7c..dfcdcaf73f74 100644 --- a/code/modules/vehicles/hardpoints/support/artillery.dm +++ b/code/modules/vehicles/hardpoints/support/artillery.dm @@ -14,7 +14,7 @@ var/view_buff = 10 //This way you can VV for more or less fun var/view_tile_offset = 7 -/obj/item/hardpoint/support/artillery_module/activate(mob/user, atom/A) +/obj/item/hardpoint/support/artillery_module/handle_fire(atom/target, mob/living/user, params) if(!user.client) return @@ -57,13 +57,14 @@ continue var/mob/user = C.seats[seat] if(!user.client) continue - user.client.change_view(world_view_size, owner) + user.client.change_view(GLOB.world_view_size, owner) user.client.pixel_x = 0 user.client.pixel_y = 0 is_active = FALSE -/obj/item/hardpoint/support/artillery_module/can_activate() +/obj/item/hardpoint/support/artillery_module/try_fire(target, user, params) if(health <= 0) to_chat(usr, SPAN_WARNING("\The [src] is broken!")) - return FALSE - return TRUE + return NONE + + return handle_fire(target, user, params) diff --git a/code/modules/vehicles/hardpoints/support/flare.dm b/code/modules/vehicles/hardpoints/support/flare.dm index 00dcd3ac1886..432c9636dadd 100644 --- a/code/modules/vehicles/hardpoints/support/flare.dm +++ b/code/modules/vehicles/hardpoints/support/flare.dm @@ -13,8 +13,6 @@ activatable = TRUE health = 500 - cooldown = 30 - accuracy = 0.7 firing_arc = 120 origins = list(0, -2) @@ -33,6 +31,9 @@ "8" = list(14, -6) ) + scatter = 6 + fire_delay = 3.0 SECONDS + /obj/item/hardpoint/support/flare_launcher/set_bullet_traits() ..() LAZYADD(traits_to_give, list( diff --git a/code/modules/vehicles/interior/interactable/seats.dm b/code/modules/vehicles/interior/interactable/seats.dm index 3e298ba48f1a..253b4a066b4f 100644 --- a/code/modules/vehicles/interior/interactable/seats.dm +++ b/code/modules/vehicles/interior/interactable/seats.dm @@ -40,10 +40,10 @@ return if(QDELETED(buckled_mob)) - vehicle.set_seated_mob(seat, null) M.unset_interaction() + vehicle.set_seated_mob(seat, null) if(M.client) - M.client.change_view(world_view_size, vehicle) + M.client.change_view(GLOB.world_view_size, vehicle) M.client.pixel_x = 0 M.client.pixel_y = 0 M.reset_view() @@ -174,10 +174,10 @@ return if(QDELETED(buckled_mob)) - vehicle.set_seated_mob(seat, null) M.unset_interaction() + vehicle.set_seated_mob(seat, null) if(M.client) - M.client.change_view(world_view_size, vehicle) + M.client.change_view(GLOB.world_view_size, vehicle) M.client.pixel_x = 0 M.client.pixel_y = 0 else @@ -252,10 +252,10 @@ return if(QDELETED(buckled_mob)) - vehicle.set_seated_mob(seat, null) M.unset_interaction() + vehicle.set_seated_mob(seat, null) if(M.client) - M.client.change_view(world_view_size, vehicle) + M.client.change_view(GLOB.world_view_size, vehicle) M.client.pixel_x = 0 M.client.pixel_y = 0 M.reset_view() @@ -376,29 +376,18 @@ //if both seats on same tile have buckled mob, we become dense, otherwise, not dense. if(buckled_mob) if(VS.buckled_mob) - buckled_mob.density = TRUE - VS.buckled_mob.density = TRUE + REMOVE_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + REMOVE_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) else - buckled_mob.density = FALSE + ADD_TRAIT(buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) else if(VS.buckled_mob) - VS.buckled_mob.density = FALSE - M.density = TRUE + ADD_TRAIT(VS.buckled_mob, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) + REMOVE_TRAIT(M, TRAIT_UNDENSE, DOUBLE_SEATS_TRAIT) break handle_rotation() -/obj/structure/bed/chair/vehicle/unbuckle() - if(buckled_mob && buckled_mob.buckled == src) - buckled_mob.buckled = null - buckled_mob.anchored = initial(buckled_mob.anchored) - buckled_mob.update_canmove() - - var/M = buckled_mob - buckled_mob = null - - afterbuckle(M) - //attack handling /obj/structure/bed/chair/vehicle/attack_alien(mob/living/user) diff --git a/code/modules/vehicles/interior/interactable/vehicle_locker.dm b/code/modules/vehicles/interior/interactable/vehicle_locker.dm index ab536c7637c6..5571995594f0 100644 --- a/code/modules/vehicles/interior/interactable/vehicle_locker.dm +++ b/code/modules/vehicles/interior/interactable/vehicle_locker.dm @@ -117,8 +117,8 @@ return container.attackby(W, user) /obj/structure/vehicle_locker/emp_act(severity) + . = ..() container.emp_act(severity) - ..() /obj/structure/vehicle_locker/hear_talk(mob/M, msg) container.hear_talk(M, msg) diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index 6d98bc85e42e..d78764da4d73 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -422,11 +422,11 @@ list("ARMOR", -1, null, null), list("M10 Pattern Marine Helmet", 0, /obj/item/clothing/head/helmet/marine, VENDOR_ITEM_REGULAR), - list("M3 Pattern Carrier Marine Armor", 0, /obj/item/clothing/suit/storage/marine/carrier, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padded Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padded, VENDOR_ITEM_REGULAR), - list("M3 Pattern Padless Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padless, VENDOR_ITEM_REGULAR), - list("M3 Pattern Ridged Marine Armor", 0, /obj/item/clothing/suit/storage/marine/padless_lines, VENDOR_ITEM_REGULAR), - list("M3 Pattern Skull Marine Armor", 0, /obj/item/clothing/suit/storage/marine/skull, VENDOR_ITEM_REGULAR), + list("M3 Pattern Carrier Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/carrier, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padded Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padded, VENDOR_ITEM_REGULAR), + list("M3 Pattern Padless Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padless, VENDOR_ITEM_REGULAR), + list("M3 Pattern Ridged Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/padless_lines, VENDOR_ITEM_REGULAR), + list("M3 Pattern Skull Marine Armor", 0, /obj/item/clothing/suit/storage/marine/medium/skull, VENDOR_ITEM_REGULAR), list("M3-EOD Pattern Heavy Armor", 0, /obj/item/clothing/suit/storage/marine/heavy, VENDOR_ITEM_REGULAR), list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, VENDOR_ITEM_REGULAR), diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index 046b42495ac7..f2afcd5ae5f7 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -318,7 +318,7 @@ var/turf/min = reservation.bottom_left_coords var/turf/max = reservation.top_right_coords - return list(Floor(min[1] + (max[1] - min[1])), Floor(min[2] + (max[2] - min[2])), min[3]) + return list(Floor(min[1] + (max[1] - min[1])/2), Floor(min[2] + (max[2] - min[2])/2), min[3]) /datum/interior/proc/get_middle_turf() var/list/turf/bounds = get_bound_turfs() diff --git a/code/modules/vehicles/multitile/multitile.dm b/code/modules/vehicles/multitile/multitile.dm index 9e4d2c9d297b..f3b7be510b08 100644 --- a/code/modules/vehicles/multitile/multitile.dm +++ b/code/modules/vehicles/multitile/multitile.dm @@ -240,26 +240,15 @@ var/amt_hardpoints = LAZYLEN(hardpoints) if(amt_hardpoints) - var/list/hardpoint_images[amt_hardpoints] - var/list/C[HDPT_LAYER_MAX] - - // Counting sort the images into a list so we get the hardpoint images sorted by layer - for(var/obj/item/hardpoint/H in hardpoints) - C[H.hdpt_layer] += 1 - - for(var/i = 2 to HDPT_LAYER_MAX) - C[i] += C[i-1] - - for(var/obj/item/hardpoint/H in hardpoints) - hardpoint_images[C[H.hdpt_layer]] = H.get_hardpoint_image() - C[H.hdpt_layer] -= 1 - - for(var/i = 1 to amt_hardpoints) - var/image/I = hardpoint_images[i] - // get_hardpoint_image() can return a list of images - if(istype(I)) - I.layer = layer + (i*0.1) - overlays += I + for(var/obj/item/hardpoint/hardpoint in hardpoints) + var/image/hardpoint_image = hardpoint.get_hardpoint_image() + if(istype(hardpoint_image)) + hardpoint_image.layer = layer + hardpoint.hdpt_layer * 0.1 + else if(islist(hardpoint_image)) + var/list/image/hardpoint_image_list = hardpoint_image // Linter will complain about iterating on "an image" otherwise + for(var/image/subimage in hardpoint_image_list) + subimage.layer = layer + hardpoint.hdpt_layer * 0.1 + overlays += hardpoint_image if(clamped) var/image/J = image(icon, icon_state = "vehicle_clamp", layer = layer+0.1) @@ -351,15 +340,24 @@ M.reset_view(src) give_action(M, /datum/action/human_action/vehicle_unbuckle) +/// Get crewmember of seat. /obj/vehicle/multitile/proc/get_seat_mob(seat) return seats[seat] +/// Get seat of crewmember. /obj/vehicle/multitile/proc/get_mob_seat(mob/M) for(var/seat in seats) if(seats[seat] == M) return seat return null +/// Get active hardpoint of crewmember. +/obj/vehicle/multitile/proc/get_mob_hp(mob/crew) + var/seat = get_mob_seat(crew) + if(seat) + return active_hp[seat] + return null + /obj/vehicle/multitile/proc/get_passengers() if(interior) return interior.get_passengers() diff --git a/code/modules/vehicles/multitile/multitile_bump.dm b/code/modules/vehicles/multitile/multitile_bump.dm index d9b480866f99..48706805948f 100644 --- a/code/modules/vehicles/multitile/multitile_bump.dm +++ b/code/modules/vehicles/multitile/multitile_bump.dm @@ -106,14 +106,12 @@ return TRUE /obj/structure/surface/handle_vehicle_bump(obj/vehicle/multitile/V) - detach_all() playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] crushes \the [src]!")) qdel(src) return TRUE /obj/structure/surface/table/handle_vehicle_bump(obj/vehicle/multitile/V) - detach_all() playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] crushes \the [src]!")) if(prob(50)) @@ -122,7 +120,6 @@ return TRUE /obj/structure/surface/rack/handle_vehicle_bump(obj/vehicle/multitile/V) - detach_all() playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] crushes \the [src]!")) deconstruct() @@ -642,7 +639,7 @@ //Check what dir they should be facing to be looking directly at the vehicle else if(dir_between == dir) //front hit (facing the vehicle) blocked = TRUE - else if(dir_between == reverse_dir[dir]) // rear hit (facing directly away from the vehicle) + else if(dir_between == GLOB.reverse_dir[dir]) // rear hit (facing directly away from the vehicle) takes_damage = TRUE //side hit else if(caste.caste_type == XENO_CASTE_QUEEN) // queen blocks even with sides @@ -740,7 +737,7 @@ //BURROWER /mob/living/carbon/xenomorph/burrower/handle_vehicle_bump(obj/vehicle/multitile/V) - if(burrow) + if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED)) return TRUE else return . = ..() diff --git a/code/modules/vehicles/multitile/multitile_hardpoints.dm b/code/modules/vehicles/multitile/multitile_hardpoints.dm index 2c5a343b802a..a6014c6cf2cd 100644 --- a/code/modules/vehicles/multitile/multitile_hardpoints.dm +++ b/code/modules/vehicles/multitile/multitile_hardpoints.dm @@ -230,47 +230,3 @@ qdel(old) update_icon() - -//proc that fires non selected weaponry -/obj/vehicle/multitile/proc/shoot_other_weapon(mob/living/carbon/human/M, seat, atom/A) - - if(!istype(M)) - return - - var/list/usable_hps = get_hardpoints_with_ammo(seat) - for(var/obj/item/hardpoint/HP in usable_hps) - if(HP == active_hp[seat] || HP.slot != HDPT_PRIMARY && HP.slot != HDPT_SECONDARY) - usable_hps.Remove(HP) - - if(!LAZYLEN(usable_hps)) - to_chat(M, SPAN_WARNING("No other working weapons detected.")) - return - - for(var/obj/item/hardpoint/HP in usable_hps) - if(!HP.can_activate(M, A)) - return - HP.activate(M, A) - break - return - -//proc that activates support module if it can be activated and you meet requirements -/obj/vehicle/multitile/proc/activate_support_module(mob/living/carbon/human/M, seat, atom/A) - - if(!istype(M)) - return - - var/list/usable_hps = get_activatable_hardpoints(seat) - for(var/obj/item/hardpoint/HP in usable_hps) - if(HP.slot != HDPT_SUPPORT) - usable_hps.Remove(HP) - - if(!LAZYLEN(usable_hps)) - to_chat(M, SPAN_WARNING("No activatable support modules detected.")) - return - - for(var/obj/item/hardpoint/HP in usable_hps) - if(!HP.can_activate(M, A)) - return - HP.activate(M, A) - break - return diff --git a/code/modules/vehicles/multitile/multitile_interaction.dm b/code/modules/vehicles/multitile/multitile_interaction.dm index 42b141327bd8..a93872e4e9ac 100644 --- a/code/modules/vehicles/multitile/multitile_interaction.dm +++ b/code/modules/vehicles/multitile/multitile_interaction.dm @@ -248,7 +248,7 @@ return XENO_NO_DELAY_ACTION if(X.mob_size < mob_size_required_to_hit) - to_chat(X, SPAN_XENOWARNING("You're too small to do any significant damage to this vehicle!")) + to_chat(X, SPAN_XENOWARNING("We're too small to do any significant damage to this vehicle!")) return XENO_NO_DELAY_ACTION var/damage = (X.melee_vehicle_damage + rand(-5,5)) * XENO_UNIVERSAL_VEHICLE_DAMAGEMULT @@ -269,11 +269,11 @@ if(!damage) playsound(X.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) X.visible_message(SPAN_DANGER("\The [X] swipes at \the [src] to no effect!"), \ - SPAN_DANGER("You swipe at \the [src] to no effect!")) + SPAN_DANGER("We swipe at \the [src] to no effect!")) return XENO_ATTACK_ACTION X.visible_message(SPAN_DANGER("\The [X] slashes \the [src]!"), \ - SPAN_DANGER("You slash \the [src]!")) + SPAN_DANGER("We slash \the [src]!")) playsound(X.loc, pick('sound/effects/metalhit.ogg', 'sound/weapons/alien_claw_metal1.ogg', 'sound/weapons/alien_claw_metal2.ogg', 'sound/weapons/alien_claw_metal3.ogg'), 25, 1) take_damage_type(damage * damage_mult, "slash", X) @@ -330,80 +330,61 @@ healthcheck() -/obj/vehicle/multitile/handle_click(mob/living/user, atom/A, list/mods) +/obj/vehicle/multitile/on_set_interaction(mob/user) + RegisterSignal(user, COMSIG_MOB_MOUSEDOWN, PROC_REF(crew_mousedown)) + RegisterSignal(user, COMSIG_MOB_MOUSEDRAG, PROC_REF(crew_mousedrag)) + RegisterSignal(user, COMSIG_MOB_MOUSEUP, PROC_REF(crew_mouseup)) - var/seat - for(var/vehicle_seat in seats) - if(seats[vehicle_seat] == user) - seat = vehicle_seat - break - - if(istype(A, /atom/movable/screen) || !seat) - return - - if(seat == VEHICLE_DRIVER) - if(mods["shift"] && !mods["alt"]) - A.examine(user) - return - - if(mods["ctrl"] && !mods["alt"]) - activate_horn() - return +/obj/vehicle/multitile/on_unset_interaction(mob/user) + UnregisterSignal(user, list(COMSIG_MOB_MOUSEUP, COMSIG_MOB_MOUSEDOWN, COMSIG_MOB_MOUSEDRAG)) - var/obj/item/hardpoint/HP = active_hp[seat] - if(!HP) - to_chat(user, SPAN_WARNING("Please select an active hardpoint first.")) - return + var/obj/item/hardpoint/hardpoint = get_mob_hp(user) + if(hardpoint) + SEND_SIGNAL(hardpoint, COMSIG_GUN_INTERRUPT_FIRE) //abort fire when crew leaves - if(!HP.can_activate(user, A)) - return +/// Relays crew mouse release to active hardpoint. +/obj/vehicle/multitile/proc/crew_mouseup(datum/source, atom/object, turf/location, control, params) + SIGNAL_HANDLER + var/obj/item/hardpoint/hardpoint = get_mob_hp(source) + if(!hardpoint) + return - HP.activate(user, A) + hardpoint.stop_fire(source, object, location, control, params) - if(seat == VEHICLE_GUNNER) - if(mods["shift"] && !mods["middle"]) - if(vehicle_flags & VEHICLE_TOGGLE_SHIFT_CLICK_GUNNER) - shoot_other_weapon(user, seat, A) - else - A.examine(user) - return - if(mods["middle"] && !mods["shift"]) - if(!(vehicle_flags & VEHICLE_TOGGLE_SHIFT_CLICK_GUNNER)) - shoot_other_weapon(user, seat, A) - return - if(mods["alt"]) - toggle_gyrostabilizer() - return - if(mods["ctrl"]) - activate_support_module(user, seat, A) - return +/// Relays crew mouse movement to active hardpoint. +/obj/vehicle/multitile/proc/crew_mousedrag(datum/source, atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params) + SIGNAL_HANDLER + var/obj/item/hardpoint/hardpoint = get_mob_hp(source) + if(!hardpoint) + return - var/obj/item/hardpoint/HP = active_hp[seat] - if(!HP) - to_chat(user, SPAN_WARNING("Please select an active hardpoint first.")) - return + hardpoint.change_target(source, src_object, over_object, src_location, over_location, src_control, over_control, params) - if(!HP.can_activate(user, A)) - return +/// Checks for special control keybinds, else relays crew mouse press to active hardpoint. +/obj/vehicle/multitile/proc/crew_mousedown(datum/source, atom/object, turf/location, control, params) + SIGNAL_HANDLER - HP.activate(user, A) - - if(seat == VEHICLE_SUPPORT_GUNNER_ONE || seat == VEHICLE_SUPPORT_GUNNER_TWO) - if(mods["shift"]) - A.examine(user) - return - if(mods["middle"] || mods["alt"] || mods["ctrl"]) - return + var/list/modifiers = params2list(params) + if(modifiers[SHIFT_CLICK] || modifiers[MIDDLE_CLICK] || modifiers[RIGHT_CLICK]) //don't step on examine, point, etc + return - var/obj/item/hardpoint/HP = active_hp[seat] - if(!HP) - to_chat(user, SPAN_WARNING("Please select an active hardpoint first.")) - return + var/seat = get_mob_seat(source) + switch(seat) + if(VEHICLE_DRIVER) + if(modifiers[LEFT_CLICK] && modifiers[CTRL_CLICK]) + activate_horn() + return + if(VEHICLE_GUNNER) + if(modifiers[LEFT_CLICK] && modifiers[ALT_CLICK]) + toggle_gyrostabilizer() + return - if(!HP.can_activate(user, A)) - return + var/obj/item/hardpoint/hardpoint = get_mob_hp(source) + if(!hardpoint) + to_chat(source, SPAN_WARNING("Please select an active hardpoint first.")) + return - HP.activate(user, A) + hardpoint.start_fire(source, object, location, control, params) /obj/vehicle/multitile/proc/handle_player_entrance(mob/M) if(!M || M.client == null) return @@ -439,9 +420,9 @@ else if(!entrance_used && !isxeno(M)) return - var/enter_msg = "You start climbing into \the [src]..." + var/enter_msg = "We start climbing into \the [src]..." if(health <= 0 && isxeno(M)) - enter_msg = "You start prying away loose plates, squeezing into \the [src]..." + enter_msg = "We start prying away loose plates, squeezing into \the [src]..." // Check if drag anything var/atom/dragged_atom diff --git a/code/modules/vehicles/multitile/multitile_verbs.dm b/code/modules/vehicles/multitile/multitile_verbs.dm index c7dd29bbf0a9..3801cd2e176c 100644 --- a/code/modules/vehicles/multitile/multitile_verbs.dm +++ b/code/modules/vehicles/multitile/multitile_verbs.dm @@ -30,6 +30,10 @@ if(!HP) return + var/obj/item/hardpoint/old_HP = V.active_hp[seat] + if(old_HP) + SEND_SIGNAL(old_HP, COMSIG_GUN_INTERRUPT_FIRE) //stop fire when switching away from HP + V.active_hp[seat] = HP var/msg = "You select \the [HP]." if(HP.ammo) @@ -66,6 +70,10 @@ if(!HP) return + var/obj/item/hardpoint/old_HP = V.active_hp[seat] + if(old_HP) + SEND_SIGNAL(old_HP, COMSIG_GUN_INTERRUPT_FIRE) //stop fire when switching away from HP + V.active_hp[seat] = HP var/msg = "You select \the [HP]." if(HP.ammo) @@ -225,10 +233,7 @@ 3. \"G: Toggle Turret Gyrostabilizer\" - toggles Turret Gyrostabilizer allowing it to keep current direction ignoring hull turning. (Exists only on vehicles with rotating turret, e.g. M34A2 Longstreet Light Tank)
    \ Support Gunner verbs:
    1. \"Reload Firing Port Weapon\" - initiates automated reloading process for M56 FPW. Requires a confirmation.
    \ Driver shortcuts:
    1. \"CTRL + Click\" - activates vehicle horn.
    \ - Gunner shortcuts:
    1. \"ALT + Click\" - toggles Turret Gyrostabilizer. (Exists only on vehicles with rotating turret, e.g. M34A2 Longstreet Light Tank)
    \ - 2. \"CTRL + Click\" - activates not destroyed activatable support module.
    \ - 3. \"Middle Mouse Button Click (MMB)\" - default shortcut to shoot currently not selected weapon if possible. Won't work if SHIFT + Click firing is toggled ON.
    \ - 4. \"SHIFT + Click\" - examines target as usual, unless \"G: Toggle Middle/Shift Clicking\" verb was used to toggle SHIFT + Click firing ON. In this case, it will fire currently not selected weapon if possible.
    " + Gunner shortcuts:
    1. \"ALT + Click\" - toggles Turret Gyrostabilizer. (Exists only on vehicles with rotating turret, e.g. M34A2 Longstreet Light Tank)
    " show_browser(user, dat, "Vehicle Controls Guide", "vehicle_help", "size=900x500") onclose(user, "vehicle_help") diff --git a/code/modules/vehicles/tank/tank.dm b/code/modules/vehicles/tank/tank.dm index ad69f80cdfb6..147e359471df 100644 --- a/code/modules/vehicles/tank/tank.dm +++ b/code/modules/vehicles/tank/tank.dm @@ -157,7 +157,7 @@ if(!T) return FALSE - if(direction == reverse_dir[T.dir] || direction == T.dir) + if(direction == GLOB.reverse_dir[T.dir] || direction == T.dir) return FALSE T.user_rotation(user, turning_angle(T.dir, direction)) @@ -189,6 +189,8 @@ handle_direction(TANK) TANK.update_icon() + return TANK + /obj/effect/vehicle_spawner/tank/load_hardpoints(obj/vehicle/multitile/tank/V) V.add_hardpoint(new /obj/item/hardpoint/holder/tank_turret) @@ -201,6 +203,12 @@ /obj/effect/vehicle_spawner/tank/hull/load_hardpoints(obj/vehicle/multitile/tank/V) return +//Just the hull and it's broken TOO, you get the full experience +/obj/effect/vehicle_spawner/tank/hull/broken/spawn_vehicle() + var/obj/vehicle/multitile/tank/tonk = ..() + load_damage(tonk) + tonk.update_icon() + //PRESET: default hardpoints, destroyed /obj/effect/vehicle_spawner/tank/decrepit/spawn_vehicle() var/obj/vehicle/multitile/tank/TANK = new (loc) diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index 92358a1e0f27..cbad4535df72 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -54,8 +54,8 @@ //------------------------------------------- -/obj/vehicle/train/MouseDrop_T(atom/movable/C, mob/user as mob) - if(user.buckled || user.stat || user.is_mob_restrained() || !Adjacent(user) || !user.Adjacent(C) || !istype(C) || (user == C && !user.canmove)) +/obj/vehicle/train/MouseDrop_T(atom/movable/C, mob/living/user as mob) + if(user.buckled || user.stat || user.is_mob_restrained() || !Adjacent(user) || !user.Adjacent(C) || !istype(C) || (user == C && !(user.mobility_flags & MOBILITY_MOVE))) return if(istype(C,/obj/vehicle/train)) latch(C, user) @@ -71,7 +71,7 @@ if(!istype(usr, /mob/living/carbon/human)) return - if(!usr.canmove || usr.stat || usr.is_mob_restrained() || !Adjacent(usr)) + if(usr.is_mob_incapacitated() || !Adjacent(usr)) return unattach(usr) diff --git a/code/modules/vehicles/van/van.dm b/code/modules/vehicles/van/van.dm index fdb2f397bb2e..c4aa64360ec0 100644 --- a/code/modules/vehicles/van/van.dm +++ b/code/modules/vehicles/van/van.dm @@ -92,13 +92,13 @@ if(mover in mobs_under) //can't collide with the thing you're buckled to return NO_BLOCKED_MOVEMENT - if(ismob(mover)) - var/mob/M = mover + if(isliving(mover)) + var/mob/living/M = mover if(M.mob_flags & SQUEEZE_UNDER_VEHICLES) add_under_van(M) return NO_BLOCKED_MOVEMENT - if(M.lying) + if(M.body_position == LYING_DOWN) return NO_BLOCKED_MOVEMENT if(M.mob_size >= MOB_SIZE_IMMOBILE && next_push < world.time) diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 5192a6834050..2239329d3e44 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -112,6 +112,7 @@ return /obj/vehicle/emp_act(severity) + . = ..() var/was_on = on stat |= EMPED new /obj/effect/overlay/temp/emp_sparks (loc) diff --git a/code/names.dm b/code/names.dm deleted file mode 100644 index 0961d12f7d45..000000000000 --- a/code/names.dm +++ /dev/null @@ -1,39 +0,0 @@ -var/list/ai_names = file2list("strings/ai.txt") -var/list/first_names_male = file2list("strings/first_male.txt") -var/list/first_names_female = file2list("strings/first_female.txt") -var/list/last_names = file2list("strings/last.txt") -var/list/clown_names = file2list("strings/clown.txt") -var/list/operation_titles = file2list("strings/operation_title.txt") -var/list/operation_prefixes = file2list("strings/operation_prefix.txt") -var/list/operation_postfixes = file2list("strings/operation_postfix.txt") - -var/list/verbs = file2list("strings/verbs.txt") -//loaded on startup because of " -//would include in rsc if ' was used - - -var/list/first_names_male_clf = list("Alan","Jack","Bil","Jonathan","John","Shiro","Gareth","Clark","Sam", "Lionel", "Aaron", "Charlie", "Scott", "Winston", "Aidan", "Ellis", "Mason", "Wesley", "Nicholas", "Calvin", "Nishikawa", "Hiroto", "Chiba", "Ouchi", "Furuse", "Takagi", "Oba", "Kishimoto") -var/list/first_names_female_clf = list("Emma", "Adelynn", "Mary", "Halie", "Chelsea", "Lexie", "Arya", "Alicia", "Selah", "Amber", "Heather", "Myra", "Heidi", "Charlotte", "Oliva", "Lydia", "Tia", "Riko", "Ari", "Machida", "Ueki", "Mihara", "Noda") -var/list/last_names_clf = list("Hawkins","Rickshaw","Elliot","Billard","Cooper","Fox", "Barlow", "Barrows", "Stewart", "Morgan", "Green", "Stone", "Burr", "Hunt", "Yuko", "Gesshin", "Takanibu", "Tetsuzan", "Tomomi", "Bokkai", "Takesi") - -var/list/first_names_male_colonist = list("Alan","Jack","Bil","Jonathan","John","Shiro","Gareth","Clark","Sam", "Lionel", "Aaron", "Charlie", "Scott", "Winston", "Aidan", "Ellis", "Mason", "Wesley", "Nicholas", "Calvin", "Nishikawa", "Hiroto", "Chiba", "Ouchi", "Furuse", "Takagi", "Oba", "Kishimoto") -var/list/first_names_female_colonist = list("Emma", "Adelynn", "Mary", "Halie", "Chelsea", "Lexie", "Arya", "Alicia", "Selah", "Amber", "Heather", "Myra", "Heidi", "Charlotte", "Ashley", "Raven", "Tori", "Anne", "Madison", "Oliva", "Lydia", "Tia", "Riko", "Ari", "Machida", "Ueki", "Mihara", "Noda") -var/list/last_names_colonist = list("Hawkins","Rickshaw","Elliot","Billard","Cooper","Fox", "Barlow", "Barrows", "Stewart", "Morgan", "Green", "Stone", "Titan", "Crowe", "Krantz", "Pathillo", "Driggers", "Burr", "Hunt", "Yuko", "Gesshin", "Takanibu", "Tetsuzan", "Tomomi", "Bokkai", "Takesi") - -var/list/first_names_male_upp = list("Badai","Mongkeemur","Alexei","Andrei","Artyom","Viktor","Xiangai","Ivan","Choban","Oleg", "Dayan", "Taghi", "Batu", "Arik", "Orda", "Ghazan", "Bala", "Gao", "Zhan", "Ren", "Hou", "Xue", "Serafim", "Luca", "Su", "György", "István", "Mihály", "Vladimir", "Aleksandr", "Fyodor", "Bhodar", "Qazem", "Łukasz", "Miłogost", "Radogost", "Uniegost", "Hostirad", "Hostimil", "Hostisvit", "Lubgost", "Gościsław", "Vseslav", "Bohuměr", "Bronisław", "Česćiměr", "Dobysław", "Horisław", "Jaroměr", "Mirosław", "Mječisław", "Radoměr", "Stanij", "Stanisław", "Wjeleměr", "Wójsław") -var/list/first_names_female_upp = list("Altani","Cirina","Anastasiya","Saran","Wei","Oksana","Ren","Svena","Tatyana","Yaroslava", "Izabella", "Kata", "Krisztina", "Miruna", "Flori", "Lucia", "Anica", "Li", "Yimu", "Alona", "Hsiau-Li", "Xiaoling", "Erhong", "Baśka", "Angela", "Angelina", "Angja", "Ankica", "Biljana", "Bisera", "Bistra", "Blaga", "Blagica", "Blagorodna", "Verka", "Vladica", "Denica", "Živka", "Zlata", "Jagoda", "Letka", "Ljupka", "Mila", "Mirjana", "Mirka", "Rada", "Radmila", "Slavica", "Slavka", "Snežana", "Stojna", "Ubavka", "Jaromir", "Mscëwòj", "Subisłôw", "Swiãtopôłk", "Ji-Sun", "Chaeyong", "Chaewon", "Saerom", "Seoyeong", "Jiheon", "Hayoung") -var/list/last_names_upp = list("Azarov","Bogdanov","Barsukov","Golovin","Davydov","Khan","Noica","Barbu","Zhukov","Ivanov","Mihai","Kasputin","Belov", "Belova","Melnikov", "Vasilevsky", "Aleksander", "Halkovich", "Stanislaw", "Proca", "Zaituc", "Arcos", "Kubat", "Kral", "Volf", "Xun", "Jia", "Bachoń", "Wang", "Ji", "Xiang", "Zhang", "Mei", "Ma", "Kim", "Yi", "Ri", "Pak", "Chong", "Baek", "Kwon", "Hwang", "Roh", "Lee", "Song") - -var/list/first_names_male_pmc = list("Owen","Luka","Nelson","Branson", "Tyson", "Leo", "Bryant", "Kobe", "Rohan", "Riley", "Aidan", "Watase","Egawa", "Hisakawa", "Koide", "Remy", "Martial", "Magnus", "Heiko", "Lennard") -var/list/first_names_female_pmc = list("Madison","Jessica","Anna","Juliet", "Olivia", "Lea", "Diane", "Kaori", "Beatrice", "Riley", "Amy", "Natsue","Yumi", "Aiko", "Fujiko", "Jennifer", "Ashley", "Mary", "Hitomi", "Lisa") -var/list/last_names_pmc = list("Bates","Shaw","Hansen","Black", "Chambers", "Hall", "Gibson", "Weiss", "Waller", "Burton", "Bakin", "Rohan", "Naomichi", "Yakumo", "Yosai", "Gallagher", "Hiles", "Bourdon", "Strassman", "Palau") - -var/list/first_names_male_gladiator = list("Augustus", "Maximus", "Octavius", "Septimus", "Titus", "Brutus", "Caesar", "Justinian") -var/list/first_names_female_gladiator = list("Aelia", "Aquila", "Caecilia", "Camilla", "Claudia", "Flavia", "Martina", "Theodora") - -var/list/first_names_male_dutch = list("Raymond", "Jesse", "Jack", "John", "Sam", "Aaron", "Charlie", "Ellis", "Nick", "Francis", "Louis") -var/list/first_names_female_dutch = list("Chelsea", "Mira", "Jessica", "Catherine", "Eliza", "Emma", "Ashley", "Annie", "Alicia", "Miranda", "Ellen") - -var/list/monkey_names = list("Abu", "Aldo", "Bear", "Bingo", "Clyde", "Crystal", "Gordo", "George", "Koko", "Marcel", "Nim", "Rafiki", "Spike", "Banana", "Boots", "Bubbles", "Smiley", "Winston") - -var/list/weapon_surnames = list("Adze", "Axe", "Bagh Nakha", "Bo", "Bola", "Bow", "Bowman", "Cannon", "Carbine", "Cestus", "Club", "Culverin", "Dagger", "Dao", "Derringer", "Dha", "Dussack", "Emeici", "Falchion", "Fan", "Flyssa", "Gauntlet", "Hammer", "Halberd", "Harquebus", "Hatchet", "Hwando", "Katar", "Kampilan", "Knuckles", "Lance", "Lancer", "Larim", "Maduvu", "Mace", "Maru", "Mauser", "Messer", "Mine", "Mubucae", "Nyepel", "Onager", "Pata", "Pike", "Ram", "Saber", "Seax", "Shamsir", "Sickle", "Sling", "Spear", "Spears", "Staff", "Sword", "Tekko") diff --git a/code/span_macros.dm b/code/span_macros.dm index 77e57f2077a0..b6a0e79a956b 100644 --- a/code/span_macros.dm +++ b/code/span_macros.dm @@ -106,3 +106,4 @@ #define SPAN_MAROON(X) "[X]" #define SPAN_STAFF_IC(X) "[X]" +#define SPAN_BIGNOTICE(X) "[X]" diff --git a/colonialmarines.dme b/colonialmarines.dme index 3f40c156d075..ec330db86a4d 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1,4 +1,4 @@ -s// DM Environment file for colonialmarines.dme. +// DM Environment file for colonialmarines.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. // BEGIN_INTERNALS @@ -11,12 +11,12 @@ s// DM Environment file for colonialmarines.dme. #define DEBUG // END_PREFERENCES // BEGIN_INCLUDE +#include "code\__odlint.dm" #include "code\_byond_version_compat.dm" #include "code\_compile_options.dm" #include "code\_experiments.dm" #include "code\_macros.dm" #include "code\global.dm" -#include "code\names.dm" #include "code\span_macros.dm" #include "code\stylesheet.dm" #include "code\__DEFINES\__game.dm" @@ -31,7 +31,9 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\_tick.dm" #include "code\__DEFINES\access.dm" #include "code\__DEFINES\admin.dm" +#include "code\__DEFINES\alerts.dm" #include "code\__DEFINES\ARES.dm" +#include "code\__DEFINES\assert.dm" #include "code\__DEFINES\atmospherics.dm" #include "code\__DEFINES\autofire.dm" #include "code\__DEFINES\autolathe.dm" @@ -60,6 +62,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\fonts.dm" #include "code\__DEFINES\generators.dm" #include "code\__DEFINES\guns.dm" +#include "code\__DEFINES\hijack.dm" #include "code\__DEFINES\html.dm" #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\human.dm" @@ -75,6 +78,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\MC.dm" #include "code\__DEFINES\minimap.dm" #include "code\__DEFINES\misc.dm" +#include "code\__DEFINES\mob.dm" #include "code\__DEFINES\mob_hud.dm" #include "code\__DEFINES\mobs.dm" #include "code\__DEFINES\mode.dm" @@ -96,8 +100,10 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\speech_channels.dm" #include "code\__DEFINES\stamina.dm" #include "code\__DEFINES\stats.dm" +#include "code\__DEFINES\status_effects.dm" #include "code\__DEFINES\STUI.dm" #include "code\__DEFINES\subsystems.dm" +#include "code\__DEFINES\supply.dm" #include "code\__DEFINES\surgery.dm" #include "code\__DEFINES\techtree.dm" #include "code\__DEFINES\text.dm" @@ -106,6 +112,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\traits.dm" #include "code\__DEFINES\turf_flags.dm" +#include "code\__DEFINES\tutorial.dm" #include "code\__DEFINES\unit_tests.dm" #include "code\__DEFINES\urls.dm" #include "code\__DEFINES\vehicle.dm" @@ -122,6 +129,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\dcs\signals\signals_global.dm" #include "code\__DEFINES\dcs\signals\signals_subsystem.dm" #include "code\__DEFINES\dcs\signals\atom\signals_atom.dm" +#include "code\__DEFINES\dcs\signals\atom\signals_cell.dm" #include "code\__DEFINES\dcs\signals\atom\signals_item.dm" #include "code\__DEFINES\dcs\signals\atom\signals_movable.dm" #include "code\__DEFINES\dcs\signals\atom\signals_obj.dm" @@ -131,6 +139,14 @@ s// DM Environment file for colonialmarines.dme. #include "code\__DEFINES\dcs\signals\atom\mob\living\signals_human.dm" #include "code\__DEFINES\dcs\signals\atom\mob\living\signals_living.dm" #include "code\__DEFINES\dcs\signals\atom\mob\living\signals_xeno.dm" +#include "code\__DEFINES\paygrade_defs\civilian.dm" +#include "code\__DEFINES\paygrade_defs\cmb.dm" +#include "code\__DEFINES\paygrade_defs\dutch.dm" +#include "code\__DEFINES\paygrade_defs\marines.dm" +#include "code\__DEFINES\paygrade_defs\navy.dm" +#include "code\__DEFINES\paygrade_defs\provost.dm" +#include "code\__DEFINES\paygrade_defs\upp.dm" +#include "code\__DEFINES\paygrade_defs\weyland.dm" #include "code\__DEFINES\typecheck\assemblers.dm" #include "code\__DEFINES\typecheck\datums.dm" #include "code\__DEFINES\typecheck\generic_types.dm" @@ -141,6 +157,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\__HELPERS\#maths.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_time.dm" +#include "code\__HELPERS\animations.dm" #include "code\__HELPERS\chat.dm" #include "code\__HELPERS\cmp.dm" #include "code\__HELPERS\datums.dm" @@ -162,7 +179,9 @@ s// DM Environment file for colonialmarines.dme. #include "code\__HELPERS\qdel.dm" #include "code\__HELPERS\sanitize_values.dm" #include "code\__HELPERS\shell.dm" +#include "code\__HELPERS\status_effects.dm" #include "code\__HELPERS\text.dm" +#include "code\__HELPERS\traits.dm" #include "code\__HELPERS\type2type.dm" #include "code\__HELPERS\unsorted.dm" #include "code\__HELPERS\verb_helpers.dm" @@ -175,10 +194,12 @@ s// DM Environment file for colonialmarines.dme. #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" #include "code\_globalvars\tgui.dm" +#include "code\_globalvars\lists\clans.dm" #include "code\_globalvars\lists\client.dm" #include "code\_globalvars\lists\keybindings.dm" #include "code\_globalvars\lists\mapping_globals.dm" #include "code\_globalvars\lists\mobs.dm" +#include "code\_globalvars\lists\names.dm" #include "code\_globalvars\lists\object_lists.dm" #include "code\_onclick\adjacent.dm" #include "code\_onclick\ai.dm" @@ -226,7 +247,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\mc\master.dm" #include "code\controllers\mc\subsystem.dm" #include "code\controllers\subsystem\acid_pillar.dm" -#include "code\controllers\subsystem\admin.dm" #include "code\controllers\subsystem\assets.dm" #include "code\controllers\subsystem\atoms.dm" #include "code\controllers\subsystem\autofire.dm" @@ -237,11 +257,10 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\subsystem\decorator.dm" #include "code\controllers\subsystem\disease.dm" #include "code\controllers\subsystem\events.dm" -#include "code\controllers\subsystem\fail_to_topic.dm" -#include "code\controllers\subsystem\fast_machinery.dm" #include "code\controllers\subsystem\fz_transitions.dm" +#include "code\controllers\subsystem\game_decorator.dm" #include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\htmlui.dm" +#include "code\controllers\subsystem\hijack.dm" #include "code\controllers\subsystem\human.dm" #include "code\controllers\subsystem\inactivity.dm" #include "code\controllers\subsystem\influxdriver.dm" @@ -253,7 +272,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\machinery.dm" #include "code\controllers\subsystem\mapping.dm" -#include "code\controllers\subsystem\midi.dm" #include "code\controllers\subsystem\minimap.dm" #include "code\controllers\subsystem\mob.dm" #include "code\controllers\subsystem\nanoui.dm" @@ -266,6 +284,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\subsystem\police_clues.dm" #include "code\controllers\subsystem\power.dm" #include "code\controllers\subsystem\predships.dm" +#include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\projectiles.dm" #include "code\controllers\subsystem\quadtrees.dm" #include "code\controllers\subsystem\reagents.dm" @@ -273,15 +292,11 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\subsystem\round_recording.dm" #include "code\controllers\subsystem\shuttle.dm" #include "code\controllers\subsystem\shuttles.dm" -#include "code\controllers\subsystem\smoke_system.dm" #include "code\controllers\subsystem\sound.dm" #include "code\controllers\subsystem\sound_loops.dm" #include "code\controllers\subsystem\soundscape.dm" -#include "code\controllers\subsystem\stamina.dm" #include "code\controllers\subsystem\statpanel.dm" -#include "code\controllers\subsystem\stats_collector.dm" #include "code\controllers\subsystem\techtree.dm" -#include "code\controllers\subsystem\teleporter.dm" #include "code\controllers\subsystem\tgui.dm" #include "code\controllers\subsystem\ticker.dm" #include "code\controllers\subsystem\time_track.dm" @@ -291,16 +306,17 @@ s// DM Environment file for colonialmarines.dme. #include "code\controllers\subsystem\weather.dm" #include "code\controllers\subsystem\x_evolution.dm" #include "code\controllers\subsystem\xeno.dm" -#include "code\controllers\subsystem\xenocon.dm" -#include "code\controllers\subsystem\init\earlyruntimes.dm" #include "code\controllers\subsystem\init\landmarks.dm" #include "code\controllers\subsystem\init\law.dm" #include "code\controllers\subsystem\init\lobby_art.dm" +#include "code\controllers\subsystem\processing\defprocess.dm" #include "code\controllers\subsystem\processing\effects.dm" +#include "code\controllers\subsystem\processing\fasteffects.dm" #include "code\controllers\subsystem\processing\fastobj.dm" #include "code\controllers\subsystem\processing\hive_status.dm" #include "code\controllers\subsystem\processing\obj_tab_items.dm" #include "code\controllers\subsystem\processing\objects.dm" +#include "code\controllers\subsystem\processing\oldeffects.dm" #include "code\controllers\subsystem\processing\processing.dm" #include "code\controllers\subsystem\processing\shield_pillar.dm" #include "code\controllers\subsystem\processing\slowobj.dm" @@ -329,13 +345,11 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\mind.dm" #include "code\datums\mixed.dm" #include "code\datums\mob_hud.dm" -#include "code\datums\modules.dm" #include "code\datums\movement_detector.dm" #include "code\datums\mutable_appearance.dm" #include "code\datums\quadtree.dm" #include "code\datums\recipe.dm" #include "code\datums\shuttles.dm" -#include "code\datums\skills.dm" #include "code\datums\soundOutput.dm" #include "code\datums\tgs_event_handler.dm" #include "code\datums\vehicles.dm" @@ -354,6 +368,22 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\agents\tools\toolbox.dm" #include "code\datums\agents\tools\tracker.dm" #include "code\datums\agents\tools\tranq_gun.dm" +#include "code\datums\ammo\ammo.dm" +#include "code\datums\ammo\energy.dm" +#include "code\datums\ammo\misc.dm" +#include "code\datums\ammo\rocket.dm" +#include "code\datums\ammo\shrapnel.dm" +#include "code\datums\ammo\xeno.dm" +#include "code\datums\ammo\bullet\bullet.dm" +#include "code\datums\ammo\bullet\lever_action.dm" +#include "code\datums\ammo\bullet\pistol.dm" +#include "code\datums\ammo\bullet\revolver.dm" +#include "code\datums\ammo\bullet\rifle.dm" +#include "code\datums\ammo\bullet\shotgun.dm" +#include "code\datums\ammo\bullet\smg.dm" +#include "code\datums\ammo\bullet\sniper.dm" +#include "code\datums\ammo\bullet\special_ammo.dm" +#include "code\datums\ammo\bullet\tank.dm" #include "code\datums\autocells\auto_cell.dm" #include "code\datums\autocells\explosion.dm" #include "code\datums\autocells\vomit_wave.dm" @@ -362,8 +392,10 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\components\armor_link.dm" #include "code\datums\components\bad_leg.dm" #include "code\datums\components\bonus_damage_stack.dm" +#include "code\datums\components\cell.dm" #include "code\datums\components\cluster_stack.dm" #include "code\datums\components\connect_mob_behalf.dm" +#include "code\datums\components\crate_tag.dm" #include "code\datums\components\footstep.dm" #include "code\datums\components\healing_reduction.dm" #include "code\datums\components\id_lock.dm" @@ -373,6 +405,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\components\rename.dm" #include "code\datums\components\speed_modifier.dm" #include "code\datums\components\toxin_buildup.dm" +#include "code\datums\components\tutorial_status.dm" #include "code\datums\components\weed_damage_reduction.dm" #include "code\datums\components\weed_food.dm" #include "code\datums\components\autofire\_automated_fire.dm" @@ -457,6 +490,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\elements\traitbound\gun_silenced.dm" #include "code\datums\elements\traitbound\leadership.dm" #include "code\datums\emergency_calls\big_game_hunter.dm" +#include "code\datums\emergency_calls\cbrn.dm" #include "code\datums\emergency_calls\clf.dm" #include "code\datums\emergency_calls\cmb.dm" #include "code\datums\emergency_calls\colonist.dm" @@ -529,6 +563,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\keybinding\emote.dm" #include "code\datums\keybinding\human.dm" #include "code\datums\keybinding\human_combat.dm" +#include "code\datums\keybinding\human_inventory.dm" #include "code\datums\keybinding\living.dm" #include "code\datums\keybinding\mob.dm" #include "code\datums\keybinding\movement.dm" @@ -537,6 +572,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\langchat\langchat.dm" #include "code\datums\looping_sounds\_looping_sound.dm" #include "code\datums\looping_sounds\item_sounds.dm" +#include "code\datums\looping_sounds\misc_sounds.dm" #include "code\datums\origin\civilian.dm" #include "code\datums\origin\origin.dm" #include "code\datums\origin\upp.dm" @@ -551,7 +587,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\pain\pain_zombie.dm" #include "code\datums\paygrades\helper.dm" #include "code\datums\paygrades\paygrade.dm" -#include "code\datums\paygrades\factions\civillian\civilian.dm" +#include "code\datums\paygrades\factions\other\civilian.dm" #include "code\datums\paygrades\factions\other\cmb.dm" #include "code\datums\paygrades\factions\other\contractors.dm" #include "code\datums\paygrades\factions\other\dutch_dozen.dm" @@ -562,12 +598,28 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\paygrades\factions\uscm\marine.dm" #include "code\datums\paygrades\factions\uscm\navy.dm" #include "code\datums\paygrades\factions\uscm\provost.dm" -#include "code\datums\paygrades\factions\wy\goons.dm" #include "code\datums\paygrades\factions\wy\pmc.dm" #include "code\datums\paygrades\factions\wy\wy.dm" #include "code\datums\redis\redis_message.dm" #include "code\datums\redis\callbacks\_redis_callback.dm" #include "code\datums\redis\callbacks\asay.dm" +#include "code\datums\skills\civilian.dm" +#include "code\datums\skills\clf.dm" +#include "code\datums\skills\cmb.dm" +#include "code\datums\skills\commando.dm" +#include "code\datums\skills\contractor.dm" +#include "code\datums\skills\dutch.dm" +#include "code\datums\skills\forecon.dm" +#include "code\datums\skills\freelancer.dm" +#include "code\datums\skills\gladiator.dm" +#include "code\datums\skills\mercenary.dm" +#include "code\datums\skills\misc.dm" +#include "code\datums\skills\pmc.dm" +#include "code\datums\skills\rmc.dm" +#include "code\datums\skills\skills.dm" +#include "code\datums\skills\synthetic.dm" +#include "code\datums\skills\upp.dm" +#include "code\datums\skills\uscm.dm" #include "code\datums\stamina\_stamina.dm" #include "code\datums\stamina\none.dm" #include "code\datums\statistics\cause_data.dm" @@ -589,6 +641,12 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\statistics\random_facts\kills_fact.dm" #include "code\datums\statistics\random_facts\random_fact.dm" #include "code\datums\statistics\random_facts\revives_fact.dm" +#include "code\datums\status_effects\_status_effect.dm" +#include "code\datums\status_effects\_status_effect_helpers.dm" +#include "code\datums\status_effects\grouped_effect.dm" +#include "code\datums\status_effects\limited_effect.dm" +#include "code\datums\status_effects\stacking_effect.dm" +#include "code\datums\status_effects\debuffs\debuffs.dm" #include "code\datums\supply_packs\_supply_packs.dm" #include "code\datums\supply_packs\ammo.dm" #include "code\datums\supply_packs\attachments.dm" @@ -608,6 +666,15 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\supply_packs\spec_ammo.dm" #include "code\datums\supply_packs\vehicle_ammo.dm" #include "code\datums\supply_packs\weapons.dm" +#include "code\datums\tutorial\_tutorial.dm" +#include "code\datums\tutorial\_tutorial_menu.dm" +#include "code\datums\tutorial\tutorial_example.dm" +#include "code\datums\tutorial\marine\_marine.dm" +#include "code\datums\tutorial\marine\basic_marine.dm" +#include "code\datums\tutorial\marine\medical_basic.dm" +#include "code\datums\tutorial\ss13\_ss13.dm" +#include "code\datums\tutorial\ss13\basic_ss13.dm" +#include "code\datums\tutorial\ss13\intents.dm" #include "code\datums\weather\weather_event.dm" #include "code\datums\weather\weather_map_holder.dm" #include "code\datums\weather\weather_events\big_red.dm" @@ -668,13 +735,13 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\area\techtree.dm" #include "code\game\area\varadero.dm" #include "code\game\area\WhiskeyOutpost.dm" +#include "code\game\camera_manager\camera_manager.dm" #include "code\game\cas_manager\datums\cas_fire_envelope.dm" #include "code\game\cas_manager\datums\cas_fire_mission.dm" #include "code\game\cas_manager\datums\cas_iff_group.dm" #include "code\game\cas_manager\datums\cas_signal.dm" #include "code\game\gamemodes\cm_initialize.dm" #include "code\game\gamemodes\cm_process.dm" -#include "code\game\gamemodes\cm_self_destruct.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\colonialmarines\colonialmarines.dm" @@ -772,7 +839,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\line_nexter.dm" #include "code\game\machinery\machinery.dm" -#include "code\game\machinery\magnet.dm" #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\mining.dm" #include "code\game\machinery\misc.dm" @@ -794,7 +860,10 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\teleporter.dm" #include "code\game\machinery\washing_machine.dm" #include "code\game\machinery\weather_siren.dm" +#include "code\game\machinery\ARES\apollo_pda.dm" #include "code\game\machinery\ARES\ARES.dm" +#include "code\game\machinery\ARES\ARES_interface.dm" +#include "code\game\machinery\ARES\ARES_interface_apollo.dm" #include "code\game\machinery\ARES\ARES_procs.dm" #include "code\game\machinery\ARES\ARES_records.dm" #include "code\game\machinery\ARES\ARES_step_triggers.dm" @@ -904,6 +973,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\vending\vendor_types\crew\sea.dm" #include "code\game\machinery\vending\vendor_types\crew\senior_officers.dm" #include "code\game\machinery\vending\vendor_types\crew\staff_officer.dm" +#include "code\game\machinery\vending\vendor_types\crew\staff_officer_armory.dm" #include "code\game\machinery\vending\vendor_types\crew\synthetic.dm" #include "code\game\machinery\vending\vendor_types\crew\vehicle_crew.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_engineer.dm" @@ -914,6 +984,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\vending\vendor_types\squad_prep\squad_smartgunner.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_specialist.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_tl.dm" +#include "code\game\machinery\vending\vendor_types\squad_prep\tutorial.dm" #include "code\game\objects\empulse.dm" #include "code\game\objects\explosion.dm" #include "code\game\objects\explosion_recursive.dm" @@ -969,6 +1040,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\objects\effects\landmarks\structure_spawners\setup_distress.dm" #include "code\game\objects\effects\landmarks\structure_spawners\structure_spawner.dm" #include "code\game\objects\effects\landmarks\structure_spawners\xvx_hive.dm" +#include "code\game\objects\effects\spawners\faction_spawners.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\prop_gun_spawner.dm" #include "code\game\objects\effects\spawners\random.dm" @@ -1050,6 +1122,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\objects\items\devices\radio\encryptionkey.dm" #include "code\game\objects\items\devices\radio\headset.dm" #include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\listening_bugs.dm" #include "code\game\objects\items\devices\radio\radio.dm" #include "code\game\objects\items\explosives\explosive.dm" #include "code\game\objects\items\explosives\mine.dm" @@ -1248,13 +1321,16 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\objects\structures\crates_lockers\closets\secure\cm_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" -#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\kitchen.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet\guncabinet.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet\level_blue.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet\level_red.dm" #include "code\game\objects\structures\pipes\binary_misc.dm" #include "code\game\objects\structures\pipes\pipes.dm" #include "code\game\objects\structures\pipes\trinary_misc.dm" @@ -1301,8 +1377,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\verbs\preferences.dm" #include "code\game\verbs\records.dm" #include "code\game\verbs\who.dm" -#include "code\js\byjax.dm" -#include "code\js\menus.dm" #include "code\modules\trigger.dm" #include "code\modules\admin\admin.dm" #include "code\modules\admin\admin_ranks.dm" @@ -1339,6 +1413,8 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\admin\tabs\event_tab.dm" #include "code\modules\admin\tabs\round_tab.dm" #include "code\modules\admin\tabs\server_tab.dm" +#include "code\modules\admin\tacmap_panel\tacmap_admin_panel.dm" +#include "code\modules\admin\tacmap_panel\tacmap_admin_panel_tgui.dm" #include "code\modules\admin\topic\topic.dm" #include "code\modules\admin\topic\topic_chems.dm" #include "code\modules\admin\topic\topic_events.dm" @@ -1407,6 +1483,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\asset_cache\asset_list.dm" #include "code\modules\asset_cache\asset_list_items.dm" #include "code\modules\asset_cache\assets\fontawesome.dm" +#include "code\modules\asset_cache\assets\medals.dm" #include "code\modules\asset_cache\assets\tgfont.dm" #include "code\modules\asset_cache\assets\tgui.dm" #include "code\modules\asset_cache\assets\vending.dm" @@ -1550,6 +1627,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\cm_preds\smartdisc.dm" #include "code\modules\cm_preds\thrall_items.dm" #include "code\modules\cm_preds\thrall_procs.dm" +#include "code\modules\cm_preds\yaut_actions.dm" #include "code\modules\cm_preds\yaut_bracers.dm" #include "code\modules\cm_preds\yaut_hudprocs.dm" #include "code\modules\cm_preds\yaut_items.dm" @@ -1597,7 +1675,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\decorators\admin_runtime_decorator.dm" #include "code\modules\decorators\cassette_decorator.dm" #include "code\modules\decorators\christmas.dm" -#include "code\modules\decorators\halloween.dm" #include "code\modules\decorators\mass_xeno_decorator.dm" #include "code\modules\decorators\weapon_decorator.dm" #include "code\modules\decorators\weapon_map_decorator.dm" @@ -1654,6 +1731,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\flufftext\TextFilters.dm" #include "code\modules\gear_presets\_select_equipment.dm" #include "code\modules\gear_presets\agents.dm" +#include "code\modules\gear_presets\cbrn.dm" #include "code\modules\gear_presets\clf.dm" #include "code\modules\gear_presets\cmb.dm" #include "code\modules\gear_presets\colonist.dm" @@ -1693,6 +1771,9 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\gear_presets\survivors\sorokyne_strata\preset_sorokyne_strata.dm" #include "code\modules\gear_presets\survivors\trijent\crashlanding_upp_bar_insert_trijent.dm" #include "code\modules\gear_presets\survivors\trijent\preset_trijent.dm" +#include "code\modules\holidays\halloween\decorators.dm" +#include "code\modules\holidays\halloween\pumpkins\patches.dm" +#include "code\modules\holidays\halloween\pumpkins\wearable.dm" #include "code\modules\hydroponics\botany_disks.dm" #include "code\modules\hydroponics\grown_inedible.dm" #include "code\modules\hydroponics\hydro_tools.dm" @@ -1713,6 +1794,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\law\laws\major_crime.dm" #include "code\modules\law\laws\minor_crime.dm" #include "code\modules\law\laws\optional.dm" +#include "code\modules\law\laws\precautionary_charge.dm" #include "code\modules\lighting\emissive_blocker.dm" #include "code\modules\lighting\lighting_area.dm" #include "code\modules\lighting\lighting_atom.dm" @@ -1732,6 +1814,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\logging\log_category.dm" #include "code\modules\logging\log_holder.dm" #include "code\modules\mapping\map_template.dm" +#include "code\modules\mapping\merge_conflicts.dm" #include "code\modules\mapping\preloader.dm" #include "code\modules\mapping\reader.dm" #include "code\modules\mapping\verify.dm" @@ -1774,6 +1857,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\mob\language\languages.dm" #include "code\modules\mob\living\blood.dm" #include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\init_signals.dm" #include "code\modules\mob\living\living.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" @@ -1869,6 +1953,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\mob\living\carbon\xenomorph\Facehuggers.dm" #include "code\modules\mob\living\carbon\xenomorph\hive_faction.dm" #include "code\modules\mob\living\carbon\xenomorph\hive_status.dm" +#include "code\modules\mob\living\carbon\xenomorph\hive_status_ui.dm" #include "code\modules\mob\living\carbon\xenomorph\life.dm" #include "code\modules\mob\living\carbon\xenomorph\login.dm" #include "code\modules\mob\living\carbon\xenomorph\mark_menu.dm" @@ -1876,7 +1961,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\mob\living\carbon\xenomorph\resin_constructions.dm" #include "code\modules\mob\living\carbon\xenomorph\say.dm" #include "code\modules\mob\living\carbon\xenomorph\update_icons.dm" -#include "code\modules\mob\living\carbon\xenomorph\xeno_defines.dm" #include "code\modules\mob\living\carbon\xenomorph\xeno_helpers.dm" #include "code\modules\mob\living\carbon\xenomorph\xeno_tackle_counter.dm" #include "code\modules\mob\living\carbon\xenomorph\xeno_verbs.dm" @@ -1943,6 +2027,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\mob\living\carbon\xenomorph\castes\Boiler.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Burrower.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Carrier.dm" +#include "code\modules\mob\living\carbon\xenomorph\castes\caste_datum.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Crusher.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Defender.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Drone.dm" @@ -2059,7 +2144,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\movement\launching\launching.dm" #include "code\modules\nano\nanoexternal.dm" #include "code\modules\nano\nanomanager.dm" -#include "code\modules\nano\nanomapgen.dm" #include "code\modules\nano\nanoui.dm" #include "code\modules\nightmare\nmcontext.dm" #include "code\modules\nightmare\nmnodes\components.dm" @@ -2119,7 +2203,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\power\smes_construction.dm" #include "code\modules\power\terminal.dm" #include "code\modules\power\turbine.dm" -#include "code\modules\projectiles\ammo_datums.dm" #include "code\modules\projectiles\ammunition.dm" #include "code\modules\projectiles\gun.dm" #include "code\modules\projectiles\gun_attachables.dm" diff --git a/config/example/config.txt b/config/example/config.txt index dcce46434404..8a976e02a580 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -132,6 +132,7 @@ FORUMURL https://forum.cm-ss13.com/ ## Wiki address WIKIURL https://cm-ss13.com/w +WIKIARTICLEURL https://cm-ss13.com/wiki ## Rules address RULESURL https://cm-ss13.com/viewtopic.php?f=57&t=5094 @@ -139,6 +140,9 @@ RULESURL https://cm-ss13.com/viewtopic.php?f=57&t=5094 ## Ban appeals URL - usually for a forum or wherever people should go to contact your admins. BANAPPEALS https://cm-ss13.com/viewforum.php?f=76 +## Discord URL - uncomment and add a valid Discord invite link (remember to make it a permanent one, since it does not default to it) to make the Discord button work properly. +## DISCORDURL + ## In-game features ## Remove the # to show a popup 'reply to' window to every non-admin that recieves an adminPM. ## The intention is to make adminPMs more visible. (although I fnd popups annoying so this defaults to off) diff --git a/dependencies.sh b/dependencies.sh index 2889751d36e6..f88c2f9b0a4b 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -19,3 +19,5 @@ export SPACEMAN_DMM_VERSION=suite-1.7.2 # Python version for mapmerge and other tools export PYTHON_VERSION=3.7.9 + +export OPENDREAM_VERSION=0.2.0 diff --git a/html/changelogs/AutoChangeLog-pr-4541.yml b/html/changelogs/AutoChangeLog-pr-4541.yml deleted file mode 100644 index 3c8ce797677e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-4541.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "QuickLode" -delete-after: True -changes: - - bugfix: "Allows M46C prototype rifle to accept standard M41A MK2 rubber munitions" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5122.yml b/html/changelogs/AutoChangeLog-pr-5122.yml new file mode 100644 index 000000000000..68bc12f76aba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5122.yml @@ -0,0 +1,5 @@ +author: "ihatethisengine" +delete-after: True +changes: + - balance: "Pylons give larva only up to 50% of groundside (weighted) marines, instead of 40% of all humans." + - balance: "Xenos get major boost to evo speed for 3 minutes after hijack. Hijacking resets ovi cooldown." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5359.yml b/html/changelogs/AutoChangeLog-pr-5359.yml new file mode 100644 index 000000000000..930b84a94626 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5359.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - bugfix: "Fixed simulators detonation button" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5369.yml b/html/changelogs/AutoChangeLog-pr-5369.yml new file mode 100644 index 000000000000..8f7fe4aff293 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5369.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - code_imp: "Add missing bitfield definitions for variable viewer (VV)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5379.yml b/html/changelogs/AutoChangeLog-pr-5379.yml new file mode 100644 index 000000000000..cd16b1b35068 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5379.yml @@ -0,0 +1,4 @@ +author: "SabreML" +delete-after: True +changes: + - bugfix: "Fixed the 'busy' circle icon sometimes rendering behind object on the tile above." \ No newline at end of file diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml new file mode 100644 index 000000000000..49bc7a740145 --- /dev/null +++ b/html/changelogs/archive/2023-10.yml @@ -0,0 +1,430 @@ +2023-10-01: + QuickLode: + - bugfix: Allows M46C prototype rifle to accept standard M41A MK2 rubber munitions +2023-10-02: + Ben10083: + - bugfix: fixed a Working Joe voiceline from not working + Casper: + - ui: added microwave TGUI + Morrow: + - bugfix: Fixed fake incomplete surgeries + - bugfix: Fixed manual distress signal manual call options + - bugfix: Fixed a WO distress signal over announcing + Steelpoint: + - balance: Tool Pouch can now hold the same types of items that a toolbelt can hold. + It is still restricted to 4 inventory slots. + - balance: Eggs no longer are resistant to certain kinds of melee attacks. Making + them far easier to kill in melee. + realforest2001: + - balance: Reduces power cost for plasma caster use, and creation of thwei crystals/health + capsules. +2023-10-03: + Drathek: + - rscadd: Add the last larva queue message to observer's status panel + Huffie56: + - qol: remove welding google from squad comtech vendor to avoid him to waste point + since tool vendor have them for free. + JackieEstegado: + - bugfix: Fixed runtime that could happen when melleing an egg. + Morrow: + - balance: If a mob is on top of a reflective wall the wall no longer functions + - balance: Bullets will not longer get eaten by xeno special structures unless you + click directly on them + - bugfix: '"Fixed" missing window frame icon states' + Private Tristan: + - balance: all resin fruits now contain 30u of fruit resin along with their secondary + reagents. + - balance: Alacrit fruits now contain catecholamine plasma instead of pheromone + plasma. + Steelpoint: + - rscadd: Xenomorph hives can now form an alliance with Colonial Marshals. + Sulaboy, Hidgamer, Steelpoint: + - rscadd: Adds the surgical drop pouch item. It comes in green, blue and black. + Only available from the synthetic vendor currently. + - imageadd: Adds sprites for the surgical drop pouches. +2023-10-04: + BeagleGaming1: + - rscadd: Added keybinds to allow inventory manipulation + Morrow: + - admin: Operation time logging + - balance: Underbarrel extinguisher no longer requires wield + - bugfix: Re-added previous UPP changes that were lost in soft conflict + - spellcheck: Removed some ambiguous text about loyalties for UPP survivors + - bugfix: Fixed storage depth for internal storages + - bugfix: Candle boxes can now only hold candles + blackdragonTOW: + - sounddel: removed 300+ ancient and unused Piano and Violin notes. +2023-10-05: + Drathek: + - rscadd: Restore the stat panel options menu to change the stat panel font size + - bugfix: Fix getFlatIcon not resizing its template nor respect appearance_flags + of RESET_COLOR and RESET_ALPHA + Morrow: + - bugfix: Fixed req door accesses + - rscadd: Added NVG optics + - rscadd: Added a hotkey to cycle optics + - rscadd: Added special marine raider optic + - rscadd: Added examine text for optics + - rscadd: Added research publication to advanced medical optic + - rscdel: Removed functional tube NVGs from gameplay + - refactor: Moved some optics code around to make it less redundant + - bugfix: Fixed a bug with duplicate optic actions + - bugfix: Fixed a reported bug where HUDs would stay on forever with destruction + of a helmet + - balance: Comms relays now have a five minute cooldown to be re-pylon'd after a + pylon was destroyed + - bugfix: Pylons now account for stored larva + - bugfix: Fixed floodlight stacking to make mostly invincible walls + - refactor: Refactored 90% of the floodlight code + Steelpoint: + - ui: Added personnel job titles to the handheld crew monitor, to make it easier + to tell find out exactly what role's you are looking for. Also slightly expands + the default monitor screen size to accommodate the entire personnel text on + screen. +2023-10-06: + blackdragonTOW: + - bugfix: fixed spider dead sprite to not have white space (is transparent instead) +2023-10-08: + Kivts: + - rscadd: You can partially protect yourself from flu and other disease by wearing + a mask and other PPE. Doesnt affect Black Goo. + Steelpoint: + - rscadd: Black and white beret's have been added as loadout options for all characters + as headwear. + - rscadd: More cosmetic options are on offer for Synthetics. Includes white and + black berets, standard or darker engineering and mp uniforms and all camo options + for the poncho. + - rscadd: The Synth Councillor and Synth Utility uniforms can now roll their sleeves. + blackdragonTOW: + - spellcheck: Altered inconsistent dropship ammo names + irRegularGuy646: + - rscadd: Added new "M1A1" ballistic goggle reskin + kiVts: + - rscadd: Spades can now remove botany plants. + - rscadd: Plants now globally take more water to grow. + - code_imp: removed all mention of lighting in botany trays. + - bugfix: Research computer no longer shows "for" for every simulation result. + realforest2001: + - rscadd: Added a Do Not Disturb feature for MOST phones. (Overwatch and a couple + others excluded). + spartanbobby: + - maptweak: Fixes floating Cameras and Light in the maint tunnels north of south + of brig + - maptweak: Fixes incorrect Shower tiles in maint shower north of engineering + - maptweak: Fixes incorrect area in maint south of VC bunk + - maptweak: Removes Piano from USS Almayer upper lifeboat area +2023-10-09: + SpartanBobby, esselnek: + - rscadd: tactical shotguns now come standard with their stock. Yes you can remove + it if you dont want it + - rscadd: new tactical shotgun stock sprite done by esselnek +2023-10-10: + BeagleGaming1: + - code_imp: prop guns will copy attachments + CapCamIII: + - rscdel: XO can no longer take a sword as their personal weapon in their vendor. + realforest2001: + - rscadd: Added missing flight record for Queen dropship summon. + - code_imp: Added security record option for shipwide_ai_announcement. + - rscadd: Added security records for unidentified lifeforms announcement. +2023-10-11: + BeagleGaming1: + - rscadd: Light floor can be examined to tell if it is on, off, or broken. + - code_imp: Light floor subtypes for easier mapping + Birdtalon: + - bugfix: You can now pick up paper bins + - bugfix: Campfires stop consuming wood when full + Zonespace27: + - rscdel: Predators can no longer see their or others cross-round honor count. + irRegularGuy646: + - bugfix: fixed new goggle's on helmet sprite +2023-10-12: + QuickLode: + - rscadd: Adds a handheld distress beacon for the Colonial Marshal. They can use + this to signal distress which in turn allows reinforcements in the form of Anchorpoint + Marine QRF or nearby CMB teams. Admins do the final check. + - rscadd: Adds a CMB Patrol Team which responds to "Marshals in Distress" call. + - admin: headset admin response no longer specifies USCM origin(as this is used + for USCM, WY, and now CMB) + - spellcheck: fixes a CMB typo in response message. Also a miniscule change to HG + 37-12 desc. + - spellcheck: fixes 2 misc typos in CMB Inspections + harryob: + - rscadd: origin descriptions are now displayed when selecting an origin + mullenpaul: + - ui: tweaked flyby controls to make them in line with other destinations +2023-10-13: + Drathek: + - refactor: Refactored camera code to be less blocking, use typechecks less often, + and provide somewhat more fluid descriptions to photos. +2023-10-14: + BeagleGaming1: + - bugfix: M39 arm brace disables when dropped + CapCamIII: + - bugfix: UPP Sapper/Medic survivor use their correct paygrade instead of UE3M/UE3S + QuickLode: + - rscadd: Colony Supervisor now has a guaranteed grant. + - balance: nerfs PMC Synthetic's gear + - bugfix: PMC Synthetic has corrected access(thx forest) + - bugfix: Colony Supervisor can now have access to his own colony(LOL). + mullenpaul: + - rscadd: adds weapon spawners for USCM, CLF, PMC and UPP +2023-10-15: + Birdtalon: + - bugfix: Limb printer can no longer double print or print without metal. + Drathek: + - ui: Fixed a duplicate Options button + Lalipar: + - qol: Readable time for when a fax was sent in fax panel + - qol: Adds ckey/character name for faxes in fax panel + - qol: Adds fax subject to fax panel + - bugfix: Added CMB faxes to Fax Panel + fira: + - bugfix: Fix nuke explosion getting canceled in some very rare cases. + - bugfix: Xeno Name preference does not require a reconnection to apply anymore. + It still won't change your current Xenomorph's name however. + - bugfix: Fixed Tape Recorder failing to record when no language information is + present. + harryob: + - admin: administrators without R_DEBUG can now restart the server without starting + the round +2023-10-16: + CapCamIII: + - balance: ERTs now have a variant of the standard medkit that has no storage lock. + - bugfix: Lots of ERTs now correctly have a medkit spawning in their gear + Drathek: + - bugfix: Fixed the hive surge join as xeno observer alert text link not actually + doing anything. + Twomoon: + - rscadd: Added new haircut + Waseemq1235: + - admin: Makes subtle messages more noticeable. + Zonespace, Wei (sprites): + - balance: Removed NSG, Type71, tactical Mar-40, and Mar-50 from the black market + - balance: Removed Ext. M4ra mags from the black market + - balance: Removed monkeycubes from the black market + - balance: Removed lunge mines from the black market + - balance: You now need a modified security access tuner to access the black market, + which can be found ship- and ground-side where scanners and radios can spawn. + fira: + - bugfix: The Turing Machine should now keep working as intended if its linked Smartfridge + is blown up. + - bugfix: Fixed xeno cultists always being created into normal hive, irrespective + of the selected hive. + - bugfix: Fixed 'Join as Freed Mob' verb crashing if freed mobs had previously been + deleted. + - bugfix: Fixed issues with turfs, notably lighting, arising when building it from + a sheets stack. +2023-10-17: + VileBeggar: + - qol: The Queen's psychic messages now use a bigger font and are harder to miss. + Warfan1815: + - mapadd: New Squad Briefings south and north of normal briefing! Feel free to use + them to your heart's content. + - maptweak: Moved long-rest bunks further north and further south of where they + were originally +2023-10-18: + mullenpaul: + - code_imp: resolves flyby issues by refactoring update_equipment logic + - refactor: removes unwanted code + realforest2001: + - code_imp: Moved most data storage from ARES Interface and APOLLO consoles to a + new ARES datacore datum. + - code_imp: Moved the two consoles to separate files for easier navigation, and + moved their respective UI data to the files. + - code_imp: Ares logging procs are now global procs with integrated can_log checks, + rather than requiring definition of ares_link for every use. + - rscadd: Added ares_can_log checks to all the places I could find missing them. + - bugfix: Fixed missing rejection button for access tickets. + - rscdel: Removed claim ticket button from Access Tickets. +2023-10-19: + BeagleGaming1: + - refactor: Refactored handheld beacons and related code + CapCamIII: + - bugfix: Equipped marine presets spawn with full food on spawn + Huffie56: + - refactor: refactor ammo_datums file. + SpartanBobby: + - maptweak: fixes lack of warning stripes under doors in squad briefing areas and + newly added maint doors onboard USS Almayer + - maptweak: fixes incorrect tiles used under window frames in new squad briefing + areas onboard USS Almayer + - maptweak: fixes pipe sections under window frames in new squad briefing areas + onboard USS Almayer + - maptweak: fixes pipes that lead nowhere in new squad briefing areas onboard USS + Almayer + - maptweak: fixes button that was being hidden by light due to recent USS Almayer + changes + - maptweak: corrects strangely laid out vent sections due to recent USS Almayer + changes + - maptweak: makes USS Almayer Bunks consistent with the rest of the ship's shower + and bathrooms + - maptweak: updates "Dusty Beret" prop item to now be the RMC Beret it was originally + referencing (now that the RMC are ingame) + VileBeggar: + - qol: All squad uniform vendors have had their standard apparel condensed into + one button. + fira: + - bugfix: Fixed caps displaying contained items on character even without being + worn. + neeshacark: + - qol: MT, CT, and Nurses can now take the bad leg trait. +2023-10-20: + Drathek: + - bugfix: Fixed a cause of bad icon operations + - bugfix: Bandaided a problem with nulls in GLOB.clients + IsProbablyCatto: + - qol: Medbelts pull from pillbottles as default + Kitsunemitsu: + - bugfix: fixed FTLs being demoted from SL erroneously having the tag TL in chat. + MrDas: + - bugfix: You can now disassemble wide airlocks. (You can't unwrench them though) + - spellcheck: Fixed a few typos in airlock assembly. + - imageadd: Added wide airlock assembly and generic solid wide airlock sprites. + SpartanBobby: + - maptweak: Removes stunprod from LV522 + VileBeggar: + - rscadd: Dartboards are now functional and can be crafted with cardboard. + - bugfix: Fixed an issue with some deconstructed signs losing their icon. +2023-10-21: + Birdtalon: + - rscadd: USCM Service Jacket to SEA Vendor + CapCamIII: + - balance: Crawling now only takes 1 second to move and no longer has an overhead + icon when doing it. + - balance: Timer on attempting to join ERT after death is now 30 seconds down from + 1 minute + - spellcheck: UPP Synth Survivor on the Trijent Dam nightmare is now called a Support + Synthetic instead of a Combat Synthetic, as its not a combat synthetic + Drathek: + - bugfix: Fixed imaginary friends not initializing correctly and throwing a runtime + - ui: Tweaked the position of some ghost alerts + SpartanBobby: + - maptweak: Fixes incorrect DIR on fireshutters in memorial + - maptweak: Corrects lack of warning stripe tile under door in north brig maint + Steelpoint: + - rscadd: UPP ERT's have a chance to be neutral to the USCM. + fira: + - bugfix: Xeno and Megaphone abovehead chat speech should now properly be centered + horizontally. + - bugfix: Fixed Rangefinders/Designators preventing you from lazing if you looked + up/down them without moving. + - bugfix: Fixed Rangefinders/Designators forcing you to look up/down again if you + had moved while using them. + foxtrot1322: + - rscadd: Added splints to the survival pouch + - rscadd: Increased survival pouch storage space by 1 + - spellcheck: Updates the survival pouch's description +2023-10-22: + Drathek: + - bugfix: Fix incend and cluster OBs not respecting ceiling OB protections. + - bugfix: Disabled code in icon2html that is causing bad icon operations + Morrow: + - server: the rustg mysql driver is now properly compatible with mariadb + Zonespace27: + - rscadd: Mentors can now unmark mhelps + fira: + - bugfix: Removed redundant double binding for F1 to AdminHelp from default keybinds. + This does not affect existing users or their settings. + - rscadd: Stamping papers now makes a noise. + - bugfix: Fixed incorrect Reqs vendors visuals on the Almayer. They now blend in + with the walls again. + - bugfix: Re-fixed Megaphone above-head-chat drifting to the left. + harryob: + - admin: no more href token errors when changing the game mode via game panel + - bugfix: mentorhelp response no longer gives a dead discord link + - admin: view-target-records now allows you to note people properly + kiVts: + - rscadd: Ghosts get notified when they are being revived by DFB property + - balance: DFB property healing threshold lowered, You can create DFB property higher + than one. + realforest2001: + - rscadd: Added Discretionary Arrest to JAS. + - rscadd: Added a new category to JAS, Precautionary Charges. Moves Insanity and + POW to this category. +2023-10-23: + QuickLode: + - balance: Nerfs synth surv pouch by removing 1 storage slot. + SpypigDev: + - rscadd: CIC Armory SO vendor + - balance: Moved most combat-themed gear from SO spawn vendors, to CIC Armory vendor + - balance: Made RTO pack a point-buy item in CIC Armory vendor for SOs + Steelpoint: + - balance: Revolver Heavy ammo no longer stuns targets it strikes, it will instead + knock them back and slow them down for a short time. + harryob: + - server: the server now respects /string/title for late joiners + stalkerino: + - balance: m39 is able to use vertigrip +2023-10-24: + Segrain: + - bugfix: Slicing food once again works as intended. +2023-10-25: + fira: + - bugfix: Fixed Ghosts and Queen Eye occasionally "eating" pounces in place of a + mob on the same turf. + - bugfix: Re-Re-Fixed Xeno Above Head Chat offsets, for real this time + - bugfix: Fixed people talking in radios all the time. Finally some quiet. + - bugfix: deadchat death messages should now display immediately rather than being + delayed a couple seconds. +2023-10-26: + 4hands44: + - rscadd: Added more attachments, and belts to the CO arsenal. + - rscadd: CO now has an Essentials Kit like other roles, containing his Designator, + and other useful tools. + - rscadd: Re-Adds Bridgecoat to some Officer Dress vendors. (Limited to CO(+) and + XO currently.) + - rscdel: Removed Laser Designator from CO spawn Preset. + - balance: CO can now vend welding Helmet visors. + - balance: Adds grenade packets to CO Vendor. + XDinka: + - rscadd: 'Added four new haircuts: gentle ponytail, edgar haircut, emo bun, taper + haircut.' +2023-10-27: + Backsea: + - bugfix: Fixed the incorrectly placed shutters at req and that one light near CIC + Birdtalon: + - refactor: Refactored praetorian pierce ability + - bugfix: Praetorian vanguard can no longer pierce through windowed doors + SASoperative: + - rscadd: Added donator item and sprites + Zonespace27: + - rscdel: Re-removed CO/XO bridge coat + fira: + - rscadd: Added about 50 new tips. + - rscadd: Bloody footprints are now slightly offset to break long visual straight + lines. + - bugfix: Items do not align back to the center of turfs anymore when picked from + a surface (table or rack) + - rscadd: Some more items now have offsets on the map display, and they all can + be slightly offset. + - code_imp: Rewrote Xeno Acid ticking code. + - bugfix: Weather updates won't cause turfs to acid melt more rapidly anymore + - bugfix: Fixed various issues in the Networking between Turing machine and Smartfridges. + realforest2001: + - bugfix: Fixes custom ERT calling broadcasting when it should not. + - code_imp: Removes unused vars from ERT procs. + - code_imp: Renames the announce var in ERT procs to be more indicative of what + it does. + - rscadd: Added a setting on custom ERTs for announcing beacon was received. +2023-10-29: + Segrain: + - bugfix: Incendiary OB once again spreads to intended size. + fira: + - bugfix: Sprite-click shots onto Xenos are no longer affected by limb-targeting + penalty, because it was an accuracy debuff when there is no inherent benefit + to targeting Xeno limbs. + realforest2001: + - imageadd: Added sprites for provost senior and marshal uniforms. + - spellcheck: Gave unique names to the provost armour subtypes. + - balance: Prevented most provost armour from being able to fit inside bags. + - balance: Returned provost armour to the same slowdowns as MP armour. + - code_imp: Removed a lot of duplicate code in Provost presets and uniform/suits. +2023-10-31: + SASoperative: + - bugfix: Fixed sprite issue by disabling camo variant for donator item + fira: + - bugfix: Fixed Limbs and Organs deleting incorrectly on species change. + mullenpaul: + - refactor: reworked trijent elevators to be reusable on new maps + - maptweak: Trijent map now has two elevators, lz1 to engineering and lz2 to omega diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml new file mode 100644 index 000000000000..02e7bf43396b --- /dev/null +++ b/html/changelogs/archive/2023-11.yml @@ -0,0 +1,425 @@ +2023-11-01: + HeresKozmos: + - rscadd: added flashlight, donk pocket box, interview table, folder, taperecorder, + ink toner, extra lights and expanded the size of the CC's room. +2023-11-02: + Huffie56: + - refactor: Refactor gun cabinet code adding subtype for all the secure guncabinet. + - refactor: Refactor safe code adding subtype for cl and co safes also add a subtype + for armory honor guard closet . + cuberound: + - balance: LZ detector now works even when the DS is stationary + harryob: + - qol: you can now click drag from items in your storage to your hands + private-tristan: + - balance: predators are no longer immune to molecular acid injected from spitter + and boiler tailstabs +2023-11-03: + harryob: + - ui: the options button is now part of the statbrowser tabs proper +2023-11-04: + BeagleGaming1: + - rscadd: Added many new loadout items + - code_imp: Added a signal to items that triggers right after the mob finishes spawning + - code_imp: Added a signal to add additional behavior to storing items in shoes + Blundir: + - rscadd: added intel and foxtrot squad berets and headband + TheGamerdk: + - bugfix: Restores the MK1 AP mags in the CIC armory + fira: + - bugfix: M56D/M2C should now properly stop firing when they stop being used. + realforest2001: + - code_imp: Repathed sword weapons to a uniform /obj/item/weapon/sword + - balance: All sword-type weapons are now Large items instead of Normal sized, to + match machetes. + - rscadd: Added the KN5500 PDA for Working Joes. Sprites by Frans_Feiffer. + - rscadd: Changed the plain glass in Working Joe presets to Reinforced Glass. + sleepynecrons: + - imagedel: shrinks the type-19 SMG stick magazine to a more reasonable size +2023-11-05: + fira: + - bugfix: Fixed recyclers (including Whiskey Outposts') and added the possibility + to recycle crates with them. + - bugfix: Standardized "vend to table" functionality of vendors, enabling it to + work for Whiskey Outpost's Reqs. + - rscadd: Whiskey Outpost vendors now contain the same items as Almayer's. WO still + has spare specialist ammo on top of that. + - rscadd: Readded delivery chute, wrap and tagger to Whiskey Outpost Reqs, letting + you pack and send crates and items via disposals again. + - balance: Whiskey Outpost supply drops should now be more interesting and impactful. + - rscadd: Added missing Synth vendors on WO. +2023-11-07: + 567Turtle: + - soundadd: New whistle sound effect + Alexguinea: + - rscadd: Added toners to the rec vendor + AndroBetel: + - spellcheck: Fixed a typo in RO rules sign. + - spellcheck: RO mention is no more, replaced with QM. + BeagleGaming1: + - code_imp: Tents now hold the datum directly, instead of the typepath + - admin: Added a proc for staff to change tent dmm's + Blundir: + - rscadd: added shotgun tube toggle hotkey + Doubleumc: + - bugfix: vehicle interiors can hear exterior noises + Drathek: + - bugfix: Fixed various job's entry messages having broken links to the wiki + Firartix and Frans_Feiffer: + - rscadd: Readded Halloween pumpkin helmets. + IowaPotatoFarmer: + - rscadd: Added new survivor presets for New Varadero to make them more visually + distinct and unique to the map. + - rscdel: Removed the ability to build ground structures or anchor wall girders + on top of xeno tunnels. + - bugfix: Fixed wall girders being anchorable on shuttle tiles. + Morrow, Zonespace: + - rscadd: Added objectives to hijack. You now must hold different sections of the + ship to successfully launch lifeboats or pods + - rscadd: The areas that contribute to hijack objectives are the lifeboat pumps, + astronav, and engineering + - rscadd: Fuel pumps now have red alert sentries + - rscadd: Corporate liaison evac shuttle now can be launched at any time even if + evac has not been called + - rscadd: You can now self-destruct the ship by overloading the fusion generators + in engineering once lifeboat fuel is at 100%. + - rscdel: Removed auto launch of lifeboats and pods + - code_imp: Refactored EvacuationAuthority into SShijack + Releasethesea: + - balance: Makes it so that Pill packets fit in helmets + SpartanBobby: + - maptweak: Alot of changes to big reds admin area, including new windows, prop + placement, room detailing, new doors + Steelpoint: + - rscadd: Corpsman can chose to optionally vend a set of armoured sterile gloves + as a alternative to regular gloves. They provide full glove protection, but + are otherwise an aesthetic choice. + TopHatPenguin: + - rscadd: Adds a mostly built communications office nightmare insert to Kutjevo + which attaches onto the sensor tower. + - rscadd: Re-adds the Kutjevo blackbox. + Xander3359: + - bugfix: Fixes being able to create ghost tanks from a Broiler-T unit. + blackdragonTOW: + - imageadd: Changed nanotrasen cashcard icon to W-Y + fira: + - rscdel: Removed unused magnet and mass driver legacy SS13 machinery. + - bugfix: Fixed being able to put anything in your boots. You're not wizards! + - admin: Added better logging for orbital bombardment. + realforest2001: + - rscadd: Added a big line to Nightmare survivor spawns that indicates hostility. +2023-11-08: + BeagleGaming1: + - rscadd: Added CBRN ERT with new CBRN MOPP equipment. (Sprites by DrMacCool and + Esselnek, names and descriptions by TopHatPenguin and Kaga) + - rscadd: ERT Squads (Marine Raider and new CBRN) get assigned to their squad even + if spawned as an ERT, and do not automatically unlock it for overwatch + - balance: Tool Webbing can now only hold tools, instead of just being a better + webbing + - spellcheck: Corrected spelling of "Intercepted Transmission" for ERTs + - bugfix: USCM faction squads that are not default marine squads should no longer + cause a crew manifest runtime + Birdtalon: + - rscadd: Xeno tacmap icons for hive core and clusters. + Drathek: + - bugfix: Fix the ColMarTechAutomated Munition Vendor in req not vending to the + table. + - bugfix: Fix the first use of a USCM equipment preset (such as cryo marines) not + properly loading rank and other values + QuickLode: + - rscadd: adds another Colony Synthetic variant, changes up some existing ones(trucker,CMB) + - bugfix: fixes a small problem with WY-Colony Synthetic access(thx forest), adds + WY subtype of Synthetics for admin building/faxes + - bugfix: fixes problems with organic spawning ferret industries Trucker Synthetic + Releasethesea: + - rscadd: Makes it so cigars fit in helmets. + Skye.: + - maptweak: Tweaks a Cabinet in the SW mines of Solaris Ridge + - bugfix: On account of it being propped up on the floor like a cardboard cutout. + fira: + - bugfix: Spawned bottles now use all 4 of their sprites as intended rather than + always the same. + zzzmike: + - spellcheck: fixed a typo +2023-11-09: + fira: + - bugfix: Fixed incorrect signals causing malfunctions in tgui_say for ASAY and + MentorSay channel hotkeys. + - admin: VV "Update Transform" will now properly compound with other sources of + transform (eg. lying down) + - bugfix: Density effects should now properly update when stacked and unstacked. + - rscadd: You can now use package wrap to change standard crates visuals. + - rscadd: You can now label crate with package wrap, which will also be shown during + overwatch supply drop alert. + - mapadd: Added more packaging wrap to Requisitions. +2023-11-10: + Drathek: + - bugfix: Fixed fax template images in CDN mode + - bugfix: Fixed imaginary friend merge ability preventing hearing if ghost ears + are set to only nearby. + - bugfix: Fixed imaginary friend hide ability not updating its icons. + MorrowWolf: + - bugfix: Fixed Pumpkins appearing past season. + MrDas: + - bugfix: You can no longer see through solid rear drop ship doors. + - code_imp: Moved filler turf logic from almayer airlocks to its parent door. + SpartanBobby: + - maptweak: fixes conflicting tiles on USS Almayer squad bunks + - maptweak: updates multiple bedrooms and closet area detailing +2023-11-11: + QuickLode: + - rscadd: SUPERLIGHT armor category. + - balance: M4 Synthetic Armor slows by 10% to justify having 1 extra storage slot. + - spellcheck: Clarifies M4 Synthetic Armor description that it does not have any + armor whatsoever. +2023-11-12: + SpartanBobby Tophatpenguin: + - maptweak: redetails a room on the upper deck of the USS Almayer, places a few + L42As in this room +2023-11-14: + BeagleGaming1: + - rscdel: Removes icon baking on surfaces (primarily seen on tables) + Birdtalon: + - bugfix: Boiler acid shroud now works on hotkey 5 + - code_imp: Replaces single letter vars and removes unused code for boiler. + - code_imp: Replaces burrow var from Xenomorph with burrowed trait + - code_imp: Starts refactoring some vars on xenomorph class + - rscadd: Observer with Security HUD enabled can examine and read security records. + - rscadd: Toggle HUD button to ghost UI + BraveMole, Zonespace: + - bugfix: Guns should no longer very rarely jam mid-burst. + Ediblebomb: + - qol: Changed "Subject is brain-dead." to "Subject has taken extreme amounts of + brain damage." when scanning somebody with 100 brain damage. + Releasethesea: + - bugfix: Fixxed the improperly area'd hull south of construction site, adds fire + shutters to north fueling pod to make it mirror the south one + - rscadd: Adds Colonial Space Grunts to rec vend aswell as several pens and Dice + for playing the game. + - rscadd: Adds functional bedrolls to the game. + SpartanBobby: + - maptweak: fixes broken sidewalk on bigred + Steelpoint: + - rscadd: Less powerful variants of the Commando ERTs (Marsoc, WY Whiteout, UPP + Commandos) have been added for admin use. + - admin: The powerful versions of commando ERTs are denoted with (!DEATHSQUAD!) + in the distress call and equipment preset menus. + fira: + - bugfix: Fixed ghost droppods appearing when launching crates by Echo pad. + - bugfix: Fixed an issue in traits backend update causing among others leadership + action buttons to be missing. +2023-11-15: + Birdtalon: + - code_imp: Replaced single letter vars in runner code. +2023-11-16: + fira: + - bugfix: Rooting effects should now properly update when stacked and unstacked. +2023-11-17: + Birdtalon: + - bugfix: Lurker can no longer tail jab through doors/structures. + - code_imp: Var disambiguation, cleanup and removal of redundant typechecks in lurker + code. + - bugfix: Adds missing newline when viewing sec records as observer. + - bugfix: Fixes posters in CL office displaying IO description. + - code_imp: Replaces single letter var in hivelord code + - code_imp: Replaces single letter vars in ravager code + - code_imp: Refactors vending machine global scope procs + Doubleumc: + - rscadd: vehicles can be followed by ghosts + SpartanBobby, GDS Pathe: + - maptweak: Updates bigred floortiles + - maptweak: Re-adds reactor to bigred + Steelpoint: + - maptweak: LV-624's Caves have had an aesthetic change regarding jungle tiles and + flora. + casperr04: + - bugfix: Removes the ability to fulton bodies that can still be revived + fira: + - admin: VV 'Modify Transform' can now be used to flip objects. + - bugfix: Horizontal Almayer walls no longer change icon randomly, and now properly + display damage overlays. + realforest2001: + - rscadd: Faxes sent from HighCom fax machines now appear in their correct category. + sleepynecrons: + - imageadd: fixes biosuit body sprite not properly covering mobs +2023-11-18: + Cthulhu80, Drathek: + - rscadd: Adds drawing to tactical maps, viewable via stat panel for marines and + xeno tacmap for xenos. + - bugfix: Corrupted (and other hives) now have separate tactical maps. + fira: + - admin: Moderators are now immune to inactivity kick, much like Admins. + - bugfix: Fixed the tank driving through vehicle blockers and accessing "deep" parts + of the map it wasn't intended to push. + - bugfix: Tentatively fixed some visual bugs with turret based vehicles. + - bugfix: Fixed using the tank coupon as first vehicle spawn causing Gear Vendor + to still give out APC gear. + - admin: Added an APC coupon in same vein as Tank Coupon for Admins to use. + - admin: Tank/APC Coupons now spawn broken down versions of the vehicles, for the + full VC experience. You want a ready to use one, just spawn it. + - admin: Tank/APC coupons do not spawn VC pamphlets in ASRS anymore. + - admin: Added a vehicle_flag for tanks to bypass blockers (in a legit fashion this + time). Abuse at your discretion. + ihatethisengine: + - rscadd: Cloaked lurker devouring now shows a message to target again. +2023-11-20: + Zonespace27: + - bugfix: Jump-to-area verb will now warn you if there aren't any turfs in the given + area. +2023-11-21: + hislittlecuzingames: + - code_imp: Added ability to have looping sounds from further away +2023-11-22: + AnturK: + - server: the server now supports auto-profiling + Birdtalon: + - code_imp: Removes some istype(src) + Morrow: + - rscadd: Mess tech positions now scale from 1 to 2 after 70 marines are in the + game + hislittlecuzingames: + - rscadd: Launch Announcement Alarm for dropships to notify ground forces of departure. +2023-11-23: + Birdtalon: + - rscdel: Lesser drones die upon ghosting and are not offered to observers. + - rscadd: Explosion handling logic to experimental sensor tower. + - bugfix: Explosions no longer delete experimental sensor tower. + - bugfix: Pylons now differentiated in the input list with a (1) if in the same + area. + Drathek: + - bugfix: Resin doors will now close on dead mobs that are merged with weeds (currently + only human). + - bugfix: Resin doors will now restart their closing timer each open making the + delay to close consistent. + - code_imp: Added a TRAIT_MERGED_WITH_WEEDS that is set whenever the mob is currently + merged with weeds. + - bugfix: 'Fixed buried larva spawn grace period at start of round if there is a + queue: Now join as xeno when there''s a queue will only prevent buried larva + spawns if there is no core.' + - bugfix: 'Tweaked larva queue spawning: Now spawns as many larva as possible each + cycle rather than one.' + LC4492: + - maptweak: 'Changes to the CO office: The bathroom now faces into the CO''s bedroom, + and not to his main office. Victory cabinet have been moved to the Officer''s + mess because of logical issues. Extra-detail to the office, including an exclusive + stamp, table flags and others. The safe is now inside the CO''s bedroom, and + not in his office. The energy APC is now inside the CO''s bedroom, and not in + his office. Jones finally have a BED again, or something like that. Other minor + changes to objects, such the addition of a cane, a box of glasses for serving + guests, etc.' + QuickLode: + - rscadd: Damage to Synthetic's internal causes debuffs, eventual powercell failure.(death) + - bugfix: Synthetic's should no longer lose blood. + - code_imp: moves blood proc to human.dm from blood.dm with above changes. + SortieEnMer: + - qol: Match Unlock Time in Nuke Timelock Message with Nuke Techtree Description + Steelpoint: + - maptweak: Secure Storage on LV-624 has been broken open, making it far less defendable + but easier to access. + fira: + - bugfix: The Thunderdome floor is now explosion-proof. + - balance: Default Web Music Player volume is now 20% down from 50%. It was found + too effective against new players. + - admin: '"Play Internet Sound" is now "Play Admin Sound" and optionally allow to + hide the track name.' + - admin: '"Play Admin Sound" can now be used with uploaded tracks, which use CDN + delivery and the in-chat music player, granting players more control over them.' + - admin: Removed "Play Midi Sound". + ihatethisengine: + - balance: Oppressor no longer can abduct big xenos. + zzzmike: + - qol: ARES hijack announcement specifies that pods will not crash at 100% fuel + - qol: Location name standardization. So, North is now Starboard. This is already + how it is for everything except pumps. +2023-11-25: + BadAtThisGame302: + - bugfix: fixed corporate supervisor burst corpse landmark + Birdtalon: + - bugfix: Fixes defender headbutt bug while fortified. + - bugfix: Lifeboats fire extinguisher runtime. + Doubleumc: + - imageadd: 2-wide dropship side doors + - maptweak: changed dropship side doors to a lone doublewide door + - qol: directions in trackers and messages are more accurate + HeresKozmos: + - bugfix: fixed a nonsensical window facing a solid rock wall + - rscadd: Added pizza and pizza cutter to Req + - rscdel: Deleted a random kepler crisps bag + - bugfix: deleted random raised edges from inside rock wall + Releasethesea: + - bugfix: fixes the XM43E1s name (previously named XM42B) and sprite, fixes the + M42C and XM43E1s barrel, correctly names several items relating to the XM43E1 + SabreML: + - ui: Tweaked the colour of the 'Maintainer' category in staffwho. + ihatethisengine: + - rscadd: Locking down dropship's doors closes them before locking. + realforest2001: + - rscadd: Telephones now list the last attempted caller, above the DND button. +2023-11-26: + Birdtalon: + - code_imp: Replaces single letter vars removes redundant abilitiesin warrior code. + - bugfix: Warriors can no longer behead caps if they start limb ripping before embryo + is inserted. + - code_imp: Refactors warrior limb proc to the warrior class. + Huffie56: + - rscadd: Added a new section to role squad vendors called binoculars except specialist. + - qol: moved NVG and medical hud into helmet optics section for SL and just NVG + for TL + Nanu308: + - rscdel: Removed the Pizza Cutter. +2023-11-27: + Birdtalon: + - bugfix: "Fixes vendor sprites not updating icon when fully repaired\n/\U0001F191" + - bugfix: Fix lesser drone crash on getting gibbed. + Doubleumc: + - bugfix: CORSAT poddoors no longer have extra sprites overlaid on them + - maptweak: CORSAT LZs can be used by shuttles + HeresKozmos: + - rscadd: Added eight new tunnels to Sorokyne + - rscdel: Removed the original five tunnels on Sorokyne + SabreML: + - rscadd: Made the character preview in the character creation menu show the 'Preferred + Armor' setting. + - bugfix: Fixed 'Padded' armour being replaced by the user's armour style preference + when vended. + - qol: Made the squad prep attachments vendors vend items into the user's hands. + Zonespace27: + - bugfix: The Self Destruct timer in the status panel will now stop once SD has + gone off. + hislittlecuzingames: + - bugfix: Disables launch announcment alarm if it's sounding when queen hijacks +2023-11-28: + Birdtalon: + - rscadd: Eggsac carrier can now place eggs on normal weeds to a maximum of 4 eggs. + - rscadd: Eggsac carrier eggs on normal weeds have an expiry date. + fira: + - code_imp: Ported basic /tg/ Status Backend. + - rscadd: Human transform changes such as lying down, knock down, buckling, are + now animated. + - bugfix: Some statuses will now take effect immediately instead of waiting for + a life tick, notably Resting. + - balance: Many interaction requirements were changed to eg. fail upon stuns rather + than if lying down. + stalkerino: + - rscadd: readds skull facepaint and skull balaclava (blue and black) +2023-11-29: + realforest2001: + - rscdel: Whiskey Outpost no longer rolls pred rounds naturally. +2023-11-30: + Birdtalon: + - code_imp: Refactiors xenomorph initialize & removes some duplicate proc calls + HeresKozmos: + - mapadd: added a new spring area to kutjevo's south caves + Huffie56: + - rscadd: Added a lot's of food boxes for that hold the basic ingredients for cooking. + - rscadd: Added a file to handle the fridges in almayer kitchen. + - rscadd: Added a vendor in the kitchen that sell boxes of ingredients. + - rscadd: Added a a food crate called surplus boxes ingredient containing random + boxes of ingredients. + - rscadd: Added a version of this crate that will be freely given via the ASR system. + SabreML: + - bugfix: Fixed a few space tiles under a window in Kutjevo Refinery. + harryob: + - bugfix: the health indicator in the tooltip and colorbox is still present when + a POI has 0 health + - bugfix: admins can refresh the orbit menu without runtimes diff --git a/html/changelogs/archive/2023-12.yml b/html/changelogs/archive/2023-12.yml new file mode 100644 index 000000000000..6f487820ae46 --- /dev/null +++ b/html/changelogs/archive/2023-12.yml @@ -0,0 +1,591 @@ +2023-12-01: + Birdtalon: + - bugfix: Eggsac fragile eggs can be placed on hardy weeds. + Morrow: + - rscdel: Removed flame particles. Possibly increases performance for some players. + Zonespace27: + - bugfix: Resin holes can no longer be planted below stairs +2023-12-02: + 567Turtle: + - rscadd: Brown boots and gloves are now vendable from the surplus vendors. + Birdtalon: + - rscadd: '"Infernal" name prefix for xeno who rolls number 666' + - code_imp: Refactors xeno name generation. Larva name generation and removes some + istype(src) + - bugfix: 'Restricts burrower tunnels to alphanumeric characters as some other characters + break the tunnel. + + code; Adds new proc to replace non alphanumeric or space characters.' + Morrow: + - code_imp: Corrected a check to avoid repeat work in /datum/asset/spritesheet/vending_products/register() + realforest2001: + - rscadd: Added disguisable listening bugs/devices. MPs have two outside CMP office, + the CL has two in their bedroom. + - bugfix: Fixes incorrect frequencies being used to display channel names on radios. + - bugfix: Radios and tape recorders placed on tables or placed inside webbing can + now hear speech again. +2023-12-03: + BadAtThisGame302: + - rscadd: Added a flavor diary entry from the Director of Lambda + - mapadd: added back the old vault nightmare insert on Solaris which was removed + due to the creation of static comms where it spawned + - maptweak: tweaked the Lambda Director's Office + - maptweak: tweaked the Lambda Administration Office + - maptweak: tweaked the Lambda Relaxation Room + SpartanBobby: + - maptweak: Redetails Almayer Squad briefing rooms + blackdragonTOW: + - maptweak: Standardized the names of LZs to include the name of the LZ. + stalkerino: + - bugfix: fixes the skull facepaint, black mask, blue mask +2023-12-04: + Birdtalon: + - bugfix: "Upgraded resin walls can now nest hosts.\n/\U0001F191" + - rscadd: Radial Menu for xeno Evolve + IowaPotatoFarmer: + - rscadd: Added a Corporate Liaison survivor to Sorokyne. + - rscadd: Added a modified version of the liaison's winter coat that allows it to + holster guns and a few other things. Only available to the Sorokyne Strata Corporate + Liaison for now. + - spellcheck: Fixed a typo in the Sorokyne Strata Political Prisoner's ID tag. + MrDas: + - bugfix: Observer minimap should no longer occasionally show wrong / no map. + SabreML: + - ui: Removed the scrollbar from the 'Player setup' menu. + cuberound: + - bugfix: fixed a runtime in /datum/component/healing_reduction/process(delta_time) + ihatethisengine: + - rscadd: Whiskey outpost is voteable less often and requires 140 players. + realforest2001: + - bugfix: Fixes /spec_kit/asrs (now /spec_kit/rifleman) not allowing use. + - code_imp: Adds back-end functionality for token redeeming on cm_vending vendors, + and moves synth experimental tools token to use it. + - rscadd: Spec tokens are real. +2023-12-05: + Birdtalon: + - bugfix: "Fixes a runtime in vendors\n/\U0001F191" + Huffie56: + - rscadd: added new sections(Binoculars, Utilities, Helmet Optics, Radio keys, and + fill them with items already in the vendor. + - qol: move the section called pouches just above utilities section. + - qol: changed the section called "Supplies" to "engineering supplies" and fill + it with C4 and APC circuit board . + SabreML: + - spellcheck: Fixed instances of "The the" and "A the" in chat messages so that + they're just "The" instead. (Part 1) + Tsurupeta: + - bugfix: fixed saving of certain preferences. + silencer_pl: + - admin: Recieving prayers now makes a sound + - admin: Prayers and USCM emergency messages are now better highlighted for mods/admins +2023-12-06: + Birdtalon: + - bugfix: "Fixes runtime in spiders.dm\n/\U0001F191" + Blundir: + - rscadd: added new ammo boxes for various weapons and ammo +2023-12-07: + Doubleumc: + - refactor: vehicle weapons can fire full-auto + - rscdel: no more controls for firing vehicle non-selected weapons + Drathek: + - bugfix: Fix some errors regarding the nano subystem + - code_imp: Reduced most preference re-saving when preferences are initially loaded + Ediblebomb: + - rscadd: M5 Helmet Gasmask now functions as a gasmask when in a marine helmet (and + yes, gasmasks do still have some functionality) + SabreML: + - admin: Fixed a freeze when opening the the 'Create Object' interface. + - admin: Adjusted the size and positioning of the 'Create Object/Mob/Turf' panels + so that everything fits into the window. + - spellcheck: Fixed instances of "The the" and "A the" in chat messages so that + they're just "The" instead. (Part 2) + VileBeggar: + - soundadd: The XM88 now has a scaling hit sound for every direct hit you manage + to land with it. + realforest2001: + - admin: Added a Check Ckey verb to analyze for multikey. We're watching you Wazowski. + Always watching. + - code_imp: Cleaned up 1 letter vars in the global datacore. Also made the entry + names reflect the real name of who they relate to, for VV purposes. + - code_imp: Paygrade shorthands now use defines. + - bugfix: CLF and Survivors are no longer privates. + - bugfix: Civillian Mr/Ms/Mx prefix now works correctly, and is the default for + new ID cards. + - bugfix: Fixes custom sent ERTs broadcasting when they shouldn't. + - bugfix: Fixes UPP friendly ERT telling staff it's hostile. + zzzmike: + - bugfix: disarm chance wasn't calculating properly + zzzmike, drathek, ihatethisengine2: + - rscadd: Lifeboat launch now has an ARES announcement followed by a 10 second delay + before doors close. The current launch functionality is preserved as Emergency + Launch. +2023-12-08: + Birdtalon: + - bugfix: Wall weeds now destroyed when closed wall turfs are changed. + - code_imp: Reorganises some xeno code from xeno_defines.dm + Doubleumc: + - code_imp: projectiles smoothly animate their movement + Firartix, Birdtalon: + - bugfix: Fixed a logic error in Warrior code causing lunging some M2C/M56D users + to semi-permanently brick lunge. + Huffie56: + - maptweak: added a button inside the CL office to open the shutter for the door + and rearranged other buttons. + - maptweak: separated shutter for cl office door and for the windows. + - maptweak: add three lights in CL office and quarter. + - balance: add document and sling pouch to ASO vendor. + - balance: add shoulder webbing to ASO vendor. + - balance: add a bag section to ASO vendor and add leather satchel to it. + SabreML: + - spellcheck: Fixed instances of "The the" and "A the" in chat messages so that + they're just "The" instead. (Part 3) + alexguinea atticus-rezzer: + - rscadd: Adds alarm sound for lifeboats when launching + fira: + - bugfix: Cryoing someone now properly takes into account role weights for the purpose + of latejoin larvas. This should very slightly increase larvas amount. + - bugfix: Roundstart distributed amount of gear and ASRS points now takes shipside + role weights into account. This should moderately decrease budget and starting + gear. + - bugfix: Roundstart distributed amount of gear and ASRS points does not count Survivors + and Monkeys anymore. This should moderatly decrease budget and starting gear. + - rscadd: Main marine vendors and ASRS now get matching supply for every additional + marine latejoining, similar to larvas. This should be a substantial increase + over the course of a round. Supplies given are 60% of what a roundstart marine + would give. + - balance: Amount of gear in main marine vendors and ASRS supplies have been decreased + by 40% to help counteract added supplies the marines will get in latejoining. + Hopefully this also keeps reqs active to dispatch new supplies. + - bugfix: Altered a few items vendor stock scalings to be linear for use with the + new system, such as RTO pack, Drop Pouch and Machete Pouch. + - rscadd: Introduced ASRS supply pools. As proof of concept, ASRS now spawns a crate + of food ingredients every 30 minutes, in addition to regular gear. + - balance: ASRS now keeps track of partial crates awarded. This means if you should + receive 2.5 then 2.5 crates, you now get 2 then 3, rather than 2 and 2. This + is intended to result in smoother, more reliable transitions and scaling with + varying amount of Xenos on map. + - balance: Amount of ASRS crates awarded was reduced by about 15.5% to make up for + crates carrying over. Overall this should result in an about 5-10% reduction + in highpop crates, and ~10% increase in lowpop. Pop being based on xeno count. + - code_imp: Refactored part of ASRS supply code to be less of a painful, antique + artifact. + - bugfix: Fixed incorrect weighting in the ASRS supply code, effects on crate distributions + are unknown. + - bugfix: Fixed HPR ammo ASRS packs failing to spawn and ending up as MK1s instead. + - bugfix: Fixed ASRS order numbers not increasing the order IDs... This whole time.. + ihatethisengine: + - balance: PO can remove queens dropship override again. + private-tristan: + - qol: Gun safety messages now use balloon alerts. +2023-12-09: + InsaneRed: + - balance: Oppressor tail abduct changed to 15 seconds and lowers the windup to + 7 deciseconds + - balance: ' Changes around the punch effect so that instead of having to meet demonic + standards, you only need to punch to lower your tail/hook on oppressor.' + - bugfix: You will now automatically punch chest if the target you are aiming at + is delimbed instead of doing nothing + harryob: + - rscdel: removes a nanoui debug verb that no one has ever used, ever + zzzmike: + - spellcheck: tablestun text is more clear that it stuns + - soundadd: unequip noise added to uniform, backpack, shoes. + - soundadd: sound added to tablestun + - sounddel: for disarms, whoosh only triggers on stun. otherwise, the miss sound + plays +2023-12-10: + Birdtalon: + - bugfix: Resting once again cancels xenomorph evolve. + SabreML: + - bugfix: Fixed resin walls/membranes showing a welder deconstruction hint. + Zonespace27: + - balance: You cannot plant eggs inside vehicles. + - balance: Eggs can no longer be planted on tiles with objects that would obscure + them. + harryob: + - bugfix: xenos can construct in dropships during transport again + ihatethisengine: + - rscadd: locking lifeboats open the docks +2023-12-11: + ihatethisengine: + - bugfix: fusion reactors cannot be destroyed with explosions +2023-12-12: + InsaneRed: + - bugfix: M44 Heavy bullets no longer display a "4" when you get hit by them +2023-12-13: + BadAtThisGame302: + - bugfix: fixed Engie not showing up an Engie Area on tacmap on LV-624 + - bugfix: Fixed Research not showing up as a Research Area on tacmap on LV-624 + Birdtalon: + - bugfix: Fixes a missing area on Almayer + NateDross: + - spellcheck: Edited 'M56 Battery' to 'M56 DV9 Battery' in requisitions munition + vendor + NessiePendragon: + - rscadd: Adds a new braid hairstyle. + blackdragonTOW: + - balance: GAU RoF doubled + harryob: + - rscadd: added a historical medal viewer + realforest2001: + - rscadd: Added a new almayer hull type (heavy reinforced) which is indestructible + by normal means until after hijack collision. + - rscadd: Added a new subtype of shutter that automatically opens or closes depending + on security level. + - maptweak: Maps both of the above around the engineering storeroom. Also adds the + walls between the firing ranges and around uniform vendors. + - maptweak: Manual control button for shutters over engineering storage in the CEs + office. + - code_imp: Changes hijack structural changes (walls/windows/windoors/ladders) to + use signals. + - ui: Shuttle manipulator UI is now slightly wider on initial startup. +2023-12-14: + Contrabang: + - rscadd: The compass headgear will now tell you what direction you're facing when + on a planet. + - code_imp: Added a new ground environmental trait for a ground level in space. + InsaneRed: + - balance: Vanguard dash now restores your shield if you hit ANYONE instead of 2 + people. + - balance: Vanguard buffed root now roots you for 2.5 seconds, unbuffed for 1 second + - qol: Vanguard's pierce has now a hit sound for better feedback + Nanu308: + - balance: Adjusted how much light is given by standard marine armor. + - balance: Light Armor remains the same range & power, Medium armor now gives a + bit more light, Leader B12 armor gives a bit more light & range, M4 (rto) gives + a bit more light, and Heavy armor give the most light and range compared to + before. + - code_imp: Changed inheritance for medium armor as the different sprite versions + were laid directly under the parent type instead of the medium one and so forth. + NateDross: + - bugfix: fixed hardhat action item icon + fira: + - bugfix: Some Xeno throws now immobilize their targets, ensuring they do not walk + out of the toss mid-flight. + realforest2001: + - bugfix: M56D can no longer be used by the dead. +2023-12-15: + BeagleGaming1: + - imageadd: New sprite for Santa hats + Drathek: + - bugfix: Fix dead nested mobs disappearing when weeded + LTNTS: + - maptweak: remapped brig to be more concise, more interconnected, and easier to + navigate. And added more cells for when needed. + - qol: adds RiotTech (SecTech but for Riot Control with Rubber Bullets - obvs Code + Blue+ only) + - qol: CMP's locker requires Armory access to open now + - qol: suspects are now colored nardo gray in security list + NateDross: + - bugfix: Fixed hard hat user inventory head icon + SabreML: + - bugfix: Fixed camera sprites changing to their mapping helper after being EMPed. + Triiodine: + - rscadd: randomized barrels for mappers. You can instance the straps on and off! + - imageadd: 'Resprited the following: traffic cone, goldschlager bottle, cream carton, + oj carton, lime juice carton, tomato juice carton, pineapple juice carton, tequila + bottle, kahlua bottle, bottle of nothing, cognac bottle, critter crate (now + lore accurate), secgear crate, cm barrels, phoron crate, riot shield inhands,' + - imageadd: 'Added unique sprites for the following: vodka bottle, gin bottle,' + - imageadd: Fixed stray pixels on fridgeopen, open_plastic + - imagedel: Removed some unused legacy icons. + - bugfix: Hotdogs and burritos now properly appear when worn in a helmet in packaged + and unpackaged states. + - imageadd: The ME3 hand welder and industrial welder now have unique sprites and + inhands. + - imageadd: Differentiates synth graft and surgical line, color coded now to represent + the damage they fix. +2023-12-16: + Birdtalon: + - rscadd: Xenomorph telegraph effects can now be any rgb colour. + GoldenAlpharex: + - bugfix: Chat highlights now escape special RegEx characters from non-RegEx highlights. + - bugfix: Broken RegEx expressions no longer cause the chat to bluescreen, allowing + you to properly fix them. + InsaneRed: + - spellcheck: Xenomorph text is now WE/OUR instead of YOU/YOUR + blackdragonTOW: + - rscadd: Added Radio Keys to the CL's briefcase +2023-12-17: + BadAtThisGame302: + - rscadd: Added a LV-624 Corporate Liaison Survivor. + - rscadd: Added a Flight Control Operator Survivor to Solaris Ridge (for now, might + be added to more maps soon!). + - qol: made survivor.dm easier to use by moving the basic security surv with the + engineer/scientist/doctor which it wierdly enough it wasn't with. + - balance: rebalanced CL a lockable satchel. + - bugfix: fixed the survivor.dm comments falsely saying that some surv types are + not used anywhere when they are. + - spellcheck: fixed the LV-624 announcement text, made it roll off the tongue easier. + - code_imp: changed CL and ICC survs shoes from centcom? To laceup. + Drathek: + - rscadd: Implemented xeno corpse weed merging + - imageadd: Added 48 sprites, 3 stages per caste silhouette, for xeno weeded corpses + - bugfix: Fixes ghosts not displaying their name on hover if weeded and weird behavior + when orbited via ctrl+click + Huffie56: + - balance: For SG,IO,medic,comtech standartize the binoculars section as fallow + (Binoculars=5, Range Finder =10, Laser Designator=15). + - balance: reduce the number of stages from 5 to 3. each stage take 6 min or 360s. + - balance: rework the logic that handle the disease progress + - balance: A-Set stage_prob to zero to prevent random stage increase. + - balance: B-add a stage_level variable that when is at-least 360 make an increase + of the disease stage... + - balance: C-add an infection_rate variable that handle how fast the stage_level + increase passively. + - balance: D-infection_rate is quadruple when the host is dead. + - balance: E-I also added that the goo messages (you feel warm ....) give a boost + to stage_level to add some randomness to the infection progress. + SpartanBobby, LCMS1: + - maptweak: Numerous Fixes for new brig + cuberound: + - balance: DS doorgun can shoot over cades +2023-12-18: + Huffie56: + - bugfix: added landing zone camera on trijent. + - bugfix: fixed landing zone camera on all map in rotation. + sleepynecrons: + - imageadd: marine snow uniforms and armors given a new look +2023-12-19: + Drathek: + - balance: Added the possibility of surgery steps failing based on tool and surface + suitability compensated by surgery skill. + Huffie56: + - bugfix: fix a nightmare insert that had a wall and a door on same tile. + NateDross: + - bugfix: Requisitions elevator lighting fix + NessiePendragon: + - rscadd: Added new sprites for Warrior. + PurpleCIoud: + - imageadd: added chocolate bar new sprite + - imagedel: deleted old chocolate bar sprite + SabreML: + - rscadd: Updated the 'help' message for xeno special structure construction. + - qol: Added a 'remaining' counter when constructing special structures to let players + know how many can still be built. + - qol: Added a 'Ghost' button for dead xenomorphs. + realforest2001: + - rscadd: Added a proc for comparing the registered name of an ID, to the real name + of a mob. Also checks registered_ref if one exists. + - rscadd: Evacuation can no longer be cancelled without passing above check. + - rscadd: People forced into escape-pod stasis bays against their wishes can now + eject themselves. + - bugfix: Xenos can no longer force humans into escape-pod stasis bays. + - bugfix: Escape-pod stasis bays no longer accept corpses. + stalkerino: + - balance: fixes the balance of the game by making hair gradient trait free +2023-12-20: + Birdtalon, Fira: + - bugfix: Fixes hive UI crash upon pylon giving new larva. + Contrabang: + - bugfix: Matches now do burn damage instead of brute, when you accidently burn + your own hand. + InsaneRed: + - spellcheck: Converted more "YOU" to "WE" for xenomorphs. + LTNTS: + - qol: makes suspect nardo gray + fira: + - rscadd: Added Buckled, Handcuffed and Legcuffed screen alerts + - code_imp: Ported /tg/ status effects backend, modified with timers to let effects + end at appropriate time + - code_imp: Stun, Knockdown and Knockout now use the new effects backend + - balance: Due to backend change, all KO/KD/Stuns may behave differently timing + wise. This is of course subject to adjustments. + - balance: Endurance is now set at 8% effect duration reduction per level above + 1. However it now compounds with species bonus. Feel free to adjust. + - balance: Knockdowns are not inherently incapacitating anymore and many sources + of it have been updated to also stun to make up for it. + - bugfix: KO/KD/Stuns do not artificially and randomly ''stack'' due to incorrect + timer offset calculation anymore. + - bugfix: Stuns now correctly apply Stun reduction values instead of Knockdown reductions. + - bugfix: Crawling can now be interrupted by a normal move, if you are fit enough + to do so. + realforest2001: + - maptweak: Various doors around the Almayer will now close their opposites for + better security. +2023-12-21: + Birdtalon: + - bugfix: Lurker can tail jab over ledges and window frames. + Drathek: + - imageadd: Update weeded warrior sprites to be compatible with knight strain sprite +2023-12-22: + Ben10083: + - rscdel: ' Working Joes can no longer drink' + Cthulhu80: + - ui: tacmap ui tweaks + Doubleumc: + - bugfix: Fixed security tuner not dispalying direction to room's APC + - refactor: Refactored code handling angles + InsaneRed: + - code_imp: Converts xenomorph cooldowns into SECONDS + SabreML: + - bugfix: Fixed being able to remove multiple stacks of fire by spamming resist. + Steelpoint: + - rscadd: Factions are now properly separated in the observe menu as a ghost. + cuberound: + - bugfix: bad DS doorgun placement + fira: + - bugfix: Fix Xmas helmets getting overriden by map camouflage. + realforest2001: + - bugfix: Hijack should no longer end the round immediately. + - rscadd: Ghosts can now toggle hearing listening devices or not. This is dependant + on hearing radios and will not function to allow hearing devices without also + hearing radios. +2023-12-23: + BadAtThisGame302: + - balance: rebalanced goon skillset to include construction 1 + - spellcheck: fixed Liason area typos to Liaison + - spellcheck: fixed the ICC Liason to ICC Liaison typo + fira: + - bugfix: Fixed X-mas barricade wiring not applying properly. + private-tristan: + - balance: xenos can now acid all window frames. +2023-12-24: + BadAtThisGame302: + - rscadd: Added a windbreaker to the Flight Control Operator surv. + - rscadd: Added W-Y Flight Control access to the Flight Control Operator surv. + - bugfix: fixed the Flight Control Operator path. + Cthulhu80: + - rscadd: human mobs now scream whenever they get lunged at by a warrior. + - soundadd: added a new scream sound and put it into the existing scream list. + Drathek: + - bugfix: Fix crusher charge and tumble abilities going over unwired cades + Huffie56: + - bugfix: removed an extra light in bravo cryo room(to do just saw it) + - maptweak: added more areas (stern_point_defense, Lower Deck Stern Hull, Upper + Deck port Hallway Upper Deck starboard Hallway) + SabreML: + - rscdel: Removed the green overlay from camera consoles. + - rscadd: Allowed Xenomorphs to turn off the dropship's launch alarm by hitting + the nav computer. + - spellcheck: Made the `xenoboldnotice` span class bold rather than italic. + cuberound: + - bugfix: DS doorgun no longer drops the gun when destroyed + ihatethisengine: + - balance: "New healer drone ability \u2014 sacrifice. Healer drone can instantly\ + \ transfer 75% of its current health, but for the great cost of the healer\u2019\ + s own life." +2023-12-25: + InsaneRed: + - balance: Tweaks down the buffed root of vanguard down to 1.8 from 2.5 +2023-12-26: + Ben10083: + - rscadd: If ARES is destroyed, systems such as bioscan also shut down, this will + be expanded in the future + - rscadd: ARES plays an announcement when destroyed + - code_imp: Procs to check for APOLLO processor and if ARES is alive added + - refactor: ARES subsystems modified to utilize new procs + - admin: Prompt to force a Marine Bioscan only shows when ARES is unable to perform + the bioscan. + Drathek: + - bugfix: Fix queen death not fully readmitting any banished xenos + - bugfix: Fixed resisting acid + SabreML: + - code_imp: Made the Tech Tree subsystem initialise faster. + Steelpoint: + - rscadd: The Executive Officer now has a personal weapons vendor. It includes the + ability to acquire a full suite of combat and support gear, giving the XO more + agency in customizing their loadout. + - rscadd: Adds a new set of belts to the Executive Officer's uniform vendor. + mullenpaul: + - ui: tgui dropship weapons console + - refactor: added MFD panel + - refactor: creates datum component to manage camera code + - qol: CAS weapons operator can see camera in UI + - rscadd: CAS can offset in X and Y coordinates + - refactor: CAS can offset in different direction to attack vector + realforest2001: + - bugfix: Yautja bracer lock can now properly unlock thrall bracers. +2023-12-27: + Birdtalon: + - rscdel: Removed old crystal code from xenos + - code_imp: Renames still used vars from crystal to plasma + - code_imp: Removes crystal define in place of plasma string + Drathek: + - bugfix: Fix xeno wounds layering over weeds when merged with the weeds + InsaneRed: + - spellcheck: More WE/YOU fixes for xenomorph side. + - bugfix: Spitter's charge spit abiltiy now properly adds and removes the 5 armor + like its supposed to initially. + SabreML: + - bugfix: Fixed the Queen Eye still showing as "Immature" after the Queen ages. + - bugfix: Fixed carriers being unable to reduce their 'reserved facehuggers' number. + - bugfix: Fixed being able to vend infinite alcohol. + - bugfix: Fixed the death message from GAU-21 and Laser Cannon strikes saying that + the player was killed by the ammo crate. + cuberound: + - balance: launchbay price 400 -> 200 + - balance: DS installed sentrygun price lowered to 200 + realforest2001: + - code_imp: Added a new span class that combines bold and big. + - code_imp: Tweaked the way prayer sends notifications to be more efficient. + - admin: Moved the prayer notification sound to a toggle preference, combined with + ARES Interface notifications. +2023-12-28: + InsaneRed: + - bugfix: Synths are no longer immune to lunges / dragging while in 'critical state' + since they dont go into crit. + SabreML: + - bugfix: Fixed inserting/removing an item from shoes sometimes acting weirdly. + - refactor: Refactored shoe item storage. + fira: + - bugfix: Fixed XRF Scanner bricking if people were adding and removing vials at + same time. +2023-12-29: + sleepynecrons: + - imageadd: new sprites for predalien, predlarva and weeded corpse + - imageadd: added predalien wound overlays +2023-12-30: + Birdtalon: + - bugfix: Runtime in inventory.dm + Cthulhu80: + - bugfix: fixes immobilized mobs being able to buckle themselves + InsaneRed: + - qol: '"View Playtime" is now under the "Records" section under OOC' + - qol: '"Remove Your Splints" is now under the "IC" section.' + SabreML: + - bugfix: Fixed the CAS laser cannon only setting fire to a single tile, rather + a 7x7 range. + - qol: Made the designation of a tunnel display in chat when a player enters it. + - bugfix: Fixed the pyro spec's fuel pack sometimes giving weird failure messages + when trying to switch fuel. + Zonespace27: + - rscadd: Added a tutorial system for various roles (and just general information), + find it in the lobby screen. + cuberound: + - bugfix: m56d can not longer shoot backwards when facing north + mullenpaul: + - refactor: tgui js components now jsx +2023-12-31: + AnonHault: + - spellcheck: fixed a typo + BeagleGaming1: + - qol: Adds the ability to hide your action buttons + Birdtalon: + - bugfix: Fixes a runtime on decapping one's self. + - bugfix: Runtime with milk and possibly other reagent's on_mob_life() + - bugfix: Fixes runtime calling post_attack() on a mob which has already been qdeleted + via gibbing. + - code_imp: Refactors some code to new throw_carbon proc + Cthulhu80: + - bugfix: Fixes movement delay stacking on weeds + - bugfix: Fixes evac pods launching with more than the occupant limit + Huffie56: + - qol: creating a new section called engineering supplies for the rifleman and the + team leader. + - balance: added standard binocular to the rifleman vendor at a cost of 5. + - balance: added Range Finder and Laser Designator binoculars to Team leader at + a cost of 10 and 20. + - balance: added ES-11 Mobile Fuel Canister and ME3 hand welder to Team leader and + rifleman for 5 each. + InsaneRed: + - balance: Properly tweaks predator stun resist back to what it should have been. + SabreML: + - bugfix: Fixed the Hive Status window showing an error message when the Queen dies. + - qol: Added a 'Time Since Death' counter to the status tab for ghosts. + blackdragonTOW: + - rscadd: Max CL Headset radio keys from 3 to 5. (+2 increase) + cuberound: + - balance: gives trucker engineer level construction skill + mullenpaul: + - refactor: sentry laptop now uses camera manager component diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml new file mode 100644 index 000000000000..12f002742892 --- /dev/null +++ b/html/changelogs/archive/2024-01.yml @@ -0,0 +1,86 @@ +2024-01-01: + Cthulhu80: + - bugfix: fixes the associated examine text being displayed for different hud types + even when removed. + - balance: slightly increases zombie infection rate in dead mobs + - refactor: refactored some zombie code. + - bugfix: Fixes mobs being able to understand other languages while in crit. + - bugfix: fixes users getting stuck inside of the simulator + - bugfix: fixes xenos being able to view raw html on paper. + - bugfix: Fixes photos not being viewable from any distance as an observer + - bugfix: Fixes permanent lighting buff after using the vulture sniper rifle. + Drathek: + - bugfix: Fix handling of sentry_computer deletion + InsaneRed: + - spellcheck: Changed hit alerts to We instead of You on the xeno side. + Private Tristan: + - bugfix: Eggs are properly converted to Forsaken hive on evac + fira: + - bugfix: Fixed Nuke failing to detonate under specific circumstances. It may involve + a little rodent. + - bugfix: Nuke explosion will now kill mobs on its actual explosion rather than + at the start of the cinematic sequence. + mullenpaul: + - bugfix: properly sorted team lead position in squad info page +2024-01-02: + Cthulhu80: + - bugfix: Fixes voting message not formatting correctly. + SabreML: + - bugfix: Fixed screen alert tooltips ('Buckled' indicator and stuff) getting stuck + open. + Zonespace27: + - rscadd: The Three-World Empire will now occasionally respond to distress beacons. + cuberound: + - balance: m56d can not be placed within five tiles of another one +2024-01-03: + SabreML: + - bugfix: Fixed custom xeno ERTs sending a distress beacon announcement when it + shouldn't. + Steelpoint: + - mapadd: Shivas Snowball is back in rotation. + - maptweak: The south east landing zone on Shivas has been relocated to the south + west, the dig site in the south west has been similarly relocated. + - maptweak: Comms towers on Shivas have been placed in more consistent locations + near each other, instead of some of them being on the opposite sides of the + map from each other. + poltava, ihatethisengine: + - rscadd: added intel chestrig + - imageadd: added sprites for intel chestrig +2024-01-04: + BeagleGaming1, Mr.Crowford: + - rscadd: Added Yautja action buttons + - qol: Added a keybind to control falcon drones + - qol: Thwei crystals and healing capsules say how much time until off cooldown + - code_imp: Yautja keybinds now redirect to action buttons + - code_imp: Changed thwei crystals and healing capsules to cooldowns instead of + timers + - code_imp: Miscellaneous Yautja-related code cleanup + SabreML: + - bugfix: Fixed non-combat synthetics being able to fire the M2C. + - bugfix: Fixed scouts being able to use the M56D or M2C before their cloak's gun + cooldown had ended. + - bugfix: Fixed the M56D and M2C saying that the user is too far away to man it, + even when they successfully man it. + - bugfix: Fixed a runtime which was caused whenever someone manned an M56D or M2C. + - refactor: Refactored some M56D and M2C manning/unmanning code. + fira: + - code_imp: Refactored Daze to use new Status backend + - bugfix: Dazed screen effect now applies immediately + - bugfix: Stuttering now starts properly when dazed + - rscdel: Removed unused disabilities code + - rscdel: Removed an old, goofy and unused decade old horse mask +2024-01-05: + Birdtalon: + - bugfix: Fixed exploit in praetorian hook caused by an oversight. + Huffie56: + - refactor: for the file coulours.dm and other files change define in it from COULOUR + to COLOR + SabreML: + - bugfix: Made the 'Time Since Death' counter show hours if it passes 1 hour, rather + than wrapping the minutes back to 0. + - ui: Separated xeno hivemind chat messages into their own toggleable category, + separate from 'Radio'. +2024-01-06: + private-tristan: + - bugfix: Trijent security southern hallway and engineering east tunnel no longer + have 2 APCs diff --git a/html/create_object.html b/html/create_object.html index a4c3085a9ac6..8e67b99aebca 100644 --- a/html/create_object.html +++ b/html/create_object.html @@ -9,16 +9,17 @@
    - Type
    - Offset: + Offset: A R
    Number: Dir: - Name:
    + Name:
    + Where:

    +
    @@ -37,13 +39,11 @@ var objects = object_paths == null ? new Array() : object_paths.split(";"); document.spawner.filter.focus(); - populateList(objects); function populateList(from_list) { object_list.options.length = 0; - var i; - for (i in from_list) { + for (var i in from_list) { var new_option = document.createElement("option"); new_option.value = from_list[i]; new_option.text = from_list[i]; @@ -71,6 +71,7 @@ return false; } + // Carriage return if (event.keyCode == 13 || event.which == 13) { object_list.options[0].selected = 'true'; } diff --git a/html/images/ColonialSpaceGruntsEZ.png b/html/images/ColonialSpaceGruntsEZ.png new file mode 100644 index 000000000000..7db4ca5ba768 Binary files /dev/null and b/html/images/ColonialSpaceGruntsEZ.png differ diff --git a/html/statbrowser.js b/html/statbrowser.js index 81bd8cdf9c8d..289536d37da1 100644 --- a/html/statbrowser.js +++ b/html/statbrowser.js @@ -17,6 +17,17 @@ if (!String.prototype.trim) { // Status panel implementation ------------------------------------------------ var status_tab_parts = ["Loading..."]; var current_tab = null; +var local_fontsize; +// Per `storage.js` for tgui: +// Localstorage can sometimes throw an error, even if DOM storage is not +// disabled in IE11 settings. +// See: https://superuser.com/questions/1080011 +try { + local_fontsize = localStorage.getItem("fontsize"); +} catch (error) { + local_fontsize = 12; +} +var current_fontsize = local_fontsize ? parseInt(local_fontsize) : 12; // in px, also determines line height and category header sizes for the verb menus var mc_tab_parts = [["Loading...", ""]]; var href_token = null; var spells = []; @@ -65,10 +76,21 @@ function createStatusTab(name) { B.textContent = name; B.className = "button"; //ORDERING ALPHABETICALLY - B.style.order = name.charCodeAt(0); - if (name == "Status" || name == "MC") { - B.style.order = name == "Status" ? 1 : 2; + + switch (name) { + case "Status": + B.style.order = 1; + break; + case "MC": + B.style.order = 2; + break; + case "Panel Options": + B.style.order = 999; + break; + default: + B.style.order = name.charCodeAt(0); } + //END ORDERING menu.appendChild(B); SendTabToByond(name); @@ -232,10 +254,11 @@ function spell_cat_check(cat) { } } -function tab_change(tab) { - if (tab == current_tab) return; +function tab_change(tab, force) { + if (!force && tab == current_tab) return; if (document.getElementById(current_tab)) document.getElementById(current_tab).className = "button"; // disable active on last button + var oldTab = current_tab; current_tab = tab; set_byond_tab(tab); if (document.getElementById(tab)) @@ -259,6 +282,9 @@ function tab_change(tab) { draw_sdql2(); } else if (tab == turfname) { draw_listedturf(); + } else if (tab == "Panel Options") { + openOptionsMenu(); + tab_change(oldTab); } else { statcontentdiv.textContext = "Loading..."; } @@ -348,6 +374,8 @@ function draw_debug() { document.getElementById("statcontent").appendChild(table3); } function draw_status() { + var status_tab_map_href_exception = + "View Tactical Map"; if (!document.getElementById("Status")) { createStatusTab("Status"); current_tab = "Status"; @@ -358,6 +386,13 @@ function draw_status() { document .getElementById("statcontent") .appendChild(document.createElement("br")); + } else if ( + // hardcoded because merely using .includes() to test for a href seems unreliable for some reason. + status_tab_parts[i] == status_tab_map_href_exception + ) { + var maplink = document.createElement("a"); + maplink.innerHTML = status_tab_parts[i]; + document.getElementById("statcontent").appendChild(maplink); } else { var div = document.createElement("div"); div.textContent = status_tab_parts[i]; @@ -698,6 +733,7 @@ function draw_verbs(cat) { a.href = "#"; a.onclick = make_verb_onclick(command.replace(/\s/g, "-")); a.className = "grid-item"; + a.style.lineHeight = current_fontsize + 2 + "px"; var t = document.createElement("span"); t.textContent = command; t.className = "grid-item-text"; @@ -716,6 +752,7 @@ function draw_verbs(cat) { // do addition here var header = document.createElement("h3"); header.textContent = cat; + header.style.fontSize = current_fontsize + 4 + "px"; content.appendChild(header); content.appendChild(additions[cat]); } @@ -848,6 +885,7 @@ Byond.subscribeTo("remove_verb_list", function (v) { // passes a 2D list of (verbcategory, verbname) creates tabs and adds verbs to respective list // example (IC, Say) Byond.subscribeTo("init_verbs", function (payload) { + statcontentdiv.style.fontSize = current_fontsize + "px"; wipe_verbs(); // remove all verb categories so we can replace them checkStatusTab(); // remove all status tabs verb_tabs = payload.panel_tabs; @@ -868,6 +906,7 @@ Byond.subscribeTo("init_verbs", function (payload) { draw_verbs(current_tab); } } + createOptionsButton(); SendTabsToByond(); }); @@ -1019,3 +1058,18 @@ Byond.subscribeTo("remove_sdql2", remove_sdql2); Byond.subscribeTo("remove_mc", remove_mc); Byond.subscribeTo("add_verb_list", add_verb_list); + +function createOptionsButton() { + addPermanentTab("Panel Options"); +} + +function openOptionsMenu() { + Byond.command("Open-Statbrowser-Options " + current_fontsize); +} + +Byond.subscribeTo("change_fontsize", function (new_fontsize) { + current_fontsize = parseInt(new_fontsize); + localStorage.setItem("fontsize", current_fontsize.toString()); + statcontentdiv.style.fontSize = current_fontsize + "px"; + tab_change(current_tab, true); // Redraw the current tab +}); diff --git a/icons/landmarks.dmi b/icons/landmarks.dmi index 8ebeaef1648b..08b23758beaa 100644 Binary files a/icons/landmarks.dmi and b/icons/landmarks.dmi differ diff --git a/icons/misc/events/pumpkins.dmi b/icons/misc/events/pumpkins.dmi new file mode 100644 index 000000000000..e3087e7c444c Binary files /dev/null and b/icons/misc/events/pumpkins.dmi differ diff --git a/icons/misc/tutorial.dmi b/icons/misc/tutorial.dmi new file mode 100644 index 000000000000..d4a4e65963ba Binary files /dev/null and b/icons/misc/tutorial.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 2fa8d673454f..8246bb4f70aa 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/hud/actions.dmi b/icons/mob/hud/actions.dmi index 9021db895eb7..820da22ea5b1 100644 Binary files a/icons/mob/hud/actions.dmi and b/icons/mob/hud/actions.dmi differ diff --git a/icons/mob/hud/actions_yautja.dmi b/icons/mob/hud/actions_yautja.dmi new file mode 100644 index 000000000000..c94388456e96 Binary files /dev/null and b/icons/mob/hud/actions_yautja.dmi differ diff --git a/icons/mob/humans/human_hair.dmi b/icons/mob/humans/human_hair.dmi index bfe0e072f19d..1a91c7f0e43a 100644 Binary files a/icons/mob/humans/human_hair.dmi and b/icons/mob/humans/human_hair.dmi differ diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 8a51050c03c3..4758f430a498 100644 Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ diff --git a/icons/mob/humans/onmob/eyes.dmi b/icons/mob/humans/onmob/eyes.dmi index 2be8eb8d6fad..c4d743f61e38 100644 Binary files a/icons/mob/humans/onmob/eyes.dmi and b/icons/mob/humans/onmob/eyes.dmi differ diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi index dd15289c7e4c..17b4073c748c 100644 Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ diff --git a/icons/mob/humans/onmob/hands.dmi b/icons/mob/humans/onmob/hands.dmi index b03d40fdecd2..d8fc38fff824 100644 Binary files a/icons/mob/humans/onmob/hands.dmi and b/icons/mob/humans/onmob/hands.dmi differ diff --git a/icons/mob/humans/onmob/head_0.dmi b/icons/mob/humans/onmob/head_0.dmi index ce576bdd9cc5..f1d6a2c6e665 100644 Binary files a/icons/mob/humans/onmob/head_0.dmi and b/icons/mob/humans/onmob/head_0.dmi differ diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi index b41eab22a229..df30d657122b 100644 Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ diff --git a/icons/mob/humans/onmob/helmet_garb.dmi b/icons/mob/humans/onmob/helmet_garb.dmi index 325aed72b155..9876dd8629ad 100644 Binary files a/icons/mob/humans/onmob/helmet_garb.dmi and b/icons/mob/humans/onmob/helmet_garb.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi index a040ddb7a65e..b3adba7e980e 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_0.dmi and b/icons/mob/humans/onmob/items_lefthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi index 37b5f9bcc609..357a94f60cf7 100644 Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_0.dmi b/icons/mob/humans/onmob/items_righthand_0.dmi index a09244c30139..485e270510d8 100644 Binary files a/icons/mob/humans/onmob/items_righthand_0.dmi and b/icons/mob/humans/onmob/items_righthand_0.dmi differ diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi index 3ad8b52d0403..7bcc772c7375 100644 Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ diff --git a/icons/mob/humans/onmob/mask.dmi b/icons/mob/humans/onmob/mask.dmi index badd31ad722c..0c4ac97807d9 100644 Binary files a/icons/mob/humans/onmob/mask.dmi and b/icons/mob/humans/onmob/mask.dmi differ diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi index d7dfd5394f0d..d0f816e2b7fa 100644 Binary files a/icons/mob/humans/onmob/suit_0.dmi and b/icons/mob/humans/onmob/suit_0.dmi differ diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi index 624d8792cf2d..a230aa7e4300 100644 Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ diff --git a/icons/mob/humans/onmob/suit_slot.dmi b/icons/mob/humans/onmob/suit_slot.dmi index 9f0e15209fe6..e83ce1301fa7 100644 Binary files a/icons/mob/humans/onmob/suit_slot.dmi and b/icons/mob/humans/onmob/suit_slot.dmi differ diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi index d82226002ec8..c8fb98c0c5c1 100644 Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi index 6d944f4fa649..a140c4db6d8b 100644 Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ diff --git a/icons/mob/humans/onmob/uniform_1.dmi b/icons/mob/humans/onmob/uniform_1.dmi new file mode 100644 index 000000000000..ae84c1a1b9eb Binary files /dev/null and b/icons/mob/humans/onmob/uniform_1.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index af61a47aa885..21cc40876fbc 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/mob/screen_ghost.dmi b/icons/mob/screen_ghost.dmi index 195cf31e3689..3fedae4c80b1 100644 Binary files a/icons/mob/screen_ghost.dmi and b/icons/mob/screen_ghost.dmi differ diff --git a/icons/mob/xenos/effects.dmi b/icons/mob/xenos/effects.dmi index 80cc35fde5ba..132c5f78b0d7 100644 Binary files a/icons/mob/xenos/effects.dmi and b/icons/mob/xenos/effects.dmi differ diff --git a/icons/mob/xenos/predalien.dmi b/icons/mob/xenos/predalien.dmi index 1e3ec5caf806..c6162729b516 100644 Binary files a/icons/mob/xenos/predalien.dmi and b/icons/mob/xenos/predalien.dmi differ diff --git a/icons/mob/xenos/predalien_larva.dmi b/icons/mob/xenos/predalien_larva.dmi index 82786f273980..41eb31a2c809 100644 Binary files a/icons/mob/xenos/predalien_larva.dmi and b/icons/mob/xenos/predalien_larva.dmi differ diff --git a/icons/mob/xenos/radial_xenos.dmi b/icons/mob/xenos/radial_xenos.dmi new file mode 100644 index 000000000000..2832f42fda33 Binary files /dev/null and b/icons/mob/xenos/radial_xenos.dmi differ diff --git a/icons/mob/xenos/warrior.dmi b/icons/mob/xenos/warrior.dmi index 1211da5ac188..e871f7749145 100644 Binary files a/icons/mob/xenos/warrior.dmi and b/icons/mob/xenos/warrior.dmi differ diff --git a/icons/mob/xenos/weeds.dmi b/icons/mob/xenos/weeds.dmi index 0b9403058109..0b79525544bd 100644 Binary files a/icons/mob/xenos/weeds.dmi and b/icons/mob/xenos/weeds.dmi differ diff --git a/icons/mob/xenos/weeds_48x48.dmi b/icons/mob/xenos/weeds_48x48.dmi new file mode 100644 index 000000000000..198340955eba Binary files /dev/null and b/icons/mob/xenos/weeds_48x48.dmi differ diff --git a/icons/mob/xenos/weeds_64x64.dmi b/icons/mob/xenos/weeds_64x64.dmi new file mode 100644 index 000000000000..53c971cfe97c Binary files /dev/null and b/icons/mob/xenos/weeds_64x64.dmi differ diff --git a/icons/mob/xenos/wounds.dmi b/icons/mob/xenos/wounds.dmi index bf7d573b73a9..730e367f43ae 100644 Binary files a/icons/mob/xenos/wounds.dmi and b/icons/mob/xenos/wounds.dmi differ diff --git a/icons/obj/items/bedrolls.dmi b/icons/obj/items/bedrolls.dmi new file mode 100644 index 000000000000..c36e07002a3d Binary files /dev/null and b/icons/obj/items/bedrolls.dmi differ diff --git a/icons/obj/items/clothing/backpacks.dmi b/icons/obj/items/clothing/backpacks.dmi index f9c06fca4437..fa03f0434fb5 100644 Binary files a/icons/obj/items/clothing/backpacks.dmi and b/icons/obj/items/clothing/backpacks.dmi differ diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index 9c4ed5bf4617..ae446e174575 100644 Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi index d05d7ffdf77e..7db2158ee5bf 100644 Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ diff --git a/icons/obj/items/clothing/glasses.dmi b/icons/obj/items/clothing/glasses.dmi index b5a175e448bd..13dd0c542c6e 100644 Binary files a/icons/obj/items/clothing/glasses.dmi and b/icons/obj/items/clothing/glasses.dmi differ diff --git a/icons/obj/items/clothing/gloves.dmi b/icons/obj/items/clothing/gloves.dmi index 6e9afdc4eb4a..f1fe9b303046 100644 Binary files a/icons/obj/items/clothing/gloves.dmi and b/icons/obj/items/clothing/gloves.dmi differ diff --git a/icons/obj/items/clothing/hats.dmi b/icons/obj/items/clothing/hats.dmi index 7d2c45103ba6..de6673d07b51 100644 Binary files a/icons/obj/items/clothing/hats.dmi and b/icons/obj/items/clothing/hats.dmi differ diff --git a/icons/obj/items/clothing/helmet_visors.dmi b/icons/obj/items/clothing/helmet_visors.dmi index 6ba0cfe5623e..f47bc9aa26d2 100644 Binary files a/icons/obj/items/clothing/helmet_visors.dmi and b/icons/obj/items/clothing/helmet_visors.dmi differ diff --git a/icons/obj/items/clothing/masks.dmi b/icons/obj/items/clothing/masks.dmi index e4d8c4c03c11..037ee8aba119 100644 Binary files a/icons/obj/items/clothing/masks.dmi and b/icons/obj/items/clothing/masks.dmi differ diff --git a/icons/obj/items/clothing/shoes.dmi b/icons/obj/items/clothing/shoes.dmi index 96780bb174c0..4d99b2ea4b2c 100644 Binary files a/icons/obj/items/clothing/shoes.dmi and b/icons/obj/items/clothing/shoes.dmi differ diff --git a/icons/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi index d158d9f6bd1f..10fbfff30d7c 100644 Binary files a/icons/obj/items/clothing/suits.dmi and b/icons/obj/items/clothing/suits.dmi differ diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi index e0e25b9f579d..f236480c7b9d 100644 Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ diff --git a/icons/obj/items/clothing/ties_overlay.dmi b/icons/obj/items/clothing/ties_overlay.dmi index 89396622aba3..8db72b11cbe3 100644 Binary files a/icons/obj/items/clothing/ties_overlay.dmi and b/icons/obj/items/clothing/ties_overlay.dmi differ diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi index 4266db88afe8..8eb3d03d68c7 100644 Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ diff --git a/icons/obj/items/devices.dmi b/icons/obj/items/devices.dmi index 8bf7634a7df4..07bcd88a2ca3 100644 Binary files a/icons/obj/items/devices.dmi and b/icons/obj/items/devices.dmi differ diff --git a/icons/obj/items/drinks.dmi b/icons/obj/items/drinks.dmi index 2823407a429c..7623a980e435 100644 Binary files a/icons/obj/items/drinks.dmi and b/icons/obj/items/drinks.dmi differ diff --git a/icons/obj/items/food.dmi b/icons/obj/items/food.dmi index 3c2e963e3804..9e746bb62656 100644 Binary files a/icons/obj/items/food.dmi and b/icons/obj/items/food.dmi differ diff --git a/icons/obj/items/food_ingredients.dmi b/icons/obj/items/food_ingredients.dmi index 3e30f51153c0..c0a0213e6db4 100644 Binary files a/icons/obj/items/food_ingredients.dmi and b/icons/obj/items/food_ingredients.dmi differ diff --git a/icons/obj/items/helmet_garb.dmi b/icons/obj/items/helmet_garb.dmi index 40a45526306b..bbebf822c9d5 100644 Binary files a/icons/obj/items/helmet_garb.dmi and b/icons/obj/items/helmet_garb.dmi differ diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi index 1f74fc09b9ea..80daeefc21d5 100644 Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ diff --git a/icons/obj/items/plush.dmi b/icons/obj/items/plush.dmi new file mode 100644 index 000000000000..8596fd69df9c Binary files /dev/null and b/icons/obj/items/plush.dmi differ diff --git a/icons/obj/items/surgery_tools.dmi b/icons/obj/items/surgery_tools.dmi index 89c9ebf62869..a5df6761d289 100644 Binary files a/icons/obj/items/surgery_tools.dmi and b/icons/obj/items/surgery_tools.dmi differ diff --git a/icons/obj/items/synth/wj_pda.dmi b/icons/obj/items/synth/wj_pda.dmi new file mode 100644 index 000000000000..6bd7205e9a94 Binary files /dev/null and b/icons/obj/items/synth/wj_pda.dmi differ diff --git a/icons/obj/items/toy.dmi b/icons/obj/items/toy.dmi index e336d68dfd23..4a40561475c6 100644 Binary files a/icons/obj/items/toy.dmi and b/icons/obj/items/toy.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi index 6c5d741ef9b8..42e7c54bbd2b 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi index 3355358f72f9..eeef3f91412d 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi index c56cb4deea9c..ff0c6d60d4ac 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/magazines.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi index dd08bf7e69b1..911b727ba5f6 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi index 6f160bbbe7cb..5632ca31481e 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index 51bc441aefaa..f6bddae9b090 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ diff --git a/icons/obj/items/weapons/guns/attachments.dmi b/icons/obj/items/weapons/guns/attachments.dmi index 332217fe1cf0..e627f7559a78 100644 Binary files a/icons/obj/items/weapons/guns/attachments.dmi and b/icons/obj/items/weapons/guns/attachments.dmi differ diff --git a/icons/obj/items/weapons/guns/attachments/barrel.dmi b/icons/obj/items/weapons/guns/attachments/barrel.dmi index 03c2257c69c5..138b9b658fb6 100644 Binary files a/icons/obj/items/weapons/guns/attachments/barrel.dmi and b/icons/obj/items/weapons/guns/attachments/barrel.dmi differ diff --git a/icons/obj/items/weapons/guns/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi index a15409b808ca..d3a95284a23f 100644 Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index 38fe8079a2e8..a7586a656965 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ diff --git a/icons/obj/items/weapons/weapons.dmi b/icons/obj/items/weapons/weapons.dmi index 398256490294..aa99545cb577 100644 Binary files a/icons/obj/items/weapons/weapons.dmi and b/icons/obj/items/weapons/weapons.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 3c18f1a60f4b..5989745e26eb 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/structures/closet.dmi b/icons/obj/structures/closet.dmi index 40d6b1d26deb..e0e50ab9ae09 100644 Binary files a/icons/obj/structures/closet.dmi and b/icons/obj/structures/closet.dmi differ diff --git a/icons/obj/structures/crates.dmi b/icons/obj/structures/crates.dmi index a1a494d90da2..07ccce5f0abb 100644 Binary files a/icons/obj/structures/crates.dmi and b/icons/obj/structures/crates.dmi differ diff --git a/icons/obj/structures/doors/2x1generic_solid.dmi b/icons/obj/structures/doors/2x1generic_solid.dmi new file mode 100644 index 000000000000..9c00b7b3277d Binary files /dev/null and b/icons/obj/structures/doors/2x1generic_solid.dmi differ diff --git a/icons/obj/structures/doors/airlock_assembly2x1.dmi b/icons/obj/structures/doors/airlock_assembly2x1.dmi index a8d69b6f6a2d..cafd5c415b89 100644 Binary files a/icons/obj/structures/doors/airlock_assembly2x1.dmi and b/icons/obj/structures/doors/airlock_assembly2x1.dmi differ diff --git a/icons/obj/structures/doors/dropship1_side2.dmi b/icons/obj/structures/doors/dropship1_side2.dmi new file mode 100644 index 000000000000..f2d96e59af5a Binary files /dev/null and b/icons/obj/structures/doors/dropship1_side2.dmi differ diff --git a/icons/obj/structures/doors/dropship2_side2.dmi b/icons/obj/structures/doors/dropship2_side2.dmi new file mode 100644 index 000000000000..bff39827c359 Binary files /dev/null and b/icons/obj/structures/doors/dropship2_side2.dmi differ diff --git a/icons/obj/structures/machinery/fusion_eng.dmi b/icons/obj/structures/machinery/fusion_eng.dmi index 038fae342b64..4d42baac7255 100644 Binary files a/icons/obj/structures/machinery/fusion_eng.dmi and b/icons/obj/structures/machinery/fusion_eng.dmi differ diff --git a/icons/obj/structures/tents_folded.dmi b/icons/obj/structures/tents_folded.dmi index e9f4555ae6a1..e93702d7b2f9 100644 Binary files a/icons/obj/structures/tents_folded.dmi and b/icons/obj/structures/tents_folded.dmi differ diff --git a/icons/rebase_icons.dmi b/icons/rebase_icons.dmi index 6b0a25a1f7e6..3d9234f3f9f9 100644 Binary files a/icons/rebase_icons.dmi and b/icons/rebase_icons.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 8b525fd568d6..c8bf32b00b40 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/walls/almayer.dmi b/icons/turf/walls/almayer.dmi index 2cb182c60318..671dcc1fbd94 100644 Binary files a/icons/turf/walls/almayer.dmi and b/icons/turf/walls/almayer.dmi differ diff --git a/icons/ui_icons/map_blips.dmi b/icons/ui_icons/map_blips.dmi index 0034b4fd6ff7..28195bb238fe 100644 Binary files a/icons/ui_icons/map_blips.dmi and b/icons/ui_icons/map_blips.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index a37ab648b7f5..c9112160d94f 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -55,7 +55,7 @@ if(tgui_alert(src, "This will open the discord in your browser. Are you sure?", "Confirm", list("Yes", "No")) != "Yes") return - src << link("https://discord.gg/cmss13") + src << link("[CONFIG_GET(string/discordurl)]") return /client/verb/submitbug() diff --git a/interface/skin.dmf b/interface/skin.dmf index 5d06bb40e858..e31c42938cd9 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -164,7 +164,6 @@ window "mainwindow" anchor2 = -1,-1 is-default = true saved-params = "pos;size;is-minimized;is-maximized" - title = "CM-SS13 - USS Almayer" is-maximized = true statusbar = false icon = 'icons\\taskbar\\gml_distress.png' diff --git a/map_config/maps.txt b/map_config/maps.txt index ba0bd17a89c7..885b1e76faad 100644 --- a/map_config/maps.txt +++ b/map_config/maps.txt @@ -44,8 +44,6 @@ map ice_colony_v2 endmap map shivas_snowball - voteweight 0 - disabled endmap map kutjevo diff --git a/maps/bigredv2.json b/maps/bigredv2.json index 0a6db01cd498..ac519f37fa84 100644 --- a/maps/bigredv2.json +++ b/maps/bigredv2.json @@ -13,6 +13,7 @@ "/datum/equipment_preset/survivor/security/solaris", "/datum/equipment_preset/survivor/colonial_marshal/solaris", "/datum/equipment_preset/survivor/corporate/solaris", + "/datum/equipment_preset/survivor/flight_control_operator", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" ], diff --git a/maps/corsat.json b/maps/corsat.json index e8192644054a..87a41e840d61 100644 --- a/maps/corsat.json +++ b/maps/corsat.json @@ -4,7 +4,8 @@ "map_file": "Corsat.dmm", "environment_traits": { "Lockdown": true, - "COLD": true + "COLD": true, + "InSpace": true }, "survivor_types": [ "/datum/equipment_preset/survivor/scientist/corsat", @@ -12,7 +13,7 @@ "/datum/equipment_preset/survivor/goon", "/datum/equipment_preset/survivor/doctor/corsat", "/datum/equipment_preset/survivor/security/corsat", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/corsat", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/corsat", "/datum/equipment_preset/survivor/engineer/corsat", "/datum/equipment_preset/survivor/clf", "/datum/equipment_preset/survivor/civilian" diff --git a/maps/desert_dam.json b/maps/desert_dam.json index b4e535e893d6..6df419583cd3 100644 --- a/maps/desert_dam.json +++ b/maps/desert_dam.json @@ -7,7 +7,7 @@ "/datum/equipment_preset/survivor/doctor/trijent", "/datum/equipment_preset/survivor/roughneck", "/datum/equipment_preset/survivor/chaplain/trijent", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison", "/datum/equipment_preset/survivor/colonial_marshal", "/datum/equipment_preset/survivor/engineer/trijent", "/datum/equipment_preset/survivor/engineer/trijent/hydro", diff --git a/maps/fiorina_sciannex.json b/maps/fiorina_sciannex.json index dfc73655414d..89997cc9d668 100644 --- a/maps/fiorina_sciannex.json +++ b/maps/fiorina_sciannex.json @@ -26,6 +26,7 @@ "survivor_message": "You are a survivor of the attack on Fiorina Orbital Penitentiary. You worked or lived on the prison station, and managed to avoid the alien attacks... until now.", "map_item_type": "/obj/item/map/FOP_map_v3", "announce_text": "An automated distress signal has been received from maximum-security prison \"Fiorina Orbital Penitentiary\". A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", + "environment_traits": { "InSpace": true }, "traits": [{ "Ground": true }], "nightmare_path": "maps/Nightmare/maps/FOP_v3_Sciannex/", "xvx_hives": { diff --git a/maps/lv624.json b/maps/lv624.json index bec99892a347..76b00753db24 100644 --- a/maps/lv624.json +++ b/maps/lv624.json @@ -9,7 +9,7 @@ "/datum/equipment_preset/survivor/doctor/lv", "/datum/equipment_preset/survivor/chaplain/lv", "/datum/equipment_preset/survivor/engineer/lv", - "/datum/equipment_preset/survivor/corporate", + "/datum/equipment_preset/survivor/corporate/lv", "/datum/equipment_preset/survivor/trucker/lv", "/datum/equipment_preset/survivor/security/lv", "/datum/equipment_preset/survivor/goon", @@ -17,7 +17,7 @@ "/datum/equipment_preset/survivor/civilian" ], "map_item_type": "/obj/item/map/lazarus_landing_map", - "announce_text": "An automated distress signal has been received from archaeology site Lazarus Landing, on border world LV-624. A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", + "announce_text": "An automated distress signal has been received from the archaeological site of Lazarus Landing, on the border world of LV-624. A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", "monkey_types": [ "farwa", "monkey", diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index b22a08e3f62d..48f7f9089399 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -119,7 +119,7 @@ /area/bigredv2/outside/space_port) "aau" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Communications Landing Zone" + name = "LZ1: Communications Landing Zone" }, /turf/open/floor/plating, /area/bigredv2/outside/space_port) @@ -2548,7 +2548,8 @@ "ahv" = ( /obj/structure/surface/table/holotable/wood, /obj/item/paper_bin, -/turf/open/floor/wood, +/obj/item/tool/pen/clicky, +/turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "ahw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -3147,6 +3148,15 @@ /area/bigredv2/outside/marshal_office) "ajd" = ( /obj/structure/surface/table/holotable/wood, +/obj/structure/transmitter/colony_net/rotary{ + phone_category = "Lambda Labs"; + phone_color = "blue"; + phone_id = "Administration" + }, +/obj/item/clothing/mask/cigarette{ + pixel_x = 5; + pixel_y = 6 + }, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "aje" = ( @@ -3198,7 +3208,8 @@ /area/bigredv2/outside/dorms) "ajm" = ( /obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/science, +/obj/effect/landmark/objective_landmark/close, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "ajn" = ( @@ -3410,8 +3421,8 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "ajO" = ( -/obj/structure/surface/table/holotable/wood, -/obj/item/tool/pen, +/obj/structure/machinery/prop/almayer/computer/PC, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "ajP" = ( @@ -3501,8 +3512,8 @@ }, /area/bigredv2/outside/nw) "aka" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/landmark/objective_landmark/close, +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "akc" = ( @@ -4484,16 +4495,14 @@ /turf/open/floor/plating, /area/bigredv2/outside/dorms) "amW" = ( -/obj/structure/machinery/door_control{ - id = "safe_room"; - layer = 4; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -5; - req_access_txt = "7"; - specialfunctions = 4 +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/crate/freezer/rations, +/turf/open/floor{ + dir = 1; + icon_state = "elevatorshaft" }, -/turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/breakroom) "amX" = ( /obj/structure/window/framed/solaris/reinforced, @@ -5896,9 +5905,13 @@ }, /area/bigredv2/outside/general_offices) "aqX" = ( -/obj/structure/closet/crate/freezer/rations, /obj/item/storage/toolbox/mechanical, /obj/item/device/multitool, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/surface/rack, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -5914,8 +5927,15 @@ }, /area/bigredv2/caves/lambda/breakroom) "aqZ" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 +/obj/structure/noticeboard{ + dir = 1; + pixel_y = 30; + desc = "A board for pinning important items upon."; + name = "trophy board" + }, +/obj/item/XenoBio/Chitin{ + pixel_y = 27; + anchored = 1 }, /turf/open/floor{ dir = 1; @@ -5923,8 +5943,11 @@ }, /area/bigredv2/caves/lambda/breakroom) "ara" = ( -/obj/structure/surface/table/holotable/wood, -/obj/item/device/flashlight/lamp, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/device/flashlight/lamp{ + pixel_y = 15 + }, +/obj/item/paper/bigred/lambda, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -6141,9 +6164,7 @@ /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/ammo_magazine/shotgun/incendiary, /obj/item/weapon/gun/shotgun/combat, -/obj/structure/window/reinforced{ - dir = 1 - }, +/obj/structure/machinery/door/window/eastleft, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -6157,7 +6178,7 @@ /area/bigredv2/caves/lambda/breakroom) "arG" = ( /obj/structure/bed, -/obj/item/bedsheet/captain, +/obj/item/bedsheet/rd, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -6387,8 +6408,9 @@ /area/bigredv2/outside/ne) "asn" = ( /obj/structure/surface/rack, -/obj/structure/window/reinforced, /obj/item/clothing/suit/armor/vest, +/obj/structure/machinery/door/window/eastright, +/obj/structure/window/reinforced, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -6405,9 +6427,7 @@ }, /area/bigredv2/caves/lambda/breakroom) "asp" = ( -/obj/structure/bed/chair/office/light{ - dir = 4 - }, +/obj/structure/bed/chair/comfy/black, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "asq" = ( @@ -6417,7 +6437,7 @@ }, /area/bigredv2/outside/medical) "asr" = ( -/obj/structure/bed/chair{ +/obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/carpet, @@ -6690,9 +6710,12 @@ /area/bigredv2/outside/chapel) "ate" = ( /obj/structure/machinery/door_control{ - id = "safe_blast"; - name = "Blast Door"; - pixel_y = -25 + id = "safe_room"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -28; + req_access_txt = "106"; + specialfunctions = 4 }, /turf/open/floor{ dir = 1; @@ -6700,12 +6723,8 @@ }, /area/bigredv2/caves/lambda/breakroom) "atf" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/rad, -/obj/effect/landmark/objective_landmark/medium, +/obj/structure/closet/secure_closet/RD, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor{ dir = 1; icon_state = "elevatorshaft" @@ -6918,7 +6937,7 @@ dir = 1; icon_state = "door_locked"; id = "safe_room"; - name = "\improper Lambda Lab Secure Storage" + name = "\improper Lambda Lab Director's Safe Room" }, /turf/open/floor{ icon_state = "delivery" @@ -7145,7 +7164,7 @@ /area/bigredv2/outside/office_complex) "aum" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ - name = "\improper Lambda Lab Administration Office" + name = "\improper Lambda Lab Director's Office" }, /turf/open/floor{ icon_state = "delivery" @@ -7718,7 +7737,6 @@ /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "avN" = ( -/obj/structure/bed/chair, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) @@ -7982,8 +8000,19 @@ /turf/open/mars, /area/bigredv2/outside/ne) "awz" = ( -/obj/structure/surface/table/holotable/wood, -/obj/item/XenoBio/Chitin, +/obj/item/ashtray/bronze{ + pixel_x = -7 + }, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 14 + }, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "awA" = ( @@ -7998,13 +8027,12 @@ }, /area/bigredv2/caves/lambda/research) "awB" = ( -/obj/structure/surface/table/holotable/wood, -/obj/item/reagent_container/food/drinks/coffee, /obj/structure/transmitter/colony_net/rotary{ phone_category = "Lambda Labs"; phone_color = "blue"; - phone_id = "Administration" + phone_id = "Director" }, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "awC" = ( @@ -8253,10 +8281,10 @@ }, /area/bigredv2/caves/lambda/virology) "axo" = ( -/obj/structure/bed/chair/office/light{ +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/bed/chair/comfy/black{ dir = 8 }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "axp" = ( @@ -8711,6 +8739,12 @@ /area/bigredv2/caves/lambda/breakroom) "ayB" = ( /obj/structure/machinery/light, +/obj/structure/surface/table/woodentable, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/tool/lighter/zippo, /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "ayC" = ( @@ -10233,6 +10267,15 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"aCO" = ( +/obj/structure/surface/table, +/obj/item/stack/cable_coil, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "aCP" = ( /obj/structure/closet/secure_closet/bar, /obj/effect/landmark/objective_landmark/close, @@ -10822,8 +10865,10 @@ }, /area/bigredv2/caves/lambda/research) "aEs" = ( -/obj/structure/surface/table/holotable/wood, -/turf/open/floor/wood, +/obj/structure/bed/chair/comfy/lime{ + dir = 8 + }, +/turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) "aEt" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -11058,21 +11103,10 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/outside/sw) "aFd" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" +/obj/structure/flora/jungle/plantbot1{ + pixel_y = 10 }, +/turf/open/jungle, /area/bigredv2/outside/admin_building) "aFf" = ( /obj/structure/closet/secure_closet/scientist, @@ -11493,9 +11527,7 @@ }, /area/bigredv2/caves/lambda/research) "aGh" = ( -/obj/structure/bed/chair/office/light{ - dir = 1 - }, +/obj/structure/filingcabinet/filingcabinet, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) "aGi" = ( @@ -12526,10 +12558,7 @@ "aIY" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aIZ" = ( /obj/effect/decal/warning_stripes{ @@ -13558,7 +13587,10 @@ "aLJ" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aLM" = ( /obj/structure/machinery/shower{ @@ -13593,7 +13625,9 @@ /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aLQ" = ( /obj/structure/window/reinforced/toughened{ @@ -13872,8 +13906,10 @@ /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/tool/pen, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aMC" = ( /obj/effect/landmark/railgun_camera_pos, @@ -14231,7 +14267,6 @@ /area/bigredv2/outside/admin_building) "aNC" = ( /obj/structure/machinery/computer/station_alert, -/obj/structure/machinery/camera/autoname, /obj/structure/surface/table, /turf/open/floor{ icon_state = "white" @@ -14286,6 +14321,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "darkred2" @@ -14298,6 +14334,7 @@ }, /area/bigredv2/outside/admin_building) "aNK" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "darkred2" @@ -14321,6 +14358,7 @@ /area/bigredv2/outside/admin_building) "aNN" = ( /obj/structure/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -14342,6 +14380,9 @@ /area/bigredv2/outside/admin_building) "aNQ" = ( /obj/structure/bed, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, /turf/open/floor{ icon_state = "wood" }, @@ -15145,16 +15186,22 @@ }, /area/bigredv2/outside/admin_building) "aPP" = ( -/turf/open/floor{ +/obj/structure/stairs/perspective{ dir = 1; - icon_state = "rampbottom" + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aPQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ +/obj/structure/stairs/perspective{ dir = 1; - icon_state = "rampbottom" + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aPS" = ( @@ -15182,7 +15229,17 @@ }, /area/bigredv2/outside/admin_building) "aPW" = ( -/obj/structure/coatrack, +/obj/structure/coatrack{ + pixel_x = -5; + pixel_y = 13 + }, +/obj/item/clothing/shoes/dress{ + pixel_y = -13 + }, +/obj/item/clothing/under/suit_jacket/trainee{ + pixel_x = -6; + pixel_y = 15 + }, /turf/open/floor{ icon_state = "wood" }, @@ -15653,6 +15710,7 @@ name = "Storm Shutters"; pixel_y = -32 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "darkred2" }, @@ -15987,9 +16045,8 @@ }, /area/bigredv2/outside/admin_building) "aRZ" = ( -/obj/structure/machinery/door/airlock/almayer/command/colony{ - dir = 1; - name = "\improper Operations EVA" +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor{ icon_state = "delivery" @@ -16309,6 +16366,14 @@ }, /area/bigredv2/outside/general_store) "aSQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, /obj/structure/machinery/door/airlock/almayer/command/colony{ dir = 1; name = "\improper Operations" @@ -16319,6 +16384,8 @@ /area/bigredv2/outside/admin_building) "aSR" = ( /obj/structure/pipes/vents/pump, +/obj/structure/surface/rack, +/obj/item/weapon/gun/smg/mp27, /turf/open/floor{ dir = 8; icon_state = "redcorner" @@ -16355,6 +16422,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -16370,8 +16438,14 @@ }, /area/bigredv2/outside/admin_building) "aSX" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/plating, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "white" + }, /area/bigredv2/outside/admin_building) "aSZ" = ( /obj/structure/machinery/power/apc{ @@ -16384,10 +16458,12 @@ /turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aTb" = ( -/obj/structure/surface/table/woodentable, -/obj/effect/landmark/objective_landmark/close, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor{ - icon_state = "wood" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aTc" = ( @@ -16562,24 +16638,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/lambda_cave_cas) -"aTA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/caves_lambda) -"aTB" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/caves_lambda) "aTC" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -16714,7 +16772,10 @@ }, /area/bigredv2/outside/general_store) "aTU" = ( -/obj/structure/machinery/message_server, +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, /turf/open/floor{ icon_state = "podhatchfloor" }, @@ -16724,12 +16785,6 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) -"aTX" = ( -/obj/structure/machinery/computer3/server, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/admin_building) "aTY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -16738,8 +16793,6 @@ }, /area/bigredv2/outside/admin_building) "aTZ" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/smg/mp27, /obj/structure/machinery/light{ dir = 4 }, @@ -16765,28 +16818,34 @@ }, /area/bigredv2/outside/admin_building) "aUd" = ( -/obj/structure/machinery/alarm{ - dir = 1; - pixel_y = -30 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 5; + icon_state = "darkred2" }, -/turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aUe" = ( /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/alarm{ + dir = 1; + pixel_y = -30 + }, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aUf" = ( /obj/effect/landmark/good_item, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aUg" = ( -/obj/structure/surface/table/woodentable, -/obj/item/device/camera, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor{ icon_state = "wood" }, @@ -16940,20 +16999,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/lambda_cave_cas) -"aUB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) -"aUC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) "aUD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -17180,12 +17225,10 @@ dir = 4 }, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "aVk" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/pistol/mod88, /turf/open/floor{ dir = 8; icon_state = "redcorner" @@ -17414,13 +17457,11 @@ dir = 1; network = list("interrogation") }, -/obj/structure/machinery/computer3/server, /turf/open/floor{ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "aVT" = ( -/obj/structure/machinery/computer3/server, /turf/open/floor{ dir = 9; icon_state = "darkblue2" @@ -17436,7 +17477,6 @@ /obj/structure/machinery/light{ dir = 1 }, -/obj/structure/machinery/photocopier, /turf/open/floor{ dir = 1; icon_state = "darkblue2" @@ -17452,13 +17492,16 @@ phone_id = "Operations"; pixel_y = 24 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ dir = 1; icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) "aVX" = ( -/obj/structure/machinery/computer/cameras, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, /obj/structure/surface/table, /turf/open/floor{ dir = 5; @@ -17640,7 +17683,6 @@ }, /area/bigredv2/outside/admin_building) "aWD" = ( -/obj/structure/machinery/computer3/server, /turf/open/floor{ dir = 8; icon_state = "darkblue2" @@ -17660,7 +17702,9 @@ }, /area/bigredv2/outside/admin_building) "aWG" = ( -/obj/structure/machinery/computer/communications, +/obj/structure/machinery/computer/communications{ + dir = 8 + }, /obj/structure/surface/table, /turf/open/floor{ dir = 6; @@ -17668,10 +17712,10 @@ }, /area/bigredv2/outside/admin_building) "aWH" = ( -/obj/structure/surface/table/woodentable, -/obj/item/device/pinpointer, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "wood" + dir = 1; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aWI" = ( @@ -17829,6 +17873,10 @@ pixel_y = 32 }, /obj/effect/landmark/good_item, +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" + }, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -17843,12 +17891,9 @@ }, /area/bigredv2/outside/admin_building) "aXk" = ( -/obj/structure/machinery/light{ - dir = 4 - }, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 4; - icon_state = "darkred2" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aXl" = ( @@ -18008,16 +18053,17 @@ /turf/open/floor/plating, /area/bigredv2/outside/cargo) "aXL" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 10; + dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aXM" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aXN" = ( @@ -18026,12 +18072,16 @@ density = 0; req_one_access_txt = "200" }, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor{ dir = 10; icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) "aXO" = ( +/obj/item/prop/alien/hugger, /turf/open/floor{ icon_state = "darkblue2" }, @@ -18114,22 +18164,23 @@ /area/bigredv2/outside/cargo) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/light{ - dir = 8 - }, /turf/open/floor{ dir = 8; - icon_state = "darkred2" + icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) "aYi" = ( /obj/effect/spawner/random/toolbox, +/obj/structure/platform_decoration, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aYk" = ( /obj/effect/landmark/survivor_spawner, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor{ icon_state = "dark" }, @@ -18151,23 +18202,33 @@ }, /area/bigredv2/outside/admin_building) "aYo" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Operations Toilet" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "delivery" + dir = 5; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aYp" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Operations Toilet" + }, /turf/open/floor{ - icon_state = "freezerfloor" + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "aYq" = ( -/obj/structure/machinery/light{ - dir = 1 - }, /obj/effect/landmark/objective_landmark/far, +/obj/structure/sink{ + pixel_x = 1; + pixel_y = 20 + }, +/obj/structure/mirror{ + pixel_y = 29 + }, /turf/open/floor{ icon_state = "freezerfloor" }, @@ -18176,6 +18237,10 @@ /obj/structure/toilet{ dir = 8 }, +/obj/item/prop/alien/hugger, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor{ icon_state = "freezerfloor" }, @@ -18295,21 +18360,25 @@ }, /area/bigredv2/outside/c) "aYL" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aYM" = ( +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aYN" = ( +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations Meeting Room" + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "aYO" = ( @@ -18326,6 +18395,7 @@ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -18335,6 +18405,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -18511,9 +18582,9 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "aZA" = ( @@ -18524,16 +18595,10 @@ /area/bigredv2/outside/admin_building) "aZB" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZC" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZE" = ( /turf/open/floor{ @@ -18570,6 +18635,13 @@ icon_state = "dark" }, /area/bigredv2/outside/chapel) +"aZJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "aZK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -18619,28 +18691,36 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "aZS" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aZT" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZU" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, +/turf/open/floor/carpet, +/area/bigredv2/outside/admin_building) +"aZV" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ dir = 8; - icon_state = "carpet15-15" + icon_state = "darkyellow2" }, -/area/bigredv2/outside/admin_building) +/area/bigredv2/outside/filtration_plant) "aZW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -18863,13 +18943,10 @@ }, /area/bigredv2/outside/cargo) "baG" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "baI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ @@ -18881,6 +18958,7 @@ /area/bigredv2/outside/admin_building) "baJ" = ( /obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "baK" = ( @@ -19021,10 +19099,7 @@ "bbj" = ( /obj/structure/surface/table, /obj/item/alienjar, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bbk" = ( /obj/structure/machinery/light{ @@ -19050,7 +19125,9 @@ /area/bigredv2/outside/admin_building) "bbm" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer/med_data/laptop, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 4 + }, /turf/open/floor{ dir = 8; icon_state = "carpet15-15" @@ -19065,11 +19142,14 @@ }, /area/bigredv2/outside/admin_building) "bbo" = ( -/obj/structure/bed/chair, +/obj/structure/bed/chair/comfy/blue, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bbp" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey/left{ + pixel_y = 6 + }, /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 @@ -19077,7 +19157,9 @@ /turf/open/floor, /area/bigredv2/outside/admin_building) "bbq" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey{ + pixel_y = 6 + }, /obj/structure/machinery/light{ dir = 1 }, @@ -19087,6 +19169,7 @@ /obj/structure/surface/table, /obj/item/storage/photo_album, /obj/item/tool/pen/red, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bbs" = ( @@ -19308,14 +19391,16 @@ }, /area/bigredv2/outside/admin_building) "bbY" = ( -/obj/structure/bed/chair/office/dark, +/obj/structure/bed/chair/comfy/blue, /turf/open/floor{ icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bbZ" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer/cameras/wooden_tv, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 8 + }, /obj/structure/machinery/light{ dir = 4 }, @@ -19358,6 +19443,13 @@ icon_state = "white" }, /area/bigredv2/outside/office_complex) +"bcg" = ( +/obj/effect/decal/cleanable/liquid_fuel, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "bch" = ( /obj/structure/surface/table, /obj/item/clipboard, @@ -19479,7 +19571,7 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "bcy" = ( -/obj/structure/machinery/vending/cigarette, +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor, /area/bigredv2/outside/cargo) "bcz" = ( @@ -19526,53 +19618,47 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/obj/item/prop/alien/hugger, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcF" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcH" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bcI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bcJ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 4; + dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) @@ -19736,45 +19822,38 @@ }, /area/bigredv2/outside/c) "bdl" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bdm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bdn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations Meeting Room" +/obj/structure/machinery/light{ + dir = 1 }, +/obj/structure/surface/table/woodentable, +/obj/item/device/camera, /turf/open/floor{ - icon_state = "delivery" + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bdo" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, /turf/open/floor{ - icon_state = "dark" + dir = 10; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bdp" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - frequency = 1469; - name = "General Listening Channel"; - pixel_x = 30 - }, +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 4; + dir = 6; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) @@ -19787,6 +19866,7 @@ /area/bigredv2/outside/admin_building) "bdr" = ( /obj/structure/machinery/vending/snack, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bds" = ( @@ -19909,7 +19989,9 @@ /area/bigredv2/outside/cargo) "bdO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "bdP" = ( /obj/structure/machinery/photocopier, @@ -21406,7 +21488,7 @@ /area/bigredv2/outside/space_port_lz2) "biI" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "Engineering Landing Zone" + name = "LZ2: Engineering Landing Zone" }, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) @@ -21857,8 +21939,8 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bkw" = ( @@ -21866,8 +21948,8 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bkx" = ( @@ -21877,8 +21959,8 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bky" = ( @@ -21915,18 +21997,30 @@ icon_state = "sovietsoda-broken"; stat = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkE" = ( -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkG" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkH" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkI" = ( /obj/structure/cryofeed/right{ @@ -21945,7 +22039,9 @@ "bkK" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/filtration_plant) "bkL" = ( /obj/structure/surface/table, @@ -21953,29 +22049,43 @@ dir = 1 }, /obj/item/tank/air, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkO" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/filtration_plant) "bkS" = ( /obj/structure/closet/toolcloset, @@ -21983,7 +22093,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bkT" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, @@ -22135,19 +22248,27 @@ /obj/effect/spawner/random/toolbox, /obj/item/tool/extinguisher, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bly" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "blA" = ( /obj/structure/dispenser/oxygen, /obj/structure/machinery/camera/autoname{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blB" = ( /obj/effect/landmark/survivor_spawner, @@ -22159,24 +22280,34 @@ dir = 4; pixel_x = -30 }, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blC" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blD" = ( /obj/structure/surface/table, /obj/item/circuitboard/firealarm, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "blF" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -22190,12 +22321,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"blL" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/engineering) "blT" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -22203,7 +22328,9 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "blV" = ( /obj/structure/bed/chair/office/light{ @@ -22212,7 +22339,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "blW" = ( /obj/structure/surface/table, @@ -22222,25 +22351,35 @@ dir = 8 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blX" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "blY" = ( /obj/structure/bed/chair{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "blZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bma" = ( /obj/effect/decal/cleanable/dirt, @@ -22249,7 +22388,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bmb" = ( /obj/structure/surface/table, @@ -22258,42 +22399,69 @@ pixel_x = 32 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bme" = ( /turf/open/mars, /area/bigredv2/outside/sw) "bmf" = ( /obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "bmg" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmh" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmi" = ( -/turf/open/floor, +/obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/curtain/red, +/turf/open/floor{ + icon_state = "freezerfloor" + }, /area/bigredv2/outside/engineering) "bmj" = ( -/obj/structure/machinery/light{ - dir = 4 - }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, /area/bigredv2/outside/engineering) "bml" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmm" = ( /obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmn" = ( /obj/structure/machinery/power/smes/buildable{ @@ -22303,31 +22471,41 @@ /area/bigredv2/outside/engineering) "bmp" = ( /obj/structure/machinery/mill, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmq" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/engineering) -"bmr" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bms" = ( /obj/structure/machinery/autolathe, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmt" = ( /obj/structure/machinery/computer/atmos_alert, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmu" = ( /obj/structure/machinery/computer/station_alert, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmw" = ( /obj/structure/closet/secure_closet/engineering_chief, @@ -22335,20 +22513,32 @@ dir = 1 }, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmx" = ( /obj/structure/bookcase/manuals/engineering, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmy" = ( /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmz" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmA" = ( /obj/structure/barricade/wooden, @@ -22370,33 +22560,49 @@ dir = 4 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bmD" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bmF" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bmG" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bmH" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bmJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bmM" = ( /obj/effect/landmark/hunter_primary, @@ -22411,14 +22617,24 @@ "bmO" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmP" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/liquid_fuel, /obj/item/stack/sheet/metal, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmQ" = ( /obj/structure/machinery/shower{ @@ -22434,13 +22650,18 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bmS" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bmT" = ( /obj/structure/machinery/power/terminal{ @@ -22466,23 +22687,33 @@ /area/bigredv2/outside/engineering) "bmW" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bmX" = ( /obj/structure/bed/chair/office/dark, /obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bmZ" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bna" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnb" = ( /obj/structure/machinery/door_control{ @@ -22490,14 +22721,20 @@ name = "Storm Shutters"; pixel_x = -32 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnd" = ( /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/machinery/computer3/server/rack, -/turf/open/floor, +/obj/structure/machinery/computer3/server, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bne" = ( /obj/structure/cryofeed, @@ -22510,7 +22747,10 @@ /area/bigredv2/outside/filtration_plant) "bnf" = ( /obj/structure/machinery/computer3/server/rack, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bng" = ( /obj/effect/decal/cleanable/dirt, @@ -22518,12 +22758,16 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnj" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22532,8 +22776,8 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bnl" = ( @@ -22541,66 +22785,93 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnn" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bno" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/headset, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnp" = ( /obj/structure/machinery/computer/area_atmos/area, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnr" = ( /obj/structure/largecrate/random, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bns" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engineering SMES" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bnt" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/welding, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bnu" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnw" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bnx" = ( /obj/structure/surface/table, @@ -22610,7 +22881,9 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/meson, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bny" = ( /obj/structure/window/reinforced/toughened{ @@ -22635,41 +22908,55 @@ /obj/structure/surface/table, /obj/item/tool/lighter/zippo, /obj/item/tool/lighter/zippo, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnA" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bnB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnE" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnF" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bnH" = ( /obj/structure/machinery/computer/general_air_control, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnI" = ( /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnK" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -22678,40 +22965,53 @@ /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnL" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnN" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnO" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bnQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "bnR" = ( /obj/structure/machinery/shower{ @@ -22724,30 +23024,40 @@ /area/bigredv2/outside/engineering) "bnS" = ( /obj/item/trash/eat, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bnT" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ name = "\improper Engineering Secure Storage" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bnV" = ( /obj/structure/sign/safety/electronics{ pixel_y = 32 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnW" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bnX" = ( /obj/item/folder/yellow, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bnY" = ( /obj/structure/machinery/photocopier, @@ -22757,26 +23067,36 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bnZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "boa" = ( /obj/structure/bed/chair{ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bob" = ( /obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boc" = ( /obj/structure/machinery/light{ @@ -22784,64 +23104,85 @@ }, /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boe" = ( -/obj/structure/machinery/computer3/server, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bof" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "boj" = ( /obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "bok" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/engineering) -"bop" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bor" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bos" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bou" = ( /obj/structure/machinery/light{ dir = 8 }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bov" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, /obj/item/weapon/twohanded/fireaxe, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "box" = ( /obj/item/frame/table, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "boy" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -22859,44 +23200,63 @@ dir = 1; name = "\improper Engineering Complex" }, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "boG" = ( /obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "boH" = ( /obj/effect/decal/cleanable/liquid_fuel, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "boI" = ( /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boK" = ( /obj/item/trash/pistachios, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "boL" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boM" = ( /obj/structure/closet/firecloset/full, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boN" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boR" = ( /obj/structure/surface/table, @@ -22905,14 +23265,19 @@ dir = 1 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boS" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "boU" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22920,8 +23285,8 @@ dir = 1; name = "\improper Chief Engineer's Office" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "boV" = ( @@ -22929,17 +23294,22 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "boW" = ( /obj/structure/closet/secure_closet/atmos_personal, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/filtration_plant) "boX" = ( /obj/structure/machinery/pipedispenser, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "boY" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -22949,17 +23319,24 @@ phone_id = "Filtration"; pixel_y = 24 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "boZ" = ( /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpa" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpc" = ( /obj/structure/barricade/handrail, @@ -22969,26 +23346,41 @@ /area/bigredv2/outside/filtration_plant) "bpe" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/floor, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bpi" = ( /obj/structure/reagent_dispensers/watertank, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpj" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpk" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -22996,19 +23388,26 @@ dir = 1; name = "\improper Engineering Tool Storage" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bpl" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpm" = ( -/obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor, +/obj/structure/surface/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/glasses/welding, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bpn" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23017,25 +23416,34 @@ /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bpo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpp" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpu" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -23067,8 +23475,8 @@ dir = 1; name = "\improper Engineering Lockers" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bpA" = ( @@ -23077,44 +23485,51 @@ dir = 1; name = "\improper Engineering Lockers" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bpC" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpD" = ( /obj/structure/surface/rack, /obj/item/device/camera_film, -/obj/item/device/analyzer, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpE" = ( /obj/structure/surface/rack, -/obj/item/weapon/gun/smg/nailgun, -/obj/item/weapon/gun/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor, +/obj/item/device/analyzer, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpI" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23122,7 +23537,10 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/device/lightreplacer, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpK" = ( /obj/structure/machinery/light{ @@ -23131,31 +23549,43 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bpL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bpM" = ( -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +/obj/structure/pipes/standard/manifold/fourway/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bpN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bpO" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bpP" = ( /obj/structure/machinery/camera/autoname{ @@ -23164,7 +23594,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpQ" = ( /obj/structure/machinery/light{ @@ -23174,20 +23606,26 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpR" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/good_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bpT" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -23198,13 +23636,14 @@ "bpU" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, /obj/effect/decal/warning_stripes, -/turf/open/floor, +/turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bpV" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N" + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor, +/turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bpX" = ( /turf/open/floor{ @@ -23266,8 +23705,8 @@ dir = 1; name = "\improper Engineering Break Room" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bqg" = ( @@ -23282,34 +23721,39 @@ dir = 1; pixel_y = -30 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bql" = ( -/obj/effect/decal/cleanable/liquid_fuel, /obj/structure/machinery/door_control{ id = "Engineering"; name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bqo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bqv" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor, +/turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bqw" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" }, -/turf/open/floor, +/turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "bqA" = ( /obj/structure/closet/toolcloset, @@ -23330,21 +23774,30 @@ icon_state = "snack-broken"; stat = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bqJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bqK" = ( /obj/item/folder/yellow, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bqL" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23353,8 +23806,8 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bqM" = ( @@ -23362,29 +23815,39 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bqN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bqP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Engine Reactor Control" }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bqT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/survivor_spawner, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bqV" = ( /obj/structure/machinery/light{ @@ -23393,13 +23856,16 @@ /obj/structure/surface/table, /obj/item/paper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bqX" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/turf/open/floor, +/turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) "brb" = ( /obj/structure/machinery/landinglight/ds2{ @@ -23425,14 +23891,17 @@ /area/bigredv2/outside/sw) "bre" = ( /obj/structure/bed/chair, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "brg" = ( @@ -23440,57 +23909,73 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bri" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brj" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/engineering) -"brm" = ( -/obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brn" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/obj/structure/transmitter/colony_net{ - phone_category = "Solaris Ridge"; - phone_color = "yellow"; - phone_id = "Engineering"; - pixel_y = 24 +/obj/structure/machinery/power/breakerbox/activated, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "bro" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bru" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brw" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brx" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bry" = ( /obj/structure/pipes/standard/manifold/hidden/green{ @@ -23498,14 +23983,18 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "brz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "brA" = ( /obj/structure/surface/table, @@ -23520,17 +24009,25 @@ pixel_x = 30 }, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "brB" = ( /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "brC" = ( /obj/effect/landmark/good_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "brD" = ( /turf/open/floor/plating, @@ -23551,42 +24048,61 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brJ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/glass, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/hunter_primary, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brL" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brM" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brO" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "brP" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, -/turf/open/floor, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "brR" = ( /obj/item/device/radio/intercom{ @@ -23595,36 +24111,50 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, /area/bigredv2/outside/engineering) "brU" = ( /obj/structure/surface/table, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "brV" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "brW" = ( /obj/structure/surface/table, /obj/item/weapon/baton, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "brY" = ( /obj/structure/bed/chair/office/light, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "brZ" = ( /obj/structure/bed/chair/office/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/filtration_plant) "bsa" = ( /obj/structure/machinery/floodlight/landing/floor, @@ -23674,11 +24204,9 @@ amount = 30 }, /obj/effect/landmark/crap_item, -/turf/open/floor, -/area/bigredv2/outside/engineering) -"bso" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bss" = ( /obj/structure/prop/invuln/minecart_tracks{ @@ -23689,40 +24217,50 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"bsu" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor, -/area/bigredv2/outside/engineering) "bsB" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bsC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bsD" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/toolbox, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bsE" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bsF" = ( /obj/structure/surface/table, /obj/item/circuitboard/solar_tracker, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bsG" = ( /obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/filtration_plant) "bsH" = ( /obj/effect/landmark/hunter_primary, @@ -23738,19 +24276,26 @@ icon_state = "coffee-broken"; stat = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bsK" = ( /obj/structure/machinery/light, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bsL" = ( /obj/effect/landmark/crap_item, /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bsM" = ( /obj/structure/machinery/door_control{ @@ -23758,7 +24303,10 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bsN" = ( /obj/structure/surface/table, @@ -23770,49 +24318,62 @@ /obj/item/stack/sheet/glass{ amount = 30 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bsP" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor, +/obj/structure/closet/radiation, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "bsX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bsY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/bigredv2/outside/filtration_plant) +/area/bigredv2/outside/engineering) "bsZ" = ( /obj/structure/janitorialcart, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bta" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "btb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/constructable_frame, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "btc" = ( /obj/structure/surface/table, /obj/structure/machinery/light, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "btd" = ( /obj/structure/surface/table, @@ -23820,28 +24381,48 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bte" = ( -/obj/structure/machinery/light, -/turf/open/floor, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bti" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "btj" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor, -/area/bigredv2/outside/filtration_plant) +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "btk" = ( /obj/structure/bed/chair, -/turf/open/floor, -/area/bigredv2/outside/filtration_plant) +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "btn" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -23856,43 +24437,40 @@ }, /area/bigredv2/outside/se) "btr" = ( -/obj/structure/machinery/computer/station_alert{ - dir = 1 - }, -/obj/structure/surface/table, -/turf/open/floor, -/area/bigredv2/outside/engineering) -"bts" = ( -/obj/structure/machinery/power/monitor{ - name = "Main Power Grid Monitoring" +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "btt" = ( -/obj/structure/surface/table, -/obj/item/device/analyzer, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/obj/structure/bed/chair/office/light, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "btu" = ( -/obj/structure/machinery/computer/atmos_alert{ - dir = 1 +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" }, -/obj/structure/surface/table, -/turf/open/floor, /area/bigredv2/outside/engineering) "btw" = ( /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) "btA" = ( /obj/effect/landmark/hunter_primary, -/turf/open/floor, -/area/bigredv2/outside/filtration_plant) +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "btB" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor, -/area/bigredv2/outside/filtration_plant) +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "btD" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" @@ -23906,8 +24484,8 @@ dir = 1; name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "btJ" = ( @@ -23915,13 +24493,19 @@ dir = 4 }, /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "btK" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "btN" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -23931,15 +24515,18 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor, -/area/bigredv2/outside/filtration_plant) +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "bua" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Engineering Complex" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "bub" = ( @@ -25515,7 +26102,9 @@ /obj/structure/surface/table, /obj/item/trash/kepler, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bAp" = ( /obj/structure/pipes/vents/pump{ @@ -25826,9 +26415,12 @@ }, /area/bigredv2/caves/eta/xenobiology) "bBg" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "bBh" = ( /obj/structure/filingcabinet, /turf/open/floor{ @@ -27159,6 +27751,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"bMa" = ( +/obj/structure/surface/rack, +/obj/item/weapon/gun/pistol/mod88, +/obj/item/weapon/gun/pistol/mod88, +/turf/open/floor{ + dir = 8; + icon_state = "redcorner" + }, +/area/bigredv2/outside/admin_building) "bMf" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -27198,6 +27799,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/outside/lz2_west_cas) +"bQe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "bQi" = ( /turf/open/floor{ icon_state = "darkish" @@ -27287,12 +27892,27 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/telecomm/lz2_cave) +"bYW" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "bZp" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/plating, /area/bigredv2/outside/nw/ceiling) +"bZJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/radiation, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "bZL" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -27310,22 +27930,27 @@ "caN" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "ccP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "cdA" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" }, /area/bigredv2/outside/lz2_west_cas) +"cec" = ( +/obj/structure/bed, +/obj/item/toy/plush/farwa, +/turf/open/floor/plating, +/area/bigredv2/outside/cargo) "ced" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/item/weapon/gun/rifle/m41a/training, @@ -27362,6 +27987,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"cla" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "clB" = ( /turf/open/floor{ dir = 1; @@ -27481,10 +28114,15 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/caves/eta/living) -"cuF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +"cud" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cvi" = ( /obj/effect/decal/cleanable/dirt, @@ -27516,6 +28154,10 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"czS" = ( +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "czV" = ( /obj/item/tool/pickaxe, /turf/open/mars_cave{ @@ -27555,12 +28197,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"cFb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal, -/obj/structure/bed/chair/office/light, -/turf/open/floor, -/area/bigredv2/outside/engineering) "cGQ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -27575,7 +28211,10 @@ pixel_x = -32; start_charge = 0 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "cGZ" = ( /turf/open/mars_cave{ @@ -27615,6 +28254,23 @@ /obj/item/paper/bigred/smuggling, /turf/open/floor, /area/bigredv2/outside/cargo) +"cJa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "cJh" = ( /obj/structure/bed/chair{ dir = 8; @@ -27636,6 +28292,12 @@ icon_state = "mars_cave_20" }, /area/bigredv2/caves_north) +"cKu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "cLZ" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, @@ -27643,12 +28305,31 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"cNb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "cNH" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/bar) +"cOa" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/crap_item, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "cOl" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -27728,6 +28409,14 @@ "cVY" = ( /turf/open/mars, /area/bigredv2/outside/space_port_lz2) +"cXG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "cYI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -27746,6 +28435,12 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"cZB" = ( +/obj/structure/pipes/standard/manifold/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "daf" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -27782,6 +28477,14 @@ icon_state = "delivery" }, /area/bigredv2/outside/c) +"dhN" = ( +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/almayer{ + id = "rad_door"; + name = "\improper Radiation Shielding" + }, +/turf/open/floor/plating, +/area/bigredv2/outside/engineering) "dhS" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -27797,6 +28500,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"din" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "dlr" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/floor, @@ -27863,6 +28576,19 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dsm" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) +"dsy" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "dtf" = ( /obj/structure/prop/server_equipment/broken, /turf/open/floor{ @@ -27884,6 +28610,12 @@ /obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"duA" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "dvB" = ( /obj/item/ore/coal{ pixel_x = 9; @@ -27896,10 +28628,10 @@ /area/bigredv2/caves/mining) "dvC" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/bigredv2/outside/filtration_plant) +/area/bigredv2/outside/engineering) "dwL" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -27928,6 +28660,16 @@ "dyv" = ( /turf/open/mars, /area/bigredv2/caves/eta/xenobiology) +"dyH" = ( +/obj/structure/machinery/computer/area_atmos{ + dir = 1 + }, +/obj/structure/surface/table, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "dzY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -27948,6 +28690,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dBm" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "dBE" = ( /obj/item/trash/cigbutt/cigarbutt{ pixel_x = 2; @@ -27964,6 +28714,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dBU" = ( +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "dCb" = ( /obj/effect/landmark/corpsespawner/security/marshal, /obj/effect/decal/cleanable/blood/oil, @@ -28156,6 +28917,12 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves/mining) +"dQw" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/caves_sw) "dQF" = ( /obj/effect/spawner/random/tool, /turf/open/mars_cave{ @@ -28163,16 +28930,13 @@ }, /area/bigredv2/caves/mining) "dQZ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering/colony{ - name = "\improper Engine Reactor Control" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "delivery" + dir = 5; + icon_state = "darkyellow2" }, -/area/bigredv2/outside/engineering) +/area/bigredv2/outside/filtration_plant) "dSg" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, @@ -28202,6 +28966,14 @@ icon_state = "mars_cave_5" }, /area/bigredv2/outside/lz2_south_cas) +"dWd" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "dWg" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/mars{ @@ -28210,7 +28982,10 @@ /area/bigredv2/outside/c) "dWl" = ( /obj/structure/closet/toolcloset, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "dXs" = ( /obj/item/tool/pickaxe{ @@ -28254,6 +29029,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ebr" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "ebZ" = ( /turf/open/floor{ icon_state = "darkgreencorners2" @@ -28304,6 +29086,14 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"egL" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "egS" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, @@ -28381,6 +29171,12 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"eoU" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y2" + }, +/area/bigredv2/outside/admin_building) "epe" = ( /turf/open/floor{ dir = 1; @@ -28471,6 +29267,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ewv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/curtain/red, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/engineering) "exc" = ( /turf/open/floor{ dir = 4; @@ -28558,10 +29361,9 @@ }, /area/bigredv2/caves_sw) "eGM" = ( -/obj/structure/surface/table, -/obj/item/device/lightreplacer, -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "eHA" = ( /obj/structure/pipes/standard/simple/hidden/green, @@ -28569,6 +29371,14 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"eIN" = ( +/obj/structure/machinery/power/port_gen/pacman, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "eJE" = ( /turf/open/floor{ dir = 4; @@ -28593,7 +29403,10 @@ pixel_x = 30; throw_range = 15 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "eLp" = ( /obj/structure/closet/secure_closet/brig, @@ -28661,12 +29474,28 @@ }, /turf/closed/wall/solaris, /area/bigredv2/outside/dorms) +"eSm" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "eSu" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"eSN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "eTj" = ( /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/mars{ @@ -28797,9 +29626,23 @@ /area/bigredv2/caves/lambda/research) "fgE" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor, +/obj/effect/decal/remains/human, +/obj/effect/landmark/static_comms/net_two{ + broken_on_spawn = 1 + }, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, /area/bigredv2/outside/engineering) +"fhy" = ( +/obj/structure/bed/chair/comfy/blue{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "carpet15-15" + }, +/area/bigredv2/outside/admin_building) "fhI" = ( /obj/effect/landmark/hunter_secondary, /turf/open/mars_cave{ @@ -28861,6 +29704,10 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/caves/eta/living) +"fnv" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/carpet, +/area/bigredv2/caves/lambda/breakroom) "fnO" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" @@ -28990,6 +29837,11 @@ /obj/structure/pipes/standard/tank/phoron, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fBo" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) "fCb" = ( /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) @@ -28999,6 +29851,14 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) +"fEv" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + name = "\improper Engine Reactor" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "fFG" = ( /obj/structure/largecrate/random/barrel, /turf/open/mars_cave{ @@ -29046,6 +29906,12 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_virology) +"fLl" = ( +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "fLA" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -29126,7 +29992,10 @@ /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "fOM" = ( /obj/effect/decal/warning_stripes{ @@ -29135,6 +30004,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fPB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "fQv" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -29196,12 +30069,31 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"fUp" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 1; + name = "\improper Engine Reactor" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "fWw" = ( /turf/open/jungle{ bushes_spawn = 0; icon_state = "grass_impenetrable" }, /area/bigredv2/caves/eta/xenobiology) +"fXm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "fYH" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) @@ -29231,8 +30123,8 @@ }, /area/bigredv2/outside/eta) "gad" = ( -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "gan" = ( @@ -29255,6 +30147,12 @@ "gda" = ( /turf/open/mars_cave, /area/bigredv2/outside/lz1_telecomm_cas) +"gdx" = ( +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "gdN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars, @@ -29264,6 +30162,14 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/outside/lz1_north_cas) +"gfX" = ( +/obj/structure/sign/safety/hazard{ + pixel_y = -32 + }, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "ggC" = ( /obj/structure/surface/rack, /obj/effect/landmark/good_item, @@ -29282,6 +30188,10 @@ "gio" = ( /turf/open/mars_cave, /area/bigredv2/outside/filtration_cave_cas) +"giB" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave, +/area/bigredv2/caves_sw) "giY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -29321,6 +30231,15 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/lz2_south_cas) +"gmm" = ( +/obj/structure/window/framed/solaris, +/obj/effect/decal/cleanable/molten_item, +/obj/structure/machinery/door/poddoor/almayer{ + id = "rad_door"; + name = "\improper Radiation Shielding" + }, +/turf/open/floor/plating, +/area/bigredv2/outside/engineering) "gmN" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -29394,6 +30313,12 @@ "gtX" = ( /turf/open/mars_cave, /area/bigredv2/caves_se) +"guu" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "guM" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -29407,6 +30332,27 @@ icon_state = "delivery" }, /area/bigredv2/caves/lambda/breakroom) +"gvI" = ( +/obj/structure/transmitter/colony_net{ + dir = 4; + do_not_disturb = 1; + phone_category = "Lambda Labs"; + phone_color = "red"; + phone_id = "Director's Safe Room"; + pixel_x = -18 + }, +/turf/open/floor{ + dir = 1; + icon_state = "elevatorshaft" + }, +/area/bigredv2/caves/lambda/breakroom) +"gwg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "gxJ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -29455,7 +30401,10 @@ "gCx" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "gCC" = ( /obj/structure/closet/secure_closet, @@ -29483,6 +30432,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_east) +"gFR" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "gGO" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -29496,6 +30452,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"gHV" = ( +/obj/structure/surface/table, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "gJw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, @@ -29506,6 +30469,13 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_virology) +"gML" = ( +/obj/structure/machinery/power/turbine, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "gNz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -29527,6 +30497,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"gPh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + name = "\improper Engine Reactor" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "gPE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight/lantern, @@ -29570,19 +30549,47 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"gUD" = ( +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"gVl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "gVm" = ( /turf/open/floor{ dir = 6; icon_state = "darkblue2" }, /area/bigredv2/caves/eta/research) -"gXh" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +"gWU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" + icon_state = "dark" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/admin_building) "gXp" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -29607,12 +30614,50 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"gZc" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/sign/safety/high_rad{ + pixel_x = -32 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"haT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "hcb" = ( /obj/effect/landmark/hunter_secondary, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/lz1_telecomm_cas) +"hcH" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"hdc" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "heG" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -29657,6 +30702,12 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/outside/lz1_north_cas) +"hhK" = ( +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "hiP" = ( /obj/structure/sign/safety/one{ pixel_x = 16 @@ -29672,6 +30723,15 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/bigredv2/caves/eta/storage) +"hkY" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "hmm" = ( /turf/open/floor{ icon_state = "delivery" @@ -29746,7 +30806,9 @@ "hsF" = ( /obj/structure/closet/firecloset/full, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "hsJ" = ( /obj/item/ore, @@ -29755,20 +30817,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) -"htp" = ( -/obj/structure/transmitter/colony_net{ - callable = 0; - dir = 4; - phone_category = "Lambda Labs"; - phone_color = "red"; - phone_id = "Secure Storage"; - pixel_x = -18 - }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, -/area/bigredv2/caves/lambda/breakroom) "hvQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -29791,6 +30839,13 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/research) +"hxs" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "hyv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -29969,7 +31024,7 @@ }, /area/bigredv2/outside/lambda_cave_cas) "hSP" = ( -/obj/structure/machinery/vending/cigarette, +/obj/structure/machinery/vending/cigarette/colony, /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, @@ -30005,6 +31060,18 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"hYB" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "hYI" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, @@ -30040,6 +31107,10 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) +"iaC" = ( +/obj/structure/platform, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "iaN" = ( /obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, @@ -30065,6 +31136,13 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_sw) +"idM" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "iep" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat/dblue{ @@ -30133,6 +31211,11 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/outside/eta) +"iig" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/framed/solaris, +/turf/open/floor/plating, +/area/bigredv2/outside/engineering) "ijU" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Cables" @@ -30266,13 +31349,24 @@ "iyd" = ( /obj/structure/machinery/computer/general_air_control, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "iyY" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" }, /area/bigredv2/outside/lz1_north_cas) +"izb" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "izh" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" @@ -30301,6 +31395,12 @@ icon_state = "mars_cave_11" }, /area/bigredv2/caves_sw) +"iAI" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "iDJ" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -30323,6 +31423,17 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) +"iDT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "iDW" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -30339,6 +31450,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"iFa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/bananapeel, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "iGK" = ( /turf/open/mars_cave, /area/bigredv2/caves_sw) @@ -30379,10 +31498,8 @@ }, /area/bigredv2/caves/mining) "iNR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/caves_sw) +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "iOL" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -30402,12 +31519,10 @@ /turf/open/gm/river, /area/bigredv2/outside/filtration_plant) "iQC" = ( -/obj/structure/surface/table, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/effect/landmark/crap_item, +/turf/open/floor{ + icon_state = "dark" }, -/obj/item/clothing/head/welding, -/turf/open/floor, /area/bigredv2/outside/engineering) "iQG" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -30437,6 +31552,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"iSz" = ( +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/bigredv2/outside/engineering) "iUe" = ( /turf/open/floor{ dir = 6; @@ -30489,6 +31613,14 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"iZc" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "iZh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" @@ -30594,11 +31726,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/general_store) -"jjt" = ( -/obj/structure/bed, -/obj/item/toy/farwadoll, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) "jkn" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, @@ -30628,6 +31755,12 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jna" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "jnR" = ( /turf/open/floor{ dir = 9; @@ -30728,6 +31861,19 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) +"jxA" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/bigredv2/outside/engineering) +"jxS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "jzD" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor{ @@ -30735,8 +31881,13 @@ }, /area/bigredv2/caves/lambda/virology) "jAm" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/effect/landmark/objective_landmark/far, +/obj/structure/coatrack{ + pixel_x = -8; + pixel_y = 16 + }, +/obj/item/clothing/shoes/black{ + pixel_y = -7 + }, /turf/open/floor{ icon_state = "wood" }, @@ -30748,6 +31899,11 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_sw) +"jAJ" = ( +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/engineering) "jAN" = ( /obj/item/tool/pickaxe, /turf/open/mars_cave{ @@ -30803,6 +31959,14 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jDT" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "jEx" = ( /obj/structure/machinery/power/port_gen/pacman/super, /turf/open/mars_cave{ @@ -30890,15 +32054,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) -"jNO" = ( -/obj/structure/machinery/sensortower{ - pixel_x = -9 +"jMn" = ( +/obj/structure/machinery/light{ + dir = 8 }, +/obj/effect/decal/cleanable/ash, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + dir = 8; + icon_state = "darkyellow2" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/engineering) "jOc" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; @@ -30982,6 +32147,21 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"jRn" = ( +/obj/structure/machinery/computer3/server, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"jTk" = ( +/obj/structure/surface/table, +/obj/effect/decal/cleanable/molten_item, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "jUc" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -31062,6 +32242,25 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"jXf" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"jXJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light_construct{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "jXP" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -31083,7 +32282,9 @@ /area/bigredv2/caves/mining) "jYF" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/engineering) "jYS" = ( /obj/effect/decal/cleanable/blood, @@ -31240,6 +32441,14 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"khP" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "khR" = ( /obj/structure/machinery/floodlight, /turf/open/mars_cave{ @@ -31270,6 +32479,15 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"kka" = ( +/obj/structure/barricade/handrail, +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/bigredv2/outside/engineering) "kli" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -31303,6 +32521,12 @@ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"kmx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "knN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -31345,6 +32569,13 @@ /obj/effect/decal/cleanable/blood/writing, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"ksO" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "ktE" = ( /obj/item/tool/wrench{ pixel_x = -7; @@ -31362,6 +32593,13 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/filtration_plant) +"ktY" = ( +/obj/effect/landmark/survivor_spawner, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "kuu" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/cigbutt, @@ -31465,6 +32703,19 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/space_port_lz2) +"kIv" = ( +/obj/structure/curtain/red, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) +"kIF" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bigredv2/caves/lambda/breakroom) "kIW" = ( /obj/structure/fence, /turf/open/floor{ @@ -31523,6 +32774,21 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"kNK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) +"kNP" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "kPu" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -31550,6 +32816,10 @@ "kRo" = ( /turf/open/floor/plating, /area/bigredv2/outside/telecomm/warehouse) +"kRK" = ( +/obj/structure/window/framed/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "kSm" = ( /obj/item/storage/belt/grenade, /obj/structure/closet/crate, @@ -31594,10 +32864,10 @@ }, /area/bigredv2/outside/filtration_cave_cas) "kVT" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "kVY" = ( /obj/structure/surface/rack, @@ -31644,6 +32914,13 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"lck" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "lcu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/mask/cigarette, @@ -31702,6 +32979,13 @@ }, /turf/open/floor, /area/bigredv2/outside/lz2_south_cas) +"lmi" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "lms" = ( /turf/open/floor{ dir = 6; @@ -31721,6 +33005,16 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"lqo" = ( +/obj/item/tool/lighter/random, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "lrH" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -31817,6 +33111,12 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) +"lAF" = ( +/obj/item/paper_bin, +/obj/item/tool/pen, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/wood, +/area/bigredv2/caves/lambda/breakroom) "lAK" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/floor{ @@ -31872,6 +33172,14 @@ icon_state = "redfull" }, /area/bigredv2/caves/eta/research) +"lEi" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "lEw" = ( /obj/item/tool/pickaxe{ pixel_y = -3 @@ -31921,6 +33229,15 @@ }, /turf/closed/wall/solaris, /area/bigredv2/outside/cargo) +"lMw" = ( +/obj/structure/machinery/sensortower{ + pixel_x = -9 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "lMB" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz1cave" @@ -32008,6 +33325,23 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"lTi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"lTM" = ( +/obj/item/folder/yellow, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "lUd" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -32061,6 +33395,12 @@ icon_state = "platingdmg2" }, /area/bigredv2/caves/mining) +"lYH" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "lYZ" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -32073,8 +33413,8 @@ }, /area/bigredv2/caves/mining) "maD" = ( -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "maF" = ( @@ -32083,6 +33423,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"maH" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "mdU" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -32121,6 +33469,21 @@ }, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) +"mhZ" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"mij" = ( +/obj/item/folder/yellow, +/obj/effect/landmark/crap_item, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "miD" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/security/marshal, @@ -32135,6 +33498,13 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"mlV" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "mmg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip{ @@ -32165,6 +33535,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"mqh" = ( +/obj/structure/window/framed/solaris, +/turf/open/floor{ + icon_state = "panelscorched" + }, +/area/bigredv2/outside/engineering) "mqX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -32172,13 +33548,9 @@ }, /area/bigredv2/caves/mining) "mrH" = ( -/obj/structure/machinery/blackbox_recorder, -/obj/item/prop/almayer/flight_recorder/colony{ - pixel_x = -6; - pixel_y = 10 - }, +/obj/structure/machinery/computer3/server, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "mrS" = ( @@ -32294,6 +33666,16 @@ icon_state = "mars_cave_15" }, /area/bigredv2/outside/lz1_north_cas) +"mEH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "mFT" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/landmark/corpsespawner/russian, @@ -32311,7 +33693,7 @@ "mGS" = ( /obj/effect/landmark/static_comms/net_one, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "mHp" = ( @@ -32384,6 +33766,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"mPK" = ( +/obj/effect/decal/cleanable/liquid_fuel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "mRi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/mars_cave{ @@ -32402,6 +33792,24 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"mSS" = ( +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) +"mST" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "mUy" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -32487,6 +33895,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"ndw" = ( +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "ndy" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; @@ -32508,11 +33922,25 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"niQ" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "njf" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/outside/lz2_south_cas) +"nky" = ( +/obj/structure/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "nkQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -32538,6 +33966,12 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"nlJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "nlW" = ( /obj/structure/platform/kutjevo/rock, /obj/structure/platform/kutjevo/rock{ @@ -32546,6 +33980,13 @@ /obj/structure/platform_decoration/kutjevo/rock, /turf/open/mars, /area/space) +"nmU" = ( +/obj/structure/surface/table, +/obj/item/device/analyzer, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "nny" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" @@ -32558,6 +33999,23 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/e) +"nnU" = ( +/obj/structure/machinery/door_control{ + desc = "A remote control-switch for opening the engines blast doors."; + id = "rad_door"; + name = "Reactor Radiation Shielding control"; + pixel_x = 30; + req_access_txt = "7" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "npz" = ( /obj/structure/surface/table, /obj/item/spacecash/c100, @@ -32615,6 +34073,41 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nug" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) +"nuw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"nuz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"nwB" = ( +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "nwS" = ( /obj/item/ore{ pixel_x = -7; @@ -32632,6 +34125,13 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"nzN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "nBb" = ( /obj/item/ammo_magazine/pistol/b92fs, /obj/item/weapon/gun/pistol/b92fs{ @@ -32669,6 +34169,14 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/outside/eta) +"nEP" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/filtration_plant) "nEV" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = -10; @@ -32688,6 +34196,13 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"nFH" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "nGm" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -32718,6 +34233,15 @@ icon_state = "delivery" }, /area/bigredv2/outside/filtration_cave_cas) +"nIi" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 1; + name = "\improper Engine Reactor" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/engineering) "nKL" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "An exchange valve"; @@ -32731,6 +34255,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nLw" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/sw) "nMB" = ( /obj/structure/machinery/door_control{ id = "workshop_br_g"; @@ -32750,6 +34280,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nPz" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "nQl" = ( /obj/item/ore{ pixel_x = -1; @@ -32810,10 +34349,9 @@ }, /area/bigredv2/outside/filtration_cave_cas) "nVq" = ( -/obj/structure/surface/table, -/obj/item/clothing/glasses/welding, -/obj/structure/pipes/vents/pump, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "nVw" = ( /turf/open/mars_cave{ @@ -32867,6 +34405,14 @@ /obj/item/tool/warning_cone, /turf/open/mars, /area/bigredv2/outside/s) +"nZD" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "nZK" = ( /obj/item/ore/diamond, /obj/item/stack/sheet/mineral/diamond{ @@ -32910,6 +34456,15 @@ icon_state = "wood" }, /area/bigredv2/caves/eta/living) +"ocR" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "odw" = ( /obj/structure/bed, /turf/open/floor/plating, @@ -32981,6 +34536,12 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/outside/sw) +"ojD" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "okh" = ( /obj/structure/cable{ icon_state = "4-8" @@ -32999,6 +34560,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ole" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y0" + }, +/area/bigredv2/outside/admin_building) "olT" = ( /obj/effect/landmark/corpsespawner/engineer, /turf/open/shuttle/escapepod{ @@ -33112,10 +34679,16 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/research) +"orT" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/carpet, +/area/bigredv2/caves/lambda/breakroom) "orZ" = ( /obj/structure/closet/secure_closet/atmos_personal, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/bigredv2/outside/filtration_plant) "otb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -33132,6 +34705,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ouh" = ( +/obj/item/tool/extinguisher, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "ovq" = ( /turf/open/floor{ icon_state = "delivery" @@ -33219,12 +34799,30 @@ icon_state = "vault" }, /area/bigredv2/outside/general_offices) +"oDW" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "oEJ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) +"oFY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "oIc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -33237,6 +34835,16 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"oIK" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 6 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "oJd" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33393,6 +35001,24 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"oWe" = ( +/obj/structure/machinery/photocopier{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkblue2" + }, +/area/bigredv2/outside/admin_building) +"oWp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "oWC" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33515,6 +35141,12 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/filtration_plant) +"pdG" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "pdN" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz1entrance" @@ -33537,6 +35169,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"pgk" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pgu" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" @@ -33586,6 +35225,15 @@ icon_state = "mars_dirt_11" }, /area/bigredv2/caves_north) +"pog" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "pow" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -33668,6 +35316,38 @@ icon_state = "mars_cave_14" }, /area/bigredv2/caves/mining) +"pxH" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"pyU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"pBv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "pBD" = ( /turf/open/floor{ dir = 4; @@ -33742,12 +35422,28 @@ icon_state = "mars_cave_14" }, /area/bigredv2/caves/mining) +"pKP" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pLj" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/mars_cave{ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) +"pMi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/extinguisher, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pMm" = ( /turf/open/floor{ dir = 8; @@ -33771,12 +35467,38 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) +"pNU" = ( +/obj/structure/bed, +/obj/item/prop/alien/hugger, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) +"pOg" = ( +/obj/structure/machinery/compressor{ + dir = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pOL" = ( /obj/structure/closet/crate/miningcar/yellow, /turf/open/mars_cave{ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"pPo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) "pQv" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, @@ -33793,6 +35515,14 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, /area/bigredv2/outside/lz1_telecomm_cas) +"pRG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pRP" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm/n_cave) @@ -33832,6 +35562,16 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"pVv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/compressor{ + dir = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "pVP" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -33839,6 +35579,14 @@ icon_state = "asteroidfloor" }, /area/bigred/ground/garage_workshop) +"pWs" = ( +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/bigredv2/outside/engineering) "pXm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -33936,7 +35684,10 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "qeX" = ( /obj/structure/largecrate, @@ -34075,6 +35826,12 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"qoN" = ( +/obj/structure/pipes/standard/manifold/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 @@ -34084,6 +35841,13 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"qqw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "qrZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/fire, @@ -34141,6 +35905,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"qyi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "qzO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34220,6 +35994,20 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"qGY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"qHc" = ( +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/filtration_plant) "qHY" = ( /turf/open/mars_cave{ icon_state = "mars_cave_10" @@ -34319,6 +36107,15 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"qUF" = ( +/obj/structure/machinery/computer/area_atmos{ + dir = 1 + }, +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "qUS" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -34347,6 +36144,13 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) +"qXi" = ( +/obj/structure/surface/table/woodentable, +/obj/item/device/pinpointer, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "qYY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -34415,6 +36219,13 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves_research) +"rdr" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "rdR" = ( /turf/open/floor, /area/bigredv2/outside/lz2_south_cas) @@ -34435,6 +36246,12 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"reL" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "vault_v2" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "rfe" = ( /obj/structure/platform/kutjevo/rock{ dir = 8 @@ -34465,6 +36282,18 @@ icon_state = "warnplate" }, /area/bigredv2/outside/telecomm/warehouse) +"rhP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "rie" = ( /obj/effect/decal/cleanable/blood/drip, /obj/item/stack/cable_coil/cut{ @@ -34502,6 +36331,12 @@ "rnc" = ( /turf/open/mars_cave, /area/bigredv2/caves_research) +"rnV" = ( +/obj/item/stack/sheet/glass, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "row" = ( /turf/open/floor{ dir = 8; @@ -34523,6 +36358,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"rpI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "rqa" = ( /obj/structure/tunnel{ id = "hole4" @@ -34596,6 +36441,12 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"rvS" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_sw) "rxh" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" @@ -34607,6 +36458,12 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves_east) +"rzb" = ( +/obj/structure/bed/chair, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "rzO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/water_cooler/stacks{ @@ -34856,6 +36713,23 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rUs" = ( +/obj/structure/machinery/door_control{ + id = "safe_room"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 28; + req_access_txt = "106"; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/bigredv2/caves/lambda/breakroom) +"rUN" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "rUZ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -34911,6 +36785,13 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) +"rYr" = ( +/obj/structure/surface/table, +/obj/effect/decal/cleanable/ash, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "rYt" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -34938,6 +36819,23 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"sap" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"saX" = ( +/obj/structure/machinery/power/turbine, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "sbk" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood, @@ -35036,11 +36934,17 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"slC" = ( +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) "slG" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "dark" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "smh" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -35073,6 +36977,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"snv" = ( +/obj/structure/machinery/light_construct{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "sog" = ( /obj/item/explosive/grenade/slug/baton{ dir = 1; @@ -35244,11 +37157,33 @@ icon_state = "delivery" }, /area/bigredv2/caves_lambda) +"szi" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "szw" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"szy" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) +"sAG" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_sw) "sAS" = ( /obj/item/toy/prize/fireripley{ pixel_y = 19 @@ -35256,6 +37191,17 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"sBm" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "sBu" = ( /obj/effect/landmark/hunter_secondary, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -35270,9 +37216,9 @@ }, /area/bigredv2/caves/mining) "sCt" = ( -/obj/structure/closet/toolcloset, -/obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "sDs" = ( /obj/structure/closet/crate/miningcar, @@ -35292,6 +37238,20 @@ icon_state = "mars_cave_9" }, /area/bigredv2/caves_sw) +"sDO" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"sDZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/head/welding, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "sEi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -35366,9 +37326,15 @@ }, /area/bigredv2/caves_sw) "sLS" = ( -/obj/effect/landmark/objective_landmark/medium, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) +"sNP" = ( +/obj/structure/window/framed/solaris, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/bigredv2/outside/engineering) "sNQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_11" @@ -35405,11 +37371,26 @@ icon_state = "mars_cave_23" }, /area/bigredv2/outside/lz1_telecomm_cas) +"sRy" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations Meeting Room" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "sSU" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" }, /area/bigredv2/outside/lz2_south_cas) +"sUQ" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/wood, +/area/bigredv2/caves/lambda/breakroom) "sWa" = ( /obj/item/ore{ pixel_x = 12; @@ -35475,6 +37456,12 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"tap" = ( +/obj/structure/machinery/message_server, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "tcb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/meat, @@ -35486,6 +37473,19 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves_research) +"tcP" = ( +/obj/effect/decal/cleanable/dirt/greenglow, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/engineering) +"tdn" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "tdp" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -35502,6 +37502,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"tdN" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "tdZ" = ( /obj/item/tool/pickaxe/drill, /obj/structure/machinery/light{ @@ -35592,6 +37600,17 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"tju" = ( +/obj/structure/machinery/shower{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/engineering) "tkN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -35631,6 +37650,11 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) +"toA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "tpR" = ( /obj/structure/bed/chair{ dir = 4; @@ -35656,7 +37680,10 @@ /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "trW" = ( /obj/item/clothing/suit/storage/hazardvest, @@ -35708,6 +37735,15 @@ icon_state = "mars_cave_14" }, /area/bigredv2/outside/lz2_south_cas) +"tub" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "tuu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -35732,12 +37768,29 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/lz2_south_cas) +"tvH" = ( +/obj/structure/machinery/compressor{ + dir = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "twS" = ( /turf/open/floor{ dir = 1; icon_state = "asteroidwarning" }, /area/bigredv2/outside/telecomm/lz2_cave) +"tzJ" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Engine Reactor Control" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/engineering) "tAe" = ( /obj/structure/bed, /obj/effect/landmark/objective_landmark/close, @@ -35784,6 +37837,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"tBD" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y1" + }, +/area/bigredv2/outside/admin_building) "tBK" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe{ @@ -35869,6 +37928,13 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves_lambda) +"tIv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "tIA" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -35877,6 +37943,19 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"tJn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "tJv" = ( /obj/structure/tunnel{ id = "hole3" @@ -35885,6 +37964,15 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"tKr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) "tKC" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/beer{ @@ -35997,9 +38085,10 @@ }, /area/bigredv2/caves/lambda/research) "tTI" = ( -/obj/structure/surface/table, -/obj/item/pizzabox, -/turf/open/floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "tUL" = ( /obj/effect/decal/cleanable/dirt, @@ -36047,6 +38136,17 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) +"uaS" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Engine Reactor Control" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/engineering) "ubY" = ( /obj/structure/barricade/wooden, /turf/open/mars_cave{ @@ -36061,6 +38161,13 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_se) +"ueL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/framed/solaris, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/bigredv2/outside/engineering) "ufu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, @@ -36167,16 +38274,31 @@ icon_state = "delivery" }, /area/bigredv2/outside/telecomm/lz2_cave) +"uoj" = ( +/obj/effect/decal/remains/human, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "upE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigred/ground/garage_workshop) "upV" = ( /obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"urn" = ( +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "usg" = ( /obj/item/tool/warning_cone, /turf/open/floor{ @@ -36253,6 +38375,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"uBi" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "uCa" = ( /obj/effect/landmark/corpsespawner/miner, /turf/open/floor/plating{ @@ -36273,6 +38403,12 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"uDA" = ( +/obj/item/stack/sheet/glass, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "uDI" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A pipe."; @@ -36322,6 +38458,13 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"uGs" = ( +/obj/structure/surface/table, +/obj/effect/decal/cleanable/ash, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "uGz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -36357,6 +38500,15 @@ icon_state = "asteroidfloor" }, /area/bigred/ground/garage_workshop) +"uJj" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "uJu" = ( /obj/item/robot_parts/robot_component/diagnosis_unit{ pixel_y = 15 @@ -36381,6 +38533,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"uKH" = ( +/obj/structure/stairs/perspective{ + dir = 6; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "uNW" = ( /obj/effect/decal/cleanable/blood{ dir = 8; @@ -36444,6 +38606,13 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/space_port_lz2) +"uTO" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "uUV" = ( /obj/structure/prop/server_equipment/yutani_server/broken, /turf/open/floor/greengrid, @@ -36454,6 +38623,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"uVn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/caves_sw) "uWo" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -36477,6 +38652,13 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) +"vbp" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vcm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -36504,6 +38686,17 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"vdl" = ( +/obj/effect/decal/cleanable/liquid_fuel, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vdS" = ( /obj/item/explosive/grenade/incendiary/molotov{ pixel_x = -10; @@ -36553,6 +38746,14 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"vin" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) "vis" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -36653,12 +38854,29 @@ icon_state = "wood" }, /area/bigredv2/outside/library) +"voG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vpu" = ( /obj/item/weapon/twohanded/folded_metal_chair, /turf/open/mars_cave{ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"vpx" = ( +/obj/structure/platform, +/obj/structure/flora/jungle/planttop1{ + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "vpY" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "eta"; @@ -36799,6 +39017,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"vCf" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "vCU" = ( /turf/open/mars_cave{ icon_state = "mars_cave_16" @@ -36865,6 +39090,19 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_virology) +"vOs" = ( +/obj/structure/coatrack{ + pixel_x = 12 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/storage/windbreaker/windbreaker_gray{ + pixel_x = 11; + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "vPP" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -36914,6 +39152,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"vTt" = ( +/obj/structure/surface/table, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vVl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Toilet" @@ -36923,6 +39168,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"vVz" = ( +/obj/structure/machinery/power/geothermal{ + name = "Reactor Turbine"; + power_generation_max = 100000 + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "vVF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -36935,6 +39189,12 @@ "vVZ" = ( /turf/closed/wall/solaris, /area/bigredv2/outside/filtration_cave_cas) +"vWm" = ( +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vXp" = ( /obj/structure/machinery/light{ dir = 8 @@ -37008,16 +39268,31 @@ }, /area/space) "weO" = ( -/obj/structure/closet/secure_closet/medical_wall, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" +/obj/structure/closet/secure_closet/medical_wall{ + pixel_y = -5 }, +/turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) "wfd" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"wfk" = ( +/obj/structure/filingcabinet/medical{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet/medical{ + density = 0; + pixel_x = 7; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "wfm" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -37065,7 +39340,9 @@ "whE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "whZ" = ( /obj/effect/decal/cleanable/blood/oil/streak, @@ -37084,10 +39361,9 @@ /area/bigred/ground/garage_workshop) "wiK" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor{ + icon_state = "podhatchfloor" }, -/turf/open/floor, /area/bigredv2/outside/engineering) "wjW" = ( /obj/structure/platform/shiva{ @@ -37135,6 +39411,12 @@ icon_state = "mars_cave_19" }, /area/bigredv2/caves_north) +"wpn" = ( +/obj/structure/closet/radiation, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "wpT" = ( /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/mars, @@ -37170,7 +39452,16 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) +"wtG" = ( +/obj/structure/machinery/computer3/server/rack, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "wtJ" = ( /obj/effect/decal/cleanable/blood{ @@ -37215,14 +39506,34 @@ }, /area/bigredv2/outside/virology) "wvK" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/outside/admin_building) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) "wvR" = ( /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/caves/lambda/virology) +"wwT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/engineering) +"wxo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) +"wyF" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -37242,6 +39553,10 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"wCs" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/carpet, +/area/bigredv2/caves/lambda/breakroom) "wDa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -37265,12 +39580,14 @@ }, /area/bigredv2/caves_north) "wFL" = ( -/obj/structure/surface/table, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/hazard{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor{ + icon_state = "darkyellow2" }, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, /area/bigredv2/outside/engineering) "wFO" = ( /turf/open/mars_cave{ @@ -37288,6 +39605,24 @@ /obj/structure/closet/firecloset/full, /turf/open/mars, /area/bigredv2/outside/c) +"wGD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "wGF" = ( /obj/item/tool/warning_cone, /turf/open/floor{ @@ -37301,6 +39636,16 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"wHx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "wIw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -37356,6 +39701,19 @@ icon_state = "mars_cave_9" }, /area/bigredv2/caves_north) +"wMM" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "wMQ" = ( /obj/structure/largecrate/random/secure, /turf/open/floor, @@ -37434,6 +39792,22 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"wVw" = ( +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"wVB" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) "wVQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_17" @@ -37469,6 +39843,16 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) +"wYE" = ( +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "wZC" = ( /turf/open/mars{ icon_state = "mars_dirt_11" @@ -37503,6 +39887,15 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"xej" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "xeN" = ( /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/mars_cave{ @@ -37801,8 +40194,19 @@ /obj/structure/machinery/power/apc{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) +"xBn" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "xBr" = ( /obj/item/ore{ pixel_x = 9 @@ -37825,8 +40229,8 @@ "xDW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) "xFZ" = ( @@ -37889,6 +40293,13 @@ /obj/structure/prop/server_equipment/yutani_server, /turf/open/floor/greengrid, /area/bigredv2/caves/lambda/research) +"xKG" = ( +/obj/structure/bed/sofa/south/grey/right{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "xLM" = ( /obj/structure/machinery/light{ dir = 1 @@ -38043,6 +40454,17 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"xXq" = ( +/obj/structure/barricade/handrail{ + dir = 1; + layer = 3.01; + pixel_y = 9 + }, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "xXP" = ( /obj/structure/prop/invuln/minecart_tracks/bumper, /turf/open/mars_cave{ @@ -38079,6 +40501,12 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"yar" = ( +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "ybk" = ( /turf/open/mars_cave{ icon_state = "mars_cave_17" @@ -38168,6 +40596,20 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ygP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "yha" = ( /obj/structure/surface/table, /obj/item/device/radio{ @@ -38195,8 +40637,8 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "yjU" = ( @@ -38206,6 +40648,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"yjV" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/gm/river, +/area/bigredv2/outside/engineering) +"ykR" = ( +/turf/closed/wall/mineral/uranium, +/area/bigredv2/outside/engineering) "ykW" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; @@ -43031,8 +45482,7 @@ aae aaf aai aah -aah -aah +aaF aah aah aah @@ -43050,6 +45500,7 @@ aah aah aah aah +aaF aah aeh aaf @@ -43249,7 +45700,6 @@ aaf aaj aah aah -aaF aah aah aah @@ -43265,7 +45715,8 @@ aah aah aah aah -aaF +aah +aah aah aah aei @@ -44266,8 +46717,8 @@ aao aao aao aao -uHQ weO +pSa wtj rKs wJd @@ -44433,7 +46884,7 @@ aSB bgX bhu bie -bie +bje bie bie bie @@ -44451,7 +46902,7 @@ bie bie bie bie -bie +bje bie bsb eWd @@ -44651,7 +47102,7 @@ bgX bhv bie bie -bje +bie bie bie bie @@ -44667,7 +47118,7 @@ bie bie bjo bie -bje +bie bie bie bsc @@ -44985,7 +47436,6 @@ aaf aaj aah aah -aaF aah aah aah @@ -45001,7 +47451,8 @@ aah aah aah aah -aaF +aah +aah aah aah aei @@ -45201,8 +47652,7 @@ aae aaf aak aah -aah -aah +aaF aah aah aah @@ -45220,6 +47670,7 @@ aah aah aah aah +aaF aah aej aaf @@ -46387,7 +48838,6 @@ eWd bhv bie bie -bje bie bie bie @@ -46403,7 +48853,8 @@ bie bie bie bie -bje +bie +bie bie bie bsc @@ -46603,7 +49054,7 @@ aSB bgX bhw bie -bie +bje bie bie bie @@ -46621,7 +49072,7 @@ bie bie bie bie -bie +bje bie bsd eWd @@ -47483,7 +49934,7 @@ ayf bsa ayf axX -bmi +maD boD axX bpx @@ -47700,8 +50151,8 @@ ayf ayf ayf azb -bmi -bmi +hhK +sCt azb bpx ufD @@ -47917,8 +50368,8 @@ aFc aFc aFc azb -bmi -bmi +hhK +sCt azb bpx ufD @@ -48134,8 +50585,8 @@ aFc aFc bme azb -bmi -bmi +hhK +sCt azb bpx ufD @@ -48351,8 +50802,8 @@ aFc aFc bme azb -bmi -bmi +hhK +sCt azb bpy ufD @@ -48568,8 +51019,8 @@ aFc aFc bme azb -bmi -bmi +hhK +sCt azb bme bqe @@ -48785,8 +51236,8 @@ aFc bme bme azb -bmi -bmi +hhK +sCt axX azB axX @@ -49002,15 +51453,15 @@ bme bme bme azb -bmi -bmi -bmi -bmi +hhK +mSS +btr +kVT azb bqI bre -bmq -bob +maH +hdc bsJ axX bsI @@ -49219,16 +51670,16 @@ bme bme bme azb -bmi -bmi -bmi -bmi +hhK +nVq +nVq +sCt azb -bmi -bmi -bmi -bmi -bmi +hhK +nVq +nVq +nVq +sCt azb bme bme @@ -49436,15 +51887,15 @@ bme bme bme azb -bmi -bmi -bmi -bmi +hhK +nVq +nVq +nVq bqf -bmi -bmi -bmg -bre +nVq +nVq +tTI +rzb bsK axX bme @@ -49653,15 +52104,15 @@ bme bme bme azb -bmi -bmi -bmi -bmi +hhK +nVq +nVq +sCt azb -bmi -bmi -bmg -bre +hhK +nVq +tTI +rzb bsL azb bme @@ -49870,15 +52321,15 @@ bme bme bme azb -bmi -bmi -bmi -bmi +fLl +btu +btu +gdx azb -bmi -bmi -bmi -bmi +fLl +nVq +btu +nVq bsM axX bpx @@ -50308,16 +52759,16 @@ boj boG boj axX -bmi -bmi -bmi +jYF +sap +nVq brI -bmi +sCt azb bpx bpx bpx -aao +bpx aao aao aao @@ -50488,7 +52939,7 @@ aOB aOB aNm aoH -jjt +cec aXH asK aZn @@ -50521,21 +52972,21 @@ bmf bmf bmf bnQ -bmi -bmi +ygP +cud bpe axX jYF -bmi -bmi -bmg -bmi +sap +nVq +tTI +sCt azb kdh -aao -aao -aao -aao +bpx +bpx +bpx +bpx aao aao euF @@ -50736,23 +53187,23 @@ bli bsX bmg bmO -bmy -bmy -bmg -bmg -bmi +vdl +vdl +rhP +tTI +sCt axX ayr ayr brg -bmg -bmi +tTI +sCt axX axX axX -aao -aao -aao +bpx +bpx +bpx aao aao aao @@ -50950,26 +53401,26 @@ bfB bbe bbe blj -blL +dvC bmh bmP bnq -bnq -bnq +qGY +qGY boH bpf bpz -bmg +lck bqJ -bmg +tTI brJ -bpF +niQ bsN bsZ axX -aao -aao -aao +bpx +bpx +bpx aao aao aao @@ -51176,17 +53627,17 @@ ayr boI bor ayr -bmg -bmg -bmg +tTI +tTI +tTI brK -bor -bmg -bmi +cla +tTI +sCt axX -aao -aao -aao +bpx +bpx +bpx aao aao aao @@ -51387,25 +53838,23 @@ aZr axX bmj bmQ -bmQ -bnR +tju bnR -bnW +ewv +bYW bpO bpA -bop +eSm bqK -bnq -bop +kNK +slG bqN -bmg +tTI bta -axX -aao -aao -aao -aao -aao +azb +nLw +bpx +bpx aao aao aao @@ -51414,9 +53863,11 @@ aao aao aao wog +oQI +wog +wog +wog wog -trk -jXX aao uCD aao @@ -51611,30 +54062,30 @@ ayr ayr ayr ayr -bor +nPz bri -bmi +nVq bsm -bmi +nVq btb -axX -aao -aao -aao -aao -aao -aao -aao -aao +azb +nLw +bpx +bpx aao aao aao wog wog -hiY -dxV -dxV -dxV +wog +wog +sAG +wog +oQI +wog +wog +wog +aao aao aao aao @@ -51826,20 +54277,18 @@ bnr bok bnr bpi -bmi +kVT ayr -bor -bmi +nPz +nVq brL -bmi -bmi +nVq +nVq btc axX -aao -aao -aao -aao -aao +nLw +bpx +bpx aao aao aao @@ -51847,11 +54296,13 @@ wog wog wog wog -trk -jXX -dxV -qUS -dxV +wog +wog +wog +icQ +wog +aao +aao aao aao aao @@ -52038,38 +54489,38 @@ bll axX bmm bmS -bmg -bmg -bsu +tTI +tTI +iQC boK -bmi -bmg +nVq +cKu ayr -bor +nPz brj brM aMB -bmg +gwg btd axX +nLw +nLw aao aao aao +giB +giB +giB +giB +giB +giB +giB +giB +giB +aao aao aao aao -wog -wog -trk -wog -wog -jXX -dxV -dxV -dxV -dxV -buz -sDC aao aao qUS @@ -52253,11 +54704,11 @@ aZu aZu blm axX -bmm -bmm -bmi +mhZ +pgk +btu bnS -bmg +tTI boL bpj bpC @@ -52269,27 +54720,27 @@ ayZ axX axX axX +axX +axX +axX +axX +axX +axX +axX +axX +wwT +axX +axX +axX +axX +axX +axX +axX +axX aao aao aao aao -aao -aao -aao -jXX -dxV -qgY -hiY -dxV -dxV -dxV -dxV -dxV -qgY -wog -aao -aao -aao buz wog wog @@ -52479,32 +54930,32 @@ ayr ayr ayr ayr -bor -bmi -bmg -bso -bso -bso +cla +btr +lck +kVT +ayZ +bsP +ayZ +ouh +lck +jXJ +btr +sDO +pOg +saX +pVv +saX +eIN +lck +btr +ayZ +btr +kVT +axX axX aao aao -aao -aao -aao -aao -aao -dxV -dxV -qgY -hiY -dxV -pYt -dxV -pYt -dxV -iNR -wog -wog wog wog wog @@ -52690,37 +55141,37 @@ axX bmn bmT ayr -bmg -bmg +nzN +tTI boM ayr bpD -bmi +btr bqM -bmi -bmi -bmi -bmi +rnV +nVq +tTI +nIi bte +nIi +btu +gwg +gwg +gwg +tTI +btu +gwg +gwg +tTI +btu +btu +ndw +fUp +nVq +sCt +wpn axX aao -aao -aao -aao -aao -aao -dxV -dxV -dxV -qgY -hiY -dxV -dxV -buz -sDC -dxV -dxV -qgY wog wog wog @@ -52907,37 +55358,37 @@ axX bmn bmU bns -bmi -bmg +hhK +tTI boN ayr bpE -bmi -bor -bmi -bmi -bso -bso -bso +nVq +cla +nVq +nVq +gfX +axX +axX +axX +iig +iig +iig +mqh +fEv +iig +iig +ayZ +fEv +ueL +ueL +ayZ +axX +fEv +ayZ +axX axX aao -aao -aao -aao -aao -dxV -dxV -dxV -buz -wog -hiY -dxV -buz -wog -hiY -dxV -dxV -qgY wog wog wog @@ -53125,36 +55576,36 @@ bmn bmV ayr bnV -bmg -bmg +tTI +cKu ayZ bpF -bop +slG bqN -bmi -bmi -bmi -bmi +nVq +nVq +uDA +bsP bsP axX +hYB +iAI +iAI +dsy +iSz +hYB +iAI +wVB +kka +pog +iAI +wVB +ayZ +ndw +sCt +axX aao aao -aao -aao -dxV -dxV -buz -ibZ -wog -wog -wog -ibZ -wog -wog -wog -sDC -dxV -iNR wog wog wog @@ -53342,36 +55793,36 @@ ayr ayr ayr xAX -bmg -bmg +tTI +cKu ayZ -bor -bmg +nPz tTI -brm -bmi -bmi -bmi -brm +tTI +tTI +dsm +mSS +mij +kVT +dhN +duA +iNR +ykR +iaC +iSz +duA +iNR +iaC +kka +duA +ykR +iaC +ayZ +hhK +sCt axX aao -aao -dxV -aao -dxV -dxV -qgY -wog -wog wog -wog -aao -wog -wog -wog -jXX -dxV -dxV qgY wog hiY @@ -53556,39 +56007,39 @@ asK asK axX dWl -bmi -bmi +btr +btr bnW -bop -bmz +slG +ksO bpk bpM -bmi -bmi -bmi -bmi -bmi -bmi +slG +slG +slG +slG +slG +dWd sCt -axX -aao -aao -dxV -dxV -dxV -dxV +dhN +duA iNR -wog -wog -aao -aao -aao +iNR +iaC +iSz +duA +iNR +iaC +kka +duA +iNR +iaC +ayZ +hhK +sCt +axX aao wog -hiY -dxV -dxV -buz wog wog hiY @@ -53772,40 +56223,40 @@ bjx bjx bjw axX -dWl -bmi -bmg -bmg -bmg -bmg +lmi +nVq +tTI +tTI +tTI +cKu ayZ bpH -bmg -bmg -bmg +kmx +gwg +gwg brO -bmg -bmi -dWl +gwg +cla +gdx +dhN +nug +yjV +ykR +iaC +iSz +duA +iNR +iaC +kka +duA +ykR +iaC +ayZ +hhK +sCt axX -aao -aao -dxV -qUS -pYt -dxV -dxV -qgY -aao -aao -aao -aao -aao +uVn wog -hiY -dxV -dxV -iNR wog wog hiY @@ -53990,39 +56441,39 @@ bjB blq axX bmp -bmi -bmg +nVq +tTI bnX -bmg +tTI aLP ayZ bpI -bmg +cKu axX axX axX axX +uaS axX axX axX -aao -aao -aao -dxV -dxV -dxV -dxV -qgY -aao -aao -aao -aao -qUS +duA iNR -jXX -dxV -dxV -dxV +iaC +iSz +nug +rUN +oIK +kka +duA +iNR +iaC +ayZ +hhK +sCt +axX +dQw +wog qgY wog wog @@ -54207,39 +56658,39 @@ bkp blq axX bmq -bmi +nVq bnt -bmg -bmi +tTI +nVq boR ayr -bor -bmi +nPz +sCt axX brn -bmq -trr -bpl +jDT +vTt +cla btr -axX -aao -aao -aao -dxV -dxV -dxV -dxV -qgY +jTk +dhN +duA +ykR +iaC +pWs +vVz +vVz +vVz +jxA +duA +ykR +iaC +ueL +nzN +sCt +tcP +dQw wog -aao -aao -aao -dxV -dxV -dxV -dxV -dxV -buz wog wog wog @@ -54424,38 +56875,38 @@ bjA blq axX trr -bmg -bmg -bmi -bmi -fOK +tTI +tTI +nVq +nVq +wyF ayZ bpH -bmg +cKu axX bro brP slG -bmg -trr -axX -aao -aao -aao -aao -dxV -dxV -buz -wog -wog -aao -aao -dxV -dxV -pYt -dxV -dxV -buz +bqN +btt +uGs +gmm +duA +iNR +iaC +gUD +btr +jxS +btr +oWp +duA +iNR +iaC +ueL +nzN +cKu +tcP +rvS wog wog wog @@ -54602,7 +57053,7 @@ aHF aHF apC apC -apC +apJ apJ apJ apC @@ -54612,7 +57063,7 @@ apC apC apJ apJ -apC +apJ apC apC apC @@ -54641,38 +57092,38 @@ bjA blq axX bms -bmg +gwg bnu bnY -trr +hcH boS ayZ btK -bnq +tTI bqP -bop -bop -bpM -bmg -bts +fXm +wMM +gVl +tTI +nVq +qUF +dhN +duA +ykR +iaC +dBU +guu axX -aao -aao -aao -aao -aao -buz -wog -wog -wog -wog -wog -ibZ -sDC -dxV -dxV -buz -wog +cNb +nuz +duA +ykR +iaC +ayZ +hhK +cKu +axX +rvS wog wog wog @@ -54825,19 +57276,19 @@ aRT aof aTV mGS -aTV +tap aof aNK aXL +bdo aof -aYL aZz -aZS -aZS -aZS -aZS -aZz -bcM +aOO +aOO +aOO +aOO +cXG +aOO apC apC aHD @@ -54869,27 +57320,27 @@ bqk axX wiK fgE -bor -cFb +sap +tTI btt +nmU +dhN +duA +iNR +iaC +xXq +btu +uJj +gwg +voG +duA +iNR +iaC +ayZ +hhK +sCt axX -aao -aao -aao -aao -aao -wog -wog -trk -trk -wog -wog -wog -wog -ibZ -ibZ -wog -wog +rvS wog wog trk @@ -55038,23 +57489,23 @@ aGD aMf aPL aMf -aMf +aXk aof aTV -aOM aTV +din aof -aNL -aUb +aWH +aOM +jna asT -aYM -aZA -aZA +aZC +aZC baG -aZA +aZC baG -aZA -bcN +aZC +aOO bdO apC aHD @@ -55075,40 +57526,40 @@ bjH blq axX bmt -bmi +btr fOK -trr -bmq +pKP +egL ayZ bpl bpL -bmg +cKu axX -bmi +jAJ brR -bor -bmi +nnU +nVq btu +gHV +dhN +duA +ykR +iaC +pWs +vVz +vVz +vVz +jxA +duA +ykR +iaC +ayZ +nzN +sCt axX -aao -aao -aao -aao -wog +rvS wog jXX -dxV -dxV -iNR -wog -wog -wog -wog -wog -aao -aao -aao -jXX pYt dxV qgY @@ -55258,21 +57709,21 @@ aQW aRU aof aTU -aOM +wGD aTV aof aYU +aOM aUb asT -aYM aZB aZT aIY bbj caN bcE -bcN -aYO +aOO +aOO apC aHD aBR @@ -55292,37 +57743,37 @@ bjH blq axX bmu -bmi +nVq bnw bnZ boq azE -bmi -bor +hhK +cla bql axX axX axX -dQZ axX +tzJ axX axX -aao -aao -aao -wog -wog -hiY -dxV -dxV -pYt -dxV +axX +duA iNR -wog -wog -trk -trk -aao +iaC +iSz +hYB +iAI +wVB +kka +duA +iNR +iaC +ayZ +nzN +sCt +axX aao aao aao @@ -55466,7 +57917,7 @@ awQ aJl aKo aKo -aKo +aSX aMF aNz aKo @@ -55475,21 +57926,21 @@ aQX aRV aof aTV -aOM +gWU aVS aof aXg +aOM aUb -asT -aYM -aZA +aof +aZC aZU -aZA +aZC aZU -aZA +aZC bcF -bcN -aYO +aOO +aOO apD aHD aBR @@ -55514,32 +57965,32 @@ bnx boa bor ayZ -bmi -bor -bmg -bmi -bmi -bmi -bor -bmg +hhK +cla +bZJ +btr +btr +jMn +btr +tTI kVT -axX -axX -aao -aao -wog -wog -wog -sDC -dxV -dxV -dxV -dxV +dhN +hYB +ojD +ykR +iaC +iSz +duA iNR -jXX -dxV -aao -aao +iaC +kka +duA +ykR +iaC +iig +nzN +sCt +axX aao aao aao @@ -55683,7 +58134,7 @@ aDN ayN aKp aQW -aMf +aTb kmm aNA aMf @@ -55691,13 +58142,13 @@ aMf aQY aMf aSQ +tJn +pyU +tJn +cJa +iZc aOM aOM -aOM -aSQ -aNL -aUb -asT aYN aZC aZC @@ -55705,8 +58156,8 @@ aZC aZC aZC bcG -bdl -aYO +aOO +aOO apD aHD aBR @@ -55728,39 +58179,39 @@ axX bmw bmX bAo -bmg +tTI bos boU -bop -bpM -bmi -bmi -bmi -bmi -bor -bmg -bmi +slG +cZB +cOa +lEi +lEi +tTI +nVq +tTI +sCt +dhN +duA +iNR +iNR +iaC +iSz +duA +iNR +iaC +kka +duA +iNR +iaC +ayZ +hhK +sCt axX aao aao aao aao -wog -wog -wog -ibZ -ibZ -sDC -dxV -dxV -dxV -dxV -aao -aao -aao -aao -aao -aao aao aao wog @@ -55908,22 +58359,22 @@ aPM aQZ aRX aof -aTX +mrH aVj mrH aof -aNL +uKH +aOM aUb -asT -aYO -aYO -aYO -aYO -aYO -aYO +aof +aOO +aOO +aOO +aOO +aOO bcH -bdm -aYO +aOO +aOO apC aHD aBR @@ -55943,42 +58394,42 @@ bjH blr axX bmx -bmW +rdr bnz bob -bmi +gdx ayZ -bmy -bor +bcg +cla bpm -bmi -bre -bmr +izb +rYr +tTI iQC -bob -bmi +nVq +vWm +dhN +duA +iNR +ykR +iaC +iSz +duA +iNR +iaC +kka +duA +ykR +iaC +ayZ +hhK +sCt axX aao aao aao aao aao -wog -wog -wog -wog -hiY -dxV -dxV -aao -aao -aao -aao -aao -aao -aao -aao -aao aao aao wog @@ -56118,7 +58569,7 @@ alu aKq aHF aHF -apC +apD aNC aMf aPN @@ -56130,19 +58581,19 @@ aof aof aof aNL +aOM aUb aof -asT -asT -asT +aof asT asT asT aof -bdn +sRy +aof aof apC -aHD +wxo aBR aBR bhi @@ -56165,32 +58616,32 @@ ayZ ayr ayr ayr -bpe -bor -bmi -bmi -bre +ktY +cla +vCf +mlV +lqo nVq eGM -bob -bmi +btu +dyH +axX +nug +rUN +rUN +oIK +iSz +nug +rUN +oIK +kka +nug +rUN +oIK +ayZ +slC +sCt axX -aao -aao -aao -aao -aao -aao -aao -wog -aao -aao -qUS -aao -aao -aao -aao -aao aao aao aao @@ -56337,9 +58788,9 @@ aHF aHF apD aND +aXk aMf -aMf -aQZ +aZS aof aSR aTY @@ -56347,19 +58798,19 @@ aTY aTY aWC aXj -aXM +aOI aYh -aRd -aRd +oDW +oFY bcI -aRd +bcJ aRd aVl -bcI +qoN bdo -aXL -apC -aHD +apD +bhU +wxo aBR aBR bhi @@ -56379,36 +58830,36 @@ bsX bmy bmZ bmZ -bmO -bmg +mPK +lck boV -bmi +slC bpN -bmi -bmi -bre -fOK +bqo +bqo +sBm +tTI wFL -bob -bmg axX -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao +axX +axX +ayZ +ayZ +ayZ +ayZ +fEv +ayZ +sNP +ueL +gPh +sNP +ayZ +ayZ +axX +fEv +ayZ +axX +axX aao aao aao @@ -56561,21 +59012,21 @@ aof aSS aTZ aVk -aVk +bMa aof -aSV +mEH aOM aYi -aOM -aOM +xBn +nZD aPS aOM aOM aOM aPS -aOM -aUb -apC +bdl +apD +bhU aHD aBR aBR @@ -56599,16 +59050,32 @@ bmz boc bmz xDW -bop +eSm +jXf +eSm +ebr bpO -bop -bop -bop -bnq -cuF -bmi -bmi -axX +bpf +tTI +nIi +gZc +nIi +btr +lck +lck +lck +tTI +lck +lck +ouh +tTI +btr +btr +slC +fUp +nVq +sCt +wpn axX aao aao @@ -56618,22 +59085,6 @@ aao aao aao aao -bub -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao wog wog wog @@ -56780,19 +59231,19 @@ aof aof aof aof -aSV -aOM +mEH aOM +vpx aFd -aOM +khP aZW aOK bbk aOK -bcJ +aPS bdp -aUc -apC +apD +aHF aHD aBR aBR @@ -56819,30 +59270,30 @@ axX axX axX axX -axX -bmi -bmg -bor -bmg -bmi -axX +wYE +lTM +bqM +pMi +ayZ +bsP +ayZ +btu +iFa +snv +btu +gFR +tvH +gML +tvH +gML +gFR +btu +btu +ayZ +btu +gdx axX axX -gNH -aao -bjA -bjA -bjA -bjH -bub -bub -bub -aao -aao -aao -aao -aao -aao aao aao aao @@ -56972,7 +59423,7 @@ axC alu ayV ayV -bBg +ayV alu aHF aMg @@ -56996,12 +59447,12 @@ aST aRd aVl aRd -aRd +bcJ aSW aOM aYk -aOM -aOM +dBm +pxH aZX aof aof @@ -57034,31 +59485,31 @@ bjx bjx bjx bjx -bjx bjw axX +axX bru -bmg bqM -bmi -bmi +sDZ +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX +axX axX axX axX axX -bjY -bjA -bjA -bjA -bjH -bub -bub -bub -aao -aao -aao -aao -aao aao aao aao @@ -57189,7 +59640,7 @@ axE alu ayW ayV -bBg +ayV alu aHD aBR @@ -57211,11 +59662,11 @@ aRc aof aSU aUa +aXM aOK aOK aOK -aXk -aOK +hkY aYl aYS aOM @@ -57251,17 +59702,17 @@ bjA bjA bjA bjA -bjA -blq +blu +bjw axX brv -bmi bos -bop -bop -bop -bop -boq +szy +vbp +vbp +vbp +vbp +tub axX bjY bjA @@ -57427,11 +59878,11 @@ aof aof aof aSV -aUb -aof -aof +bdl aof aof +kRK +kRK aof aof aYT @@ -57472,12 +59923,12 @@ bjA blq axX brw -bmi -bmg +btu +pRG brO bti -bpC -bmi +idM +ndw bor axX bjY @@ -57641,17 +60092,17 @@ apD aNI aRd bcI -aRd +bcJ aRY aSW -aUb -aof +bdl +kRK aVT aWD aWD aXN -aof -aYU +kRK +aWH aOM aZY aof @@ -57659,7 +60110,7 @@ bbm aJb bcN aof -aJT +wfk apC aHD aIn @@ -57855,27 +60306,27 @@ aBR aBR aMc apD -aNJ -aOK +aUd +aXM aPS aOM aOK aOK aUc -aof +aYm aVU aOM aOM aXO -aof +kRK aNL aOM aZX aof -aZU +fhy aZA bcN -aOO +kIv aOO apC aHD @@ -57909,9 +60360,9 @@ bjx bjx bjw ayr -bmq -bmq -bmi +tdN +maH +slC bor ayr bjY @@ -58128,7 +60579,7 @@ blq ayr bmq bqo -bmi +nVq btJ ayr bjw @@ -58290,21 +60741,21 @@ aBR aMc apD aNK -aOL +aXL aPS aOM aof -wvK -aSX +aTa +aTa aof -aVU +oWe aOM aXl aXP aof aNL aOM -aZX +szi aof aNQ aOO @@ -58343,10 +60794,10 @@ bjy bjy blq bsX -bmi -bmi -bmi -btK +nVq +nVq +nVq +uBi bua buo buo @@ -58512,16 +60963,16 @@ aPS aOM aRZ aTa -aUd -aof +aTa +aRZ aVU aWE aXm aXQ -aof +kRK aYV aOM -aZX +szi aof aOO bbY @@ -58560,10 +61011,10 @@ bjy bjy blq maD -bmi -bmi -bsu -bor +nVq +nVq +iQC +cla maD bjw bjw @@ -58729,12 +61180,12 @@ aPS aUb aof aSZ -aTa +czS aof aVW aWF aof -aof +kRK aof aYU aOM @@ -58776,12 +61227,12 @@ bkb bkb bkb bjw -awp +ayr btj -bkE -bkE -bpo -awp +nVq +nVq +bor +ayr bjw bjY bjy @@ -58943,18 +61394,18 @@ apC aNN aOM aPS -aUb +bdl aof sLS aUe aof aVX aWG -aof +kRK aNK -aOL -aYW -aOM +mST +iDT +nuw aZX aof aof @@ -58993,12 +61444,12 @@ awp awp awp awp -awp +ayr btk -bkE -bkE -bpo -awp +nVq +nVq +bor +ayr bjw bjY bjy @@ -59157,7 +61608,7 @@ aBR aBR aMc apD -aNL +aWH aOM aPS aRh @@ -59165,20 +61616,20 @@ aof aof aof aof +kRK +kRK aof -aof -aof -aNL -aOM -aOM -aOM +aWH +xej +ole +eSN aPS baI aYO bca bcQ bdr -bdO +nky apC beC aNw @@ -59196,7 +61647,7 @@ aMg awp bkD blx -qeK +aZV bmC bnb bnB @@ -59205,17 +61656,17 @@ bku bmF bmF bpP -bkE -gCx +fBo +nEP brx brU -brx -awp +aCO +ayr btk -bkE +nVq btA -bpo -awp +bor +ayr bjw bjY bjz @@ -59378,24 +61829,24 @@ aNL aOM aPV aRi -aOL -aOL +aXL +aXL aUf aVm aOL aOL aOL aYW -aOM -aOM -aOM +xej +tBD +eSN aZZ upV baJ bcb bcR bcc -aYO +toA apC aTh aIn @@ -59415,24 +61866,24 @@ bmF wtC blT bmD -bmJ +pPo bpp boe awp awp awp bpQ -blX +wvK bqT -blX -blX -blX +wvK +wvK +wvK bsY -bkE -bkE -bkE -bpo -awp +slC +nVq +nVq +bor +ayr bjw bjY bkq @@ -59591,28 +62042,28 @@ aKr aBR aMc apC -aNJ -aOM -aOK +aUd +aYL +aYM aOK aOK aOM aOK aOK aOK -aOM -aOK -aOK -aOM +aYL +aXM aOK -aYS -aUb +wHx +eoU +eSN +bdl aof bbo bcc bcS bcc -aYO +bQe apD aTh aIn @@ -59632,12 +62083,12 @@ bkE bly bly bly -blX -bkE -bkE +wvK +fBo +boe ayF boW -bkE +lTi bpR bnF bnF @@ -59645,11 +62096,11 @@ bry bnF bof dvC -bmF -bmF +eSm +eSm btB btN -awp +ayr bjw bjY bjA @@ -59821,9 +62272,9 @@ aON aof aof aYo -aof -aNL -aUb +rpI +qyi +bdl aof bbp bcc @@ -59846,27 +62297,27 @@ erf aHF awp bkG -blX -blX -blX -bkE -bkE -bkE +wvK +wvK +tKr +vin +fBo +boe ayF orZ -bkE +lTi bpS -blX -blX +wvK +wvK brz brV -bkE -awp -awp -awp -awp -awp -awp +boe +ayr +ayr +ayr +ayr +ayr +ayr bjw bjY bjA @@ -60029,17 +62480,17 @@ aNO aOO aPW aof -aNO +bdm aOO -aPW +vOs aof jAm aOO -aPW +hxs aof aYp aof -aNL +aWH aUb aof bbq @@ -60064,20 +62515,20 @@ bkf awp bkH blA -bkE -bkE +wtG +jRn bnd -bnf -boe +wtG +wVw ayF boW -bkE +lTi bpo -bkE +fBo bqV brA brW -gCx +urn awp bjw bjx @@ -60246,20 +62697,20 @@ aNP aOO aOO aof -aNP +bdn aOO aOO aof aNP -aOO -aOO +pdG +qXi aof aYq aof -aNL +aWH aUb aof -bbo +xKG aTa bcV bdt @@ -60463,12 +62914,12 @@ aNQ aGG aPX aof -aNQ -aTb +pNU +aOO aUg aof aNQ -aWH +aOO aXn aof aYr @@ -60477,10 +62928,10 @@ aNJ aUc aof bbr +toA aYO -aYO -aTa -aYO +fPB +bQe bek bjZ aMg @@ -60507,7 +62958,7 @@ awM boX bpn bpp -bkE +fBo bnb brB bkN @@ -60726,8 +63177,8 @@ bpo bpU bqv bpU -blX -blX +wvK +wvK bsC awp bjY @@ -60938,12 +63389,12 @@ awM awM awM awM -boX +uTO bpo bpV -bkE +bkU bqX -blX +wvK brY bsD awp @@ -61149,19 +63600,19 @@ aHF awp bkK blB -blX -bkE +tIv +nwB bnf bnf bnf bou -bkE +qHc bpo bpU -bkE +bkU bpU -blX -blX +wvK +wvK bsE awp bjY @@ -61365,19 +63816,19 @@ erf aHF awp bkK -blX -blX -blX -blX +bBg +wvK +wvK +wvK bnE -blX -blX +wvK +wvK boZ bpo bpV -bkE +bkU bqX -bkE +fBo brZ bsF azG @@ -61582,8 +64033,8 @@ auX aHF awp bkL -bkE -bkE +qHc +fBo bly bng bnF @@ -61595,7 +64046,7 @@ bpU bqw bpU brC -blX +nlJ bsG azG btn @@ -61799,20 +64250,20 @@ auX aHF awp bkM -bkE +fBo blV bmF bnh -blX -blX +wvK +wvK bly bpa bpq -blX -blX -bkE -blX -bly +wvK +wvK +fBo +wvK +qqw bsG azG bjY @@ -62021,15 +64472,15 @@ blW ccP bpo bnH -bkE +yar box -bkE +yar iyd iyd eKU -bkE -bkE -blX +yar +yar +aZJ bsG awp bjY @@ -62454,7 +64905,7 @@ blC awp bmG bpo -bkG +lYH awp bWk bWk @@ -62888,7 +65339,7 @@ blC awp bmG bpo -bkE +boe awp bWk bMf @@ -63322,7 +65773,7 @@ blD cGT bmH bnl -blX +pBv ayF vjc bpc @@ -63534,10 +65985,10 @@ asv beI bgx awp -blX -blX +bBg +wvK blY -blX +wvK bnm bnK ayF @@ -63968,11 +66419,11 @@ asv bjL bkg awp -blX +bBg bly bma -bmJ -bmJ +pPo +pPo bnM ayF bWk @@ -64188,7 +66639,7 @@ awp bkS bly bly -blX +wvK bno bnN ayF @@ -64402,8 +66853,8 @@ aZF bjM bgx awp -bkK -bly +dQZ +haT bmb gCx bnp @@ -74321,12 +76772,12 @@ adZ aqX arE asn -htp +gvI amk ajm -aqc +sUQ avM -aqc +lAF aka amk tQw @@ -74542,9 +76993,9 @@ atc amk auj auY -auY +fnv awz -ahv +aqc amk aao tQw @@ -74969,14 +77420,14 @@ adZ afd afd adZ -aqY +amW arF arF ate -amW -aqc -auY +amk +rUs auY +fnv awB aqc amk @@ -75629,7 +78080,7 @@ agd agd amX awC -axp +kIF axp ayA amk @@ -75848,7 +78299,7 @@ avO auY aqc axT -auY +wCs amk anI aAM @@ -76065,7 +78516,7 @@ auy auY aqc aqc -auY +orT amk anI aAN @@ -76280,8 +78731,8 @@ agd agd amX awD -auY -auY +aEs +aEs ayB amk anI @@ -76487,8 +78938,8 @@ adZ anQ amK adZ -aEs -aGh +sUQ +aqc aqc asp aqc @@ -76705,7 +79156,7 @@ anR amM adZ adZ -aqc +aGh ahv ajd aqc @@ -76923,7 +79374,7 @@ anS apv adZ adZ -aqc +auY asr aqc amX @@ -77173,8 +79624,8 @@ aOn aOn aOn aTv -aTA -aUB +tdn +kNP wQC gXp qQn @@ -77390,8 +79841,8 @@ gXp gXp gXp aTw -aTB -aUC +ocR +uoj wQC tQw aWN @@ -77606,7 +80057,7 @@ tQw ahw tQw tQw -gXh +nFH aTv aMT tQw @@ -77824,7 +80275,7 @@ tQw xFZ xFZ aSm -jNO +lMw aMT tQw xFZ @@ -79755,7 +82206,7 @@ aao aao jgW aig -aao +reL aao anI anI diff --git a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm index b1a2ababa604..8f6063172ff5 100644 --- a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm +++ b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm @@ -1,7 +1,9 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "ai" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "ak" = ( /obj/effect/spawner/random/tool, @@ -10,25 +12,35 @@ "al" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "am" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "an" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "ao" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "aq" = ( /turf/closed/wall/solaris/reinforced, @@ -42,13 +54,17 @@ "aD" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "aE" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "aF" = ( /obj/structure/window/framed/solaris, @@ -56,34 +72,51 @@ /area/bigredv2/outside/engineering) "aT" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aU" = ( /obj/structure/surface/rack, /obj/item/device/camera_film, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aV" = ( /obj/structure/surface/rack, /obj/item/device/analyzer, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "aY" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "aZ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "ba" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -91,14 +124,20 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/device/lightreplacer, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/item/stack/sheet/metal, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bc" = ( /obj/structure/machinery/light{ @@ -107,41 +146,58 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/hunter_secondary, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "be" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bf" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/liquid_fuel, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bg" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/mask/breath, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/stack/sheet/metal, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bk" = ( /obj/effect/decal/cleanable/dirt, @@ -149,7 +205,9 @@ dir = 1; pixel_y = -30 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bl" = ( /obj/effect/decal/cleanable/liquid_fuel, @@ -158,7 +216,9 @@ name = "Storm Shutters"; pixel_y = -32 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bm" = ( /obj/structure/bed/chair{ @@ -166,26 +226,35 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bn" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/welding, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bo" = ( /obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bp" = ( /obj/item/folder/yellow, /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bq" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -194,14 +263,18 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engineering Workshop" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/engineering) "br" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bs" = ( /obj/effect/decal/cleanable/dirt, @@ -217,41 +290,60 @@ dir = 1; name = "\improper Engine Reactor Control" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/telecomm/engi) "bv" = ( /obj/structure/bed/chair{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bw" = ( -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bx" = ( /obj/structure/machinery/computer/arcade, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "by" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bz" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/metal, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bA" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bB" = ( /obj/item/stack/sheet/glass, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bC" = ( /obj/effect/decal/cleanable/dirt, @@ -269,19 +361,30 @@ dir = 8 }, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor, +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "bF" = ( /obj/structure/machinery/camera/autoname, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "bG" = ( -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "bH" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/ash, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bJ" = ( /obj/structure/bed/chair{ @@ -290,46 +393,70 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bK" = ( /obj/item/folder/yellow, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bL" = ( /obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bM" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bN" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bO" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bQ" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "bR" = ( /obj/structure/machinery/light{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "bS" = ( /obj/structure/bed/chair/office/light{ @@ -338,13 +465,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/telecomm/engi) "bT" = ( /obj/structure/pipes/vents/pump{ dir = 8 }, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "bU" = ( /obj/item/device/radio/intercom{ @@ -353,21 +485,27 @@ name = "General Listening Channel"; pixel_x = 30 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, /area/bigredv2/outside/telecomm/engi) "bV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bY" = ( /obj/effect/decal/cleanable/dirt, @@ -375,19 +513,27 @@ amount = 30 }, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "bZ" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/dirt, /obj/item/tool/pen, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "ca" = ( /obj/structure/sign/safety/hazard{ pixel_y = -32 }, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "ce" = ( /obj/item/tool/lighter/random, @@ -395,7 +541,9 @@ dir = 4 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "cf" = ( /obj/item/stack/sheet/metal, @@ -411,38 +559,55 @@ /area/bigredv2/outside/engineering) "ch" = ( /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "ck" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/suit/radiation, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, /area/bigredv2/outside/engineering) "cl" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/head/welding, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cn" = ( /obj/structure/machinery/door/airlock/almayer/secure/colony{ dir = 1; name = "\improper Engine Reactor" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/engineering) "co" = ( /obj/structure/closet/radiation, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/engineering) "cp" = ( /obj/item/folder/yellow, /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cq" = ( /obj/effect/decal/cleanable/ash, @@ -453,7 +618,10 @@ /area/bigredv2/outside/telecomm/engi) "cr" = ( /obj/effect/decal/cleanable/molten_item, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "cs" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -462,7 +630,9 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/telecomm/engi) "ct" = ( /obj/structure/machinery/door_control{ @@ -480,7 +650,9 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/telecomm/engi) "cw" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -494,18 +666,24 @@ /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cy" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/constructable_frame, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cz" = ( /obj/structure/surface/table, /obj/structure/machinery/light, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cA" = ( /obj/structure/surface/table, @@ -513,7 +691,10 @@ /obj/item/stack/sheet/metal{ amount = 30 }, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cB" = ( /obj/structure/machinery/light{ @@ -522,7 +703,9 @@ /obj/structure/sign/safety/high_rad{ pixel_x = 32 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "cC" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -534,7 +717,10 @@ /area/bigredv2/outside/engineering) "cD" = ( /obj/structure/machinery/computer/area_atmos, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cE" = ( /obj/structure/machinery/light{ @@ -543,12 +729,17 @@ /obj/structure/sign/safety/high_rad{ pixel_x = -32 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/engineering) "cF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cG" = ( /obj/structure/window/framed/solaris/reinforced, @@ -564,7 +755,9 @@ /obj/effect/landmark/static_comms/net_two{ broken_on_spawn = 1 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, /area/bigredv2/outside/telecomm/engi) "cI" = ( /obj/structure/sign/safety/hazard{ @@ -572,12 +765,16 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "cK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/molten_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/telecomm/engi) "cM" = ( /turf/open/mars, @@ -615,7 +812,9 @@ dir = 1; name = "\improper Engineering Complex" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/engineering) "cY" = ( /turf/open/mars_cave{ @@ -655,7 +854,10 @@ dir = 8 }, /obj/effect/decal/cleanable/ash, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/engineering) "dj" = ( /obj/effect/decal/cleanable/dirt/greenglow, @@ -991,7 +1193,10 @@ /area/bigredv2/outside/engineering) "eI" = ( /obj/effect/decal/cleanable/ash, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/telecomm/engi) "eJ" = ( /obj/effect/decal/cleanable/molten_item, @@ -1024,6 +1229,31 @@ "eO" = ( /turf/closed/wall/mineral/uranium/leaking, /area/bigredv2/outside/engineering) +"fI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) +"gT" = ( +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"im" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) +"iQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "jr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -1034,6 +1264,14 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, /area/bigredv2/outside/lz2_south_cas) +"ng" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) "oE" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "rad_door"; @@ -1041,12 +1279,26 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/telecomm/engi) +"oK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "sU" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/outside/lz2_south_cas) +"to" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "vs" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/telecomm/engi) @@ -1058,6 +1310,19 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/telecomm/engi) +"xl" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) +"xz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/telecomm/engi) "yH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1072,7 +1337,9 @@ /area/bigredv2/outside/lz2_south_cas) "Bo" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/telecomm/engi) "CA" = ( /obj/effect/decal/cleanable/dirt, @@ -1083,6 +1350,26 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/telecomm/engi) +"Dh" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/engineering) +"Dq" = ( +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"ET" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "IE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -1093,12 +1380,31 @@ /obj/structure/window_frame/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/telecomm/engi) +"Lf" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) "LE" = ( /obj/effect/decal/cleanable/ash, /turf/open/floor/plating{ icon_state = "panelscorched" }, /area/bigredv2/outside/telecomm/engi) +"Nv" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/engineering) +"NT" = ( +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/telecomm/engi) "NX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars{ @@ -1116,10 +1422,35 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/telecomm/engi) +"Sz" = ( +/obj/item/stack/sheet/glass, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"SC" = ( +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) +"Tv" = ( +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/telecomm/engi) "Uo" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, /area/bigredv2/outside/telecomm/engi) +"WI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) (1,1,1) = {" au @@ -1131,7 +1462,7 @@ bp by ai bX -bQ +fI cx cG Ah @@ -1161,9 +1492,9 @@ au au an bz -bw +Nv bY -bw +Nv cy cG NX @@ -1192,10 +1523,10 @@ au au au an -bw +Nv bO -bw -bw +Nv +Nv cz aq Ph @@ -1227,7 +1558,7 @@ an bA bP bZ -bQ +WI cA aq Ph @@ -1287,9 +1618,9 @@ au au au au -an +ng bw -bQ +oK ca aq co @@ -1321,8 +1652,8 @@ aU bw br bB -bw -bQ +Nv +fI cn cB cn @@ -1350,11 +1681,11 @@ au au au aV -bw -an -bw -bw -bw +Nv +ng +Nv +Nv +gT aq aq aq @@ -1384,9 +1715,9 @@ au aW ai bs -bw +Nv ew -bB +Sz co co dk @@ -1479,8 +1810,8 @@ au au aZ bQ -bQ -bQ +WI +WI bR ez cC @@ -1510,7 +1841,7 @@ au au au ba -bQ +iQ vs vs vs @@ -1542,7 +1873,7 @@ au au au an -bw +gT vs bE eI @@ -1574,7 +1905,7 @@ au au au aZ -bQ +iQ vs bF bS @@ -1606,12 +1937,12 @@ ak au au bb -bQ +fI bu bG bT -bG -Uo +NT +xz RN eE oE @@ -1670,9 +2001,9 @@ au au au bd -bQ +iQ vs -bG +Tv bU ct RN @@ -1701,7 +2032,7 @@ dR au au au -an +ng bl vs vs @@ -1733,13 +2064,13 @@ dT au au au -an +ng ck bw bw di bw -bQ +fI ew dr cS @@ -1769,8 +2100,8 @@ be bm bv bv -bQ -bw +fI +Nv ez ew dr @@ -1797,11 +2128,11 @@ dT au au au -an +ng bn aE bH -bQ +fI ch ew ew @@ -1829,11 +2160,11 @@ dT au au au -an +ng aD al ce -bw +Nv ew ew cD @@ -1865,8 +2196,8 @@ bf bo bo bJ -bQ -bQ +fI +iQ aq aq aq @@ -1894,11 +2225,11 @@ au au au bg -ai -ai -bg +to +Dh +im bV -bQ +fI cn cE cn @@ -1994,11 +2325,11 @@ au aq bM ao -ai -ai -ai -ai -ai +xl +ET +ET +ET +ET am aq as @@ -2025,13 +2356,13 @@ au au aq bN -bw +Dq cm bR cF aT -bw -an +Nv +Lf aq as as @@ -2062,7 +2393,7 @@ aq aq aq aq -bw +SC cX aq as diff --git a/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm b/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm index 566f892d6fdd..f62f085e7ea2 100644 --- a/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm +++ b/maps/map_files/BigRed/sprinkles/25.vault_v2.dmm @@ -1,508 +1,652 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/mars, -/area/bigredv2/outside/c) +/obj/structure/inflatable/popped/door, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "ab" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6 }, -/area/bigredv2/outside/c) +/turf/open/floor{ + dir = 4; + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "ac" = ( +/obj/item/tool/pickaxe/drill, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_lambda) "ad" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/c) +/obj/effect/glowshroom, +/turf/open/mars_cave, +/area/bigredv2/caves_lambda) "ae" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" +/obj/effect/glowshroom, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_lambda) "af" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars, -/area/bigredv2/outside/c) +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/caves_lambda) "ag" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" +/obj/structure/barricade/wooden, +/turf/open/floor{ + dir = 4; + icon_state = "darkpurplecorners2" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves/lambda/breakroom) "ah" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" +/obj/effect/glowshroom, +/turf/open/mars_cave{ + icon_state = "mars_cave_10" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_lambda) "ai" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" +/turf/open/mars_cave{ + icon_state = "mars_cave_6" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_lambda) "aj" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_cave_11" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_lambda) "ak" = ( +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) +"al" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" + dir = 4; + icon_state = "darkpurplecorners2" }, -/area/bigredv2/outside/c) -"al" = ( -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) "am" = ( -/obj/structure/largecrate/hunter_games_guns/mediocre, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/machinery/door_control{ + id = "sci_br"; + name = "Observation Shutters"; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "an" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/effect/decal/cleanable/mucus, +/obj/structure/machinery/door_control{ + id = "sci_br"; + name = "Observation Shutters"; + pixel_y = 28 + }, +/obj/effect/landmark/corpsespawner/pmc, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "ao" = ( -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "ap" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/sign/safety/bulkhead_door, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves/lambda/breakroom) "aq" = ( -/obj/structure/surface/table, -/obj/structure/machinery/power/apc{ - dir = 1 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y0" }, -/obj/effect/spawner/random/powercell, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) "ar" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/filingcabinet{ + density = 0; + layer = 3.1; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 20 + }, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" }, -/obj/effect/spawner/random/tech_supply, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) "as" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/filingcabinet{ + pixel_x = 7 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -7; + pixel_y = 19 + }, +/obj/structure/filingcabinet{ + pixel_x = -9 + }, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/bigredv2/caves/lambda/breakroom) "at" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/tech_supply, -/turf/open/floor, -/area/bigredv2/outside/storage) +/turf/open/floor/plating/almayer, +/area/bigredv2/caves/lambda/breakroom) "au" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor, -/area/bigredv2/outside/storage) +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/bigredv2/caves/lambda/breakroom) "av" = ( -/obj/structure/surface/table, -/obj/item/tool/extinguisher, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 20 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/bigredv2/caves/lambda/breakroom) "aw" = ( -/obj/structure/largecrate/supply/generator, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/inflatable/popped/door, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "ax" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor, -/area/bigredv2/outside/storage) -"aA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + icon_state = "darkpurplecorners2" }, -/turf/open/floor, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) +"aA" = ( +/turf/template_noop, +/area/template_noop) "aB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4; - layer = 2.4 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y1" }, -/turf/open/floor, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) "aC" = ( -/obj/structure/pipes/standard/simple/hidden/green{ +/obj/structure/machinery/light, +/turf/open/floor{ dir = 4; - layer = 2.4 - }, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - icon_state = "door_locked"; - locked = 0; - name = "\improper Emergency Vault" + icon_state = "darkpurplecorners2" }, -/turf/open/floor, -/area/bigredv2/outside/storage) +/area/bigredv2/caves/lambda/breakroom) "aD" = ( -/obj/structure/largecrate/supply/supplies/water, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/inflatable/popped/door, +/turf/open/floor{ + dir = 4; + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "aE" = ( -/obj/structure/largecrate/random, -/turf/open/floor, -/area/bigredv2/outside/storage) +/turf/open/floor{ + dir = 4; + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "aF" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/door/window/brigdoor/southright, +/obj/item/clothing/accessory/medal/gold{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/clothing/accessory/medal/bronze/science{ + pixel_x = -5 + }, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/bigredv2/caves/lambda/breakroom) "aG" = ( -/obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/almayer{ + id = "sci_br"; + name = "\improper Lambda Observation Shutters" + }, +/turf/open/floor/plating, +/area/bigredv2/caves/lambda/breakroom) "aH" = ( -/obj/structure/largecrate/supply/medicine/blood, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/structure/barricade/wooden{ + dir = 1; + pixel_y = 7 + }, +/turf/open/floor{ + icon_state = "darkpurplecorners2" + }, +/area/bigredv2/caves/lambda/breakroom) "aI" = ( -/obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor, -/area/bigredv2/outside/storage) +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves/lambda/breakroom) "aJ" = ( /obj/structure/machinery/light, -/turf/open/floor, -/area/bigredv2/outside/storage) -"aK" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor, -/area/bigredv2/outside/storage) -"aL" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light, -/obj/effect/spawner/random/powercell, -/turf/open/floor, -/area/bigredv2/outside/storage) -"aM" = ( -/obj/structure/pipes/standard/simple/hidden/green{ +/turf/open/floor/strata{ dir = 4; - layer = 2.4 + icon_state = "white_cyan1" }, -/turf/open/floor{ - icon_state = "asteroidwarning" +/area/bigredv2/caves/lambda/breakroom) +"aK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/door_control{ + id = "vault"; + name = "Vault Lockdown" }, -/area/bigredv2/outside/s) -"aN" = ( -/obj/structure/pipes/standard/simple/hidden/green{ +/turf/open/floor/strata{ dir = 4; - layer = 2.4 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "white_cyan1" }, -/area/bigredv2/outside/s) -"aO" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 +/area/bigredv2/caves/lambda/breakroom) +"aL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" }, -/turf/open/floor{ +/area/bigredv2/caves/lambda/breakroom) +"aM" = ( +/turf/open/floor/almayer{ dir = 1; - icon_state = "asteroidfloor" + icon_state = "w-y2" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves/lambda/breakroom) +"aN" = ( +/turf/open/mars_cave, +/area/bigredv2/caves_lambda) "aP" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" +/turf/open/mars_cave{ + icon_state = "mars_cave_7" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aQ" = ( /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_18" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aR" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 19 }, -/area/bigredv2/outside/s) -"aS" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -9; + pixel_y = 20 + }, +/turf/open/floor/strata{ dir = 4; - icon_state = "asteroidwarning" + icon_state = "white_cyan1" + }, +/area/bigredv2/caves/lambda/breakroom) +"aS" = ( +/obj/effect/glowshroom, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aT" = ( -/turf/open/mars, -/area/bigredv2/outside/s) -"aU" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" +/turf/open/mars_cave{ + icon_state = "mars_cave_4" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aV" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aW" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" +/obj/structure/machinery/door/airlock/almayer/secure/reinforced/colony{ + icon_state = "door_locked" }, -/area/bigredv2/outside/s) +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "vault"; + name = "Vault Lockdown" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/caves/lambda/breakroom) "aX" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" +/turf/open/mars_cave{ + icon_state = "mars_cave_8" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" +/turf/open/mars_cave{ + icon_state = "mars_cave_10" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "aZ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" +/turf/open/mars_cave{ + icon_state = "mars_cave_5" }, -/area/bigredv2/outside/s) +/area/bigredv2/caves_lambda) "ba" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars, -/area/bigredv2/outside/s) +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_lambda) +"vm" = ( +/obj/item/shard{ + icon_state = "small" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/caves_lambda) "zP" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/storage) +/obj/effect/glowshroom, +/turf/open/mars_cave{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/caves_lambda) +"EW" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "sci_br"; + name = "\improper Lambda Observation Shutters" + }, +/obj/item/shard{ + icon_state = "medium" + }, +/obj/structure/window_frame/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/caves/lambda/breakroom) +"Gv" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "sci_br"; + name = "\improper Lambda Observation Shutters" + }, +/obj/item/shard, +/obj/structure/window_frame/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/caves/lambda/breakroom) +"RW" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/caves_lambda) (1,1,1) = {" -aa -aa -aa -ak -al -al -al -al -al +aA +aA +aA +aA +aA +aI +am al -aM -aP +aI +aA +aA +aY aT -aX +ak "} (2,1,1) = {" -aa -aa -aa -ak -al -am +aA +aA +aA +aA +zP +aG aw aD aG -al -aM -aP -aT +ai +ai +aZ +ba aX "} (3,1,1) = {" -aa -aa +aA +aA ah -ak -al -an -ax -aE +ai +ai +aG aH -al -aM +aE +aG aP -aT -aX +ba +aP +ai +aZ "} (4,1,1) = {" -aa -aa -ai -ak -al -ao +aA +ae +aP +ba +aZ +aI ax -ao +aC aI -al -aM -aP -aT -aX +ae +RW +ac +ba +aZ "} (5,1,1) = {" -aa -aa ai -ak -al -ao -ao +ai +aj +ad +aZ +aG ao -aJ -al -aM -aQ -aU -aQ +ag +EW +af +ba +ba +ba +aZ "} (6,1,1) = {" -aa -aa +aY ai -ak -al -zP -ao -ao -as -al +ai +ba +ba +aG +aa +aD +Gv +vm aN -aR -aR -aY +aS +ba +aZ "} (7,1,1) = {" -aa -aa -aj +ba +ba ak -al -aq -ao -ao +ak +ak +aI +an +ab ap -al -aO -aS -aS +aA +aA +aP aS +aZ "} (8,1,1) = {" -aa -aa -aa +ba ak -al -ar -ao -ao -as -al -aM -aQ -aQ -aQ +ak +aI +aI +aI +aI +aW +aI +aI +aA +ba +aP +aZ "} (9,1,1) = {" -aa -aa -aa +aZ ak -al +ak +aI +aR as -aA -aF +au +au aK -al -aM -aQ -aQ -aQ +aI +aA +aY +ba +aZ "} (10,1,1) = {" -aa -af -aa ak -al -as -aB -ao +aA +aA +aI au -al -aM -aQ -aQ +at +aq +at +au +aI +aA +aP +ba aZ "} (11,1,1) = {" -ab -aa -aa ak -al +aA +aA +aI +aF at aB -ao -as -al -aM -aQ -aQ -aT +at +aJ +aI +aA +aP +ba +aZ "} (12,1,1) = {" -ac -ab -aa -ak -al +aA +aA +aA +aI au -aB -ao -aL -al +at aM +at +aL +aI +aA aQ aV -aT +ba "} (13,1,1) = {" -ad -ag -aa -ak -al +aA +aA +aA +aI +ar av -aB -ao -at -al -aM -aP -aT +aL +aL +aL +aI +aA +ba +ba ba "} (14,1,1) = {" -ae -aa -aa -ak -al -al -aC -al -al -al -aM -aQ -aW -aT +aA +aA +aA +aI +aI +aI +aI +aI +aI +aI +aA +ba +ba +ba "} diff --git a/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm b/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm index 47984a920749..adbdf51bd259 100644 --- a/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm +++ b/maps/map_files/BigRed/sprinkles/35.filtration_restored.dmm @@ -7,7 +7,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "ad" = ( /obj/effect/decal/cleanable/dirt, @@ -17,12 +19,16 @@ /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "af" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "ah" = ( /obj/structure/window/framed/solaris, @@ -36,13 +42,19 @@ /area/bigredv2/caves) "ak" = ( /obj/structure/closet/wardrobe/atmospherics_yellow, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "al" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "am" = ( /turf/open/floor{ @@ -53,43 +65,59 @@ "an" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "ap" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "aq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "ar" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "as" = ( /obj/structure/pipes/standard/manifold/hidden/green, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "at" = ( /obj/structure/bed/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "au" = ( /obj/structure/machinery/computer/atmos_alert{ dir = 8 }, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "av" = ( /obj/item/tool/warning_cone, @@ -123,8 +151,8 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Atmospherics Condenser Storage" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aB" = ( @@ -132,8 +160,8 @@ dir = 1; name = "\improper Atmospherics Condenser" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aC" = ( @@ -141,7 +169,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aD" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -149,14 +179,16 @@ name = "\improper Atmospherics Condenser" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aE" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/radio/headset, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aF" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, @@ -173,7 +205,9 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aJ" = ( /turf/open/floor{ @@ -187,39 +221,49 @@ /area/bigredv2/outside/se) "aL" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aM" = ( /obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aN" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aO" = ( /obj/structure/pipes/vents/pump, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aP" = ( /obj/effect/landmark/crap_item, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aQ" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "aR" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "aS" = ( /turf/open/floor{ @@ -229,9 +273,8 @@ /area/bigredv2/outside/filtration_plant) "aT" = ( /obj/structure/dispenser/oxygen, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "aV" = ( @@ -239,24 +282,34 @@ icon_state = "U-N" }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aW" = ( /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "aY" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/filtration_plant) "aZ" = ( /obj/structure/machinery/computer/general_air_control, -/turf/open/floor, +/obj/structure/surface/table, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bb" = ( /obj/structure/surface/table, @@ -264,23 +317,34 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bd" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "be" = ( /obj/structure/surface/table, /obj/item/circuitboard/solar_tracker, -/turf/open/floor, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bf" = ( /obj/structure/machinery/light{ @@ -293,34 +357,53 @@ /obj/effect/decal/warning_stripes{ icon_state = "U-S" }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bh" = ( /obj/effect/decal/warning_stripes{ icon_state = "U-S" }, /obj/structure/machinery/computer3/server/rack, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bj" = ( /obj/structure/surface/rack, /obj/item/tank/air, /obj/item/tool/pickaxe, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bk" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bl" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; name = "\improper Filtration Facility" }, -/turf/open/floor{ - icon_state = "delivery" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bm" = ( @@ -329,34 +412,42 @@ name = "\improper Filtration Facility" }, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bn" = ( -/obj/structure/closet/firecloset/full, /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 }, -/turf/open/floor, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bo" = ( /obj/item/tank/air, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bp" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bq" = ( /obj/effect/landmark/crap_item, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "br" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -365,8 +456,8 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "bt" = ( @@ -378,7 +469,9 @@ dir = 4 }, /obj/item/frame/table, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bv" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/chan, @@ -393,7 +486,9 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bz" = ( /obj/effect/decal/cleanable/dirt, @@ -413,7 +508,10 @@ /obj/structure/machinery/computer/atmos_alert{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bD" = ( /obj/structure/window/framed/solaris/reinforced/hull, @@ -435,11 +533,20 @@ /area/bigredv2/outside/filtration_plant) "bG" = ( /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bH" = ( -/obj/structure/machinery/computer/area_atmos/area, -/turf/open/floor, +/obj/structure/machinery/computer/area_atmos/area{ + dir = 8 + }, +/obj/structure/surface/table, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bI" = ( /obj/structure/window_frame/solaris/reinforced, @@ -450,7 +557,10 @@ /area/bigredv2/outside/filtration_plant) "bJ" = ( /obj/item/weapon/twohanded/fireaxe, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bK" = ( /turf/open/mars, @@ -458,7 +568,10 @@ "bN" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/turf/open/floor, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bO" = ( /turf/open/mars_cave{ @@ -475,29 +588,36 @@ /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bS" = ( /obj/item/frame/table, /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bT" = ( /obj/effect/decal/cleanable/dirt, /obj/item/frame/table, /obj/effect/decal/cleanable/dirt, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "bU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "bW" = ( -/obj/structure/largecrate/random, /turf/open/floor{ - dir = 1; - icon_state = "bot" + icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) "bX" = ( @@ -519,7 +639,9 @@ pixel_x = -32 }, /obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "ce" = ( /obj/structure/machinery/light, @@ -533,8 +655,8 @@ id = "FiltrationShutters"; name = "\improper Airlock Shutters" }, -/turf/open/floor{ - icon_state = "delivery" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, /area/bigredv2/outside/filtration_plant) "cg" = ( @@ -559,7 +681,10 @@ /area/bigredv2/outside/filtration_cave_cas) "cj" = ( /obj/item/tool/pickaxe, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, /area/bigredv2/outside/filtration_plant) "ck" = ( /obj/effect/decal/warning_stripes{ @@ -581,13 +706,61 @@ icon_state = "delivery" }, /area/bigredv2/outside/filtration_plant) +"cO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/filtration_plant) +"et" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/filtration_plant) +"eL" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"ff" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) +"gt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"hk" = ( +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "jh" = ( /obj/structure/machinery/light, /turf/open/floor, /area/bigredv2/outside/filtration_plant) "ka" = ( /obj/structure/closet/firecloset/full, -/turf/open/floor, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"kE" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "nk" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -597,23 +770,152 @@ /obj/item/tank/air, /turf/open/floor, /area/bigredv2/outside/filtration_plant) +"oE" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) +"qi" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, +/area/bigredv2/outside/filtration_plant) +"ti" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, +/area/bigredv2/outside/filtration_plant) +"tp" = ( +/obj/structure/largecrate/random, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"tz" = ( +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "tB" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"vK" = ( +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"xd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"yi" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"yZ" = ( +/turf/open/floor{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/filtration_plant) "zu" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" }, /area/bigredv2/outside/filtration_cave_cas) +"Ap" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/filtration_plant) +"AD" = ( +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"Ee" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"FI" = ( +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"FK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/filtration_plant) +"Jy" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, +/area/bigredv2/outside/filtration_plant) +"Kp" = ( +/obj/structure/surface/table, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "Ms" = ( /obj/structure/machinery/computer3/server/rack, /obj/effect/decal/warning_stripes{ icon_state = "U-N" }, -/turf/open/floor, +/turf/open/floor{ + dir = 8; + icon_state = "darkyellow2" + }, /area/bigredv2/outside/filtration_plant) "Qx" = ( /obj/effect/decal/cleanable/dirt, @@ -623,6 +925,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"QJ" = ( +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "Rv" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -630,11 +938,36 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"Sj" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + dir = 1; + name = "\improper Filtration Facility" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/filtration_plant) +"Sk" = ( +/obj/structure/machinery/light, +/obj/structure/largecrate/random, +/turf/open/floor{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) +"TC" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "TX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "dark" + }, /area/bigredv2/outside/filtration_plant) "UH" = ( /obj/effect/decal/warning_stripes{ @@ -656,12 +989,34 @@ icon_state = "bot" }, /area/bigredv2/outside/filtration_plant) +"Wc" = ( +/turf/open/floor{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/bigredv2/outside/filtration_plant) +"Wz" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "WD" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"Xx" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "XC" = ( /obj/structure/cargo_container/grant/right, /turf/open/floor{ @@ -710,12 +1065,12 @@ TX ap aa aL -aS +et aL aL aa -az -az +tz +vK bJ bw bw @@ -734,16 +1089,16 @@ bw (3,1,1) = {" ak TX -jh +TC aa -bf -az -az -az +oE +FK +FK +FK bl -az +bW bp -az +AD bw bw bw @@ -761,19 +1116,19 @@ aY (4,1,1) = {" ak TX -az +AD aa aT aM aT -aS +et aa -az +hk TX -az +yZ bU bB -bG +Kp aY cg az @@ -795,17 +1150,17 @@ aa aa aa aa -bf +Wz bq -az -az -az +bW +bW +bW cb aY bf ad -ad -ad +ti +ti az aS aS @@ -817,22 +1172,22 @@ al ac aq aa -az +tz bg Ms -az +QJ aa -az +hk TX -aS -aS -aS -az +bW +bW +bW +bW cf az ad -ad -az +ti +aS az aS VW @@ -840,21 +1195,21 @@ az bw "} (7,1,1) = {" -ad +ff aC ar aB -az -az -az -az -bl -az +bW +bW +bW +bW +Sj +bW TX -aL bW -aS -az +bW +bW +bW cf az az @@ -871,22 +1226,22 @@ an ae as ah -az +hk bh aV -ad +gt ah -ad +xd TX -aS -aS bW -az +bW +bW +bW cf az az -az -az +aS +aS az aS XC @@ -901,19 +1256,19 @@ aD aN aN ar -az +AD ah -az +hk TX -aS -aS -aS -az +bW +bW +bW +bW cf az az -az -az +aS +aS np bz aS @@ -921,25 +1276,25 @@ jh aY "} (10,1,1) = {" -ad +ff aE at aa -bf -az +Wz +bW ac bk aa -bf +eL TX -az -az -az -jh +FI +yi +tp +Sk aY bf az -az +aS cj az aS @@ -980,11 +1335,11 @@ ah ah aa ka -az +bW TX -az +AD aa -az +tz TX bN bw @@ -1013,7 +1368,7 @@ aN bm aN aW -bN +Xx bt bF bF @@ -1034,11 +1389,11 @@ ai ai aa bb -az -az -jh +bW +bW +TC ay -bf +Wz TX bQ bw @@ -1065,9 +1420,9 @@ aR aQ be aa -az +hk TX -bN +Xx bw bF bF @@ -1092,9 +1447,9 @@ aa ay aa aa -az +hk TX -az +AD bw bD bD @@ -1116,10 +1471,10 @@ am am am aY -bf +Ee bj bj -az +Wc TX bS aa @@ -1142,14 +1497,14 @@ am am am am -US -az -az -az -az +et +bW +bW +bW +bW bu -ad -cn +ff +cO WD bO bO @@ -1169,14 +1524,14 @@ am am am am -US -az -az +et +bW +bW aP aO by -az -US +bW +et WD bO bO @@ -1196,14 +1551,14 @@ am am am am -US -az -az -ad +et +FI +FI +Ap bo -az +bW bT -US +et WD bO bO @@ -1224,12 +1579,12 @@ am aG aG aY -bf -ka +qi +Jy bn -az -az -jh +FI +FI +kE bX WD bO diff --git a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm index e2b3e939a2e6..7a66b2422807 100644 --- a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm +++ b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm @@ -2,10 +2,6 @@ "ab" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/admin_building) -"ac" = ( -/obj/effect/acid_hole, -/turf/closed/wall/solaris, -/area/bigredv2/outside/admin_building) "ad" = ( /obj/structure/window/framed/solaris, /turf/open/floor/plating, @@ -15,88 +11,68 @@ /area/bigredv2/outside/admin_building) "af" = ( /obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/light{ - dir = 8 - }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) "ag" = ( /obj/effect/spawner/random/toolbox, +/obj/structure/platform_decoration, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "ai" = ( /obj/effect/landmark/survivor_spawner, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aj" = ( +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) +"ak" = ( /obj/structure/window_frame/solaris, /obj/item/shard, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) -"ak" = ( -/obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 1 - }, -/turf/open/floor{ - icon_state = "carpet14-10"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) "al" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations Meeting Room" }, /turf/open/floor{ - icon_state = "carpet10-8"; - dir = 8 + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "am" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 - }, -/obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 4 +/obj/structure/platform, +/obj/structure/flora/jungle/planttop1{ + pixel_y = 10 }, -/obj/item/ammo_magazine/rifle{ - current_rounds = 0; - pixel_x = -9; - pixel_y = -4 +/turf/open/floor{ + icon_state = "dark" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "an" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "ap" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" +/obj/structure/flora/jungle/plantbot1{ + pixel_y = 10 }, +/turf/open/jungle, /area/bigredv2/outside/admin_building) "ar" = ( /obj/structure/machinery/light{ @@ -106,38 +82,30 @@ icon_state = "gib6" }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"as" = ( -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "at" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "au" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "av" = ( /obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 4 + dir = 4; + icon_state = "metal_2" + }, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "aw" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor{ icon_state = "dark" @@ -151,33 +119,23 @@ "aA" = ( /obj/effect/landmark/corpsespawner/wygoon, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "aB" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aC" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "carpet15-15"; +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aD" = ( -/obj/item/stack/sheet/metal/small_stack, -/turf/open/floor{ - icon_state = "carpet6-2"; - dir = 8 - }, +/obj/effect/acid_hole, +/turf/closed/wall/solaris, /area/bigredv2/outside/admin_building) "aG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -196,20 +154,11 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) -"aI" = ( -/turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) "aJ" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aK" = ( /obj/structure/surface/table, @@ -219,54 +168,41 @@ name = "dented M4A3 service pistol" }, /obj/item/ammo_magazine/pistol/rubber, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aL" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/sandbags/wired, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aN" = ( /obj/structure/barricade/sandbags/wired, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aO" = ( /obj/item/storage/secure/briefcase, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aP" = ( /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor, -/area/bigredv2/outside/admin_building) -"aQ" = ( /turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) -"aR" = ( -/turf/open/floor, +"aQ" = ( +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aS" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -274,10 +210,7 @@ pixel_x = -3; pixel_y = -6 }, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aT" = ( /obj/effect/decal/cleanable/blood, @@ -291,38 +224,32 @@ }, /obj/item/storage/toolbox/syndicate, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aV" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/rifle/rubber, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aW" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/weldingtool, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aY" = ( /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aZ" = ( @@ -338,8 +265,7 @@ num_of_magazines = 2 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "ba" = ( @@ -348,52 +274,45 @@ dir = 4 }, /obj/item/clothing/head/helmet/marine/veteran/pmc/leader, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bb" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bd" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, /obj/item/ammo_magazine/rifle{ current_rounds = 0; pixel_x = -8; pixel_y = 9 }, -/turf/open/floor, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "be" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bf" = ( @@ -409,8 +328,8 @@ dir = 4 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bh" = ( @@ -429,43 +348,28 @@ num_of_magazines = 1 }, /turf/open/floor{ - icon_state = "carpet5-1"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"bj" = ( -/turf/open/floor{ - icon_state = "carpet13-5"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"bk" = ( -/turf/open/floor{ - icon_state = "carpet9-4"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations Meeting Room" +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, /turf/open/floor{ - icon_state = "dark" + dir = 10; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bo" = ( @@ -476,30 +380,21 @@ pixel_x = 30 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 6; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bp" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor, /area/bigredv2/outside/admin_building) -"bq" = ( -/turf/open/floor{ - icon_state = "darkred2"; - dir = 10 - }, -/area/bigredv2/outside/admin_building) -"br" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, -/area/bigredv2/outside/admin_building) "bs" = ( -/turf/open/floor{ - icon_state = "darkred2"; - dir = 6 +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Operations"; + name = "\improper Operations Shutters" }, +/turf/open/floor/plating, /area/bigredv2/outside/admin_building) "dp" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -507,28 +402,24 @@ pixel_x = -6; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "is" = ( /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "jq" = ( /obj/item/weapon/gun/rifle/m41a/corporate{ current_mag = /obj/item/ammo_magazine/rifle/rubber; + desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. It seems to be pretty battered and broken up."; name = "battered M41A pulse rifle MK2"; - pixel_x = 4; - desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. It seems to be pretty battered and broken up." - }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + pixel_x = 4 }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "lz" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -536,8 +427,7 @@ pixel_y = 11 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "rv" = ( @@ -545,8 +435,7 @@ current_rounds = 0 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "si" = ( @@ -564,15 +453,52 @@ pixel_y = 17 }, /turf/open/floor{ - icon_state = "carpet13-5"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "uv" = ( /obj/item/ammo_magazine/rifle{ current_rounds = 0; - pixel_y = 7; - pixel_x = -9 + pixel_x = -9; + pixel_y = 7 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) +"vH" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"vO" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"yf" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"za" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations Meeting Room" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, /turf/open/floor, /area/bigredv2/outside/admin_building) @@ -580,17 +506,25 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "Br" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/regular/empty, +/turf/open/floor/carpet, +/area/bigredv2/outside/admin_building) +"ND" = ( +/obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"Pk" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "QR" = ( @@ -600,7 +534,9 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "Sz" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -608,14 +544,11 @@ pixel_x = 5; pixel_y = -5 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) (1,1,1) = {" -ab +aj ab ab ab @@ -627,12 +560,12 @@ ab ab "} (2,1,1) = {" -ac +aj aD ar aA lz -aI +bl rv aZ bi @@ -646,7 +579,7 @@ AC aJ aO aJ -as +aQ si bp "} @@ -659,23 +592,23 @@ aK Br aV ba -bj +bl uv "} (5,1,1) = {" aj -ak +ae jq aC -as +aQ aC Sz bb -bj -aR +bl +bl "} (6,1,1) = {" -ad +ay al au aW @@ -683,12 +616,12 @@ aL aS aQ bc -bk +bl is "} (7,1,1) = {" -ad -am +aj +ae av aP aP @@ -696,35 +629,35 @@ QR aP bd bl -aR +bl "} (8,1,1) = {" -ae -aj aj -ad +ae +ae ad ad ad ae -bm +za +ae ae "} (9,1,1) = {" af -an +bm an be aM an aX -be +ND bn -bq +bs "} (10,1,1) = {" ag -ay +vO aw bf ay @@ -732,12 +665,12 @@ aT ay bf ay -br +bs "} (11,1,1) = {" -ay +am ap -ay +Pk aG aN aU @@ -748,8 +681,8 @@ bs "} (12,1,1) = {" ai -ay -ay +vH +yf aH ae ae diff --git a/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm b/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm index c29681e40bf4..f3fa4dbcc6e9 100644 --- a/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm +++ b/maps/map_files/BigRed/sprinkles/5.eta_carp.dmm @@ -134,7 +134,7 @@ /turf/open/mars, /area/bigredv2/caves/eta/xenobiology) "x" = ( -/obj/item/toy/farwadoll, +/obj/item/toy/plush/farwa, /turf/open/ice, /area/bigredv2/caves/eta/xenobiology) "y" = ( diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm index 652b4df3bdd3..e0c625805375 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm @@ -23,8 +23,9 @@ }, /area/bigredv2/outside/c) "ag" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) "ah" = ( @@ -38,13 +39,12 @@ /area/bigredv2/outside/e) "aj" = ( /turf/open/mars{ - icon_state = "mars_dirt_11" + icon_state = "mars_dirt_12" }, /area/bigredv2/outside/e) "ak" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" +/turf/open/mars{ + icon_state = "mars_dirt_11" }, /area/bigredv2/outside/e) "al" = ( @@ -54,8 +54,8 @@ }, /area/bigredv2/outside/e) "am" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, /area/bigredv2/outside/e) "an" = ( @@ -2147,8 +2147,8 @@ Ha dq "} (20,1,1) = {" -aj -ag +ai +at aA dX dX @@ -2175,7 +2175,7 @@ PR "} (21,1,1) = {" ak -ak +am aA aG dX @@ -2201,9 +2201,9 @@ Ha PR "} (22,1,1) = {" -al -al -aA +ag +ag +aG aG dX ap @@ -2228,9 +2228,9 @@ Ha PR "} (23,1,1) = {" -am -ag -aA +al +al +aG aG aG ap @@ -2255,8 +2255,8 @@ Ha dq "} (24,1,1) = {" -ai -at +aj +am aA aG aG diff --git a/maps/map_files/BigRed/standalone/medbay-passage.dmm b/maps/map_files/BigRed/standalone/medbay-passage.dmm index 75d323f0116d..d5b7db11d82b 100644 --- a/maps/map_files/BigRed/standalone/medbay-passage.dmm +++ b/maps/map_files/BigRed/standalone/medbay-passage.dmm @@ -61,6 +61,31 @@ "m" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, +/obj/structure/stairs/perspective{ + dir = 5; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) +"n" = ( +/obj/structure/stairs/perspective{ + dir = 9; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) +"w" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" @@ -83,6 +108,16 @@ icon_state = "white" }, /area/bigredv2/outside/admin_building) +"X" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) (1,1,1) = {" a @@ -97,7 +132,7 @@ a a c h -l +n R "} (3,1,1) = {" @@ -105,7 +140,7 @@ a a d i -d +w S "} (4,1,1) = {" @@ -113,7 +148,7 @@ a a e l -l +X T "} (5,1,1) = {" diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index e265184172a6..7029d71a6076 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -13345,16 +13345,6 @@ icon_state = "plate" }, /area/corsat/sigma/airlock/control) -"aLr" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/item/tool/weldingtool, -/obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, -/area/corsat/gamma/engineering) "aLs" = ( /turf/open/floor/corsat{ dir = 1; @@ -31253,16 +31243,6 @@ icon_state = "yellow" }, /area/corsat/omega/maint) -"bLH" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/item/tool/weldingtool, -/obj/item/clothing/head/welding, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "yellow" - }, -/area/corsat/omega/maint) "bLI" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "Custodial Closet"; @@ -31960,16 +31940,6 @@ icon_state = "yellowcorner" }, /area/corsat/gamma/engineering) -"bNV" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/item/tool/weldingtool, -/obj/item/clothing/head/welding, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, -/area/corsat/sigma/south/engineering) "bNW" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/corsat{ @@ -37475,8 +37445,7 @@ /area/corsat/gamma/biodome/virology) "drp" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - dwidth = 1; - name = "Gamma Landing Zone" + name = "LZ1: Gamma Landing Zone" }, /turf/open/floor/plating, /area/corsat/gamma/hangar) @@ -37936,14 +37905,6 @@ icon_state = "whitebluefull" }, /area/corsat/gamma/residential/showers) -"dGy" = ( -/obj/structure/surface/rack, -/obj/item/toy/farwadoll, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "red" - }, -/area/corsat/omega/hangar/security) "dHa" = ( /obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor/corsat{ @@ -38077,6 +38038,16 @@ icon_state = "officesquares" }, /area/corsat/gamma/administration) +"dNs" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/item/tool/weldingtool, +/obj/item/clothing/head/welding, +/turf/open/floor/corsat{ + dir = 5; + icon_state = "yellow" + }, +/area/corsat/omega/maint) "dNC" = ( /turf/open/floor/corsat{ dir = 8; @@ -38251,8 +38222,7 @@ /area/corsat/omega/complex) "dUj" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - dwidth = 1; - name = "Sigma Landing Zone" + name = "LZ2: Sigma Landing Zone" }, /turf/open/floor/plating, /area/corsat/sigma/hangar) @@ -45748,6 +45718,14 @@ icon_state = "purplewhite" }, /area/corsat/gamma/biodome/complex) +"jpn" = ( +/obj/structure/surface/rack, +/obj/item/toy/plush/farwa, +/turf/open/floor/corsat{ + dir = 5; + icon_state = "red" + }, +/area/corsat/omega/hangar/security) "jpB" = ( /turf/open/floor/corsat{ dir = 4; @@ -59316,6 +59294,16 @@ icon_state = "red" }, /area/corsat/sigma/hangar/checkpoint) +"tCi" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/item/tool/weldingtool, +/obj/item/clothing/head/welding, +/turf/open/floor/corsat{ + dir = 5; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering) "tCn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -60207,6 +60195,16 @@ icon_state = "red" }, /area/corsat/sigma/hangar/monorail/control) +"ukQ" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/item/tool/weldingtool, +/obj/item/clothing/head/welding, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/corsat{ + icon_state = "yellow" + }, +/area/corsat/sigma/south/engineering) "ukV" = ( /obj/structure/window_frame/corsat, /turf/open/floor/plating, @@ -80399,7 +80397,7 @@ bEp aZb pyL aiB -dGy +jpn lWG lWG lWG @@ -83306,7 +83304,7 @@ azE agQ qKN kyQ -bLH +dNs bOK mAt bLO @@ -96177,7 +96175,7 @@ roh mJy aRd aqi -aLr +tCi nxZ bQs aqi @@ -106604,7 +106602,7 @@ xhd auH bxL aCr -bNV +ukQ aEw aEw aEw diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index ed7688070a2f..bf1d64fbc499 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -9512,14 +9512,6 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/valley_crashsite) -"aCH" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - pixel_y = 24; - start_charge = 0 - }, -/turf/open/floor/interior/wood/alt, -/area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/interior/wood/alt, @@ -9576,17 +9568,6 @@ /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) -"aCT" = ( -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 8; - health = 25000 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, -/area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aCU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -9651,18 +9632,6 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) -"aDd" = ( -/obj/structure/bed/chair, -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 8; - health = 25000 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean" - }, -/area/desert_dam/interior/dam_interior/east_tunnel_entrance) "aDe" = ( /obj/effect/decal/sand_overlay/sand1, /turf/open/asphalt{ @@ -10112,7 +10081,8 @@ icon_state = "S" }, /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/omega{ - pixel_y = 32 + pixel_y = 32; + shuttleId = "trijentshuttle22" }, /turf/open/floor/prison{ dir = 8; @@ -14387,7 +14357,13 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_telecoms) "aRB" = ( -/obj/docking_port/stationary/trijent_elevator/lz2, +/obj/docking_port/stationary/trijent_elevator/occupied{ + id = "trijent_lz2"; + name = "Lz2 Elevator"; + airlock_area = /area/shuttle/trijent_shuttle/lz2; + elevator_network = "B"; + roundstart_template = /datum/map_template/shuttle/trijent_elevator/B + }, /turf/open/gm/empty, /area/shuttle/trijent_shuttle/lz2) "aRC" = ( @@ -20754,7 +20730,7 @@ /area/desert_dam/interior/dam_interior/tech_storage) "bmo" = ( /obj/structure/safe, -/obj/item/weapon/katana/replica, +/obj/item/weapon/sword/katana/replica, /obj/item/reagent_container/food/drinks/bottle/absinthe, /obj/structure/machinery/light{ dir = 1 @@ -25398,17 +25374,6 @@ /obj/structure/window/reinforced, /turf/open/floor/interior/wood, /area/desert_dam/building/security/courtroom) -"bBU" = ( -/obj/structure/machinery/power/apc{ - dir = 8; - pixel_x = -30; - start_charge = 0 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkred2" - }, -/area/desert_dam/building/security/southern_hallway) "bBV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -61538,7 +61503,13 @@ /turf/open/gm/river/desert/shallow, /area/desert_dam/interior/caves/temple) "ipQ" = ( -/obj/docking_port/stationary/trijent_elevator/omega, +/obj/docking_port/stationary/trijent_elevator/empty{ + id = "trijent_omega"; + name = "Omega Elevator"; + airlock_exit = "east"; + airlock_area = /area/shuttle/trijent_shuttle/omega; + elevator_network = "B" + }, /turf/open/gm/empty, /area/shuttle/trijent_shuttle/omega) "iqs" = ( @@ -62546,7 +62517,8 @@ /area/desert_dam/exterior/valley/valley_labs) "mej" = ( /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/lz2{ - pixel_x = 32 + pixel_x = 32; + shuttleId = "trijentshuttle22" }, /turf/open/floor/prison{ dir = 4; @@ -63387,7 +63359,13 @@ }, /area/desert_dam/interior/caves/central_caves) "pif" = ( -/obj/docking_port/stationary/trijent_elevator/engineering, +/obj/docking_port/stationary/trijent_elevator/empty{ + id = "trijent_engineering"; + name = "Engineering Elevator"; + airlock_exit = "east"; + airlock_area = /area/shuttle/trijent_shuttle/engi; + elevator_network = "A" + }, /turf/open/gm/empty, /area/shuttle/trijent_shuttle/engi) "pij" = ( @@ -64025,7 +64003,13 @@ /turf/open/desert/rock/deep, /area/desert_dam/interior/caves/temple) "rxS" = ( -/obj/docking_port/stationary/trijent_elevator/lz1, +/obj/docking_port/stationary/trijent_elevator/occupied{ + id = "trijent_lz1"; + name = "Lz1 Elevator"; + elevator_network = "A"; + airlock_area = /area/shuttle/trijent_shuttle/lz1; + roundstart_template = /datum/map_template/shuttle/trijent_elevator/A + }, /turf/open/gm/empty, /area/shuttle/trijent_shuttle/lz1) "ryG" = ( @@ -64574,6 +64558,10 @@ /obj/structure/desertdam/decals/road_edge, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"tcB" = ( +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/floor/plating, +/area/desert_dam/exterior/landing_pad_two) "tdf" = ( /obj/structure/surface/table, /obj/item/folder/yellow, @@ -65004,6 +64992,10 @@ icon_state = "dirt2" }, /area/desert_dam/exterior/valley/valley_crashsite) +"uHT" = ( +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/floor/plating, +/area/desert_dam/exterior/landing_pad_one) "uKo" = ( /obj/structure/platform/mineral/sandstone/runed{ dir = 4 @@ -70117,6 +70109,7 @@ dTs cDb cDK cDY +tcB cDY cDY cDY @@ -70125,6 +70118,7 @@ cDY cDY cDY cDY +tcB cDY cDY cDY @@ -70133,9 +70127,7 @@ cDY cDY cDY cDY -cDY -cDY -cDY +tcB cDY cMD cBS @@ -72457,6 +72449,7 @@ cDc cDb cDV cDY +tcB cDY cDY cDY @@ -72465,6 +72458,7 @@ cDY cDY cDY cDY +tcB cDY cDY cDY @@ -72473,9 +72467,7 @@ cDY cDY cDY cDY -cDY -cDY -cDY +tcB cDY cNb cBS @@ -72979,6 +72971,7 @@ aUD aVj acI aWh +uHT aWh aWh aWh @@ -72987,6 +72980,7 @@ aWh aWh aWh aWh +uHT aWh aWh aWh @@ -72995,9 +72989,7 @@ aWh aWh aWh aWh -aWh -aWh -aWh +uHT aWh bAF aVi @@ -75319,6 +75311,7 @@ aUD aVg acJ aWh +uHT aWh aWh aWh @@ -75327,6 +75320,7 @@ aWh aWh aWh aWh +uHT aWh aWh aWh @@ -75335,9 +75329,7 @@ aWh aWh aWh aWh -aWh -aWh -aWh +uHT aWh bFg aVi @@ -76376,7 +76368,7 @@ bsS bvy bsS bsS -bBU +bsS bFr aQH bIX @@ -85464,8 +85456,8 @@ dTs dTs aEa aEa -aCS -aCS +aEa +aEa aEa aEa dTs @@ -85698,8 +85690,8 @@ dTs dTs aEa aCD -aCT -aDd +aCF +aDg aDn aEa aDt @@ -86399,7 +86391,7 @@ dTs dTs dTs aEa -aCH +aCJ aCI aDh aCJ diff --git a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm index 1dd3650ad747..d0ebbc5039d5 100644 --- a/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm +++ b/maps/map_files/DesertDam/sprinkles/10.damtemple_intact.dmm @@ -298,7 +298,7 @@ dir = 1; icon_state = "phoronrwindow" }, -/obj/item/weapon/katana{ +/obj/item/weapon/sword/katana{ color = "#b2ffff"; desc = "A finely made Japanese sword, with a well sharpened blade. It appears to have cobalt infused within the blade. There are Japanese engravings on the blade which say 'He who wields this sword becomes the next Titan.'."; name = "ancient katana"; @@ -548,10 +548,10 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = 7 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = -7 }, /turf/open/floor/sandstone/runed, diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm index 73ae1b5ef485..7928c7f06b71 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm @@ -2502,7 +2502,7 @@ /obj/structure/prop/wooden_cross{ pixel_y = 13 }, -/obj/item/toy/farwadoll, +/obj/item/toy/plush/farwa, /turf/open/mars{ icon_state = "mars_dirt_5" }, diff --git a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm index 0fd8b269d33c..ba9986948eed 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -5305,7 +5305,7 @@ /area/prison/hanger/research) "aoj" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "Research Landing Zone" + name = "LZ2: Research Landing Zone" }, /turf/open/floor/plating, /area/prison/hanger/research) @@ -15559,7 +15559,7 @@ /area/prison/command/secretary_office) "aRX" = ( /obj/structure/surface/rack, -/obj/item/weapon/katana/replica, +/obj/item/weapon/sword/katana/replica, /turf/open/floor/wood, /area/prison/command/office) "aRY" = ( @@ -19201,7 +19201,7 @@ /area/prison/hanger/main) "bcF" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Hangar Landing Zone" + name = "LZ1: Hangar Landing Zone" }, /turf/open/floor/plating, /area/prison/hanger/main) diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index 0d4ed21934d0..ab98e02cb6e4 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -7,109 +7,12 @@ }, /turf/open/space, /area/fiorina/oob) -"aac" = ( -/obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"aad" = ( -/obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"aae" = ( -/obj/structure/machinery/power/apc, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"aaf" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/iv_drip{ - pixel_y = 19 - }, -/obj/item/bedsheet/green, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"aag" = ( -/obj/item/trash/eat, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"aah" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"aai" = ( -/obj/structure/machinery/power/apc{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"aaj" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, -/area/fiorina/station/chapel) "aak" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "4" }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/servers) -"aam" = ( -/obj/structure/machinery/power/apc{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, -/area/fiorina/station/transit_hub) -"aan" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"aao" = ( -/obj/structure/machinery/power/apc{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"aap" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) "aaq" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -133,104 +36,132 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"aat" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/baton, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"aau" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +"aaR" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/station/research_cells) -"aav" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/item/weapon/baton, -/turf/open/floor/prison{ - icon_state = "redfull" +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/security) -"aaK" = ( +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"abG" = ( +/obj/item/trash/chunk, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/research_cells) -"aaW" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/prison, -/area/fiorina/station/security) -"abe" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/medbay) "abJ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ icon = 'icons/obj/structures/doors/2x1prepdoor.dmi' }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"acx" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "ppflowers_2" +"ace" = ( +/obj/effect/landmark{ + icon_state = "hive_spawn"; + name = "xeno_hive_spawn" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/obj/effect/landmark/ert_spawns/groundside_xeno, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"adk" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/tumor/aux_engi) +"ach" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "darkyellowfull2" + icon_state = "greenfull" }, /area/fiorina/tumor/servers) -"adl" = ( -/obj/structure/machinery/computer/secure_data, +"aco" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 8 +/obj/item/reagent_container/food/drinks/sillycup{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = 1; + pixel_y = -1 }, /turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"acO" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_v" + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"adq" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison{ + icon_state = "redfull" + }, /area/fiorina/station/security) -"adH" = ( -/obj/structure/closet/secure_closet/medical3, +"adE" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) -"adY" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/area/fiorina/tumor/aux_engi) +"aeb" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkpurple2" }, +/area/fiorina/tumor/servers) +"aej" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "damaged3" + }, +/area/fiorina/station/security) +"aeo" = ( +/obj/structure/monorail{ + name = "launch track" }, -/area/fiorina/station/disco) -"aee" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_tram) +"aeF" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gibup1" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"aeI" = ( +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, /area/fiorina/station/central_ring) -"aem" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/donkpockets{ - pixel_x = 5; - pixel_y = 9 +"aeS" = ( +/obj/structure/machinery/vending/cigarette/colony, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/storage/box/donkpockets, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/ice_lab) "afk" = ( /turf/open/floor{ desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; @@ -238,6 +169,48 @@ name = "solarpanel" }, /area/fiorina/oob) +"afq" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreencorner" + }, +/area/fiorina/station/medbay) +"afO" = ( +/obj/structure/bed/sofa/vert/grey/bot{ + pixel_y = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"afW" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"afX" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"aga" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/pills/lowchance, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"agh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/ice_lab) "agi" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/servers) @@ -291,32 +264,15 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"ahe" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ - icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"ahn" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, +"ahm" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"aic" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"ahR" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/obj/structure/platform{ - dir = 8 + dir = 5; + icon_state = "darkyellow2" }, -/turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_tram) "aif" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ @@ -325,54 +281,31 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"aiK" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform, +"aik" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ icon_state = "darkbrown2" }, -/area/fiorina/station/park) -"aiV" = ( -/obj/structure/bed/roller, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"aja" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"ajh" = ( -/obj/item/device/flashlight/on, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" - }, /area/fiorina/tumor/aux_engi) -"aji" = ( -/obj/structure/prop/resin_prop{ - icon_state = "sheater0" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"aiv" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/area/fiorina/tumor/servers) -"ajp" = ( -/obj/structure/window/framed/prison, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "whitepurple" }, -/area/fiorina/station/medbay) -"ajr" = ( -/turf/open/floor/prison{ +/area/fiorina/station/research_cells) +"aje" = ( +/obj/structure/stairs/perspective{ dir = 4; - icon_state = "redcorner" + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/security) +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) "aju" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -381,96 +314,84 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) +"ajw" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "ajx" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/space/basic, /area/fiorina/oob) -"ajD" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"ajP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/pizzabox/margherita, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"ajH" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/electrical{ - pixel_y = -3 + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 6 +/area/fiorina/station/medbay) +"ajZ" = ( +/obj/effect/landmark{ + icon_state = "hive_spawn"; + name = "xeno_hive_spawn" }, -/obj/structure/machinery/light/double/blue, +/obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/prison{ + dir = 1; icon_state = "darkbrown2" }, -/area/fiorina/maintenance) -"ajK" = ( +/area/fiorina/tumor/aux_engi) +"akp" = ( /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "green" }, -/area/fiorina/station/park) -"ajN" = ( -/obj/structure/barricade/wooden, +/area/fiorina/station/chapel) +"akM" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkpurplefull2" }, +/area/fiorina/station/research_cells) +"akW" = ( +/obj/structure/bed/chair/janicart, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"ajX" = ( -/obj/structure/mirror{ - pixel_x = -29 - }, -/obj/structure/sink{ +"akZ" = ( +/obj/structure/machinery/light/double/blue{ dir = 8; - pixel_x = -12; - pixel_y = 2 + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "sterile_white" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/civres_blue) -"akc" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/station/telecomm/lz1_tram) +"alC" = ( +/obj/structure/inflatable/popped, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"akw" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, /area/fiorina/station/transit_hub) -"akE" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/tumor/servers) -"alr" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) -"alu" = ( +"alK" = ( +/obj/item/trash/cigbutt/cigarbutt, /turf/open/floor/prison{ dir = 8; - icon_state = "cell_stripe" + icon_state = "darkyellow2" }, -/area/fiorina/oob) -"alJ" = ( -/obj/structure/inflatable/popped/door, +/area/fiorina/station/flight_deck) +"alP" = ( +/obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/park) "alX" = ( /obj/item/paper/crumpled/bloody, /turf/open/floor/prison/chapel_carpet{ @@ -478,6 +399,13 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) +"alY" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "platingdmg1" + }, +/area/fiorina/station/security) "amd" = ( /obj/effect/decal/hefa_cult_decals/d96, /obj/item/paper/crumpled/bloody, @@ -489,36 +417,39 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"ami" = ( -/obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"amj" = ( -/obj/structure/prop/resin_prop{ - icon_state = "sheater0" - }, +"amn" = ( /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"amx" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" + dir = 4; + icon_state = "whitepurple" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/research_cells) "amF" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/aux_engi) +"amZ" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "ane" = ( /obj/item/weapon/unathiknife{ name = "ceremonial knife" }, /turf/open/floor/wood, /area/fiorina/station/chapel) +"anl" = ( +/obj/item/pamphlet/engineer, +/obj/structure/closet, +/obj/item/handcuffs, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/lowsec) "anm" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -543,6 +474,13 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"ann" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "anq" = ( /turf/closed/shuttle/ert{ icon_state = "stan9" @@ -555,13 +493,12 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"anG" = ( -/obj/structure/largecrate/supply, -/obj/structure/platform_decoration{ - dir = 8 +"any" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/prison{ + icon_state = "redfull" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "anJ" = ( /obj/structure/cable/heavyduty{ icon_state = "1-2" @@ -575,125 +512,149 @@ }, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"aoa" = ( -/obj/structure/machinery/door/airlock/almayer/maint/autoname{ - name = "\improper Null Hatch REPLACE ME"; - req_access = null; - req_one_access = null +"anR" = ( +/obj/structure/stairs/perspective{ + dir = 5; + icon_state = "p_stair_full" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"aoH" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"anT" = ( +/obj/item/reagent_container/food/snacks/meat, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"anW" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/area/fiorina/tumor/ice_lab) -"apf" = ( -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"app" = ( -/obj/item/trash/pistachios, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "green" }, -/area/fiorina/tumor/ice_lab) -"apw" = ( -/turf/open/auto_turf/sand/layer1, -/area/fiorina/tumor/civres) -"apy" = ( -/obj/structure/bed/sofa/vert/grey/bot{ - pixel_y = 8 +/area/fiorina/station/chapel) +"aoo" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"aoZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + pixel_y = 11 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"aqI" = ( /turf/open/floor/prison{ - icon_state = "red" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security) -"aqJ" = ( -/obj/structure/monorail{ - dir = 6; - name = "launch track" +/area/fiorina/station/research_cells) +"ape" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrowncorners2" }, +/area/fiorina/maintenance) +"apf" = ( /turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"aqS" = ( -/obj/item/explosive/grenade/high_explosive/frag, +/area/fiorina/station/civres_blue) +"apu" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "blue" }, -/area/fiorina/tumor/servers) -"aqW" = ( -/obj/structure/platform{ - dir = 1 +/area/fiorina/station/power_ring) +"apw" = ( +/turf/open/auto_turf/sand/layer1, +/area/fiorina/tumor/civres) +"apO" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "whitegreen" }, -/obj/structure/platform{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"aqj" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/obj/structure/platform_decoration{ - dir = 9 +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"aqo" = ( +/obj/item/shard{ + icon_state = "large" }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) +"aqw" = ( +/obj/item/stool, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/civres_blue) "arl" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"arm" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) "arn" = ( /obj/effect/landmark/nightmare{ insert_tag = "researchprestine" }, /turf/closed/wall/prison, /area/fiorina/station/research_cells) -"arq" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" - }, -/obj/item/stack/sheet/metal{ - amount = 5 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"art" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/lz/near_lzI) -"aru" = ( -/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + dir = 10; + icon_state = "greenblue" }, -/area/fiorina/station/lowsec) -"arS" = ( -/obj/effect/decal/hefa_cult_decals/d32{ - icon_state = "2" +/area/fiorina/station/botany) +"arG" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/servers) -"arY" = ( +/area/fiorina/tumor/aux_engi) +"arT" = ( /obj/structure/stairs/perspective{ - dir = 4; icon_state = "p_stair_full" }, -/obj/structure/platform, /turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/power_ring) +"arW" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/oob) +"asf" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "ask" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -705,12 +666,48 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) +"aso" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) "ast" = ( /obj/structure/machinery/power/apc{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) +"asz" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) +"asE" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 6 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"asI" = ( +/obj/item/toy/deck, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"atd" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "atl" = ( /obj/structure/platform{ dir = 1 @@ -729,13 +726,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"atm" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/telecomm/lz1_tram) "atp" = ( /obj/item/book/manual/security_space_law{ pixel_x = 3; @@ -743,31 +733,26 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"atx" = ( -/obj/structure/barricade/metal{ - health = 250; - icon_state = "metal_1" - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"atE" = ( +"atw" = ( +/obj/item/reagent_container/food/snacks/eat_bar, /turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, -/area/fiorina/station/power_ring) -"auH" = ( -/obj/item/bodybag, -/obj/item/bodybag{ - pixel_y = 2 + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/bodybag{ - pixel_y = 4 +/area/fiorina/station/medbay) +"atY" = ( +/obj/structure/bedsheetbin, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"auj" = ( +/obj/item/frame/rack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) "auQ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -783,87 +768,65 @@ name = "astroturf" }, /area/fiorina/station/park) -"avf" = ( -/obj/structure/machinery/computer/station_alert{ - dir = 4; - pixel_y = 5 - }, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"avl" = ( +"auS" = ( +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/under/color/orange, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) -"avs" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"avI" = ( -/obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +"avc" = ( +/obj/structure/stairs/perspective{ + dir = 5; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/research_cells) -"avX" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) +"avJ" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"avT" = ( +/obj/item/trash/semki, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "avY" = ( /obj/item/clothing/head/soft/rainbow, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"awh" = ( -/obj/structure/prop/resin_prop{ - icon_state = "rack" - }, -/obj/item/storage/toolbox, -/obj/item/storage/toolbox, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/tumor/servers) -"awo" = ( -/obj/structure/bed{ - icon_state = "abed" +"awL" = ( +/obj/structure/monorail{ + name = "launch track" }, -/obj/item/reagent_container/food/snacks/wrapped/barcardine, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"awU" = ( +/obj/structure/machinery/iv_drip{ + pixel_y = 19 }, -/area/fiorina/station/lowsec) -"awx" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"awF" = ( -/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/research_cells) "axb" = ( /obj/item/clothing/suit/storage/marine/specialist, /turf/open/floor/plating/prison, /area/fiorina/oob) -"axi" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" +"axn" = ( +/obj/structure/monorail{ + dir = 4; + name = "launch track" }, -/area/fiorina/station/chapel) +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) +"axx" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) "axA" = ( /obj/structure/prop/almayer/computers/mission_planning_system{ density = 0; @@ -874,45 +837,62 @@ }, /turf/closed/wall/prison, /area/fiorina/station/security) -"ayv" = ( -/obj/item/trash/pistachios, +"aye" = ( +/obj/structure/bed/chair{ + dir = 1 + }, /turf/open/floor/prison{ - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"ayA" = ( +/area/fiorina/station/security) +"ayo" = ( /obj/structure/platform, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"ayB" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"ayG" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, /turf/open/floor/prison{ dir = 9; - icon_state = "greenfull" + icon_state = "yellow" }, -/area/fiorina/station/transit_hub) -"ayK" = ( +/area/fiorina/station/disco) +"ayH" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_27"; - layer = 3.1; - pixel_x = -2; - pixel_y = 10 +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, /turf/open/floor/prison{ dir = 4; - icon_state = "redcorner" - }, -/area/fiorina/station/power_ring) -"ayM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/pistol/heavy{ - pixel_y = 7 + icon_state = "darkyellowfull2" }, -/obj/item/ammo_magazine/pistol/heavy{ - pixel_y = 12 +/area/fiorina/station/flight_deck) +"ayW" = ( +/obj/structure/bed{ + icon_state = "abed" }, +/obj/item/explosive/grenade/incendiary/molotov, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "ayX" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -920,12 +900,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"azg" = ( -/obj/item/prop/helmetgarb/gunoil, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) "azs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 @@ -942,60 +916,23 @@ /obj/structure/girder, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"azy" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/turf/open/space/basic, -/area/fiorina/oob) -"azI" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 7; - pixel_y = 6 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"azJ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"azN" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"azK" = ( +/obj/structure/machinery/microwave{ + desc = "There's two of them."; + pixel_y = 5 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"azT" = ( -/obj/item/inflatable, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + desc = "Holy shit"; + pixel_y = 18 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" +/obj/item/storage/pill_bottle/kelotane/skillless{ + desc = "Don't touch -Dr. O"; + pixel_x = 6; + pixel_y = 31 }, -/area/fiorina/station/lowsec) +/turf/open/floor/prison, +/area/fiorina/station/medbay) "azZ" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/ice_lab) @@ -1007,17 +944,18 @@ }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"aAH" = ( -/obj/item/device/multitool, +"aAk" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"aAA" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"aAM" = ( -/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ - layer = 2.6 + dir = 1; + icon_state = "green" }, -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/transit_hub) +"aAJ" = ( +/obj/structure/bed/sofa/vert/grey, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -1030,21 +968,6 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"aBk" = ( -/obj/effect/spawner/random/tool, -/obj/structure/surface/rack, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"aBm" = ( -/obj/item/trash/uscm_mre, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) "aBs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 5 @@ -1060,6 +983,18 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) +"aBD" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) "aBJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/chef_recipes{ @@ -1067,39 +1002,10 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"aBO" = ( -/obj/item/ammo_magazine/rifle/m16, +"aBZ" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/prison, -/area/fiorina/station/security) -"aBX" = ( -/obj/effect/decal/cleanable/blood/splatter, -/obj/structure/surface/rack, -/obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"aCi" = ( -/obj/structure/prop/invuln{ - desc = "Floating cells are reserved for highly dangerous criminals. Whoever is out there is probably best left out there."; - icon = 'icons/obj/structures/doors/celldoor.dmi'; - icon_state = "door_closed"; - layer = 2.5; - name = "cell door" - }, -/obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"aCn" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/park) "aCC" = ( /obj/item/tool/soap{ pixel_x = 2; @@ -1107,129 +1013,56 @@ }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"aCT" = ( -/obj/structure/bed/sofa/south/grey/left, +"aCZ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"aDc" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"aCV" = ( -/obj/item/explosive/grenade/high_explosive/m15{ - pixel_x = -9; - pixel_y = -8 + icon_state = "floor_plate" }, -/obj/item/explosive/grenade/high_explosive/frag{ - pixel_x = 6; - pixel_y = 3 +/area/fiorina/tumor/servers) +"aDx" = ( +/turf/open/floor/prison{ + icon_state = "yellow" }, +/area/fiorina/station/central_ring) +"aEi" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/civres) +"aEB" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/tumor/servers) -"aDh" = ( +/area/fiorina/station/security/wardens) +"aEC" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/oob) -"aDi" = ( -/obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"aDl" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/prop/souto_land/streamer{ - dir = 1; - pixel_y = 24 - }, +/area/fiorina/station/power_ring) +"aEG" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/park) -"aDr" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +/area/fiorina/station/medbay) +"aEQ" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"aDs" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/powercell, -/obj/item/storage/syringe_case/burn{ - pixel_x = -10; - pixel_y = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"aDw" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"aDC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/security_space_law{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/book/manual/security_space_law{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/book/manual/security_space_law{ - pixel_x = 3; - pixel_y = 5 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"aEi" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/civres) -"aFg" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security/wardens) -"aFh" = ( -/obj/structure/toilet{ - dir = 4; - pixel_y = 8 - }, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"aFn" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/telecomm/lz1_cargo) "aFp" = ( /obj/structure/machinery/defenses/tesla_coil{ faction_group = list("CLF") }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"aFJ" = ( -/obj/item/tool/wrench, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) "aFK" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -1240,35 +1073,40 @@ icon_state = "plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"aFV" = ( -/obj/item/stack/sheet/wood, -/obj/structure/machinery/light/double/blue, +"aFQ" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gibmid3" + }, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) "aFZ" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/medbay) -"aGs" = ( -/obj/structure/window/framed/prison/reinforced{ - opacity = 1 +"aGF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/frame/firstaid_arm_assembly, +/obj/item/stack/nanopaste{ + pixel_x = 11; + pixel_y = 6 }, -/obj/structure/machinery/door/poddoor/shutters/almayer, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"aGS" = ( -/obj/structure/platform_decoration, -/turf/open/floor/prison{ - icon_state = "whitegreen" +/area/fiorina/station/security/wardens) +"aGR" = ( +/obj/structure/largecrate/random, +/obj/effect/spawner/random/powercell, +/obj/item/device/camera/oldcamera{ + pixel_y = 11 }, -/area/fiorina/station/medbay) -"aGV" = ( -/obj/structure/largecrate/random/barrel/red, /turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) "aHg" = ( /obj/structure/prop/resin_prop, /turf/open/floor/plating/prison, @@ -1277,151 +1115,76 @@ /obj/item/tool/crowbar, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzI) -"aHs" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"aHx" = ( -/obj/structure/platform, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"aHA" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"aHY" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null - }, -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/storage/pill_bottle/alkysine, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +"aHH" = ( +/obj/item/tool/shovel/etool, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"aHJ" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"aIf" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" + icon_state = "darkbrownfull2" }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) -"aIh" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/tumor/aux_engi) +"aHK" = ( +/obj/item/ammo_casing{ + icon_state = "casing_1" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/lz/near_lzI) -"aIp" = ( -/obj/structure/closet/secure_closet/personal, +/area/fiorina/station/medbay) +"aId" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/hypospray, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"aIv" = ( -/obj/structure/bed{ - icon_state = "abed" +/area/fiorina/station/botany) +"aIm" = ( +/obj/structure/barricade/deployable{ + dir = 4 }, -/obj/item/storage/box/holobadge{ - pixel_y = 3 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/security) +"aIB" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"aIE" = ( +/area/fiorina/station/park) +"aJk" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/snacks/meat{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/reagent_container/food/snacks/meat{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/meat{ - pixel_x = -1; - pixel_y = 6 - }, +/obj/structure/machinery/computer/atmos_alert, /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/power_ring) -"aIK" = ( -/obj/structure/surface/rack, -/obj/item/tool/plantspray/weeds, -/turf/open/floor/prison{ +/area/fiorina/tumor/ice_lab) +"aJo" = ( +/obj/structure/bed/chair{ dir = 4; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"aIR" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"aIX" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" + pixel_x = -5 }, -/area/fiorina/station/central_ring) -"aIZ" = ( -/obj/structure/prop/resin_prop{ - icon_state = "rack" +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/tumor/servers) -"aJf" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/emergency, +/area/fiorina/station/medbay) +"aJv" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "darkbrown2" }, /area/fiorina/tumor/aux_engi) -"aJg" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, -/area/fiorina/maintenance) -"aJK" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_container/food/snacks/meat/human, -/obj/item/reagent_container/food/snacks/meat/human, -/obj/structure/machinery/light/double/blue, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/station/civres_blue) -"aJU" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) "aJX" = ( /obj/structure/bed/chair{ dir = 8 @@ -1433,43 +1196,32 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"aKc" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/bottle/sake, +"aKb" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 9; + icon_state = "whitegreen" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/medbay) "aKA" = ( /obj/structure/platform_decoration/kutjevo{ dir = 1 }, /turf/open/space, /area/fiorina/oob) -"aKF" = ( -/obj/item/storage/backpack{ - pixel_x = -11; - pixel_y = 15 - }, -/obj/item/trash/syndi_cakes, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"aKN" = ( +/obj/structure/machinery/computer/cameras{ + network = list("omega") }, -/area/fiorina/station/lowsec) -"aKW" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) -"aLj" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" - }, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, -/area/fiorina/station/botany) "aLp" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -1479,39 +1231,65 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/almayer_hull, /area/fiorina/station/medbay) +"aLz" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "aLC" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/effect/spawner/random/pills/lowchance, /turf/open/floor/prison{ dir = 10; - icon_state = "damaged1" + icon_state = "whitepurple" }, -/area/fiorina/station/central_ring) -"aLR" = ( -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/area/fiorina/station/research_cells) "aLT" = ( /obj/item/trash/uscm_mre, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"aLX" = ( +/obj/structure/bed/chair{ + dir = 1; + layer = 2.7 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) "aMg" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/ice_lab) -"aMq" = ( +"aMr" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" + icon_state = "bluefull" }, -/area/fiorina/station/civres_blue) -"aMz" = ( +/area/fiorina/station/power_ring) +"aMu" = ( +/obj/effect/alien/weeds/node, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"aME" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/security) "aMM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -1519,67 +1297,87 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/botany) -"aMZ" = ( -/obj/structure/platform_decoration{ - dir = 4 +"aMS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, +/obj/item/clothing/mask/cigarette, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_y = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 }, -/area/fiorina/station/park) -"aNn" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" + icon_state = "redfull" }, -/area/fiorina/station/park) -"aNw" = ( -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "whitegreen" +/area/fiorina/station/security) +"aNk" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/station/medbay) -"aNP" = ( -/obj/structure/inflatable, -/obj/structure/barricade/handrail/type_b, -/obj/structure/barricade/handrail/type_b{ - dir = 4 +/turf/open/floor/prison, +/area/fiorina/station/security) +"aNz" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ + layer = 3.5 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/power_ring) "aOc" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_3"; opacity = 0 }, /area/fiorina/tumor/ship) -"aOd" = ( +"aOm" = ( +/turf/open/floor/prison{ + icon_state = "panelscorched" + }, +/area/fiorina/tumor/servers) +"aOC" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"aOL" = ( +/obj/structure/filingcabinet{ + pixel_x = -8 + }, +/obj/structure/filingcabinet{ + pixel_x = 8 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -7; + pixel_y = 11 }, -/area/fiorina/tumor/ice_lab) -"aOh" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "redfull" + }, +/area/fiorina/station/security) +"aOT" = ( +/obj/structure/machinery/landinglight/ds2{ + dir = 4 }, -/area/fiorina/oob) -"aOJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/lz/near_lzII) "aPd" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 @@ -1591,22 +1389,17 @@ name = "astroturf" }, /area/fiorina/station/park) -"aPi" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"aPq" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" +"aPr" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/area/fiorina/station/research_cells) +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"aPv" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/prison, +/area/fiorina/station/central_ring) "aPD" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -1616,80 +1409,52 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"aPF" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_7" - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) "aPH" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/security/wardens) -"aQB" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 +"aPO" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/obj/structure/platform_decoration/kutjevo{ - dir = 1 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" +/area/fiorina/station/civres_blue) +"aQH" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/effect/landmark/nightmare{ + insert_tag = "yardbasketball" }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) -"aQE" = ( -/obj/item/stack/sheet/metal{ - amount = 5 +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, +/area/fiorina/station/central_ring) +"aQR" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"aQK" = ( -/obj/item/trash/uscm_mre, -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ +/area/fiorina/station/transit_hub) +"aQW" = ( +/obj/structure/barricade/sandbags{ dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"aQM" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"aQU" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" + icon_state = "sandbag_0"; + pixel_y = 2 }, /turf/open/floor/prison, -/area/fiorina/station/security) -"aQZ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "red" - }, -/area/fiorina/station/security) -"aRb" = ( -/obj/structure/largecrate/random/secure, -/obj/structure/barricade/wooden{ - dir = 4 +/area/fiorina/lz/near_lzII) +"aQY" = ( +/obj/structure/platform{ + dir = 1 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitepurple" + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/tumor/ice_lab) "aRk" = ( /obj/structure/cargo_container/grant/left, /turf/open/floor/plating/plating_catwalk/prison, @@ -1700,26 +1465,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"aRx" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/pill_bottle/tramadol/skillless, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"aRB" = ( -/obj/item/ammo_casing{ - icon_state = "cartridge_2" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"aRG" = ( +"aRv" = ( +/obj/structure/platform, +/obj/structure/closet/firecloset/full, +/obj/item/paper/prison_station/inmate_handbook, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) +/area/fiorina/lz/near_lzI) "aRT" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -1729,43 +1480,60 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"aRY" = ( -/obj/structure/barricade/wooden{ +"aSm" = ( +/obj/structure/bed/chair{ dir = 8 }, -/obj/structure/bed/chair/wheelchair{ - desc = "Great scott, it can move on its own!"; - dir = 4; - icon_state = "officechair_white"; - name = "Dr. O's fantastic self rolling wheelie chair"; - pixel_x = 7 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"aSw" = ( -/obj/structure/inflatable/door, /turf/open/floor/prison{ - icon_state = "whitegreencorner" + dir = 4; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) "aSz" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/research_cells) +"aSA" = ( +/obj/structure/bed/sofa/vert/grey/top, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"aSM" = ( +/obj/effect/spawner/random/gun/shotgun/highchance{ + mags_max = 0; + mags_min = 0 + }, +/turf/open/floor/prison, +/area/fiorina/station/chapel) "aSS" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/medbay) +"aTe" = ( +/obj/structure/machinery/landinglight/ds1/delaytwo, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) "aTo" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station/transit_hub) +"aTx" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/security) "aTE" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"aTL" = ( +/obj/structure/bed/chair{ + dir = 4; + layer = 2.8 + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "aTM" = ( /obj/item/stack/tile/plasteel{ pixel_x = 12; @@ -1773,123 +1541,37 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"aUa" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"aUx" = ( -/obj/structure/sign/poster{ - desc = "Hubba hubba."; - icon_state = "poster17"; - name = "magazine" - }, -/obj/structure/sign/poster{ - desc = "Hubba hubba."; - icon_state = "poster3"; - name = "magazine"; - pixel_x = 6; - pixel_y = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"aUM" = ( -/obj/item/clothing/head/welding, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"aVd" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"aVh" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" - }, +"aTO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/toy/deck/uno, /turf/open/floor/prison{ dir = 9; icon_state = "greenfull" }, -/area/fiorina/station/transit_hub) -"aVA" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"aVD" = ( +/area/fiorina/station/botany) +"aTY" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/card/id/guest{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/card/id/guest, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"aVE" = ( -/obj/vehicle/train/cargo/engine, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"aVJ" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"aVK" = ( -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 1 - }, +/obj/item/storage/briefcase, /turf/open/floor/prison{ dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"aVN" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"aVS" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; icon_state = "blue_plate" }, /area/fiorina/station/botany) -"aVT" = ( -/obj/structure/barricade/wooden{ - desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; - dir = 1; - health = 25000; - pixel_y = 19 - }, -/obj/item/stack/sheet/wood, -/obj/structure/machinery/computer/cameras/wooden_tv{ - desc = "Somehow, it still functions."; - layer = 3.1; - name = "discarded camera console"; - pixel_x = -6; - pixel_y = 5 - }, +"aUg" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison, +/area/fiorina/station/security) +"aUA" = ( +/obj/item/stack/cable_coil/orange, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/servers) +/area/fiorina/tumor/ice_lab) +"aVd" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) "aVU" = ( /turf/open/floor/corsat{ icon_state = "squares" @@ -1898,35 +1580,15 @@ "aWk" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/telecomm/lz2_maint) -"aWo" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"aWD" = ( -/obj/item/device/taperecorder{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"aWP" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +"aWI" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/telecomm/lz1_cargo) -"aWR" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/medbay) "aWV" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/servers) @@ -1941,45 +1603,81 @@ dir = 5 }, /area/fiorina/tumor/aux_engi) -"aXK" = ( -/obj/item/clothing/under/shorts/green, -/turf/open/floor/prison{ +"aXp" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/obj/structure/bed/chair/wheelchair{ + desc = "Great scott, it can move on its own!"; dir = 4; - icon_state = "cell_stripe" + icon_state = "officechair_white"; + name = "Dr. O's fantastic self rolling wheelie chair"; + pixel_x = 7 }, -/area/fiorina/station/central_ring) -"aXM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/cable_coil/orange, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/maintenance) -"aYA" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"aXv" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"aXx" = ( /obj/structure/machinery/light/double/blue{ dir = 4; pixel_x = 10; - pixel_y = -3 + pixel_y = 13 }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"aXC" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "damaged2" }, /area/fiorina/station/lowsec) -"aYZ" = ( -/obj/structure/machinery/disposal, +"aXO" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "damaged2" }, -/area/fiorina/station/security/wardens) -"aZz" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5" +/area/fiorina/station/central_ring) +"aXR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/camera, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/station/medbay) +"aYf" = ( +/obj/item/tool/scythe, /turf/open/floor/prison{ dir = 8; - icon_state = "whitegreen" + icon_state = "blue_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/botany) +"aYg" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/obj/structure/machinery/shower{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/research_cells) +"aZi" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/tumor/servers) "aZD" = ( /obj/structure/platform{ dir = 8 @@ -1996,43 +1694,24 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"aZL" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "aZN" = ( /obj/item/toy/crayon/yellow, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"aZQ" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"aZU" = ( -/obj/structure/bed/chair{ +"aZW" = ( +/obj/structure/platform_decoration{ dir = 8 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"aZZ" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"bac" = ( -/obj/item/stack/sheet/wood{ - pixel_x = 1; - pixel_y = -3 - }, -/obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/park) "baC" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station) @@ -2041,19 +1720,54 @@ /obj/item/stack/catwalk, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"bby" = ( -/turf/open/floor/prison, +"baM" = ( +/obj/effect/spawner/random/gun/smg, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"bbn" = ( +/obj/item/device/motiondetector, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"bbp" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/fiorina/tumor/civres) -"bbT" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"bbI" = ( +/obj/item/stool{ + pixel_x = -4; + pixel_y = 23 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"bbU" = ( +/obj/structure/sign/safety/fire_haz, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/civres) +"bcd" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/station/flight_deck) "bce" = ( /obj/structure/lattice, /turf/open/space/basic, @@ -2063,81 +1777,71 @@ /obj/item/storage/pill_bottle/kelotane/skillless, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"bcg" = ( -/obj/structure/platform{ - dir = 4 - }, +"bcp" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "greenblue" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/botany) -"bck" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ - pixel_y = 7 +/area/fiorina/station/telecomm/lz1_tram) +"bcq" = ( +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison, +/area/fiorina/station/security) +"bcz" = ( +/obj/structure/machinery/light/small{ + dir = 4; + pixel_x = 11; + pixel_y = 10 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"bcs" = ( -/obj/structure/largecrate/random, +/area/fiorina/tumor/aux_engi) +"bcT" = ( +/obj/structure/platform, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "darkbrown2" }, /area/fiorina/station/park) -"bcF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +"bcX" = ( +/obj/item/tool/warning_cone, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/area/fiorina/station/medbay) -"bcH" = ( -/obj/item/tool/screwdriver, /turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"bcV" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/telecomm/lz1_cargo) +"bdb" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/fiorina/tumor/ice_lab) -"bdI" = ( -/obj/structure/bed/roller, -/obj/item/bedsheet/green, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "darkbrown2" }, -/area/fiorina/station/research_cells) -"bdL" = ( -/obj/structure/inflatable/door, +/area/fiorina/station/park) +"bdE" = ( +/obj/item/stack/cable_coil, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"bdS" = ( -/obj/item/tool/weldingtool{ - pixel_x = 6; - pixel_y = -2 +/area/fiorina/tumor/civres) +"bec" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/servers) -"bej" = ( -/obj/structure/barricade/handrail/type_b, -/obj/structure/barricade/handrail/type_b{ - dir = 4 +/area/fiorina/lz/near_lzI) +"beh" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreencorner" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/tumor/ice_lab) "bel" = ( /obj/structure/prop/structure_lattice{ dir = 1; @@ -2149,10 +1853,31 @@ icon_state = "squares" }, /area/fiorina/station/civres_blue) -"beV" = ( -/turf/open/floor/prison{ +"bem" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"ber" = ( +/obj/structure/inflatable/popped/door, +/obj/item/ammo_magazine/m56d, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"bez" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; dir = 4; - icon_state = "bluecorner" + layer = 6; + name = "overhead pipe"; + pixel_y = 20 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"beB" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "blue" }, /area/fiorina/station/power_ring) "beW" = ( @@ -2162,52 +1887,19 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"bfb" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" - }, -/obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"bfg" = ( -/obj/structure/surface/rack, -/obj/item/storage/bible/hefa{ - pixel_y = 3 - }, -/obj/item/storage/bible/hefa, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"bfs" = ( -/obj/item/stack/sheet/wood{ - amount = 10 - }, +"bff" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"bfx" = ( -/obj/item/trash/barcardine, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/civres_blue) "bfF" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"bfZ" = ( -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"bgb" = ( -/obj/structure/surface/rack, -/obj/item/storage/pill_bottle/bicaridine/skillless, -/obj/item/storage/pill_bottle/bicaridine/skillless, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) "bgc" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, @@ -2223,27 +1915,18 @@ /obj/item/trash/pistachios, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"bgG" = ( -/obj/structure/reagent_dispensers/watertank{ - layer = 2.6 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/lz/near_lzII) -"bgR" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalleft" - }, +"bgD" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"bha" = ( -/obj/structure/platform_decoration, +/area/fiorina/tumor/ice_lab) +"bhf" = ( +/obj/item/fuelCell, +/obj/structure/surface/rack, /turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/maintenance) "bht" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -2263,100 +1946,103 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"bhM" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/disco) -"bhR" = ( -/obj/item/device/flashlight/lamp/tripod, +"bhW" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 4; + icon_state = "greencorner" }, -/area/fiorina/station/research_cells) +/area/fiorina/tumor/civres) "bhX" = ( /turf/open/floor/plating/prison, /area/fiorina/station/flight_deck) "bis" = ( /turf/closed/wall/prison, /area/fiorina/station/chapel) -"biH" = ( -/obj/structure/machinery/door/poddoor/almayer{ - density = 0; - dir = 4 - }, +"bix" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"biJ" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" + dir = 8; + icon_state = "darkyellow2" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/research_cells) -"bjk" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +/area/fiorina/station/telecomm/lz1_cargo) +"bjf" = ( +/obj/item/tool/warning_cone, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"bjo" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/faxmachine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"bjt" = ( +/obj/structure/bed{ + icon_state = "abed" }, +/obj/item/bedsheet/green, /turf/open/floor/prison{ dir = 6; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"bjx" = ( +"bjR" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 1; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"bjy" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/area/fiorina/tumor/aux_engi) +"bjZ" = ( +/obj/item/weapon/twohanded/spear, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + icon_state = "darkpurplefull2" }, -/area/fiorina/tumor/ice_lab) -"bjO" = ( -/obj/structure/closet/bodybag, +/area/fiorina/station/research_cells) +"bkg" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"bki" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/boxing/yellow, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/medbay) -"bka" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" +/area/fiorina/station/lowsec) +"bkQ" = ( +/obj/item/ammo_casing{ + icon_state = "casing_7_1" }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) -"bkS" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, -/area/fiorina/lz/near_lzII) -"blb" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 + icon_state = "floor_plate" }, +/area/fiorina/station/lowsec) +"bkU" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"bln" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" +/area/fiorina/station/central_ring) +"ble" = ( +/obj/structure/prop/resin_prop{ + icon_state = "rack" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/tumor/aux_engi) +"blA" = ( +/obj/item/shard{ + icon_state = "medium"; + name = "ice shard" + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "blG" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 2; @@ -2364,188 +2050,215 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"blQ" = ( -/obj/structure/inflatable/popped/door, +"bma" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/newspaper, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/botany) +"bmw" = ( +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) "bmE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"bmO" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +"bmT" = ( +/obj/structure/monorail{ + dir = 4; + name = "launch track" }, -/area/fiorina/station/flight_deck) +/turf/open/space, +/area/fiorina/oob) "bmV" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"bmX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 1 +"bne" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/lz/near_lzII) +"bnh" = ( +/obj/item/storage/briefcase, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/transit_hub) +"bno" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4; + layer = 3.5 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"bnx" = ( +/obj/item/stack/sheet/metal/medium_stack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "bnA" = ( /turf/closed/wall/prison, /area/fiorina/station/transit_hub) -"bnK" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_tram) +"bnJ" = ( +/obj/structure/machinery/lapvend, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "bnL" = ( /obj/item/storage/fancy/cigarettes/lady_finger, /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"bod" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 9 +"bnM" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "delivery_outlet"; + layer = 6; + name = "overhead ducting"; + pixel_y = 33 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/tumor/civres) "boe" = ( /obj/item/tool/wet_sign, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"boh" = ( -/obj/item/stool, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"bop" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellowcorner" - }, -/area/fiorina/station/lowsec) "bou" = ( /obj/item/stack/tile/plasteel, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"bow" = ( +"boF" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + icon_state = "floor_plate" }, /area/fiorina/station/medbay) -"bpq" = ( -/obj/item/stack/sheet/wood{ - amount = 10 +"boI" = ( +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = 5; + pixel_y = 12 }, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"bpC" = ( -/obj/item/tank/jetpack/carbondioxide, -/obj/structure/surface/rack, +/area/fiorina/station/medbay) +"bpe" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"bpG" = ( -/obj/effect/decal/hefa_cult_decals/d32{ - icon_state = "bee" - }, +/area/fiorina/station/civres_blue) +"bpo" = ( +/obj/item/dogtag, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "blue" }, -/area/fiorina/tumor/servers) -"bpK" = ( +/area/fiorina/station/civres_blue) +"bpx" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"bqu" = ( +/obj/structure/toilet{ + dir = 4; + pixel_y = 8 }, -/obj/item/weapon/gun/energy/taser, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/station/security) -"bqy" = ( -/obj/structure/platform, +/area/fiorina/station/research_cells) +"bqC" = ( /obj/structure/platform{ dir = 8 }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"bqD" = ( /obj/structure/platform_decoration{ - dir = 10 + dir = 4 }, -/obj/structure/closet/firecloset/full, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"bra" = ( -/obj/structure/largecrate/random/case, +/area/fiorina/station/lowsec) +"bqF" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/storage/belt/marine, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"brr" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 +/area/fiorina/station/security) +"bqX" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"brl" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"brC" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 6; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"bry" = ( -/obj/structure/inflatable/popped/door, +"brR" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/tumor/servers) -"brI" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform_decoration/kutjevo, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" + icon_state = "cell_stripe" }, -/turf/open/space/basic, -/area/fiorina/oob) -"brS" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clipboard, +/area/fiorina/station/flight_deck) +"brY" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/research_cells) -"bsd" = ( -/obj/structure/closet/basketball, -/obj/item/storage/pill_bottle/bicaridine/skillless, -/obj/effect/landmark/objective_landmark/science, +/area/fiorina/station/transit_hub) +"bsc" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkredfull2" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/security) +"bsk" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/space/basic, +/area/fiorina/oob) "bsm" = ( /obj/item/shard{ icon_state = "medium"; @@ -2560,76 +2273,88 @@ icon_state = "stan_l_w" }, /area/fiorina/tumor/ship) -"bsq" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - pixel_y = 9 +"bsO" = ( +/obj/structure/largecrate/random/secure, +/obj/structure/barricade/wooden{ + dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"bsF" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/station/park) -"bsJ" = ( +/area/fiorina/station/research_cells) +"bsR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/flight_deck) -"btq" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" +/area/fiorina/station/medbay) +"buz" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"buG" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/tumor/ice_lab) -"btz" = ( -/obj/structure/platform, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/park) -"btB" = ( -/obj/structure/cargo_container/grant/right{ - density = 0; - desc = "A huge industrial shipping container. You could slip just behind it."; - health = 5000; - layer = 4; - unacidable = 1 +/area/fiorina/station/central_ring) +"buJ" = ( +/obj/structure/bed/chair{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "blue" }, /area/fiorina/station/power_ring) -"btP" = ( -/obj/item/tool/kitchen/rollingpin, +"bvg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/meat{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/meat{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/meat{ + pixel_x = -1; + pixel_y = 6 + }, /turf/open/floor/prison{ icon_state = "kitchen" }, /area/fiorina/station/power_ring) -"bux" = ( -/obj/structure/toilet{ +"bvp" = ( +/obj/structure/barricade/wooden{ dir = 4; - pixel_y = 8 + pixel_y = 4 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + dir = 10; + icon_state = "damaged1" }, -/area/fiorina/station/lowsec) -"buz" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) -"buO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/surgical, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/area/fiorina/station/central_ring) +"bvr" = ( +/obj/item/explosive/grenade/high_explosive/m15, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/prison{ + icon_state = "panelscorched" + }, +/area/fiorina/tumor/aux_engi) +"bvs" = ( +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/central_ring) "bvK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/atmospipes{ @@ -2641,179 +2366,292 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"bxa" = ( -/obj/structure/platform, -/obj/structure/machinery/light/double/blue, +"bwj" = ( +/obj/structure/computerframe, /turf/open/floor/prison{ - icon_state = "whitegreen" + icon_state = "floor_plate" }, /area/fiorina/station/medbay) -"bxl" = ( -/obj/structure/machinery/light/double/blue{ +"bwk" = ( +/obj/item/tool/wrench, +/turf/open/floor/prison{ dir = 1; - pixel_y = 21 + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"bww" = ( +/obj/item/trash/candy, /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"bxr" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ - density = 0; - pixel_y = 16 +/area/fiorina/station/telecomm/lz1_cargo) +"bxc" = ( +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"bxd" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/oob) +"bxe" = ( +/obj/structure/machinery/landinglight/ds2{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"bxg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/corpsespawner/doctor, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/civres_blue) +"bxm" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ dir = 1; icon_state = "darkbrown2" }, -/area/fiorina/maintenance) +/area/fiorina/station/park) +"bxv" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) +"bxy" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"bxA" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"bxE" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 4; + layer = 6; + name = "overhead pipe"; + pixel_y = 20 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"bxQ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) "bxV" = ( /obj/item/clothing/head/cmcap, /obj/effect/landmark/objective_landmark/far, /turf/open/floor/wood, /area/fiorina/station/chapel) -"bxW" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"bya" = ( +/obj/structure/machinery/disposal, +/obj/item/tool/kitchen/rollingpin{ + pixel_y = 8 }, -/turf/open/floor/prison, -/area/fiorina/tumor/fiberbush) +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/station/civres_blue) "byb" = ( /turf/closed/shuttle/ert{ icon_state = "stan27" }, /area/fiorina/tumor/ship) +"byc" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) "bym" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" }, /area/fiorina/lz/near_lzI) -"byn" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/prison{ - dir = 10; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"byr" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/fancy/vials/random, -/obj/effect/landmark/objective_landmark/science, +"byB" = ( +/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"byt" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "bluefull" +/area/fiorina/station/chapel) +"byE" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"byF" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/power_ring) -"bzC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform_decoration{ + dir = 6 }, -/area/fiorina/tumor/servers) -"bzG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/flashlight/lamp, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 6; + icon_state = "whitegreen" }, -/area/fiorina/station/disco) -"bzH" = ( -/obj/structure/sign/poster{ - icon_state = "poster7"; - pixel_x = -26; - pixel_y = 6 +/area/fiorina/tumor/ice_lab) +"byG" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" }, -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/tumor/ice_lab) +"byJ" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "green" }, -/area/fiorina/station/medbay) -"bzL" = ( -/obj/structure/bed/sofa/vert/grey/bot, +/area/fiorina/tumor/civres) +"byT" = ( +/obj/structure/platform, /turf/open/floor/prison, /area/fiorina/station/transit_hub) +"byY" = ( +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"bze" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreencorner" + }, +/area/fiorina/station/medbay) "bzO" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/power_ring) -"bAb" = ( +"bzU" = ( +/obj/item/tool/shovel/snow, +/obj/item/device/flashlight, /obj/structure/surface/rack, -/obj/item/explosive/grenade/high_explosive/frag, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/servers) +/area/fiorina/tumor/ice_lab) "bAc" = ( /turf/closed/shuttle/ert{ icon_state = "stan25" }, /area/fiorina/tumor/aux_engi) -"bAS" = ( +"bAf" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/tumor/ice_lab) -"bAU" = ( -/obj/structure/bed/chair{ - dir = 4 +/area/fiorina/station/power_ring) +"bAE" = ( +/obj/structure/surface/rack, +/obj/item/storage/pill_bottle/bicaridine/skillless, +/obj/item/storage/pill_bottle/bicaridine/skillless, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/gibspawner/human, +/area/fiorina/station/medbay) +"bAM" = ( +/obj/item/paper/prison_station/inmate_handbook, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/lowsec) +"bBr" = ( +/obj/structure/barricade/metal/wired{ + dir = 1 + }, +/obj/item/bodybag/tarp/reactive, +/obj/item/bodybag/tarp/reactive, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"bBt" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) "bBA" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" }, /area/fiorina/station/power_ring) -"bBS" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +"bBB" = ( +/obj/structure/largecrate/random/barrel, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) -"bBX" = ( -/obj/structure/largecrate/random/case/double, +/area/fiorina/station/park) +"bBK" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"bCk" = ( -/obj/effect/decal/cleanable/blood/drip, +/area/fiorina/station/security) +"bCe" = ( /turf/open/floor/prison{ dir = 1; - icon_state = "darkpurple2" + icon_state = "redcorner" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/security) "bCu" = ( /obj/item/shard{ icon_state = "large" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"bDd" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/prison, -/area/fiorina/station/security) -"bDu" = ( -/obj/item/trash/barcardine, +"bDv" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/flight_deck) "bDx" = ( /obj/item/tool/extinguisher/mini, /obj/structure/machinery/light/double/blue{ @@ -2824,215 +2662,198 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"bDC" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/fire/empty, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"bDD" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno/body, +"bDJ" = ( +/obj/effect/spawner/random/gun/pistol, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"bDN" = ( +"bDM" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/park) +/area/fiorina/station/chapel) "bDU" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"bEn" = ( +"bDX" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ + icon_state = "green" + }, +/area/fiorina/station/chapel) +"bEk" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/oob) +"bEm" = ( +/obj/effect/landmark/wo_supplies/storage/belts/knifebelt, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"bEA" = ( +/obj/structure/barricade/wooden{ dir = 4; - icon_state = "darkbrown2" + pixel_y = 4 }, -/area/fiorina/tumor/aux_engi) -"bEO" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"bED" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/fiorina/station/chapel) +/turf/open/floor/prison, +/area/fiorina/station/park) "bEP" = ( /obj/item/device/flashlight, /turf/open/floor/prison/chapel_carpet{ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"bET" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "bEX" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/disco) -"bFh" = ( -/obj/item/stack/sheet/metal{ - amount = 5 +"bFg" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_container/food/snacks/meat/human, +/obj/item/reagent_container/food/snacks/meat/human, +/obj/structure/machinery/light/double/blue, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"bFj" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/civres_blue) +"bFi" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/turf/closed/shuttle/ert{ - icon_state = "leftengine_1"; - layer = 3 +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/oob) +/area/fiorina/station/park) "bFr" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/chapel) -"bFt" = ( -/obj/item/stool, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) "bFA" = ( /turf/closed/shuttle/ert{ icon_state = "wy27" }, /area/fiorina/station/medbay) -"bFN" = ( +"bFC" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison, +/area/fiorina/station/park) +"bFJ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"bFL" = ( +/obj/structure/mirror{ + pixel_x = -32 + }, /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/obj/item/reagent_container/glass/bottle/cyanide{ - pixel_x = -12; - pixel_y = 13 - }, /turf/open/floor/prison{ dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"bFR" = ( -/obj/item/ammo_magazine/rifle/m16, -/obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "kitchen" }, -/area/fiorina/station/security) -"bFY" = ( -/obj/structure/bed/chair/comfy{ +/area/fiorina/tumor/civres) +"bGA" = ( +/obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"bGr" = ( -/obj/structure/barricade/metal/wired, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"bGs" = ( -/obj/structure/inflatable/popped, +/area/fiorina/station/park) +"bGB" = ( +/obj/structure/largecrate/supply/generator, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"bGt" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"bGy" = ( -/obj/structure/machinery/shower{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/lowsec) -"bGQ" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 + icon_state = "floor_plate" }, -/obj/item/clothing/gloves/combat, +/area/fiorina/station/telecomm/lz1_cargo) +"bGH" = ( +/obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "whitegreen" }, -/area/fiorina/station/research_cells) -"bGT" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/tumor/ice_lab) "bGY" = ( /turf/closed/shuttle/elevator{ dir = 9 }, /area/fiorina/station/civres_blue) -"bHl" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +"bHt" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 }, -/turf/open/floor/prison{ +/obj/structure/prop/structure_lattice{ dir = 4; - icon_state = "darkyellow2" + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/station/telecomm/lz1_tram) +/turf/open/floor/prison, +/area/fiorina/station/chapel) "bHv" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"bHI" = ( -/obj/item/frame/rack, +"bHP" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"bHR" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/servers) -"bHY" = ( -/obj/item/weapon/gun/flamer, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/ammo_magazine/flamer_tank, -/obj/item/storage/pouch/flamertank, -/turf/open/floor/prison, /area/fiorina/tumor/aux_engi) -"bIg" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +"bHU" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/area/fiorina/station/transit_hub) -"bII" = ( -/obj/structure/bed/chair, +/obj/structure/platform/kutjevo/smooth, +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"bIz" = ( +/obj/structure/machinery/landinglight/ds2{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"bIP" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "yellow" }, -/area/fiorina/station/medbay) -"bIX" = ( +/area/fiorina/station/lowsec) +"bIR" = ( +/obj/structure/closet/secure_closet/security, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/disco) "bIZ" = ( /turf/closed/shuttle/elevator{ dir = 6 @@ -3065,122 +2886,108 @@ name = "astroturf" }, /area/fiorina/station/park) -"bJz" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/tumor/servers) -"bJF" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" +"bJG" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryotop" }, -/area/fiorina/station/chapel) -"bKs" = ( -/obj/item/tool/warning_cone, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"bKM" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/pipes/standard/simple/visible{ + dir = 5 }, -/area/fiorina/tumor/servers) -"bLd" = ( -/obj/structure/platform_decoration, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"bLg" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 - }, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"bLz" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/medbay) +"bKF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/pill_bottle/imidazoline, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/park) +/area/fiorina/tumor/ice_lab) "bLA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"bMd" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +"bLE" = ( +/obj/item/stack/rods, +/turf/open/floor/prison, +/area/fiorina/station/security) +"bLJ" = ( +/turf/closed/wall/prison, +/area/fiorina/station/central_ring) +"bLM" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/medbay) +"bLO" = ( +/obj/item/stack/cable_coil/blue, +/turf/open/floor/prison{ + icon_state = "whitegreencorner" + }, +/area/fiorina/tumor/ice_lab) "bMh" = ( /obj/item/frame/table/wood/fancy, /obj/item/paper/prison_station/warden_note, /obj/item/tool/pen, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"bMr" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/station/civres_blue) "bMu" = ( /obj/structure/curtain{ layer = 3 }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"bMA" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket" +"bMz" = ( +/obj/item/tool/lighter/random, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" }, +/area/fiorina/tumor/civres) +"bMF" = ( +/obj/item/trash/cigbutt/cigarbutt, /turf/open/floor/prison{ - icon_state = "blue" + icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"bNf" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" +/area/fiorina/lz/near_lzI) +"bMG" = ( +/obj/structure/surface/rack, +/obj/item/handcuffs/zip, +/turf/open/floor/prison{ + icon_state = "darkredfull2" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"bNz" = ( +/area/fiorina/station/lowsec) +"bMI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/folder/black_random, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "bluefull" }, -/area/fiorina/maintenance) -"bNA" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +/area/fiorina/station/power_ring) +"bMT" = ( +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/ice_lab) +"bNo" = ( +/obj/item/trash/uscm_mre, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"bNN" = ( -/obj/structure/closet/crate/trashcart, +"bNE" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/civres_blue) "bNP" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/prison, @@ -3191,47 +2998,61 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"bOh" = ( -/obj/item/stack/folding_barricade, +"bOp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/barbed_wire, +/obj/item/stack/barbed_wire, +/obj/item/stack/cable_coil/blue, +/obj/item/stack/cable_coil/blue, +/obj/item/stack/cable_coil/blue, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"bOx" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"bOz" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/closed/shuttle/ert{ - icon_state = "rightengine_1"; - layer = 3; - opacity = 0 + icon_state = "whitepurple" }, -/area/fiorina/oob) +/area/fiorina/station/research_cells) "bOK" = ( /obj/item/reagent_container/food/snacks/donkpocket, /turf/open/floor/corsat{ icon_state = "squares" }, /area/fiorina/station/civres_blue) -"bPf" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"bPk" = ( -/obj/effect/decal/cleanable/blood/oil, +"bOR" = ( +/obj/structure/bed/roller, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/medbay) +"bPh" = ( +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "bPl" = ( /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/chapel) +"bPn" = ( +/obj/item/reagent_container/food/drinks/coffee{ + name = "\improper paper cup" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) +"bPy" = ( +/obj/structure/prop/resin_prop{ + icon_state = "sheater0" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) "bPG" = ( /turf/open/floor/plating/prison, /area/fiorina/station/botany) @@ -3241,18 +3062,40 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"bPS" = ( +"bPQ" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "blue" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/power_ring) -"bQh" = ( -/obj/structure/prop/invuln/minecart_tracks{ +/area/fiorina/station/chapel) +"bPT" = ( +/obj/structure/monorail{ + dir = 5; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/aux_engi) +"bPV" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"bQh" = ( +/obj/structure/prop/invuln/minecart_tracks{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"bQj" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "bQk" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -3264,21 +3107,43 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"bQx" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, +"bQn" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gib2" + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreencorner" + }, +/area/fiorina/station/medbay) +"bQv" = ( +/obj/item/trash/cigbutt/ucigbutt, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/chapel) "bQy" = ( /obj/structure/surface/table/woodentable, /obj/item/reagent_container/spray/pepper, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) +"bQL" = ( +/obj/item/tool/mop, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/chapel) "bQM" = ( /turf/open/space, /area/fiorina/oob) +"bQW" = ( +/obj/item/frame/rack, +/obj/item/stack/medical/bruise_pack, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "bRb" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ dir = 4 @@ -3292,23 +3157,69 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"bRu" = ( -/obj/item/weapon/gun/smg/mp5, -/obj/item/ammo_casing{ - icon_state = "casing_6_1" +"bRo" = ( +/obj/structure/sink{ + pixel_y = 23 + }, +/obj/item/prop/helmetgarb/rabbitsfoot{ + pixel_y = 22 + }, +/obj/item/reagent_container/food/drinks/bottle/kahlua{ + pixel_x = 5; + pixel_y = 25 }, /turf/open/floor/prison{ dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"bRs" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/prison{ icon_state = "floor_plate" }, +/area/fiorina/station/park) +"bRA" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" + }, /area/fiorina/station/telecomm/lz1_cargo) -"bRU" = ( -/obj/item/device/multitool, +"bRC" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"bRQ" = ( +/obj/item/stock_parts/micro_laser/ultra, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "darkpurple2" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/servers) +"bSm" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"bSq" = ( +/obj/structure/surface/rack, +/obj/item/weapon/gun/smg/nailgun, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/maintenance) +"bSs" = ( +/turf/open/floor/prison{ + icon_state = "floorscorched2" + }, +/area/fiorina/station/security) "bSM" = ( /obj/structure/machinery/portable_atmospherics/hydroponics{ draw_warnings = 0; @@ -3318,35 +3229,52 @@ }, /turf/open/floor/greengrid, /area/fiorina/station/botany) -"bSP" = ( -/obj/item/tool/surgery/scalpel, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"bST" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/alien/weeds/node, +"bSS" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"bTc" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/tumor/aux_engi) -"bTe" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/chapel) "bTo" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/space, /area/fiorina/oob) -"bTG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/gun/shotgun/highchance, +"bTp" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/maintenance) +/area/fiorina/lz/near_lzI) +"bTr" = ( +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"bTC" = ( +/obj/structure/machinery/power/terminal{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "bTI" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ indestructible = 1; @@ -3354,67 +3282,28 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"bUt" = ( +/obj/structure/largecrate/random, +/obj/item/trash/pistachios, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "bUw" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"bUy" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) "bUB" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 }, /turf/open/space, /area/fiorina/oob) -"bUH" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_tram) -"bUJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/objective{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"bVh" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"bVk" = ( -/obj/item/device/flashlight/lamp/tripod, +"bVE" = ( +/obj/structure/closet/boxinggloves, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"bVO" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 - }, -/turf/open/floor/plating/prison, -/area/fiorina/oob) -"bVY" = ( -/obj/structure/coatrack, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) +/area/fiorina/station/central_ring) "bVZ" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_1"; @@ -3426,382 +3315,393 @@ /obj/structure/machinery/faxmachine, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"bWr" = ( +"bWy" = ( +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/tool/mop, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"bXc" = ( /obj/structure/inflatable/popped, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"bWE" = ( -/obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"bXa" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.4 - }, -/obj/structure/barricade/handrail/type_b{ dir = 4; - layer = 3.5 + icon_state = "whitegreen" }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/area/fiorina/station/medbay) +"bXe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_box/magazine/misc/flares, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/servers) +"bXh" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "bluecorner" }, -/area/fiorina/tumor/ice_lab) -"bXk" = ( -/obj/effect/decal/cleanable/blood/gibs/robot/limb, +/area/fiorina/station/chapel) +"bXz" = ( +/obj/item/stack/sheet/wood, /turf/open/floor/prison{ - dir = 5; + dir = 8; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"bYq" = ( -/obj/item/ammo_casing{ - icon_state = "casing_10_1" +"bXA" = ( +/obj/item/tool/screwdriver, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"bYY" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"bYv" = ( -/obj/structure/filingcabinet, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"bYB" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" + icon_state = "darkbrowncorners2" }, -/turf/open/floor/prison, -/area/fiorina/station/botany) -"bYG" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 +/area/fiorina/maintenance) +"bZn" = ( +/obj/item/device/taperecorder{ + pixel_x = 1; + pixel_y = 3 }, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"bYS" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" +/area/fiorina/station/chapel) +"bZD" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrowncorners2" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"bZu" = ( -/obj/structure/sink{ +/area/fiorina/tumor/aux_engi) +"bZI" = ( +/obj/structure/surface/table/reinforced/prison{ dir = 8; - pixel_x = -12 + flipped = 1 }, +/obj/item/device/flashlight/lamp, /turf/open/floor/prison{ - dir = 10; + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"bZY" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"car" = ( +/obj/structure/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/prison{ + dir = 8; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"bZC" = ( -/obj/structure/barricade/wooden{ - dir = 4 - }, -/obj/item/tool/crowbar/red, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut/alt, +"caA" = ( +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"bZF" = ( -/obj/effect/landmark/objective_landmark/far, +/area/fiorina/tumor/servers) +"caC" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "green" }, -/area/fiorina/tumor/aux_engi) -"bZY" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) +/area/fiorina/station/transit_hub) "caF" = ( /turf/open/floor/wood, /area/fiorina/station/lowsec) -"cbb" = ( -/obj/structure/monorail{ - dir = 5; - name = "launch track" +"caX" = ( +/obj/structure/inflatable/popped/door, +/obj/item/ammo_casing{ + icon_state = "casing_1" }, -/turf/open/space, -/area/fiorina/oob) -"cbe" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"cbx" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "sterile_white" }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/medbay) +"cbd" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"cbA" = ( +/obj/item/stack/rods, +/turf/open/floor/prison, +/area/fiorina/station/park) +"cbE" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + indestructible = 1 }, -/area/fiorina/station/power_ring) -"cbC" = ( -/obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/item/clothing/head/that{ + anchored = 1; + indestructible = 1; + pixel_y = 7 }, -/area/fiorina/station/power_ring) -"cbK" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/turf/open/floor/plating/prison, +/area/fiorina/tumor/civres) +"cbF" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/obj/item/weapon/gun/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/obj/item/storage/belt/marine, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison{ - icon_state = "redfull" +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/security) +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) "cbN" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station) +"cbY" = ( +/obj/item/newspaper, +/turf/open/floor/prison{ + icon_state = "whitepurplecorner" + }, +/area/fiorina/station/research_cells) "ccH" = ( /obj/structure/machinery/newscaster, /turf/closed/wall/prison, /area/fiorina/station/civres_blue) -"cdD" = ( +"ccY" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/prop/invuln{ + desc = "The best ride in the universe. For the one and only Souto Man! Although, this one seems to have no fuel left."; + dir = 4; + icon = 'icons/obj/vehicles/vehicles.dmi'; + icon_state = "soutomobile"; + name = "Disabled Souto Mobile" + }, +/turf/open/floor/prison, +/area/fiorina/station/park) +"ccZ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"cdp" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, /turf/open/floor/prison{ dir = 1; - icon_state = "darkbrown2" + icon_state = "darkyellow2" }, -/area/fiorina/station/park) -"cel" = ( +/area/fiorina/station/flight_deck) +"cdV" = ( /obj/structure/machinery/light/double/blue{ dir = 4; pixel_x = 10; pixel_y = 13 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"ceC" = ( -/turf/closed/wall/r_wall/prison, -/area/fiorina/station/security) -"ceZ" = ( -/obj/structure/bed{ - icon_state = "abed" + dir = 1; + icon_state = "blue_plate" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/botany) +"cdY" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docstripingdir" }, -/area/fiorina/station/research_cells) -"cfc" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0" +/obj/structure/bed/roller, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/telecomm/lz1_cargo) -"cfj" = ( -/obj/item/trash/cigbutt, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"cft" = ( -/obj/item/frame/rack, -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 +/area/fiorina/station/medbay) +"ceq" = ( +/obj/item/bodybag, +/obj/item/bodybag{ + pixel_y = 2 + }, +/obj/item/bodybag{ + pixel_y = 4 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"cfz" = ( -/obj/item/stock_parts/manipulator/pico, +/area/fiorina/station/medbay) +"cer" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/tumor/servers) -"cfD" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"ceB" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" }, +/area/fiorina/station/civres_blue) +"ceC" = ( +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"ceJ" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "whitegreen" }, /area/fiorina/tumor/ice_lab) -"cfN" = ( +"cfa" = ( +/obj/item/frame/rack, +/obj/structure/barricade/handrail/type_b{ + dir = 1 + }, /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, +/area/fiorina/station/lowsec) +"cfG" = ( +/obj/structure/machinery/landinglight/ds1/delayone{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, /area/fiorina/lz/near_lzI) -"cgE" = ( -/obj/structure/machinery/vending/sovietsoda, +"cfU" = ( +/obj/item/prop/helmetgarb/gunoil, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"chA" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/space/basic, -/area/fiorina/oob) -"chJ" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/storage/fancy/cigar/tarbacks, +"cgx" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"chS" = ( -/obj/structure/window, +/area/fiorina/station/medbay) +"chg" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "bluefull" }, -/area/fiorina/tumor/servers) -"chT" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/power_ring) +"chx" = ( +/obj/structure/stairs/perspective{ dir = 8; - pixel_x = -10; - pixel_y = -3 + icon_state = "p_stair_full" }, -/turf/open/floor/wood, -/area/fiorina/station/park) -"cie" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/prop/souto_land/streamer{ - pixel_y = 24 +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"chE" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ + density = 0; + pixel_y = 16 }, /turf/open/floor/prison{ - dir = 4; + dir = 1; icon_state = "darkbrown2" }, -/area/fiorina/station/park) -"cif" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"ciX" = ( -/obj/structure/monorail{ - name = "launch track" - }, +/area/fiorina/maintenance) +"chT" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; + dir = 8; + pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/plating/prison, -/area/fiorina/oob) -"ciZ" = ( -/obj/item/explosive/grenade/incendiary/molotov, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/turf/open/floor/wood, +/area/fiorina/station/park) +"chZ" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 }, -/area/fiorina/station/lowsec) -"cjl" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/iv_drip{ - pixel_y = 19 +/obj/structure/curtain/shower, +/obj/structure/window{ + dir = 4 + }, +/obj/item/coin/uranium{ + desc = "You found one of the three uranium coins. It is entirely worthless." }, -/obj/item/newspaper, -/obj/item/bedsheet/green, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"cjp" = ( -/obj/item/stool, -/obj/structure/sign/poster{ - icon_state = "poster14"; - pixel_y = 32 +"ciy" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" +/obj/structure/platform_decoration{ + dir = 6 }, -/area/fiorina/station/lowsec) -"cjs" = ( -/obj/effect/decal/cleanable/blood, +/obj/structure/closet/emcloset, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/botany) -"cjA" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 +/area/fiorina/station/medbay) +"ciA" = ( +/obj/structure/machinery/vending/snack/packaged, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"ciM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/glass/bottle/spaceacillin{ + pixel_x = -6; + pixel_y = 4 }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 +/obj/item/reagent_container/syringe{ + pixel_x = 3; + pixel_y = -3 }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" +/obj/item/reagent_container/glass/bottle/spaceacillin{ + pixel_x = 6; + pixel_y = 12 }, -/turf/open/space/basic, -/area/fiorina/oob) -"cjF" = ( +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"cjS" = ( -/obj/item/newspaper, +/area/fiorina/tumor/ice_lab) +"cje" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "darkpurplefull2" }, -/area/fiorina/tumor/ice_lab) -"ckj" = ( +/area/fiorina/tumor/servers) +"cjG" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/civres_blue) +"cki" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) "ckm" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) +"ckr" = ( +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_tram) +"ckt" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) "ckx" = ( /obj/structure/platform{ dir = 1 @@ -3809,35 +3709,27 @@ /obj/item/fuelCell, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"cky" = ( -/obj/structure/bed/roller, -/obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"ckD" = ( -/obj/item/stool, +"ckA" = ( +/obj/structure/platform, +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) +"ckS" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"cll" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/condiment/saltshaker{ - pixel_x = -5; - pixel_y = -6 - }, -/obj/item/reagent_container/food/condiment/peppermill{ - pixel_x = -5; - pixel_y = -11 + icon_state = "yellowfull" }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" +/area/fiorina/station/lowsec) +"ckZ" = ( +/obj/structure/platform, +/turf/open/floor/prison, +/area/fiorina/station/park) +"clb" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket" }, -/area/fiorina/station/flight_deck) +/turf/open/floor/prison, +/area/fiorina/station/chapel) "cls" = ( /obj/structure/surface/table/woodentable, /turf/open/floor/carpet, @@ -3846,9 +3738,19 @@ /obj/structure/girder, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"clG" = ( -/turf/open/floor/prison, -/area/fiorina/maintenance) +"clv" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"clA" = ( +/obj/item/weapon/baton/cattleprod, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "clN" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -3860,186 +3762,95 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"clZ" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/washing_machine{ - pixel_y = 15 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"cmg" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"cmj" = ( -/obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" +"cmy" = ( +/obj/structure/sign/prop3{ + desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, -/area/fiorina/station/research_cells) -"cmm" = ( -/obj/structure/reagent_dispensers/watertank, +/turf/closed/wall/prison, +/area/fiorina/station/central_ring) +"cmE" = ( +/obj/item/stack/sheet/wood/medium_stack, +/obj/item/stack/sheet/wood/medium_stack, +/obj/structure/surface/rack, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"cmz" = ( -/obj/structure/platform_decoration/kutjevo, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/turf/open/space, -/area/fiorina/oob) -"cmI" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/item/prop/almayer/comp_open{ - pixel_y = 6 + icon_state = "darkbrownfull2" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/maintenance) "cmP" = ( /obj/structure/pipes/standard/tank{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"cmV" = ( +"cns" = ( /obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"cmW" = ( -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, -/area/fiorina/station/chapel) -"cnl" = ( -/obj/structure/largecrate/supply/supplies/metal, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"cnn" = ( -/obj/item/device/flashlight, -/turf/open/floor/prison{ dir = 8; - icon_state = "blue" + icon_state = "p_stair_full" }, -/area/fiorina/station/civres_blue) -"cnu" = ( -/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison, -/area/fiorina/station/disco) -"cnU" = ( -/obj/structure/machinery/computer/atmos_alert, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/fiberbush) -"cnW" = ( -/obj/structure/inflatable/popped, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"coh" = ( -/obj/item/stack/sheet/metal, +/area/fiorina/station/security) +"cnH" = ( +/obj/item/stock_parts/manipulator/pico, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 6; + icon_state = "darkpurple2" }, -/area/fiorina/tumor/civres) +/area/fiorina/tumor/servers) "coj" = ( /obj/item/stool, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"coT" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" +"cpv" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/botany) -"cph" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/spacecash/c20, +/obj/structure/surface/rack, /turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/lz/near_lzI) "cpP" = ( /turf/closed/shuttle/elevator/gears, /area/fiorina/station/telecomm/lz1_cargo) -"cpS" = ( -/obj/structure/prop/souto_land/pole, -/obj/structure/prop/souto_land/pole{ - dir = 4; - pixel_y = 24 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"cpW" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 +"cqz" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_leftengine" }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/lattice, -/turf/open/space/basic, /area/fiorina/oob) -"cqc" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"cqy" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 +"cqP" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"cqz" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan_leftengine" +"cqT" = ( +/turf/open/floor/prison{ + icon_state = "floorscorched1" }, -/area/fiorina/oob) -"cqH" = ( -/obj/structure/surface/rack, -/obj/item/clothing/gloves/latex, +/area/fiorina/station/security) +"cqV" = ( +/obj/item/stool, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"cqU" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/station/power_ring) +"cqW" = ( +/obj/item/stool, +/turf/open/floor/prison{ + icon_state = "damaged2" + }, +/area/fiorina/station/lowsec) +"cqX" = ( +/obj/item/stool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) "cri" = ( /obj/structure/machinery/computer/prisoner, /obj/structure/window/reinforced{ @@ -4050,59 +3861,36 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"crw" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +"crm" = ( +/obj/structure/largecrate/random/secure, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalleft" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/lz/near_lzI) -"crH" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" +/area/fiorina/station/medbay) +"cry" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/fiorina/tumor/aux_engi) +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) "crM" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) -"crO" = ( -/turf/open/floor/prison{ - icon_state = "damaged3" - }, -/area/fiorina/station/security) -"csl" = ( -/obj/item/trash/boonie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"cso" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/obj/item/storage/pill_bottle/dexalin/skillless, +"csL" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"csp" = ( -/turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"csH" = ( -/obj/structure/prop/invuln/minecart_tracks{ - dir = 1 + dir = 4; + icon_state = "cell_stripe" }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) +/area/fiorina/station/telecomm/lz1_tram) "ctc" = ( /obj/structure/prop/resin_prop{ icon_state = "sheater0" @@ -4113,76 +3901,112 @@ /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"ctz" = ( -/obj/structure/machinery/power/apc{ - dir = 8 +"ctC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/skills{ + dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "ctD" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"ctJ" = ( -/obj/effect/landmark/objective_landmark/close, +"ctI" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/effect/spawner/random/goggles/lowchance, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/tumor/civres) -"cua" = ( -/obj/structure/sign/safety/fire_haz, +/area/fiorina/station/research_cells) +"ctW" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/coin/uranium, +/obj/item/bedsheet/green, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/tumor/civres) -"cvf" = ( -/obj/structure/prop/structure_lattice{ +/area/fiorina/station/lowsec) +"ctY" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkpurple2" + }, +/area/fiorina/station/central_ring) +"cui" = ( +/obj/structure/bed/chair/comfy{ dir = 4 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" }, +/area/fiorina/station/civres_blue) +"cum" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 1 + }, +/obj/item/frame/rack, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"cvk" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 +/area/fiorina/station/disco) +"cvc" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 + }, +/obj/structure/machinery/m56d_hmg/mg_turret/dropship{ + dir = 4 }, -/obj/item/clothing/gloves/boxing/blue, /turf/open/floor/prison{ dir = 1; - icon_state = "yellow" + icon_state = "cell_stripe" + }, +/area/fiorina/station/central_ring) +"cvd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, -/area/fiorina/station/lowsec) -"cvn" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) -"cvp" = ( -/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ icon_state = "bluefull" }, -/area/fiorina/station/power_ring) -"cvq" = ( -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/civres_blue) +"cvi" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"cvr" = ( -/obj/structure/platform, -/obj/structure/reagent_dispensers/oxygentank{ - layer = 2.6 + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/station/medbay) +"cvn" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) +"cvv" = ( +/obj/structure/bed/sofa/vert/grey, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/lz/near_lzII) +"cvH" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "cvL" = ( /obj/effect/landmark/nightmare{ insert_tag = "gamertime" @@ -4198,203 +4022,193 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"cwO" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" +"cwM" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/station/medbay) -"cwU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"cxd" = ( -/obj/structure/prop/invuln/minecart_tracks/bumper{ - dir = 1 + icon_state = "floor_plate" }, +/area/fiorina/station/power_ring) +"cxb" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"cxe" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 + dir = 8; + icon_state = "darkbrown2" }, +/area/fiorina/maintenance) +"cxc" = ( +/obj/item/stack/folding_barricade, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/lz/near_lzI) -"cxl" = ( -/obj/structure/filingcabinet/disk, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/chapel) +"cxy" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0; + pixel_x = 10; + pixel_y = -8 }, -/area/fiorina/tumor/servers) -"cxn" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, -/area/fiorina/station/botany) -"cxF" = ( -/obj/structure/bed/chair/office/dark, +/turf/open/floor/prison, +/area/fiorina/station/security) +"cxA" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "cyb" = ( /turf/open/organic/grass{ desc = "It'll get in your shoes no matter what you do."; name = "astroturf" }, /area/fiorina/tumor/aux_engi) -"cyd" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) "cye" = ( /obj/item/trash/pistachios, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"cyu" = ( +"cyk" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 6 - }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"cyL" = ( +/obj/item/device/megaphone, /turf/open/floor/prison{ - icon_state = "platingdmg1" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/aux_engi) -"cyO" = ( -/obj/structure/machinery/vending/hydronutrients, +/area/fiorina/tumor/ice_lab) +"cyR" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "bluefull" }, -/area/fiorina/station/botany) -"cyU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/mineral/plastic/small_stack, -/turf/open/floor/prison, /area/fiorina/station/power_ring) "cyV" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"czj" = ( -/obj/structure/closet/toolcloset, -/obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ +"czf" = ( +/obj/structure/monorail{ dir = 4; - icon_state = "darkbrown2" + name = "launch track" }, -/area/fiorina/maintenance) -"czC" = ( -/obj/structure/bedsheetbin, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"czr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/pills/lowchance, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"cAv" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 + icon_state = "bluefull" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/power_ring) +"czJ" = ( +/obj/structure/reagent_dispensers/watertank{ + layer = 2.6 }, -/area/fiorina/station/central_ring) -"cAA" = ( -/obj/effect/landmark/static_comms/net_two, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/lz/near_lzII) -"cAV" = ( -/obj/item/ammo_casing{ - dir = 2; - icon_state = "casing_5" - }, +"cAJ" = ( +/obj/item/trash/snack_bowl, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/lowsec) +"cAO" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/monorail{ + dir = 4; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) +"cAU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio, +/obj/item/tool/pen/blue, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "cAW" = ( /turf/open/space/basic, /area/fiorina/oob) -"cBB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/mineral/plastic, +"cBm" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/electrical, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/tumor/aux_engi) +"cBn" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"cBG" = ( +/obj/effect/alien/weeds/node, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) +"cBJ" = ( +/obj/item/clothing/shoes/laceup, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) "cBK" = ( /obj/item/shard{ icon_state = "large" }, /turf/open/space, /area/fiorina/oob) -"cBQ" = ( -/obj/structure/platform{ - dir = 1 +"cBX" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottomright" }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13 }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"cBT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/machinery/computer/cameras{ - dir = 4 - }, +/area/fiorina/station/medbay) +"cCe" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitepurplecorner" }, -/area/fiorina/station/security) -"cBU" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/research_cells) +"cCh" = ( +/obj/item/ammo_casing{ + dir = 6; + icon_state = "casing_10_1" }, -/area/fiorina/tumor/servers) -"cBY" = ( -/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison, -/area/fiorina/tumor/servers) -"cCq" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"cCs" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/medbay) "cCt" = ( /obj/structure/barricade/wooden, /turf/open/floor/wood, @@ -4403,6 +4217,14 @@ /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"cCy" = ( +/obj/structure/bed/sofa/vert/grey/top, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "cCB" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, @@ -4411,59 +4233,48 @@ /obj/effect/spawner/random/sentry/midchance, /turf/open/floor/wood, /area/fiorina/station/chapel) -"cDf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 - }, -/obj/item/reagent_container/food/snacks/eat_bar, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/flight_deck) -"cDj" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"cCO" = ( +/obj/item/clothing/accessory/armband/cargo{ + desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; + name = "HEFA Order milita armband" }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/chapel) +"cDb" = ( +/obj/item/tool/crowbar, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "cDl" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ req_one_access = null }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"cDr" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docdecal1" - }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"cDZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications{ - dir = 1 +"cDE" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" }, +/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"cEf" = ( -/obj/item/tool/extinguisher, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"cEl" = ( +/area/fiorina/station/security) +"cEb" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"cEg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/shotgun/buckshot, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/maintenance) +/area/fiorina/station/research_cells) "cEw" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/transit_hub) @@ -4472,114 +4283,108 @@ icon_state = "stan_inner_t_right" }, /area/fiorina/tumor/ship) -"cEB" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"cFf" = ( -/obj/structure/machinery/vending/snack, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +"cEG" = ( +/obj/item/tool/pickaxe, +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"cFn" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison, -/area/fiorina/station/park) -"cFq" = ( -/obj/item/tool/mop, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"cFy" = ( -/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/lowsec) -"cFC" = ( -/obj/item/trash/cigbutt, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/area/fiorina/tumor/ice_lab) +"cEW" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "ywflowers_4" }, -/area/fiorina/station/medbay) -"cFE" = ( -/obj/item/clothing/mask/cigarette, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, -/area/fiorina/station/research_cells) -"cFN" = ( +/area/fiorina/station/central_ring) +"cEY" = ( +/obj/structure/largecrate/random/case/double, /obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/central_ring) -"cFQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/bottle/vodka{ - pixel_x = -4; - pixel_y = 12 +/area/fiorina/station/park) +"cFg" = ( +/obj/structure/machinery/landinglight/ds2/delaythree{ + dir = 8 }, -/obj/item/reagent_container/food/drinks/bottle/vodka{ - pixel_x = 6; - pixel_y = 3 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/lz/near_lzII) +"cFq" = ( +/obj/item/tool/mop, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"cFT" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/civres) "cFX" = ( /obj/structure/largecrate/supply/supplies, /obj/effect/spawner/random/goggles/lowchance, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"cGg" = ( -/obj/structure/machinery/gibber, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/power_ring) -"cGm" = ( +"cGa" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/ice_lab) "cGR" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/fiorina/station/park) -"cHq" = ( -/obj/structure/barricade/wooden{ - dir = 8 +"cGS" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"cGU" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"cHl" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"cHx" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison, /area/fiorina/station/security) -"cHD" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ - req_one_access = null +"cHm" = ( +/obj/item/bedsheet/green, +/obj/structure/bed, +/obj/item/toy/plush/farwa, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"cHC" = ( +/obj/item/trash/popcorn, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" }, -/turf/open/floor/prison, -/area/fiorina/station/park) +/area/fiorina/station/lowsec) "cHF" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright, @@ -4589,44 +4394,55 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"cHJ" = ( -/obj/item/trash/hotdog, +"cHK" = ( +/obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"cIt" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/medbay) -"cJa" = ( -/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "darkpurplefull2" }, -/area/fiorina/tumor/aux_engi) -"cJo" = ( -/obj/item/tool/warning_cone, +/area/fiorina/station/research_cells) +"cIJ" = ( /obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 + dir = 1; + pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"cIQ" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 + }, +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/fiorina/station/park) "cJv" = ( /obj/item/stack/rods, /turf/open/floor/corsat{ icon_state = "squares" }, /area/fiorina/station/telecomm/lz1_cargo) -"cJw" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/tool/pen, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "cJz" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -4638,30 +4454,94 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) +"cJL" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) +"cJS" = ( +/obj/item/trash/uscm_mre, +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) "cJW" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) +"cJY" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) "cKa" = ( /turf/closed/wall/prison, /area/fiorina/station/research_cells) -"cLc" = ( -/obj/structure/largecrate/random/case/small, -/obj/item/bodybag/tarp/reactive{ - pixel_y = 6 +"cKb" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"cLr" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, -/obj/structure/machinery/light/double/blue, +/area/fiorina/tumor/civres) +"cKB" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/ice_lab) +"cKH" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"cKJ" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/reagent_container/glass/bottle/robot/antitoxin, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"cKU" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/botany) "cLu" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -4669,92 +4549,111 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"cLE" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 +"cLy" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/item/clothing/gloves/boxing/green, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) -"cLR" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" +/area/fiorina/tumor/ice_lab) +"cLC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/machinery/computer/cameras{ + dir = 4 }, -/area/fiorina/station/botany) -"cMg" = ( -/obj/item/trash/snack_bowl, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"cME" = ( -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"cMJ" = ( -/obj/structure/machinery/vending/cola, +/area/fiorina/station/security) +"cLS" = ( +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"cNn" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/station/telecomm/lz1_cargo) +"cLZ" = ( +/obj/structure/largecrate/guns/merc, +/obj/item/toy/deck/uno, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, /area/fiorina/station/power_ring) -"cNC" = ( -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_y = 21 +"cMb" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) +"cMD" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "cell_stripe" }, -/turf/open/floor/prison, /area/fiorina/station/central_ring) -"cOb" = ( -/obj/item/ammo_casing{ - icon_state = "casing_6" +"cME" = ( +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"cMP" = ( +/obj/structure/machinery/shower{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "kitchen" }, -/area/fiorina/station/lowsec) -"cOl" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/research_cells) +"cNe" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, -/area/fiorina/station/research_cells) -"cOn" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/tumor/servers) +"cOj" = ( /turf/open/floor/prison{ - dir = 8; icon_state = "blue" }, /area/fiorina/station/civres_blue) -"cOq" = ( -/obj/item/disk, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"cOy" = ( -/obj/item/tool/shovel/snow, -/obj/item/device/flashlight, -/obj/structure/surface/rack, -/obj/effect/landmark/objective_landmark/science, +"cOB" = ( +/obj/item/stool, +/turf/open/floor/prison{ + dir = 1; + icon_state = "cell_stripe" + }, +/area/fiorina/station/flight_deck) +"cOC" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"cOF" = ( +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"cOL" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "darkyellow2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/telecomm/lz1_cargo) +"cPh" = ( +/obj/item/ammo_casing{ + icon_state = "casing_6" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "cPq" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -4763,69 +4662,74 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"cPI" = ( -/obj/structure/bed/chair, -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/cleanable/blood/drip{ - icon_state = "2" - }, -/obj/effect/decal/cleanable/blood/drip{ - icon_state = "4" +"cPs" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/item/prop/helmetgarb/flair_initech, -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"cPQ" = ( -/obj/structure/bed/roller, -/obj/effect/decal/cleanable/blood/gibs/body, +/area/fiorina/tumor/servers) +"cPz" = ( +/obj/structure/machinery/fuelcell_recycler, /turf/open/floor/prison, -/area/fiorina/station/lowsec) -"cQn" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +/area/fiorina/station/telecomm/lz1_cargo) +"cPC" = ( +/obj/item/stack/sandbags_empty, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) -"cQu" = ( -/obj/item/weapon/gun/energy/taser, -/turf/open/floor/prison, -/area/fiorina/station/security) -"cQA" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 +/area/fiorina/tumor/civres) +"cPL" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/obj/structure/machinery/shower{ - dir = 4 +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) +"cQe" = ( +/obj/item/reagent_container/food/snacks/donkpocket, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"cQf" = ( +/obj/structure/machinery/power/apc{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/research_cells) -"cQG" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/lowsec) +"cQv" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/closed/shuttle/ert{ + icon_state = "leftengine_1"; + layer = 3 }, +/area/fiorina/oob) +"cRg" = ( +/obj/structure/machinery/vending/coffee/simple, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"cQX" = ( -/obj/item/stack/cable_coil, +/area/fiorina/station/park) +"cRl" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/item/book/manual/security_space_law, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/servers) -"cRs" = ( -/obj/effect/landmark/survivor_spawner, +/area/fiorina/station/security) +"cRx" = ( +/obj/structure/machinery/sensortower, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/civres) "cRB" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ density = 0; @@ -4835,63 +4739,115 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"cRN" = ( -/obj/structure/closet/emcloset, -/obj/item/weapon/nullrod{ - desc = "The explosive tip has been deactivated."; - force = 25; - icon_state = "hefasword"; - name = "de-activated HEFA Sword" +"cRI" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"cRS" = ( -/obj/structure/platform, +/obj/item/stool, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"cRK" = ( +/obj/structure/window, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"cRM" = ( +/obj/effect/landmark/survivor_spawner, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"cRZ" = ( +/obj/structure/machinery/landinglight/ds2/delaythree{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"cSh" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, /area/fiorina/station/botany) "cTr" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"cTA" = ( -/obj/item/shard{ - icon_state = "medium" - }, +"cTx" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flashlight/lamp/green, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"cTy" = ( +/obj/item/stool, +/obj/item/trash/cigbutt{ + pixel_y = 8 }, -/area/fiorina/station/disco) -"cUE" = ( -/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"cVk" = ( -/obj/structure/platform_decoration{ - dir = 8 +"cTD" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/obj/structure/platform_decoration{ - dir = 4 +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" }, -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gibup1" +/area/fiorina/lz/near_lzI) +"cTE" = ( +/obj/item/ammo_casing{ + icon_state = "cartridge_1" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"cVl" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +"cUd" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" }, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/area/fiorina/lz/near_lzI) +"cUA" = ( +/obj/structure/largecrate/random, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/station/park) +"cUU" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) +"cVu" = ( +/obj/item/stack/sandbags_empty/half, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "cVQ" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -4903,120 +4859,59 @@ /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison, /area/fiorina/station/disco) -"cVX" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; - pixel_x = 1; - pixel_y = -1 +"cXp" = ( +/obj/item/stack/sheet/metal/medium_stack, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/ice_lab) +"cXV" = ( +/obj/item/ammo_magazine/smg/mp5, +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 1; + icon_state = "darkyellowcorners2" }, -/area/fiorina/station/research_cells) -"cWG" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"cYd" = ( /obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" + dir = 4; + icon_state = "p_stair_sn_full_cap" }, /turf/open/floor/plating/prison, -/area/fiorina/station/chapel) -"cWM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/blood/empty{ - pixel_x = -7; - pixel_y = 4 - }, -/obj/item/reagent_container/blood/BMinus{ - pixel_x = 7; - pixel_y = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"cWN" = ( -/obj/item/weapon/gun/rifle/mar40, +/area/fiorina/tumor/ice_lab) +"cYe" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"cWR" = ( -/obj/effect/landmark/objective_landmark/medium, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"cWU" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"cXm" = ( -/obj/item/inflatable, -/obj/item/inflatable, -/obj/item/inflatable, -/obj/item/inflatable, -/obj/item/inflatable, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"cXq" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/item/stack/flag/yellow, -/obj/item/stack/flag/yellow, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"cXw" = ( -/obj/structure/machinery/photocopier{ +/area/fiorina/station/transit_hub) +"cYi" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/card/id/gold{ + pixel_x = 2; pixel_y = 4 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/oob) -"cXY" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"cYa" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/central_ring) -"cYg" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/research_cells) +"cYj" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "p_stair_full" + pixel_y = 21 }, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"cYv" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/area/fiorina/station/lowsec) +"cYI" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "green" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/aux_engi) "cYP" = ( /obj/structure/closet/crate/trashcart, /obj/item/storage/pill_bottle/dexalin/skillless, @@ -5024,6 +4919,19 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"cYS" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/central_ring) "cYT" = ( /obj/vehicle/powerloader{ dir = 8 @@ -5032,24 +4940,38 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"cYY" = ( -/obj/structure/machinery/iv_drip{ - pixel_y = 19 +"cYV" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/servers) +"cZe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/phone, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"cZc" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 +/area/fiorina/tumor/ice_lab) +"cZh" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/spawner/random/gun/rifle, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 +/area/fiorina/station/lowsec) +"cZp" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottom" }, -/turf/open/space/basic, -/area/fiorina/oob) +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "cZq" = ( /obj/item/shard{ icon_state = "medium" @@ -5060,18 +4982,39 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) +"cZy" = ( +/obj/structure/machinery/door/window/northleft{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security/wardens) +"cZP" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"cZR" = ( +/turf/open/floor/prison{ + icon_state = "damaged2" + }, +/area/fiorina/station/disco) "cZV" = ( /obj/structure/bed/chair/office/light{ dir = 4 }, /turf/open/floor/wood, /area/fiorina/station/security) -"das" = ( -/obj/structure/platform/shiva{ - dir = 1 +"dae" = ( +/obj/structure/machinery/vending/walkman, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/aux_engi) "daA" = ( /obj/item/clothing/accessory/armband/cargo{ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; @@ -5092,19 +5035,25 @@ /obj/structure/machinery/autolathe, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"daP" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docdecal1" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "daS" = ( /obj/item/ammo_magazine/pistol/kt42, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"daY" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/trash/kepler, +/turf/open/floor/prison, +/area/fiorina/station/security) +"dbh" = ( +/obj/structure/machinery/vending/sovietsoda, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"dbi" = ( +/obj/item/storage/toolbox/electrical, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) "dbq" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -5116,63 +5065,93 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"dbL" = ( -/obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "yellowfull" +"dbr" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/lowsec) -"dbX" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/park) +"dbI" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 8; + icon_state = "floor_marked" }, -/area/fiorina/tumor/aux_engi) -"ddc" = ( -/obj/item/stack/sandbags_empty/half, +/area/fiorina/station/lowsec) +"dbW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/donkpockets{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/storage/box/donkpockets, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"dcv" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"dds" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/station/research_cells) +"dcy" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"dcO" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - icon_state = "yellow" + icon_state = "floor_plate" + }, +/area/fiorina/station/central_ring) +"dde" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/oob) +"ddt" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/beer_pack{ + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) -"ddz" = ( -/obj/item/stack/sheet/cardboard, +"ddv" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" + dir = 4; + icon_state = "darkbrown2" }, -/area/fiorina/station/research_cells) +/area/fiorina/maintenance) "ddA" = ( /obj/structure/girder/reinforced, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"ddE" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/condiment/saltshaker{ - pixel_x = -5; - pixel_y = -6 - }, -/obj/item/reagent_container/food/condiment/peppermill{ - pixel_x = -5; - pixel_y = -11 - }, +"ddB" = ( /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) -"ddF" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" + dir = 9; + icon_state = "whitegreen" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/medbay) +"ddD" = ( +/obj/structure/janitorialcart, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "ddG" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xtracks" @@ -5188,14 +5167,24 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"ddO" = ( -/obj/structure/machinery/computer/cameras{ - dir = 1 +"ddN" = ( +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkpurple2" }, +/area/fiorina/tumor/servers) +"ddU" = ( +/obj/structure/prop/almayer/computers/sensor_computer1, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security) +/area/fiorina/tumor/servers) +"ddY" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) "dec" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." @@ -5214,207 +5203,100 @@ name = "astroturf" }, /area/fiorina/station/park) -"deE" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"deH" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) "deL" = ( /obj/structure/window/framed/prison/reinforced/hull, /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/flight_deck) -"deN" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) "deR" = ( /obj/item/toy/crayon/red, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"deW" = ( -/obj/structure/bed/chair{ - dir = 8 - }, +"dfc" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"dfa" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"dfu" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 7; - pixel_y = 6 - }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" +/area/fiorina/oob) +"dfh" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/station/park) -"dfz" = ( -/obj/item/stack/cable_coil, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"dfD" = ( -/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"dfV" = ( +/area/fiorina/station/civres_blue) +"dfA" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 + }, +/obj/structure/machinery/m56d_hmg, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"dga" = ( /obj/structure/monorail{ + dir = 4; name = "launch track" }, /turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"dfZ" = ( -/obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"dgx" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"dgz" = ( -/obj/item/trash/cigbutt/ucigbutt, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"dgB" = ( -/obj/structure/barricade/wooden{ - dir = 1 +/area/fiorina/tumor/aux_engi) +"dhc" = ( +/obj/structure/largecrate/random/secure, +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"dgF" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"dhe" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "yellow" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/disco) "dhi" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/space/basic, /area/fiorina/oob) -"dhj" = ( -/obj/item/trash/eat, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/structure/machinery/blackbox_recorder, -/obj/item/prop/almayer/flight_recorder/colony{ - pixel_x = -6; - pixel_y = 10 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"dhs" = ( -/obj/item/tool/weldingtool, -/turf/open/floor/prison, -/area/fiorina/station/security) -"dhD" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" +"dhL" = ( +/obj/structure/barricade/wooden{ + dir = 4 }, -/area/fiorina/station/lowsec) -"dhN" = ( -/obj/structure/machinery/light/double/blue, +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"dhV" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/civres_blue) +"dhZ" = ( +/obj/structure/window/reinforced{ dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" + layer = 3 }, -/area/fiorina/lz/near_lzI) -"diP" = ( +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"diF" = ( +/obj/item/stack/sheet/cardboard, /turf/open/floor/prison{ - dir = 9; - icon_state = "green" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/tumor/civres) -"diR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger, -/obj/item/clothing/accessory/holobadge/cord, +/area/fiorina/station/lowsec) +"diJ" = ( +/obj/item/stool, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "yellowfull" }, -/area/fiorina/lz/near_lzI) -"diS" = ( -/obj/structure/largecrate/supply/supplies/water, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = -4; - pixel_y = 14 +/area/fiorina/station/lowsec) +"diL" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 1; - pixel_y = 12 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"diX" = ( -/obj/structure/machinery/disposal, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"djd" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenbluecorner" - }, -/area/fiorina/station/botany) +/area/fiorina/station/central_ring) "dje" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/prison, @@ -5423,23 +5305,6 @@ /obj/effect/spawner/random/gun/smg/midchance, /turf/open/floor/wood, /area/fiorina/station/park) -"djx" = ( -/obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"djA" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/surgical_tray, -/obj/item/reagent_container/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner" - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) "djB" = ( /obj/vehicle/powerloader{ dir = 4 @@ -5448,162 +5313,105 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"djU" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/turf/open/space/basic, -/area/fiorina/oob) -"dka" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"djF" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "whitepurple" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/research_cells) "dkb" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"dkj" = ( +"dkl" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 6; + pixel_y = -7 + }, +/obj/structure/prop/souto_land/streamer{ + pixel_y = 24 + }, +/turf/open/floor/prison, +/area/fiorina/station/park) +"dkn" = ( +/turf/open/floor/prison, +/area/fiorina/station/security/wardens) +"dkz" = ( +/obj/structure/machinery/vending/snack/packaged, /turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"dkX" = ( +/obj/structure/barricade/sandbags{ dir = 8; - icon_state = "whitepurple" + icon_state = "sandbag_0" }, -/area/fiorina/station/research_cells) -"dkC" = ( -/obj/item/tool/warning_cone, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "darkyellow2" }, -/area/fiorina/station/park) -"dkP" = ( -/obj/structure/largecrate/random, -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/telecomm/lz1_cargo) +"dlj" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"dlr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/item/device/radio{ + pixel_x = 6; + pixel_y = 7 }, -/area/fiorina/station/park) -"dla" = ( -/obj/structure/inflatable, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "redfull" }, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "dlA" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"dlE" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/disco) -"dlW" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +"dmQ" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, +/turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"dlX" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner" +"dmT" = ( +/obj/item/shard{ + icon_state = "large" }, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"dme" = ( -/obj/structure/machinery/deployable/barrier, -/turf/open/floor/prison, -/area/fiorina/station/security) -"dmu" = ( -/obj/structure/filingcabinet/disk, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"dmB" = ( -/obj/structure/bed/chair{ +/area/fiorina/station/park) +"dnj" = ( +/obj/structure/platform{ dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"dmH" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"dnp" = ( -/obj/item/ammo_casing{ - icon_state = "casing_8" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"dnx" = ( -/obj/structure/bed/sofa/south/grey/left, -/obj/structure/machinery/light/double/blue{ - dir = 1; +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_x = 2; pixel_y = 21 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/disco) "dnz" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/spawner/random/toy, /turf/open/floor/wood, /area/fiorina/station/chapel) -"dnA" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"dnB" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"dnE" = ( -/obj/structure/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"dnI" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "ywflowers_4" - }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) "dnK" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -5613,6 +5421,12 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) +"dnX" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "doe" = ( /obj/item/tool/kitchen/utensil/pspoon, /turf/open/space/basic, @@ -5629,13 +5443,6 @@ /obj/structure/machinery/computer/shuttle/dropship/flight/lz1, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"doB" = ( -/obj/item/ammo_casing{ - dir = 6; - icon_state = "casing_10_1" - }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) "doD" = ( /obj/structure/cable/heavyduty{ icon_state = "1-2" @@ -5655,40 +5462,36 @@ icon_state = "doubleside" }, /area/fiorina/maintenance) -"dpr" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"dpe" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 }, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 6; + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"dpt" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" +"dpn" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/telecomm/lz1_cargo) -"dpE" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/tumor/servers) +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "dpH" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"dpI" = ( -/obj/structure/window/reinforced{ - dir = 8 +"dpZ" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "greenblue" }, -/obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/botany) "dqa" = ( /obj/structure/platform{ dir = 1 @@ -5698,13 +5501,6 @@ name = "pool" }, /area/fiorina/station/park) -"dqk" = ( -/obj/effect/spawner/random/sentry/midchance, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "dqE" = ( /obj/structure/prop/souto_land/pole, /turf/open/floor/wood, @@ -5722,79 +5518,92 @@ icon_state = "stan_inner_s_w" }, /area/fiorina/tumor/ship) -"dra" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 +"dqX" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; - pixel_x = 1; - pixel_y = -1 +/area/fiorina/tumor/ice_lab) +"drd" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ dir = 5; - icon_state = "whitepurple" + icon_state = "darkyellow2" }, -/area/fiorina/station/research_cells) -"dro" = ( -/obj/structure/closet/l3closet/general, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"dso" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/effect/spawner/random/tool, -/obj/item/clothing/gloves/combat, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"dsv" = ( -/obj/item/stack/cable_coil, +/area/fiorina/station/flight_deck) +"drk" = ( +/obj/effect/landmark/objective_landmark/far, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"dsQ" = ( -/obj/effect/decal/cleanable/blood/drip, +/area/fiorina/station/power_ring) +"drt" = ( +/obj/structure/machinery/vending/hydroseeds, /turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" + dir = 1; + icon_state = "blue_plate" }, /area/fiorina/station/botany) -"dsT" = ( +"drZ" = ( +/obj/item/clothing/mask/cigarette, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/tumor/ice_lab) -"dtc" = ( -/obj/structure/bed/chair{ +/area/fiorina/station/research_cells) +"dsS" = ( +/obj/structure/barricade/handrail/type_b{ dir = 4; - pixel_y = 4 + layer = 3.5 }, +/obj/item/trash/barcardine, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/maintenance) +/area/fiorina/tumor/ice_lab) +"dsW" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/fiorina/station/civres_blue) "dtg" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/ammo_magazine/shotgun/buckshot, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"dui" = ( -/obj/item/ammo_casing{ - icon_state = "casing_6_1" +"dtk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/golden_cup, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/power_ring) +"dtR" = ( +/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/civres_blue) +"dtS" = ( +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" + }, +/area/fiorina/station/chapel) +"due" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/monorail{ + dir = 10; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) "duw" = ( /obj/structure/reagent_dispensers/fueltank, /obj/structure/machinery/light/double/blue{ @@ -5805,19 +5614,6 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"duB" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/shower, -/obj/structure/window{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "duF" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, @@ -5826,59 +5622,56 @@ /obj/structure/machinery/photocopier, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"dvq" = ( -/obj/structure/machinery/newscaster, -/turf/closed/wall/prison, -/area/fiorina/station/medbay) -"dvs" = ( +"duV" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"dvV" = ( -/obj/item/stack/cable_coil, +/obj/item/clipboard, /turf/open/floor/prison{ - dir = 5; - icon_state = "blue" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"dvY" = ( -/obj/structure/machinery/door/airlock/almayer/maint/autoname{ - dir = 1; - name = "\improper Null Hatch REPLACE ME"; - req_access = null; - req_one_access = null - }, -/turf/open/floor/plating/prison, +"duW" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"dwg" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"dvg" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"dvq" = ( +/obj/structure/machinery/newscaster, +/turf/closed/wall/prison, +/area/fiorina/station/medbay) +"dvB" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) +"dwf" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"dwk" = ( -/obj/structure/surface/rack, -/obj/item/device/camera, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/fiberbush) -"dwM" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docdecal1" +/area/fiorina/maintenance) +"dwJ" = ( +/obj/structure/machinery/processor{ + desc = "It CAN blend it."; + icon_state = "blender_e"; + name = "Blendomatic"; + pixel_x = -2; + pixel_y = 10 }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/medbay) +/area/fiorina/station/civres_blue) +"dwP" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/station/chapel) "dwQ" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/fiberbush) @@ -5888,80 +5681,81 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) +"dwZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/objective{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "dxb" = ( /obj/item/storage/briefcase/stowaway, /turf/open/space, /area/fiorina/oob) -"dxd" = ( -/obj/structure/platform{ - dir = 1 +"dxc" = ( +/obj/structure/monorail{ + name = "launch track" }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/park) -"dxg" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/toolbox, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/lz/near_lzI) +"dxl" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/area/fiorina/tumor/servers) -"dxA" = ( -/obj/structure/barricade/wooden, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/fiorina/oob) +"dxv" = ( /turf/open/floor/prison{ - icon_state = "cell_stripe" + dir = 10; + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) +/area/fiorina/maintenance) "dxE" = ( /obj/structure/prop/resin_prop{ icon_state = "rack" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"dxJ" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"dxO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +"dxP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/flight_deck) +/turf/open/floor/plating/prison, +/area/fiorina/tumor/civres) "dxS" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/servers) -"dyd" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +"dxW" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/botany) -"dyi" = ( +/area/fiorina/station/power_ring) +"dyh" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/disco) -"dyp" = ( -/obj/item/tool/kitchen/utensil/pspoon, /turf/open/floor/prison{ dir = 4; - icon_state = "blue" + icon_state = "greenfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/servers) "dyB" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -5969,81 +5763,52 @@ /obj/item/explosive/grenade/high_explosive/m15, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"dyM" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"dzj" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"dzk" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"dyY" = ( +/obj/structure/toilet{ + dir = 1 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/tumor/civres) "dzl" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/flight_deck) -"dzo" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"dAe" = ( -/obj/structure/machinery/line_nexter{ - id = "line2"; - pixel_x = -2 +"dzB" = ( +/turf/open/floor/prison{ + icon_state = "kitchen" }, -/obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"dAk" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/prison, -/area/fiorina/station/park) -"dAA" = ( -/obj/structure/barricade/wooden{ - dir = 4 +/area/fiorina/station/research_cells) +"dzE" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 }, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"dAB" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"dAQ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 + icon_state = "kitchen" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"dBa" = ( +/area/fiorina/station/lowsec) +"dAd" = ( /obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" + icon_state = "p_stair_ew_full_cap" }, -/obj/structure/platform, +/obj/structure/platform/stair_cut/alt, /turf/open/floor/plating/prison, /area/fiorina/station/disco) +"dAg" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"dBl" = ( +/obj/item/ammo_magazine/rifle/mar40/extended, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "dBq" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -6059,55 +5824,81 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"dBC" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"dBs" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/prison{ + icon_state = "redfull" }, +/area/fiorina/station/security) +"dBt" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "greenblue" }, -/area/fiorina/tumor/servers) -"dBI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt, +/area/fiorina/station/botany) +"dBy" = ( +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"dBz" = ( +/obj/structure/bed/chair/comfy, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 6; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"dBO" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison{ + icon_state = "redfull" }, +/area/fiorina/station/security) +"dBZ" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/station/flight_deck) +"dCg" = ( +/obj/structure/bed/chair, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip{ + icon_state = "2" + }, +/obj/effect/decal/cleanable/blood/drip{ + icon_state = "4" + }, +/obj/item/prop/helmetgarb/flair_initech, +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"dBR" = ( -/obj/structure/bed/chair/comfy{ +"dCn" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + density = 0; dir = 4 }, /turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"dBY" = ( -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/security) +"dCs" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gib2" }, -/area/fiorina/tumor/servers) -"dCb" = ( -/obj/structure/platform, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/station/power_ring) -"dCl" = ( -/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/servers) -"dCo" = ( -/obj/item/clothing/shoes/laceup, +/area/fiorina/station/medbay) +"dCt" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/transit_hub) "dCu" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -6115,133 +5906,88 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"dCA" = ( -/obj/item/organ/lungs, -/obj/effect/decal/cleanable/blood, +"dCv" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/plate, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"dCF" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) +"dCK" = ( +/obj/structure/prop/souto_land/pole, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "dCM" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"dDm" = ( -/obj/item/device/flashlight, +"dDn" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"dDy" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"dDM" = ( -/obj/structure/closet/wardrobe/orange, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"dDS" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" +/area/fiorina/station/park) +"dDI" = ( +/obj/structure/machinery/landinglight/ds1{ + dir = 8 }, -/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ dir = 4; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"dDU" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "xgibdown1" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) -"dEo" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" + icon_state = "darkyellowfull2" }, -/obj/structure/platform, +/area/fiorina/lz/near_lzI) +"dDT" = ( /obj/structure/machinery/light/double/blue{ dir = 8; pixel_x = -10; - pixel_y = -3 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"dEy" = ( -/obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/flight_deck) -"dEF" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 + pixel_y = 13 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/power_ring) -"dEI" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/area/fiorina/tumor/servers) +"dDU" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "xgibdown1" }, -/obj/structure/platform, /turf/open/floor/plating/prison, -/area/fiorina/tumor/servers) -"dFh" = ( -/obj/item/stack/cable_coil, -/turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/chapel) -"dFk" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, -/area/fiorina/tumor/ice_lab) -"dFw" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +"dEh" = ( +/obj/item/reagent_container/food/drinks/cans/sodawater, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) -"dFC" = ( -/obj/structure/prop/almayer/computers/sensor_computer1{ - name = "computer" +/area/fiorina/station/central_ring) +"dEj" = ( +/obj/structure/machinery/optable{ + desc = "This maybe could be used for advanced medical procedures."; + name = "Exam Table" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" +/obj/item/bedsheet/ce{ + desc = "It crinkles, aggressively."; + name = "sterile wax sheet" }, -/area/fiorina/station/lowsec) -"dFE" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/park) -"dFG" = ( -/obj/structure/inflatable, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" + icon_state = "redfull" }, /area/fiorina/station/medbay) +"dFh" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/chapel) +"dFB" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/spawner/random/gun/shotgun/midchance, +/turf/open/floor/prison, +/area/fiorina/station/security) "dFH" = ( /obj/structure/closet/cabinet, /obj/item/key/cargo_train, @@ -6249,36 +5995,28 @@ /obj/item/clothing/accessory/armband/cargo, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"dFM" = ( -/obj/item/circuitboard/machine/pacman/super, -/obj/structure/machinery/constructable_frame{ - icon_state = "box_1" - }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"dFO" = ( -/obj/item/weapon/gun/rifle/m16, -/obj/effect/decal/cleanable/blood, +"dFI" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, /turf/open/floor/prison{ - icon_state = "damaged3" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security) -"dGc" = ( -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/research_cells) +"dFK" = ( +/obj/structure/surface/rack, +/obj/item/ammo_box/magazine/nailgun, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/park) -"dGj" = ( -/obj/structure/machinery/power/apc{ - start_charge = 0 +/area/fiorina/maintenance) +"dFM" = ( +/obj/item/circuitboard/machine/pacman/super, +/obj/structure/machinery/constructable_frame{ + icon_state = "box_1" }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"dGw" = ( -/turf/open/floor/prison, -/area/fiorina/station/central_ring) +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) "dGx" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 @@ -6291,107 +6029,101 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) +"dGA" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/park) +"dHb" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/storage/box/pillbottles, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "dHd" = ( /obj/structure/sign/safety/bulkhead_door, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/civres) -"dHp" = ( +"dHD" = ( /turf/open/floor/prison{ - dir = 8; + dir = 1; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"dHI" = ( -/obj/item/ammo_casing{ - icon_state = "casing_1" - }, +"dHU" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"dIa" = ( -/obj/item/stack/sheet/metal{ - amount = 5 + icon_state = "platingdmg1" }, +/area/fiorina/station/security) +"dIh" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"dIi" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" + dir = 10; + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "dIo" = ( /turf/closed/wall/prison, /area/fiorina/tumor/civres) -"dIp" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"dIq" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" +"dIx" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/flight_deck) -"dID" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/medical_decals{ - dir = 4; - icon_state = "triagedecaldir" +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" }, +/area/fiorina/station/disco) +"dJd" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/ammo_magazine/rifle/mar40, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"dIK" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/area/fiorina/station/lowsec) +"dJe" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/park) +"dJh" = ( +/obj/structure/bookcase/manuals/research_and_development{ + pixel_y = 10 }, -/obj/structure/largecrate/random, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"dJt" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/area/fiorina/station/telecomm/lz1_tram) -"dJl" = ( -/obj/item/device/flashlight/flare, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + icon_state = "yellow" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/disco) "dKo" = ( /obj/effect/spawner/random/gun/shotgun, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"dKy" = ( -/obj/item/trash/c_tube, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"dKI" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +"dKB" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"dKN" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) +/area/fiorina/station/telecomm/lz1_tram) "dKX" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/plating/plating_catwalk/prison, @@ -6402,133 +6134,142 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"dLx" = ( -/obj/structure/bed/chair/office/light{ - dir = 4 - }, +"dLL" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"dLF" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" + icon_state = "darkpurple2" }, -/area/fiorina/station/research_cells) -"dMa" = ( -/obj/structure/stairs/perspective, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"dMc" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/tumor/servers) +"dLN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + pixel_y = 5 }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"dMm" = ( -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, /area/fiorina/station/power_ring) -"dMv" = ( +"dMt" = ( /turf/open/floor/prison{ - icon_state = "greenbluecorner" + dir = 8; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/botany) -"dMK" = ( -/obj/item/tool/pickaxe, -/obj/item/tool/pickaxe{ - pixel_y = 5 +/area/fiorina/tumor/aux_engi) +"dNc" = ( +/obj/structure/platform{ + dir = 1 }, -/obj/item/tool/pickaxe{ - pixel_y = 10 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"dMO" = ( -/obj/structure/bed/chair{ - dir = 4 +/area/fiorina/station/power_ring) +"dNh" = ( +/turf/open/auto_turf/sand/layer1, +/area/fiorina/lz/near_lzI) +"dNk" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"dNx" = ( +/obj/structure/monorail{ + dir = 9; + name = "launch track" }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/aux_engi) +"dNC" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + icon_state = "darkredfull2" }, -/area/fiorina/station/park) -"dNh" = ( -/turf/open/auto_turf/sand/layer1, /area/fiorina/lz/near_lzI) -"dNF" = ( +"dOk" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "panelscorched" + }, +/area/fiorina/tumor/civres) +"dOt" = ( +/obj/structure/surface/table/reinforced/prison{ + flipped = 1 }, -/area/fiorina/tumor/ice_lab) -"dOs" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/medbay) "dOE" = ( /obj/item/storage/bible/hefa, /turf/open/floor/wood, /area/fiorina/station/chapel) -"dOF" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 - }, +"dOO" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/oob) +/area/fiorina/station/medbay) "dOX" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/lz/near_lzI) -"dPC" = ( -/obj/structure/machinery/computer3/server/rack, +"dOZ" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"dPQ" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +/area/fiorina/station/power_ring) +"dPe" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/disco) -"dQp" = ( -/obj/effect/decal/hefa_cult_decals/d32, +"dPm" = ( +/obj/structure/bed/chair{ + dir = 1; + layer = 2.7 + }, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"dQA" = ( -/obj/item/tool/screwdriver, +/area/fiorina/station/power_ring) +"dPr" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/telecomm/lz1_tram) +"dPZ" = ( +/obj/structure/monorail{ + dir = 6; + name = "launch track" + }, +/turf/open/space, +/area/fiorina/oob) +"dQe" = ( +/obj/item/tool/surgery/scalpel, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"dQV" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) "dQW" = ( /obj/item/ammo_casing{ dir = 8; @@ -6539,22 +6280,28 @@ name = "astroturf" }, /area/fiorina/station/park) -"dQY" = ( -/obj/structure/platform{ - dir = 4 +"dRk" = ( +/obj/item/shard{ + icon_state = "large" }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/disco) -"dRm" = ( -/obj/item/storage/bible/hefa, +/area/fiorina/tumor/servers) +"dRs" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/accessory/blue, /turf/open/floor/prison{ - dir = 6; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/aux_engi) +"dRx" = ( +/obj/structure/monorail{ + dir = 5; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) "dRO" = ( /obj/effect/acid_hole{ dir = 4 @@ -6564,120 +6311,143 @@ name = "metal wall" }, /area/fiorina/oob) -"dRW" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"dSw" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"dSy" = ( -/obj/structure/bed/sofa/vert/grey/bot{ - pixel_y = 8 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"dSz" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, +"dSM" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/tumor/servers) "dTf" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"dTp" = ( +"dTg" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"dTv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) "dTx" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"dUs" = ( +"dTX" = ( +/obj/structure/surface/rack, +/obj/item/storage/bible/hefa{ + pixel_y = 3 + }, +/obj/item/storage/bible/hefa, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"dUf" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, /turf/open/floor/prison{ dir = 9; - icon_state = "blue" + icon_state = "greenfull" }, -/area/fiorina/station/civres_blue) -"dUZ" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/tumor/civres) +"dUi" = ( +/obj/structure/bed/sofa/vert/grey/bot{ + pixel_y = 8 }, -/turf/open/space/basic, -/area/fiorina/oob) -"dVe" = ( -/obj/structure/machinery/vending/coffee, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"dUn" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_x = 1; + pixel_y = 10 }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"dUu" = ( +/obj/structure/machinery/recharge_station, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"dVm" = ( -/obj/item/storage/pill_bottle/spaceacillin/skillless, +/area/fiorina/station/security) +"dUx" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, /turf/open/floor/prison{ - dir = 5; + dir = 6; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"dVK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"dWx" = ( -/obj/structure/platform_decoration{ - dir = 4 +"dVu" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"dVx" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"dVA" = ( +/obj/item/stool, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"dVC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"dVD" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison{ + icon_state = "whitegreen" }, /area/fiorina/station/medbay) +"dVR" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"dWn" = ( +/obj/structure/barricade/wooden, +/obj/item/device/flashlight/flare, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"dWp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/pill_bottle/russianRed{ + pixel_y = 9 + }, +/obj/item/storage/pill_bottle/kelotane/skillless, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "dWB" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"dWM" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"dWN" = ( -/obj/structure/inflatable/popped/door, +"dXi" = ( +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 4; + icon_state = "darkpurple2" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) "dXv" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -6687,122 +6457,138 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"dXz" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) "dXG" = ( /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"dXH" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +"dXK" = ( +/obj/item/newspaper, /turf/open/floor/prison{ + icon_state = "green" + }, +/area/fiorina/station/transit_hub) +"dXN" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.4 + }, +/obj/structure/barricade/handrail/type_b{ dir = 4; - icon_state = "blue_plate" + layer = 3.5 }, -/area/fiorina/station/botany) -"dYp" = ( -/obj/docking_port/stationary/marine_dropship/lz1{ - name = "Hangar Landing Zone" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"dYr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/explosive/grenade/incendiary/molotov, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/tumor/ice_lab) +"dXS" = ( +/obj/structure/bed/chair/office/light, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/station/lowsec) -"dYv" = ( -/obj/item/device/flashlight, +/area/fiorina/station/research_cells) +"dXT" = ( +/obj/structure/platform_decoration, +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"dYI" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan20" +/area/fiorina/station/power_ring) +"dYi" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) +"dYo" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 }, -/area/fiorina/tumor/aux_engi) -"dYP" = ( -/obj/item/stack/sheet/wood, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "yellow" }, -/area/fiorina/station/research_cells) -"dZc" = ( -/obj/structure/bed/chair{ - dir = 1 +/area/fiorina/station/disco) +"dYp" = ( +/obj/docking_port/stationary/marine_dropship/lz1{ + name = "LZ1: Hangar Landing Zone" }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"dYq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/faxmachine, /turf/open/floor/prison{ - dir = 9; - icon_state = "blue" + icon_state = "bluefull" }, /area/fiorina/station/power_ring) -"dZt" = ( -/obj/structure/machinery/disposal, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"dYC" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) +"dYI" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan20" }, +/area/fiorina/tumor/aux_engi) +"dYV" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/chapel) -"dZA" = ( -/obj/structure/closet, +/area/fiorina/maintenance) +"dZj" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/flight_deck) -"eag" = ( -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/structure/surface/rack, +/area/fiorina/tumor/aux_engi) +"dZo" = ( +/obj/structure/closet/secure_closet/engineering_materials, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"eaL" = ( +/area/fiorina/tumor/aux_engi) +"dZu" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/head/beret/eng{ - pixel_x = 5; - pixel_y = 3 +/obj/item/card/id/guest, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "redfull" }, -/obj/item/book/manual/engineering_guide{ - pixel_x = -4 +/area/fiorina/station/security) +"dZK" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" }, +/area/fiorina/station/chapel) +"dZQ" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ dir = 4; - icon_state = "greenfull" + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"eac" = ( +/obj/structure/bed/chair{ + dir = 1 }, -/area/fiorina/tumor/civres) -"eaQ" = ( -/obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + icon_state = "yellowfull" + }, +/area/fiorina/station/disco) +"eao" = ( +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" }, /area/fiorina/station/lowsec) -"eaZ" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"ebc" = ( +"eca" = ( /obj/structure/platform{ dir = 1 }, @@ -6814,48 +6600,25 @@ icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"ebm" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"ebP" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) "ecd" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"ecp" = ( -/obj/structure/inflatable/popped/door, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) "ecu" = ( /obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"ecC" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +"ecD" = ( +/obj/structure/bed/chair{ + dir = 1 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"ecF" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ - pixel_y = 32 +/obj/structure/prop/souto_land/streamer{ + pixel_y = 24 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + icon_state = "darkbrown2" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/park) "ecL" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, @@ -6869,60 +6632,62 @@ icon_state = "stan_rightengine" }, /area/fiorina/tumor/ship) -"eda" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, +"ecU" = ( /turf/open/floor/prison{ dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"edd" = ( -/obj/structure/window/framed/prison/reinforced, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"edv" = ( -/obj/item/storage/fancy/cigar, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"eej" = ( -/obj/item/reagent_container/food/drinks/coffee{ - name = "\improper paper cup" + icon_state = "darkyellow2" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"eev" = ( -/obj/structure/machinery/vending/walkman, +/area/fiorina/station/flight_deck) +"eds" = ( +/obj/structure/surface/rack, +/obj/item/device/flashlight, +/obj/effect/decal/cleanable/blood, +/obj/item/attachable/bipod, +/obj/item/device/multitool, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/aux_engi) -"eew" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/station/telecomm/lz1_cargo) +"edu" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, /obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"edy" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/station/central_ring) +"edY" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"eeH" = ( +/obj/structure/monorail{ + dir = 9; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) "eeI" = ( /obj/structure/lattice, /obj/item/stack/sheet/metal, /turf/open/floor/almayer_hull, /area/fiorina/oob) -"eeL" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, -/area/fiorina/station/transit_hub) "efk" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/objective_landmark/close, @@ -6943,141 +6708,121 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/plating/prison, /area/fiorina/oob) -"efz" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +"efI" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 4; + layer = 6; + name = "overhead pipe"; + pixel_y = 20 + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, +/turf/open/floor/prison, /area/fiorina/tumor/servers) -"efS" = ( -/obj/structure/monorail{ - dir = 9; - name = "launch track" +"efR" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, /turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/central_ring) "efT" = ( /obj/structure/machinery/shower{ dir = 8 }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) -"ege" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"efW" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"egm" = ( -/obj/structure/bed/sofa/south/grey/right, -/obj/item/storage/briefcase{ - pixel_y = -2 + dir = 6; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"egd" = ( +/obj/structure/machinery/photocopier, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) +"egk" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/central_ring) "egv" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station/civres_blue) -"egx" = ( -/obj/item/trash/boonie, -/turf/open/floor/prison, +"egz" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/fiorina/station/power_ring) "egL" = ( /obj/item/newspaper, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"egY" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"ehf" = ( -/obj/item/stack/sheet/metal, +"egT" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"ehr" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"ehg" = ( -/obj/structure/machinery/cm_vending/sorted/marine_food{ - desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; - name = "\improper Fiorina Engineering Canteen Vendor" - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"ehA" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"eir" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/obj/structure/barricade/wooden{ - dir = 4 - }, -/turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"eix" = ( -/obj/structure/closet/bombcloset, +"ehy" = ( +/obj/structure/machinery/landinglight/ds1/delaythree, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"ejk" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 12 + icon_state = "darkyellowfull2" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/lz/near_lzI) +"ehO" = ( +/obj/structure/platform/shiva, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"eim" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/tumor/civres) -"ejn" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/random/gun/pistol/midchance, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security) -"ejp" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/kitchen/rollingpin, -/obj/item/reagent_container/food/snacks/grown/carrot, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" +/area/fiorina/tumor/servers) +"eio" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"eip" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/civres_blue) +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"ejf" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) "ejq" = ( /obj/structure/machinery/space_heater, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) +"ejs" = ( +/turf/open/floor/prison{ + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) "ejt" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, @@ -7085,68 +6830,92 @@ "ejw" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) -"ejO" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; +"ejL" = ( +/obj/structure/largecrate/supply/supplies/water, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -4; + pixel_y = 14 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 1; + pixel_y = 12 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"ejM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/wy_mre{ + pixel_x = 5; pixel_y = 2 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/disco) +/area/fiorina/station/research_cells) +"ekb" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_tram) "eki" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"ekH" = ( -/obj/structure/bed/roller, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"eli" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 4 +"ekx" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "blue" }, -/obj/structure/platform_decoration{ - dir = 6 +/area/fiorina/station/power_ring) +"ekz" = ( +/obj/structure/barricade/wooden{ + dir = 1 }, -/obj/structure/closet/emcloset, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"elq" = ( +"ekF" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenbluecorner" - }, -/area/fiorina/station/botany) -"elC" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "bluefull" }, +/area/fiorina/station/civres_blue) +"ekS" = ( +/obj/effect/landmark/static_comms/net_one, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 10; + icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"elY" = ( -/obj/structure/largecrate/random, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"ekW" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"elc" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/blood/gibs/body, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/lowsec) +"ele" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/central_ring) +"elO" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "emm" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -7166,41 +6935,24 @@ }, /turf/open/space, /area/fiorina/oob) -"emU" = ( -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"ena" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) "end" = ( /obj/structure/window/framed/prison/cell, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"enh" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"enu" = ( +/obj/item/trash/uscm_mre, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/power_ring) -"enG" = ( -/obj/item/tool/warning_cone, +/area/fiorina/station/flight_deck) +"enx" = ( +/obj/item/tool/shovel, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "green" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/civres) "enH" = ( /obj/effect/alien/weeds/node, /turf/open/organic/grass{ @@ -7212,74 +6964,126 @@ /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/oob) -"eok" = ( +"eot" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/oob) +/area/fiorina/station/telecomm/lz1_tram) "eov" = ( /turf/closed/wall/r_wall/prison_unmeltable{ desc = "A huge chunk of metal used to seperate rooms."; name = "metal wall" }, /area/fiorina/station/research_cells) -"eoR" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison, -/area/fiorina/station/park) +"eow" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "eoW" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"eoZ" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +"epB" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"epD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_y = 13 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"eph" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"eps" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/tumor/ice_lab) "epV" = ( /obj/item/paper/crumpled/bloody, /turf/open/floor/wood, /area/fiorina/station/chapel) -"eqq" = ( -/obj/structure/surface/table/reinforced/prison, +"epY" = ( +/obj/structure/bed/sofa/vert/grey/top, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"eqi" = ( +/obj/structure/surface/rack, +/obj/item/tank/emergency_oxygen/engi, +/obj/item/tank/emergency_oxygen/engi, +/obj/item/device/flashlight, +/obj/item/device/flashlight, /turf/open/floor/prison{ dir = 1; - icon_state = "blue_plate" + icon_state = "darkyellow2" }, -/area/fiorina/station/botany) -"eqC" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"eqQ" = ( -/turf/open/floor/corsat{ - icon_state = "squares" +"eqw" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"eqT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper/janitor, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 4; + icon_state = "bluecorner" }, -/area/fiorina/station/disco) -"ere" = ( -/obj/structure/barricade/handrail/type_b, +/area/fiorina/station/power_ring) +"eqJ" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"eqQ" = ( +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"eqS" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "green" + }, +/area/fiorina/station/chapel) +"eqU" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"eqZ" = ( +/obj/structure/largecrate/random/mini/ammo, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"erb" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ + dir = 1; icon_state = "darkyellow2" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/telecomm/lz1_cargo) +"erh" = ( +/obj/item/ammo_casing{ + icon_state = "casing_1" + }, +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"erj" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) "erl" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -7288,41 +7092,49 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"ers" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 - }, +"erw" = ( +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"erB" = ( -/obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"erD" = ( +/obj/structure/largecrate/supply, +/obj/structure/platform_decoration{ + dir = 8 }, -/area/fiorina/station/civres_blue) +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/medbay) "erT" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 }, /turf/open/space, /area/fiorina/oob) -"esE" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +"erU" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/machinery/shower{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "kitchen" }, -/area/fiorina/lz/near_lzI) -"esF" = ( +/area/fiorina/station/lowsec) +"esw" = ( /turf/open/floor/prison{ - icon_state = "panelscorched" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) +"esR" = ( +/obj/structure/machinery/space_heater, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "esS" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, @@ -7335,111 +7147,108 @@ name = "astroturf" }, /area/fiorina/station/park) +"etj" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "green" + }, +/area/fiorina/station/chapel) +"etq" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "etL" = ( /obj/item/tool/weldingtool, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"euC" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"euG" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"euR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/folder/red{ - pixel_x = 4; - pixel_y = -2 +"eub" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/obj/item/folder/red{ - pixel_x = -3; - pixel_y = 2 +/obj/item/storage/box/holobadge{ + pixel_y = 3 }, -/obj/item/tool/stamp, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 6; + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"euT" = ( -/obj/item/tool/wet_sign, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = -1 - }, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"evc" = ( -/obj/structure/machinery/power/terminal{ - dir = 1 +"eux" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 4; + icon_state = "yellow" }, -/area/fiorina/tumor/aux_engi) -"evf" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5_1" +/area/fiorina/station/lowsec) +"euz" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 }, -/area/fiorina/station/lowsec) -"evg" = ( -/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) -"evv" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "bright_clean_marked" }, -/obj/effect/landmark/nightmare{ - insert_tag = "nogear" +/area/fiorina/station/medbay) +"evd" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 2; + layer = 6; + name = "overhead pipe"; + pixel_x = -16; + pixel_y = 12 }, /turf/open/floor/prison, -/area/fiorina/station/security) -"evD" = ( -/obj/structure/lz_sign/prison_sign, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"evH" = ( -/obj/structure/surface/rack, -/obj/item/tool/plantspray/pests, -/obj/item/tool/plantspray/weeds, +/area/fiorina/tumor/servers) +"evk" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + dir = 6; + icon_state = "whitegreen" }, -/area/fiorina/station/botany) -"evQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger{ - pixel_y = 4 +/area/fiorina/station/medbay) +"evl" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "brflowers_1" }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, -/turf/open/floor/prison{ - icon_state = "redfull" +/area/fiorina/station/central_ring) +"evC" = ( +/obj/structure/barricade/sandbags{ + dir = 4; + icon_state = "sandbag_0"; + pixel_y = 2 }, -/area/fiorina/station/security) -"evU" = ( -/obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/flight_deck) +"evT" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison, +/area/fiorina/station/botany) "ewx" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -7448,16 +7257,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"ewy" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - layer = 2.8 - }, -/obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) "ewE" = ( /obj/item/clothing/accessory/armband/cargo{ desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; @@ -7470,30 +7269,42 @@ /obj/structure/surface/rack, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"ewY" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, +"ewI" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/civres_blue) -"exs" = ( -/obj/structure/bed/chair{ - dir = 4 +/area/fiorina/station/medbay) +"exa" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison, +/area/fiorina/station/park) +"exl" = ( +/obj/structure/largecrate/random, +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/disco) +"exy" = ( /obj/structure/bed/chair{ dir = 4; pixel_y = 4 }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 8 - }, /turf/open/floor/prison{ dir = 10; - icon_state = "bright_clean_marked" + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) +/area/fiorina/maintenance) +"exI" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrowncorners2" + }, +/area/fiorina/station/park) "exO" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 5 @@ -7505,187 +7316,228 @@ name = "astroturf" }, /area/fiorina/station/park) -"eyo" = ( -/obj/structure/prop/resin_prop, +"exW" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"eyi" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/atmos_alert{ + dir = 8 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/fiberbush) +"eyj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/kitchen/utensil/knife{ + pixel_x = 9 + }, +/obj/item/reagent_container/food/snacks/tomatomeat{ + pixel_x = -6 + }, +/obj/item/reagent_container/food/snacks/tomatomeat{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/reagent_container/food/snacks/tomatomeat{ + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"eys" = ( +/obj/vehicle/train/cargo/engine, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"eyv" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"eyy" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/effect/landmark/nightmare{ + insert_tag = "nogear" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) "eyz" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"eyM" = ( -/obj/structure/closet/secure_closet/engineering_welding, +"eyO" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"eza" = ( -/obj/structure/barricade/wooden{ - dir = 4 + dir = 4; + icon_state = "blue_plate" }, +/area/fiorina/station/botany) +"ezd" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/station/telecomm/lz1_cargo) -"ezb" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/research_cells) +"eze" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/area/fiorina/tumor/aux_engi) +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/fiorina/oob) "ezn" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/telecomm/lz1_cargo) -"ezo" = ( -/obj/structure/bed/chair/janicart, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"ezr" = ( -/obj/structure/bed{ - icon_state = "psychbed" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"ezx" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"ezz" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/accessory/blue, +"ezO" = ( +/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/tumor/aux_engi) -"ezJ" = ( -/turf/open/floor/prison{ - icon_state = "whitegreen" +/area/fiorina/station/security) +"ezU" = ( +/obj/structure/surface/table/reinforced/prison{ + dir = 4; + flipped = 1 }, -/area/fiorina/tumor/ice_lab) -"ezT" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "ezV" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"eAo" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"eAy" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, -/area/fiorina/station/transit_hub) "eAM" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"eAQ" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "eAY" = ( /obj/structure/girder/displaced, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"eBs" = ( -/obj/structure/barricade/wooden{ - dir = 1 +"eBa" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "lavendergrass_3" + }, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, +/area/fiorina/station/central_ring) +"eBj" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"eBC" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/area/fiorina/station/power_ring) +"eBr" = ( +/obj/structure/platform_decoration{ + dir = 4 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"eCg" = ( -/obj/structure/largecrate/supply/explosives/mines, +/area/fiorina/station/transit_hub) +"eBO" = ( +/obj/structure/machinery/door/airlock/almayer/marine, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "yellowfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"eCh" = ( -/obj/structure/reagent_dispensers/watertank, +/area/fiorina/station/lowsec) +"eBS" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "cell_stripe" }, -/area/fiorina/station/medbay) -"eCA" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison, /area/fiorina/station/power_ring) -"eDn" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/central_ring) -"eDs" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, +"eCy" = ( +/obj/effect/spawner/random/gun/pistol, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/servers) -"eEh" = ( -/obj/structure/barricade/wooden, -/obj/item/device/flashlight/flare, +/area/fiorina/station/medbay) +"eCK" = ( +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 10; + icon_state = "floor_marked" + }, +/area/fiorina/lz/near_lzII) +"eDp" = ( +/obj/structure/machinery/landinglight/ds1/delayone{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"eEk" = ( -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/flight_deck) -"eEo" = ( +/area/fiorina/lz/near_lzI) +"eDA" = ( /obj/structure/prop/structure_lattice{ - dir = 4 + dir = 4; + health = 300 }, /obj/structure/prop/structure_lattice{ dir = 4; layer = 3.1; pixel_y = 10 }, -/turf/open/floor/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/research_cells) +"eEx" = ( +/obj/item/circuitboard/machine/rdserver, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, /area/fiorina/tumor/servers) +"eEC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/plasteel/medium_stack, +/obj/item/reagent_container/food/drinks/flask/vacuumflask{ + pixel_x = 7; + pixel_y = 22 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "eED" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/paper_bin{ @@ -7698,47 +7550,132 @@ }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"eFa" = ( -/obj/structure/barricade/metal{ - dir = 1; - health = 250; - icon_state = "metal_1" - }, -/turf/open/floor/wood, -/area/fiorina/station/park) -"eFD" = ( -/obj/structure/window_frame/prison, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) -"eGg" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +"eEJ" = ( +/obj/structure/machinery/computer3/server/rack, +/obj/structure/barricade/handrail/type_b{ + dir = 8; + layer = 3.5 }, -/area/fiorina/station/telecomm/lz1_cargo) -"eGz" = ( -/obj/structure/machinery/constructable_frame, /turf/open/floor/prison, -/area/fiorina/station/lowsec) -"eGV" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"eGY" = ( -/obj/structure/toilet{ +/area/fiorina/tumor/servers) +"eEQ" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ dir = 8; - pixel_y = 8 + icon_state = "darkyellow2" }, -/obj/effect/spawner/random/gun/smg, +/area/fiorina/lz/near_lzI) +"eET" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "kitchen" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/power_ring) +"eEX" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"eFa" = ( +/obj/structure/barricade/metal{ + dir = 1; + health = 250; + icon_state = "metal_1" + }, +/turf/open/floor/wood, +/area/fiorina/station/park) +"eFq" = ( +/obj/item/storage/bible/hefa, +/turf/open/floor/prison{ + dir = 6; + icon_state = "green" + }, +/area/fiorina/station/chapel) +"eFD" = ( +/obj/structure/window_frame/prison, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) +"eFQ" = ( +/turf/open/floor/prison{ + icon_state = "cell_stripe" + }, +/area/fiorina/station/disco) +"eFR" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 8; + pixel_y = 24 + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/park) +"eFX" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/ice_lab) +"eGm" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"eGO" = ( +/obj/item/storage/toolbox/electrical, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "eHa" = ( -/obj/structure/extinguisher_cabinet, -/turf/closed/wall/r_wall/prison_unmeltable, +/obj/structure/lattice, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/fiorina/oob) +"eHk" = ( +/obj/structure/machinery/door/morgue{ + dir = 2; + name = "Confession Booth" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/chapel) +"eHn" = ( +/obj/structure/barricade/metal{ + health = 250; + icon_state = "metal_1" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"eHt" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 3 + }, +/obj/structure/largecrate/random/mini/med{ + pixel_x = -6; + pixel_y = -3 + }, +/turf/open/floor/prison, /area/fiorina/station/central_ring) "eHC" = ( /turf/closed/shuttle/ert{ @@ -7753,30 +7690,44 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"eIp" = ( -/obj/structure/platform{ - dir = 4 +"eHQ" = ( +/obj/item/trash/popcorn, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"eIx" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/ice_lab) +"eIB" = ( +/obj/item/frame/rack, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "eIF" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ icon_state = "plate" }, /area/fiorina/tumor/ship) -"eJi" = ( -/obj/structure/bed{ - icon_state = "abed" - }, +"eIX" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/oob) "eJm" = ( /obj/structure/machinery/door/poddoor/almayer{ density = 0; @@ -7784,23 +7735,28 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"eJq" = ( -/obj/structure/platform{ - dir = 8 +"eJt" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/structure/machinery/autolathe/full{ - layer = 2.98 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"eJP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/cigbutt, +/area/fiorina/station/power_ring) +"eJy" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"eJK" = ( +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/station/civres_blue) "eJQ" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 @@ -7808,64 +7764,84 @@ /obj/structure/lattice, /turf/open/space/basic, /area/fiorina/oob) -"eKg" = ( +"eLu" = ( +/turf/closed/wall/prison, +/area/fiorina/maintenance) +"eLw" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"eLy" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, /turf/open/floor/prison{ dir = 6; - icon_state = "darkpurple2" + icon_state = "yellow" }, -/area/fiorina/station/central_ring) -"eKu" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/disco) +"eLB" = ( +/obj/structure/machinery/landinglight/ds1/delaytwo{ + dir = 1 }, -/obj/structure/platform, /turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/power_ring) -"eLu" = ( -/turf/closed/wall/prison, -/area/fiorina/maintenance) -"eLO" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/lz/near_lzI) +"eLQ" = ( +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison, +/area/fiorina/station/security) +"eLU" = ( +/obj/item/tool/mop{ + pixel_y = 23 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"eLX" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/station/central_ring) +"eME" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper, +/turf/open/floor/prison{ + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) "eMG" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access{ name = "greenhouse airlock" }, /turf/open/floor/plating/prison, /area/fiorina/station/botany) -"eMJ" = ( -/obj/structure/inflatable/popped/door, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"eML" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/obj/structure/platform_decoration{ - dir = 4 +"eMI" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) -"eMO" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "ywflowers_2" - }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, /area/fiorina/station/central_ring) "eMU" = ( /turf/closed/shuttle/ert{ @@ -7873,51 +7849,51 @@ opacity = 0 }, /area/fiorina/station/power_ring) -"eNm" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - layer = 2.97; - pixel_y = -14 - }, +"eNa" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "yellowcorner" + }, +/area/fiorina/station/lowsec) +"eNn" = ( +/obj/structure/prop/souto_land/pole, +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 24 }, -/area/fiorina/station/telecomm/lz1_cargo) -"eNs" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "blue" + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/station/power_ring) -"eNV" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/station/park) +"eNr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/surgical_tray/empty, /turf/open/floor/prison, /area/fiorina/station/lowsec) -"eOf" = ( -/obj/structure/sink{ +"eNv" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ dir = 4; - pixel_x = 12 + icon_state = "darkyellowfull2" }, -/obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" +/area/fiorina/station/telecomm/lz1_tram) +"eOp" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell1decal" }, -/area/fiorina/station/lowsec) -"eOo" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 +/turf/open/floor/prison{ + icon_state = "whitegreen" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/area/fiorina/station/medbay) +"eOy" = ( +/obj/structure/platform_decoration{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/fiberbush) +/area/fiorina/station/medbay) "eOF" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -7927,48 +7903,22 @@ }, /turf/open/space, /area/fiorina/oob) -"eOH" = ( -/obj/structure/filingcabinet, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"eOI" = ( +/obj/item/shard{ + icon_state = "large" }, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" }, -/area/fiorina/tumor/servers) -"eON" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"eOS" = ( -/obj/item/tool/warning_cone, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"ePf" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"ePm" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, +/area/fiorina/station/transit_hub) +"eOM" = ( +/obj/item/reagent_container/food/snacks/eat_bar, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/medbay) "ePq" = ( /obj/item/trash/cigbutt/ucigbutt, /obj/item/trash/cigbutt/ucigbutt{ @@ -7985,13 +7935,32 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"ePx" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) "ePB" = ( /turf/closed/wall/prison, /area/fiorina/station/telecomm/lz2_maint) +"ePM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/spacecash/c20, +/turf/open/floor/prison, +/area/fiorina/station/security) +"ePU" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"eQb" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/boxing/green, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "eQk" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -8000,82 +7969,107 @@ }, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"eQv" = ( -/obj/item/tool/warning_cone, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" +"eQz" = ( +/obj/structure/machinery/gibber, +/obj/effect/decal/cleanable/blood{ + pixel_x = 8; + pixel_y = 10 }, -/area/fiorina/station/park) -"eQD" = ( -/obj/structure/bed/chair, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "blue_plate" }, -/area/fiorina/tumor/servers) -"eQR" = ( +/area/fiorina/station/botany) +"eQQ" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "green" + icon_state = "platingdmg1" + }, +/area/fiorina/station/chapel) +"eQX" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" }, -/area/fiorina/tumor/servers) -"eRi" = ( /turf/open/floor/prison{ dir = 8; icon_state = "darkyellow2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/flight_deck) +"eQY" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"eRl" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"eRq" = ( +/obj/item/toy/bikehorn, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "eRz" = ( /obj/structure/machinery/vending/snack/packaged, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"eRH" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, +"eRF" = ( +/obj/item/stack/cable_coil, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"eRS" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/station/medbay) +"eRR" = ( +/obj/item/ammo_magazine/smg/mp5, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" }, +/area/fiorina/station/telecomm/lz1_cargo) +"eRZ" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"eRY" = ( -/obj/structure/machinery/constructable_frame, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"eSg" = ( -/obj/effect/decal/cleanable/blood/drip, +/area/fiorina/station/medbay) +"eSn" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 6; + icon_state = "greenblue" }, -/area/fiorina/station/telecomm/lz1_cargo) -"eSs" = ( -/obj/item/prop/helmetgarb/riot_shield, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/botany) "eSF" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"eSZ" = ( -/obj/structure/bed/roller, +"eSH" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"eSO" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"eTa" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "eTb" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_1"; @@ -8085,81 +8079,47 @@ "eTc" = ( /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) -"eTd" = ( -/obj/item/prop/helmetgarb/gunoil, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"eTh" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"eTn" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/station/civres_blue) -"eTo" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/station_alert, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"eTx" = ( -/obj/structure/reagent_dispensers/water_cooler, +"eTr" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison, -/area/fiorina/station/chapel) +/area/fiorina/station/power_ring) "eTC" = ( /obj/item/frame/rack, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"eTJ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) "eUi" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/fiorina/station/telecomm/lz1_cargo) -"eUk" = ( +"eUo" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"eUy" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/coffee, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) -"eUD" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +/area/fiorina/station/medbay) +"eUN" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison, -/area/fiorina/station/security) -"eVb" = ( -/obj/item/reagent_container/blood, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenbluecorner" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/botany) +/area/fiorina/station/medbay) +"eUP" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"eUZ" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "eVf" = ( /obj/structure/prop/souto_land/pole, /obj/structure/prop/souto_land/streamer{ @@ -8167,6 +8127,16 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) +"eVj" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) "eVm" = ( /obj/structure/machinery/newscaster, /turf/closed/wall/r_wall/prison_unmeltable, @@ -8175,49 +8145,64 @@ /obj/structure/machinery/computer/arcade, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"eVL" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"eVK" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"eVN" = ( +/obj/item/bodybag, +/obj/item/bodybag{ + pixel_y = 2 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) "eVO" = ( /turf/closed/shuttle/ert, /area/fiorina/tumor/ship) -"eVZ" = ( -/obj/item/trash/sosjerky, -/turf/open/floor/prison, -/area/fiorina/station/security) -"eWh" = ( -/obj/item/stack/sheet/metal{ - amount = 5 +"eWf" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" }, +/area/fiorina/station/central_ring) +"eWr" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "darkyellow2" + icon_state = "green" }, -/area/fiorina/lz/near_lzI) -"eWu" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 +/area/fiorina/tumor/civres) +"eWz" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flash, +/turf/open/floor/prison{ + icon_state = "redfull" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/area/fiorina/station/security) +"eWA" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"eWO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/newspaper, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/civres) "eWP" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." @@ -8238,32 +8223,13 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"eXd" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) "eXp" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/civres_blue) -"eXr" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/lz/near_lzI) -"eXC" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) +"eXz" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/prison, +/area/fiorina/station/disco) "eXP" = ( /obj/structure/machinery/door/poddoor/almayer{ density = 0; @@ -8271,24 +8237,38 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/botany) -"eXU" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"eYi" = ( -/obj/item/stack/cable_coil, +"eYr" = ( +/obj/structure/inflatable, +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"eYs" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/fire/empty, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"eYz" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) "eYC" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) +"eYN" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison, +/area/fiorina/station/botany) "eYT" = ( /obj/structure/machinery/light/double/blue{ pixel_y = -1 @@ -8304,39 +8284,72 @@ }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/security/wardens) -"eZm" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ +"eZi" = ( +/obj/structure/machinery/power/apc{ dir = 8 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"eZD" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"eZr" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/landinglight/ds2/delayone, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"eZQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/handcuffs{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/weapon/gun/launcher/grenade/m81, -/obj/item/storage/pill_bottle/kelotane, /turf/open/floor/prison{ icon_state = "redfull" }, /area/fiorina/station/security) -"eZL" = ( -/obj/item/reagent_container/food/snacks/meat, +"eZW" = ( +/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - icon_state = "greenblue" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"eZN" = ( -/obj/structure/machinery/landinglight/ds2/delayone{ - dir = 4 +/area/fiorina/station/disco) +"fac" = ( +/obj/structure/platform/shiva{ + dir = 1 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"faw" = ( +/obj/structure/barricade/metal{ + health = 250; + icon_state = "metal_1" + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"faD" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"fbc" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/medbay) "fbo" = ( /obj/structure/barricade/plasteel, /obj/structure/barricade/metal{ @@ -8346,87 +8359,47 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"fbs" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - pixel_y = 9 - }, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/security) -"fbL" = ( -/obj/effect/decal/cleanable/blood/drip, +"fbF" = ( +/obj/item/clothing/suit/chef/classic, +/obj/structure/bed/stool, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"fbT" = ( -/obj/structure/platform{ - dir = 4 + dir = 10; + icon_state = "kitchen" }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/area/fiorina/station/civres_blue) +"fbX" = ( +/obj/item/stack/sheet/wood{ + amount = 10 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"fbW" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryotop" - }, -/obj/structure/pipes/standard/simple/visible{ - dir = 5 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/area/fiorina/station/telecomm/lz1_cargo) +"fcg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_x = -2; + pixel_y = 7 }, -/area/fiorina/station/medbay) -"fcp" = ( -/obj/item/trash/burger, -/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/civres) "fcA" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"fcO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper/carbon, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"fcX" = ( -/obj/structure/closet/crate/trashcart, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +"fcB" = ( +/obj/structure/barricade/deployable{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"fde" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" + dir = 1; + icon_state = "yellow" }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/lowsec) "fdf" = ( /obj/structure/closet, /obj/item/stack/cable_coil, @@ -8434,93 +8407,62 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"fdn" = ( +"fdu" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/research_cells) -"fdK" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/prop/invuln{ - desc = "The best ride in the universe. For the one and only Souto Man! Although, this one seems to have no fuel left."; - dir = 4; - icon = 'icons/obj/vehicles/vehicles.dmi'; - icon_state = "soutomobile"; - name = "Disabled Souto Mobile" +/area/fiorina/lz/near_lzI) +"fdC" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = -7; + pixel_y = 7 }, /turf/open/floor/prison, -/area/fiorina/station/park) -"fdS" = ( -/obj/structure/bed/chair/comfy, +/area/fiorina/station/flight_deck) +"fdR" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/security/wardens) +/area/fiorina/station/park) "fdV" = ( /obj/structure/platform_decoration/kutjevo{ dir = 1 }, /turf/open/space/basic, /area/fiorina/oob) -"feO" = ( -/obj/structure/largecrate/supply/medicine/iv, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"feY" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"ffm" = ( -/obj/structure/bed/chair{ +"fer" = ( +/obj/structure/platform{ dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/medbay) -"ffN" = ( -/obj/structure/largecrate/random, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"ffU" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5_1" - }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" - }, +/area/fiorina/station/medbay) +"ffA" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/station/transit_hub) "ffZ" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/fiorina/station/power_ring) -"fgb" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"fgB" = ( -/obj/item/stack/folding_barricade, +"fgq" = ( +/obj/effect/landmark/corpsespawner/engineer, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "bluefull" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) "fgM" = ( /obj/structure/platform, /obj/item/ammo_casing{ @@ -8532,44 +8474,34 @@ name = "pool" }, /area/fiorina/station/park) +"fgN" = ( +/obj/item/device/flashlight/flare, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzI) "fgU" = ( /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"fhc" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" +"fgY" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/area/fiorina/maintenance) -"fhz" = ( -/obj/structure/barricade/wooden, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/central_ring) -"fhC" = ( -/obj/item/stack/rods, +/area/fiorina/station/medbay) +"fhB" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/emergency, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"fhX" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/lz/near_lzI) -"fhZ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/aux_engi) "fic" = ( /obj/structure/bed/sofa/south/grey/right, /obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto{ @@ -8577,12 +8509,12 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"fin" = ( -/obj/structure/machinery/light/double/blue, +"fie" = ( /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/chapel) "fiq" = ( /turf/open/floor/plating/prison, /area/fiorina/oob) @@ -8594,42 +8526,20 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"fiu" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"fiD" = ( -/obj/structure/bed/roller, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"fiF" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +"fiw" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/station/civres_blue) -"fiI" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 1 +/area/fiorina/station/power_ring) +"fiG" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_7" }, -/obj/item/frame/rack, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/disco) +/area/fiorina/station/security) "fiU" = ( /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) @@ -8637,16 +8547,37 @@ /turf/closed/wall/prison, /area/fiorina/lz/near_lzI) "fje" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 6 +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/obj/item/reagent_container/food/drinks/cans/beer{ - pixel_x = -13; - pixel_y = 13 +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"fjg" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/disco) +"fjo" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5_1" + }, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "fjr" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating/plating_catwalk/prison, @@ -8657,211 +8588,174 @@ /obj/item/attachable/magnetic_harness, /turf/open/floor/wood, /area/fiorina/station/civres_blue) +"fjV" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "fjX" = ( /turf/closed/shuttle/elevator{ dir = 9 }, /area/fiorina/tumor/aux_engi) -"fkP" = ( -/obj/structure/platform{ +"fkG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ dir = 1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"fkY" = ( -/obj/item/tool/wet_sign, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = -1 + icon_state = "redfull" }, -/turf/open/floor/prison, /area/fiorina/station/security) -"flg" = ( -/obj/structure/platform_decoration{ - dir = 1 +"fkH" = ( +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"flm" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"flo" = ( -/obj/structure/platform{ - dir = 4 +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottomleft" }, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"flq" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/reagent_container/food/snacks/meat, +/area/fiorina/station/medbay) +"fmb" = ( +/obj/item/storage/firstaid/toxin, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/botany) -"flC" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/chapel) "fmg" = ( /obj/item/shard{ icon_state = "medium" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"fmL" = ( -/obj/item/frame/toolbox_tiles, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"fmM" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"fmU" = ( -/obj/effect/decal/cleanable/blood, +"fmE" = ( +/obj/effect/landmark/objective_landmark/medium, +/obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/prison{ - dir = 6; - icon_state = "green" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/maintenance) "fmY" = ( /obj/item/device/cassette_tape/ocean, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"fnj" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) "fnn" = ( /obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"fnt" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"fno" = ( +/obj/structure/machinery/space_heater, +/obj/structure/platform{ + dir = 4 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/disco) -"fnB" = ( -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/tumor/ice_lab) "fnD" = ( /turf/closed/shuttle/elevator{ dir = 4 }, /area/fiorina/station/telecomm/lz1_cargo) -"fnW" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"fon" = ( -/obj/item/device/flashlight/lamp/tripod, +"fnY" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"foL" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" +/area/fiorina/station/park) +"fob" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/botany) -"foT" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"foV" = ( -/obj/structure/largecrate/random, -/obj/item/trash/pistachios, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"foZ" = ( -/obj/item/stack/sandbags_empty, +/area/fiorina/station/power_ring) +"fop" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/civres) -"fpi" = ( -/obj/item/clothing/head/soft/yellow, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" +/area/fiorina/tumor/ice_lab) +"fou" = ( +/obj/structure/barricade/deployable{ + dir = 8 }, -/area/fiorina/tumor/servers) -"fpl" = ( -/obj/structure/barricade/sandbags{ +/turf/open/floor/prison, +/area/fiorina/station/security) +"fpg" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "sandbag_0"; - pixel_y = 2 + pixel_x = 10; + pixel_y = 13 }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "fpn" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/aux_engi) -"fpp" = ( -/turf/open/floor/prison{ +"fpq" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/bed/chair{ dir = 4; - icon_state = "green" + pixel_y = 4 }, -/area/fiorina/tumor/civres) +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "bright_clean_marked" + }, +/area/fiorina/station/medbay) "fpB" = ( /obj/item/tool/wirecutters/clippers, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"fpM" = ( -/obj/structure/machinery/landinglight/ds2/delaythree{ - dir = 4 +"fpN" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"fqg" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/lz/near_lzII) -"fpY" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/briefcase/inflatable, -/turf/open/floor/prison{ - icon_state = "yellowfull" +/area/fiorina/station/central_ring) +"fqh" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, -/area/fiorina/station/lowsec) -"fqD" = ( -/obj/structure/stairs/perspective{ +/turf/open/floor/prison{ dir = 5; - icon_state = "p_stair_full" + icon_state = "whitegreen" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) "fqF" = ( /obj/effect/landmark{ icon_state = "hive_spawn"; @@ -8870,130 +8764,160 @@ /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"fqZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/metal/medium_stack, -/obj/effect/landmark/objective_landmark/medium, +"fqI" = ( +/obj/structure/machinery/space_heater, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"frt" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"frw" = ( -/obj/structure/bed{ - icon_state = "abed" + icon_state = "darkredfull2" }, -/obj/item/storage/fancy/crayons, +/area/fiorina/station/research_cells) +"frc" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/research_cells) -"frY" = ( +/area/fiorina/station/civres_blue) +"frv" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"frM" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/surface/rack, +/obj/item/device/flashlight, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurplecorner" + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/transit_hub) +"frR" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottom" }, -/area/fiorina/station/research_cells) -"fsf" = ( -/obj/structure/bed/roller, -/obj/effect/spawner/random/gun/rifle/highchance, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/medbay) "fsk" = ( /obj/structure/machinery/space_heater, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"fsn" = ( -/obj/item/device/flashlight, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"ftq" = ( -/obj/item/stack/cable_coil/orange, +"ftb" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"ftv" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "red" +/area/fiorina/tumor/civres) +"ftd" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/security) -"ftH" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 6 }, -/obj/item/stool{ - pixel_x = 4; - pixel_y = 6 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/botany) +"fth" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"ftY" = ( -/obj/effect/landmark/xeno_spawn, +/area/fiorina/station/civres_blue) +"ftS" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"ftU" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"fum" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/platform_decoration{ - dir = 1 +"fun" = ( +/obj/item/weapon/gun/smg/mp5, +/obj/item/ammo_casing{ + icon_state = "casing_6_1" }, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"fuA" = ( -/obj/item/stack/sheet/wood, +/area/fiorina/station/telecomm/lz1_cargo) +"fuw" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"fuJ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic{ + pixel_x = 3 + }, +/obj/item/trash/cigbutt{ + pixel_y = 8 + }, +/obj/item/trash/cigbutt{ + pixel_x = 4 + }, +/obj/item/paper_bin{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security/wardens) +"fuO" = ( +/obj/item/clipboard, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"fvr" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, /turf/open/floor/prison{ dir = 8; - icon_state = "darkbrown2" + icon_state = "cell_stripe" }, /area/fiorina/station/park) -"fuF" = ( -/obj/structure/machinery/autolathe, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"fvH" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/tumor/civres) -"fvk" = ( -/obj/structure/barricade/metal/wired, +/area/fiorina/oob) +"fvK" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/power_ring) "fvL" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"fvY" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"fwg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/adv{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 9; + pixel_y = 2 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/telecomm/lz1_cargo) "fwn" = ( /obj/structure/lattice, /obj/item/stack/sheet/metal, @@ -9003,73 +8927,69 @@ /obj/item/poster, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"fwR" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gib2" - }, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"fwZ" = ( +"fwt" = ( +/obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/medical_decals{ - icon_state = "docdecal1" + icon_state = "triagedecaldir" }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"fwY" = ( +/obj/structure/barricade/metal/wired{ + health = 250; + icon_state = "metal_3" + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"fxa" = ( +/obj/structure/monorail{ + dir = 4; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"fxi" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/station/security) "fxt" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ icon_state = "plate" }, /area/fiorina/tumor/ship) -"fxz" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"fxP" = ( +"fxL" = ( +/obj/structure/filingcabinet, /turf/open/floor/prison{ - icon_state = "yellowcorner" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"fxY" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/tumor/aux_engi) +"fxS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/surgical, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"fye" = ( -/obj/structure/surface/rack, -/obj/item/tank/emergency_oxygen/engi, -/obj/item/tank/emergency_oxygen/engi, -/obj/item/device/flashlight, -/obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/lowsec) "fyi" = ( /turf/open/floor/wood, /area/fiorina/station/research_cells) +"fyt" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "ywflowers_3" + }, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/central_ring) "fyy" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 }, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"fyA" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, -/area/fiorina/tumor/aux_engi) "fyC" = ( /obj/structure/platform/kutjevo/smooth, /obj/structure/platform/kutjevo/smooth{ @@ -9077,53 +8997,27 @@ }, /turf/open/space, /area/fiorina/oob) +"fyL" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison, +/area/fiorina/station/disco) "fyO" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"fyQ" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"fyT" = ( -/obj/item/trash/cigbutt/bcigbutt, -/obj/item/device/flashlight/lamp/tripod, +"fzp" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"fzb" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"fzs" = ( -/obj/structure/bed/chair/office/light{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"fzt" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/barricade/wooden{ - dir = 4 + icon_state = "greenblue" }, +/area/fiorina/station/botany) +"fzC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/gun/shotgun/highchance, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "darkbrown2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/maintenance) "fzO" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -9132,29 +9026,16 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"fAh" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/obj/effect/landmark/objective_landmark/close, +"fAf" = ( +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"fAr" = ( +/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ - dir = 10; + dir = 1; icon_state = "darkbrown2" }, -/area/fiorina/maintenance) -"fAs" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/aux_engi) "fAt" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations have been the leading cause in asbestos related deaths in spacecraft for 3 years in a row now."; @@ -9186,17 +9067,21 @@ /obj/effect/spawner/random/gun/pistol/lowchance, /turf/open/floor/wood, /area/fiorina/station/park) -"fAV" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +"fAS" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"fAU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_y = 7 }, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" + icon_state = "bluefull" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/power_ring) "fAZ" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/drinks/bottle/holywater{ @@ -9205,76 +9090,117 @@ }, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) -"fBc" = ( +"fBr" = ( +/obj/structure/closet/secure_closet/engineering_materials, /turf/open/floor/prison{ - dir = 10; - icon_state = "damaged1" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"fBd" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" +/area/fiorina/tumor/civres) +"fBD" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"fCf" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/iv_drip{ + pixel_y = 19 }, -/area/fiorina/station/power_ring) -"fBg" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" +/obj/item/bedsheet/green, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/tumor/aux_engi) -"fBi" = ( -/obj/structure/inflatable/popped/door, -/obj/item/ammo_magazine/m56d, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"fBp" = ( -/obj/structure/closet/firecloset, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"fCr" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/maintenance) -"fBP" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"fCw" = ( +/obj/structure/machinery/vending/snack/packaged, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/tumor/civres) -"fCz" = ( -/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/civres_blue) "fCD" = ( /obj/item/stack/sheet/metal, /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/prison, /area/fiorina/station/security) +"fCF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/cell/super{ + pixel_y = 12 + }, +/obj/item/cell/super, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"fCJ" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/fiorina/oob) +"fCW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "fCZ" = ( /obj/structure/closet/crate/medical, /obj/item/clothing/mask/cigarette/pipe, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"fDo" = ( -/obj/effect/landmark/objective_landmark/close, +"fDb" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"fDI" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 8; - layer = 3.5 +/area/fiorina/station/security) +"fDi" = ( +/obj/structure/machinery/computer/arcade, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) +"fDE" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "damaged1" }, +/area/fiorina/station/central_ring) +"fDJ" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/lz/near_lzI) "fDQ" = ( /obj/structure/window/framed/prison/reinforced/hull, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -9283,111 +9209,85 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"fEn" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) +"fEH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/station_alert, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "fEY" = ( /obj/structure/machinery/power/apc, /turf/open/floor{ icon_state = "delivery" }, /area/fiorina/station/power_ring) -"fFf" = ( -/obj/item/stool, -/turf/open/floor/prison{ - icon_state = "yellowfull" +"fFv" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + layer = 2.97; + pixel_y = -14 }, -/area/fiorina/station/lowsec) -"fFC" = ( -/obj/structure/bed/chair{ - dir = 8 +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" }, -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/gibspawner/human, +/area/fiorina/station/disco) +"fFw" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 10; + icon_state = "floor_marked" }, -/area/fiorina/station/park) +/area/fiorina/station/power_ring) "fFE" = ( /obj/item/tool/screwdriver, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"fFU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +"fGi" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/station/medbay) -"fGb" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"fGe" = ( -/obj/structure/window/reinforced{ - dir = 8 + dir = 6; + icon_state = "darkbrown2" }, -/obj/structure/window/reinforced, +/area/fiorina/station/park) +"fGA" = ( +/obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/prison, /area/fiorina/station/security) -"fGp" = ( -/obj/structure/surface/rack, -/obj/item/handcuffs, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/security) -"fGB" = ( -/obj/structure/prop/structure_lattice{ +"fGW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"fGL" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/tracker, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + icon_state = "bluefull" }, -/area/fiorina/station/disco) -"fGM" = ( -/obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +/area/fiorina/station/power_ring) +"fHb" = ( +/obj/structure/monorail{ + name = "launch track" }, -/area/fiorina/station/flight_deck) -"fGY" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"fHo" = ( /turf/open/floor/prison{ - icon_state = "floorscorched2" + icon_state = "yellow" }, -/area/fiorina/tumor/civres) -"fHh" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ +/area/fiorina/station/lowsec) +"fHI" = ( +/obj/structure/platform_decoration{ dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"fHu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/atmos_alert, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"fHy" = ( -/obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"fHB" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) "fHK" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -9396,65 +9296,31 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"fHQ" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/shower, -/obj/structure/window{ - dir = 4 - }, -/obj/item/coin/uranium{ - desc = "You found one of the three uranium coins. It is entirely worthless." - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"fHU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/machinery/computer/cameras{ - dir = 8 - }, +"fIn" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, /area/fiorina/station/security) -"fHV" = ( -/obj/structure/machinery/landinglight/ds2/delaytwo{ - dir = 8 +"fIq" = ( +/obj/effect/decal/hefa_cult_decals/d32{ + icon_state = "bee" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/sign/prop2{ + pixel_y = 32 }, -/area/fiorina/lz/near_lzII) -"fIj" = ( -/obj/item/clothing/suit/storage/hazardvest, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"fIv" = ( -/obj/item/shard{ - icon_state = "medium" +/area/fiorina/station/medbay) +"fIL" = ( +/obj/item/clothing/accessory/armband/cargo{ + desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; + name = "HEFA Order milita armband" }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"fII" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/light/double/blue{ dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "blue" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/chapel) "fIT" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating/prison, @@ -9471,19 +9337,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"fJx" = ( -/obj/item/storage/briefcase, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"fJO" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, +"fJV" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "fJW" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/clothing/accessory/storage/webbing, @@ -9499,122 +9358,116 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"fKq" = ( -/obj/item/storage/firstaid/regular, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"fKr" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"fKv" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/fiorina/station/power_ring) -"fKF" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, +"fKn" = ( +/obj/item/stock_parts/manipulator/pico, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurple2" }, -/area/fiorina/station/power_ring) -"fLa" = ( -/obj/effect/landmark/corpsespawner/ua_riot, +/area/fiorina/tumor/servers) +"fKu" = ( +/obj/item/device/flashlight/flare, /turf/open/floor/prison{ dir = 8; icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) -"fLq" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" +/area/fiorina/station/telecomm/lz1_cargo) +"fKP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" }, -/area/fiorina/tumor/servers) -"fLr" = ( -/obj/item/smallDelivery, -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"fLs" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"fKX" = ( +/obj/item/storage/backpack{ + pixel_x = -11; + pixel_y = 15 }, +/obj/item/trash/syndi_cakes, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"fLO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/radio{ - pixel_y = 8 +/area/fiorina/station/lowsec) +"fLb" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"fLu" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ icon_state = "bluefull" }, /area/fiorina/station/power_ring) -"fLR" = ( -/obj/item/device/flashlight/lamp/tripod, +"fLH" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/research_cells) "fLS" = ( /obj/structure/bed/chair, /turf/open/floor/wood, /area/fiorina/station/park) -"fMk" = ( -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/obj/effect/decal/cleanable/blood, +"fLX" = ( +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"fMY" = ( -/obj/structure/reagent_dispensers/watertank{ - layer = 2.6 +/area/fiorina/station/civres_blue) +"fLY" = ( +/obj/structure/machinery/newscaster{ + pixel_y = 32 }, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"fNc" = ( +/area/fiorina/station/transit_hub) +"fMc" = ( /obj/structure/platform{ - dir = 4 + dir = 8; + layer = 2.5 }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"fNp" = ( -/obj/item/stack/sheet/metal, +/area/fiorina/tumor/ice_lab) +"fMn" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) +"fNA" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"fNN" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"fOe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flashlight/lamp, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/disco) "fOg" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 8 @@ -9623,79 +9476,65 @@ name = "astroturf" }, /area/fiorina/station/park) -"fOo" = ( -/obj/structure/closet/crate/medical, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"fOi" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 6 }, -/area/fiorina/station/medbay) -"fOs" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = -13; + pixel_y = 13 }, -/area/fiorina/station/medbay) -"fOt" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"fOC" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) -"fOw" = ( -/obj/structure/bed/chair{ - dir = 1 +/area/fiorina/station/telecomm/lz1_cargo) +"fOK" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkyellow2" }, +/area/fiorina/station/flight_deck) +"fOT" = ( /turf/open/floor/prison{ - dir = 6; + dir = 1; icon_state = "blue" }, /area/fiorina/station/power_ring) -"fOZ" = ( -/obj/structure/bed{ - icon_state = "abed" +"fPl" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, -/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) -"fPu" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +"fPB" = ( +/turf/open/space, /area/fiorina/station/medbay) -"fPF" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, +"fQa" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/telecomm/lz1_cargo) -"fPZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/telecomm/lz1_tram) +"fQA" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + layer = 3.5; + pixel_y = 6 }, -/area/fiorina/station/medbay) -"fQx" = ( -/obj/item/reagent_container/food/drinks/bottle/tomatojuice, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/chapel) "fQB" = ( /obj/item/ammo_casing/shell{ icon_state = "shell_9_1" @@ -9703,36 +9542,68 @@ /obj/effect/spawner/random/gun/shotgun/highchance, /turf/open/floor/wood, /area/fiorina/station/park) +"fQI" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "fQV" = ( /obj/structure/platform/kutjevo/smooth{ dir = 4 }, /turf/open/space, /area/fiorina/oob) +"fQY" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"fRc" = ( +/obj/structure/toilet{ + dir = 8; + pixel_y = 8 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "fRo" = ( /obj/structure/bed/chair, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"fRG" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"fRq" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" }, +/area/fiorina/station/security) +"fSa" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 1; - icon_state = "green" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"fSp" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/obj/item/stack/sheet/metal{ + amount = 5 }, -/area/fiorina/station/chapel) -"fSe" = ( -/obj/structure/bed/sofa/vert/grey, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"fSl" = ( -/obj/item/disk/data, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) +/area/fiorina/lz/near_lzI) "fSq" = ( /obj/structure/machinery/door/airlock/almayer/marine{ dir = 1; @@ -9762,28 +9633,23 @@ }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"fSI" = ( -/obj/item/broken_device, +"fTd" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "green" }, -/area/fiorina/station/medbay) -"fSY" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/aux_engi) +"fTn" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/area/fiorina/tumor/ship) +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) "fTs" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/power_ring) -"fTx" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/flight_deck) "fTz" = ( /obj/structure/closet, /obj/item/clothing/suit/poncho/red, @@ -9791,20 +9657,6 @@ /obj/item/clothing/suit/suspenders, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"fTA" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, -/obj/structure/bed/roller, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "fUd" = ( /obj/structure/barricade/plasteel{ dir = 4 @@ -9825,90 +9677,122 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"fUu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/plate, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"fUF" = ( +"fUz" = ( /obj/structure/stairs/perspective{ + dir = 4; icon_state = "p_stair_full" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"fUC" = ( +/obj/structure/stairs/perspective, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"fUD" = ( +/obj/structure/dropship_equipment/mg_holder, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"fUP" = ( +/obj/structure/machinery/door/window/eastright{ + dir = 2 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/lz/near_lzI) "fUX" = ( /obj/structure/bedsheetbin, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"fUZ" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"fVs" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/medbay) -"fVA" = ( -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" + dir = 10; + icon_state = "green" }, -/area/fiorina/tumor/aux_engi) -"fWc" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/chapel) +"fVY" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 + }, +/obj/item/stack/sheet/metal{ + amount = 5 }, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/ice_lab) -"fWC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/folder/black_random, +/area/fiorina/station/flight_deck) +"fWr" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "red" + }, +/area/fiorina/lz/near_lzII) +"fWs" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"fWy" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" }, /area/fiorina/station/power_ring) -"fWD" = ( -/obj/structure/machinery/recharge_station, +"fWH" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" + icon_state = "yellowfull" }, -/area/fiorina/maintenance) -"fWL" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 +/area/fiorina/station/disco) +"fWI" = ( +/obj/structure/monorail{ + dir = 9; + name = "launch track" }, -/obj/structure/barricade/handrail{ - dir = 8 +/turf/open/space, +/area/fiorina/oob) +"fWV" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "damaged1" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"fWS" = ( -/obj/structure/stairs/perspective, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"fXe" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +/area/fiorina/station/disco) +"fXo" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) -"fXv" = ( -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/disco) "fXB" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/security) +"fXD" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"fXI" = ( +/turf/open/floor/prison{ + icon_state = "green" + }, +/area/fiorina/station/transit_hub) "fXL" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -9920,128 +9804,90 @@ }, /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/servers) -"fXQ" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" +"fXW" = ( +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 8; + icon_state = "bluecorner" }, -/turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"fXS" = ( +"fYa" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/lowsec) -"fXT" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/toy/beach_ball, +/area/fiorina/station/medbay) +"fYf" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "yellowfull" }, /area/fiorina/station/disco) -"fYn" = ( -/obj/structure/bed/chair, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 +"fYo" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/turf/open/floor/prison{ - icon_state = "yellowfull" +/turf/open/floor/prison, +/area/fiorina/station/security) +"fYW" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/carpet, +/area/fiorina/station/security/wardens) +"fYY" = ( +/obj/item/ammo_casing{ + icon_state = "casing_6" }, -/area/fiorina/station/disco) -"fYB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/donut_box/empty, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"fYD" = ( -/obj/structure/bed/chair/office/dark, -/turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"fYV" = ( -/obj/structure/machinery/door/airlock/almayer/marine{ - dir = 1; - icon = 'icons/obj/structures/doors/prepdoor_charlie.dmi' +/area/fiorina/station/lowsec) +"fZc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/arcturian_ace{ + pixel_x = -4; + pixel_y = 9 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"fYW" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/carpet, -/area/fiorina/station/security/wardens) "fZd" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) +"fZe" = ( +/obj/item/tool/shovel/etool, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/civres_blue) +"fZz" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison, +/area/fiorina/station/security) "fZD" = ( /obj/item/tool/warning_cone, /turf/open/floor/wood, /area/fiorina/station/park) -"gas" = ( -/obj/item/stack/rods, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"gaL" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/telecomm/lz1_tram) -"gaN" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"gaZ" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"gbi" = ( -/obj/structure/inflatable/door, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +"fZT" = ( +/obj/structure/mirror{ + pixel_x = -29 }, -/area/fiorina/station/research_cells) -"gbn" = ( -/obj/structure/stairs/perspective{ +/obj/structure/sink{ dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"gbD" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 + pixel_x = -12; + pixel_y = 2 }, /turf/open/floor/prison{ - dir = 5; - icon_state = "blue" + icon_state = "sterile_white" }, /area/fiorina/station/civres_blue) -"gbP" = ( +"fZW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ dir = 8 @@ -10054,52 +9900,112 @@ icon_state = "floor_plate" }, /area/fiorina/station/security) -"gbS" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/head/cmcap{ - pixel_x = -5; - pixel_y = 14 +"gag" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/item/clothing/glasses/mbcg{ - pixel_y = -14 +/area/fiorina/station/security) +"gaQ" = ( +/obj/structure/machinery/power/apc{ + dir = 4 }, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"gbU" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/security) +"gbf" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) -"gcr" = ( -/obj/item/tool/wirecutters/clippers, +/area/fiorina/station/power_ring) +"gbh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/civres) -"gde" = ( +/area/fiorina/station/medbay) +"gbk" = ( +/obj/item/trash/burger, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"gbv" = ( /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8; + pixel_x = -10; + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"gbF" = ( +/obj/item/clothing/gloves/botanic_leather, +/turf/open/floor/prison{ + dir = 8; + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"gbO" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/item/trash/used_stasis_bag, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"gbR" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/area/fiorina/station/central_ring) -"gdn" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/fiberbush) -"gdt" = ( -/obj/structure/window/framed/prison/reinforced/hull, +/area/fiorina/station/disco) +"gbT" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"gbV" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"gcx" = ( +/obj/structure/monorail{ + dir = 4; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"gcD" = ( +/obj/structure/kitchenspike, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) +"gdQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue" }, /area/fiorina/station/chapel) +"gdS" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) "gec" = ( /obj/structure/prop/structure_lattice{ dir = 8; @@ -10118,6 +10024,14 @@ }, /turf/open/space, /area/fiorina/oob) +"ger" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 + }, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "geF" = ( /obj/structure/lattice, /turf/open/floor/almayer_hull, @@ -10126,19 +10040,13 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/wood, /area/fiorina/station/chapel) -"geU" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 - }, +"geT" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/ice_lab) "gfh" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -10154,19 +10062,6 @@ "gfo" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/maintenance) -"gfp" = ( -/obj/structure/machinery/m56d_hmg/mg_turret/dropship, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"gfw" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/donut_box{ - pixel_y = 9 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "gfL" = ( /obj/structure/prop/souto_land/pole, /obj/structure/prop/souto_land/pole{ @@ -10175,10 +10070,6 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"gfN" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison, -/area/fiorina/station/medbay) "ggd" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_1" @@ -10196,42 +10087,14 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"ggp" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing/yellow, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"ggB" = ( -/obj/item/stool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"ggG" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/machinery/space_heater, +"ggA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/spray/pepper, +/obj/item/clothing/glasses/sunglasses/sechud, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) -"ggQ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "redfull" }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/security) "ghg" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -10246,13 +10109,6 @@ }, /turf/open/space, /area/fiorina/oob) -"ghv" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) "ghw" = ( /obj/structure/bed/chair/dropship/pilot, /obj/effect/landmark/objective_landmark/close, @@ -10260,104 +10116,91 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"ghP" = ( +"ghz" = ( +/obj/structure/lz_sign/prison_sign, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"ghS" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"gir" = ( /turf/open/floor/prison{ dir = 9; - icon_state = "green" + icon_state = "greenfull" }, -/area/fiorina/station/chapel) -"ghU" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/tumor/servers) +"giw" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"giA" = ( +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/security) "giX" = ( /obj/structure/barricade/handrail/type_b{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"gjg" = ( -/obj/structure/barricade/sandbags{ +"gjr" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"gjs" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "sandbag_0" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"gjj" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - pixel_y = 17 + pixel_y = 21 }, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"gjX" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"gkd" = ( -/obj/item/storage/wallet/random, +/area/fiorina/lz/near_lzII) +"gjz" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/tumor/civres) -"gkm" = ( -/obj/structure/machinery/line_nexter, -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" + icon_state = "sterile_white" }, -/area/fiorina/station/security) -"gks" = ( +/area/fiorina/station/medbay) +"gjY" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"gkt" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + icon_state = "bluecorner" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"gky" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +/area/fiorina/station/chapel) +"gkv" = ( +/obj/structure/platform_decoration{ + dir = 1 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"gkZ" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalleft" +/area/fiorina/tumor/ice_lab) +"gkC" = ( +/obj/structure/machinery/vending/cola, +/obj/structure/prop/souto_land/streamer{ + pixel_y = 24 }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" }, +/area/fiorina/station/park) +"gkE" = ( +/obj/structure/surface/rack, +/obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) "glj" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"glw" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) "glD" = ( /obj/structure/bed{ icon_state = "abed" @@ -10368,50 +10211,48 @@ /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"glH" = ( -/obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"glI" = ( -/obj/item/trash/cigbutt, +"gmg" = ( +/obj/structure/bed/chair/comfy, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"glW" = ( -/obj/structure/holohoop{ - pixel_y = 25 + icon_state = "darkyellow2" }, -/turf/open/floor/prison{ - icon_state = "yellow" +/area/fiorina/station/flight_deck) +"gmp" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/station/lowsec) -"gma" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"gmv" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/telecomm/lz1_tram) +"gmx" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" }, -/area/fiorina/station/park) -"gmy" = ( -/obj/structure/barricade/handrail/type_b, +/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" + dir = 1; + icon_state = "greenblue" }, -/area/fiorina/station/flight_deck) -"gmS" = ( -/obj/effect/decal/cleanable/blood/gibs, -/obj/effect/spawner/random/gun/shotgun/midchance, +/area/fiorina/station/botany) +"gmF" = ( +/obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/prison, /area/fiorina/station/security) +"gmG" = ( +/obj/structure/machinery/constructable_frame, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"gmN" = ( +/obj/structure/closet/secure_closet/engineering_materials, +/obj/effect/spawner/random/gun/smg, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) "gmT" = ( /obj/effect/landmark/xeno_spawn, /turf/open/organic/grass{ @@ -10419,178 +10260,110 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"gng" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 10 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"gnj" = ( -/obj/item/stack/folding_barricade, -/turf/open/floor/prison, -/area/fiorina/station/security) -"gnm" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/botany) -"gnz" = ( -/obj/item/tool/lighter/random{ - pixel_x = 14; - pixel_y = 13 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"gnR" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/lz/near_lzI) -"gnS" = ( -/obj/effect/spawner/random/gun/rifle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"gnV" = ( +"gnG" = ( /obj/effect/decal/medical_decals{ - icon_state = "cryomid" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "docstripingdir" }, -/area/fiorina/station/medbay) -"goh" = ( -/obj/structure/pipes/standard/manifold/visible, +/obj/structure/bed/roller, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"gol" = ( -/obj/structure/filingcabinet{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/effect/landmark/objective_landmark/close, +"gnL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/kitchen/rollingpin, +/obj/item/reagent_container/food/snacks/grown/carrot, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/tumor/civres) -"gom" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/civres_blue) +"gnQ" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"gnY" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/area/fiorina/station/medbay) -"goz" = ( +/obj/item/storage/bible/hefa, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/maintenance) -"goA" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/research_cells) +"goo" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/lz/near_lzII) "goG" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"goH" = ( -/obj/structure/surface/rack, -/obj/item/tool/mop, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"goM" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"gpr" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"gpq" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 - }, -/obj/structure/machinery/shower{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/lowsec) -"gpB" = ( -/obj/item/storage/bible/hefa, +/area/fiorina/station/telecomm/lz1_cargo) +"gpA" = ( +/obj/item/trash/pistachios, /turf/open/floor/prison{ - dir = 1; - icon_state = "green" + icon_state = "whitegreen" }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/ice_lab) "gpG" = ( /obj/structure/window_frame/prison, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"gqd" = ( -/obj/item/tool/kitchen/utensil/pknife, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"gqe" = ( -/turf/open/floor/prison, -/area/fiorina/station/disco) -"gqH" = ( +"gpY" = ( +/obj/item/explosive/grenade/high_explosive/m15{ + pixel_x = -9; + pixel_y = -8 + }, +/obj/item/explosive/grenade/high_explosive/frag{ + pixel_x = 6; + pixel_y = 3 + }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/tumor/servers) +"gqM" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, /area/fiorina/station/park) -"gqZ" = ( +"gqU" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/device/radio, -/obj/item/tool/pen/blue, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"grL" = ( -/obj/structure/bed/sofa/vert/grey, -/turf/open/floor/prison, -/area/fiorina/station/security) -"grO" = ( -/obj/effect/landmark/corpsespawner/ua_riot, +/obj/item/paper/janitor, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/disco) +"grg" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) +"grA" = ( +/obj/structure/machinery/landinglight/ds2/delaythree{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"gsd" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "gsL" = ( /obj/structure/platform, /obj/structure/platform{ @@ -10601,18 +10374,54 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"gte" = ( -/obj/item/shard{ - icon_state = "large" +"gsN" = ( +/obj/structure/closet, +/obj/effect/spawner/random/gun/shotgun/midchance, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"gsU" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"gsX" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"gtf" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, /area/fiorina/station/park) -"gto" = ( -/obj/structure/machinery/vending/coffee, +"gtg" = ( +/obj/structure/barricade/sandbags{ + dir = 4; + icon_state = "sandbag_0"; + pixel_y = 2 + }, +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"gtr" = ( +/obj/structure/bedsheetbin, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/research_cells) "gtH" = ( /obj/structure/safe, /obj/item/storage/beer_pack, @@ -10621,15 +10430,25 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"gtM" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 +"gtN" = ( +/obj/item/storage/beer_pack{ + pixel_y = 10 }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 9; icon_state = "yellow" }, -/area/fiorina/station/disco) +/area/fiorina/station/lowsec) +"gtP" = ( +/obj/item/trash/uscm_mre, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"gtT" = ( +/obj/item/trash/eat, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzI) "guf" = ( /obj/structure/bed/chair{ dir = 4; @@ -10637,34 +10456,88 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"guB" = ( -/obj/item/ammo_magazine/m56d, -/obj/item/ammo_magazine/m56d, +"guv" = ( +/obj/item/packageWrap, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ dir = 4; - icon_state = "cell_stripe" + icon_state = "darkyellow2" }, -/area/fiorina/station/central_ring) -"guG" = ( +/area/fiorina/lz/near_lzI) +"gux" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"guz" = ( /turf/open/floor/prison{ dir = 9; icon_state = "greenfull" }, +/area/fiorina/station/transit_hub) +"guU" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/civres) +"gve" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/servers) +"gvr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/pill_bottle/inaprovaline/skillless, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue_plate" + }, /area/fiorina/station/botany) -"guQ" = ( +"gvz" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, /turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "yellowfull" }, -/area/fiorina/station/power_ring) -"gvT" = ( -/obj/structure/closet/secure_closet/engineering_materials, -/obj/effect/landmark/objective_landmark/medium, +/area/fiorina/station/disco) +"gvZ" = ( +/obj/item/stack/sheet/wood{ + pixel_x = 1; + pixel_y = -3 + }, +/obj/item/stack/sheet/wood, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/tumor/aux_engi) -"gvX" = ( -/obj/structure/closet/secure_closet/security_empty, +/area/fiorina/tumor/servers) +"gwm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/weapon/gun/energy/taser, /turf/open/floor/prison{ icon_state = "redfull" }, @@ -10672,13 +10545,6 @@ "gws" = ( /turf/open/floor/plating, /area/fiorina/oob) -"gwz" = ( -/obj/effect/spawner/random/gun/pistol, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "gwH" = ( /turf/closed/wall/strata_ice/jungle{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -10694,51 +10560,66 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"gwX" = ( -/obj/item/stool, -/obj/item/reagent_container/food/drinks/bottle/bluecuracao{ - pixel_x = 15; - pixel_y = 25 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) "gxj" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/dice/d20, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"gxx" = ( -/obj/item/packageWrap, -/obj/effect/decal/cleanable/blood, +"gxn" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + icon_state = "darkpurplefull2" }, /area/fiorina/lz/near_lzI) -"gxL" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 +"gxQ" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, +/area/fiorina/tumor/aux_engi) +"gxR" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"gyh" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"gyt" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"gyy" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"gxN" = ( -/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"gyi" = ( +/area/fiorina/station/transit_hub) +"gyA" = ( +/obj/structure/machinery/disposal, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/civres) "gyB" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ywflowers_2" @@ -10748,12 +10629,6 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"gyI" = ( -/obj/item/trash/candy, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) "gyJ" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -10762,111 +10637,136 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"gyU" = ( +"gyP" = ( +/obj/item/stack/sheet/wood{ + amount = 10 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/park) -"gyW" = ( -/turf/open/space, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) "gzb" = ( /obj/structure/cable/heavyduty{ icon_state = "1-2" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"gzd" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/medbay) -"gzy" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +"gzh" = ( +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_x = -11; + pixel_y = 13 }, -/area/fiorina/station/telecomm/lz1_cargo) -"gzz" = ( -/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/fiberbush) -"gzA" = ( -/obj/structure/machinery/gibber, -/obj/effect/decal/cleanable/blood{ - pixel_x = 8; - pixel_y = 10 - }, +/area/fiorina/station/power_ring) +"gzu" = ( +/obj/item/clothing/mask/cigarette/bcigarette, /turf/open/floor/prison{ - icon_state = "blue_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/botany) -"gzF" = ( +/area/fiorina/station/research_cells) +"gzN" = ( /obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/corpsespawner/doctor, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) -"gzQ" = ( -/obj/structure/machinery/computer/crew, +/obj/item/toy/handcard/aceofspades, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/medbay) -"gAa" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"gAk" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ +/area/fiorina/station/research_cells) +"gAh" = ( +/obj/structure/prop/structure_lattice{ dir = 4 }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, -/turf/open/space/basic, -/area/fiorina/oob) +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"gAn" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/station/park) "gAA" = ( /obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"gAS" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" +"gAC" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"gAQ" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"gBo" = ( -/obj/structure/closet/emcloset, +"gBe" = ( +/obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/prison{ - dir = 6; + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"gBw" = ( +/obj/item/trash/chunk, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"gBx" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/fiberbush) +"gBN" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 9; icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"gCb" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; - pixel_y = 2 +"gBP" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) +"gBR" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/barricade/handrail/type_b{ + dir = 4; + layer = 3.5 }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"gBY" = ( +/obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "redfull" }, -/area/fiorina/station/disco) +/area/fiorina/station/chapel) "gCn" = ( /obj/structure/surface/table/woodentable, /obj/item/newspaper{ @@ -10890,22 +10790,16 @@ }, /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/civres) -"gCX" = ( -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"gCY" = ( +"gCH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper, /turf/open/floor/prison{ - icon_state = "cell_stripe" - }, -/area/fiorina/station/flight_deck) -"gDt" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/station/medbay) +"gCK" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, @@ -10921,158 +10815,107 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"gDz" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"gDP" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"gEe" = ( -/obj/item/reagent_container/food/drinks/bottle/patron, +"gDI" = ( +/obj/structure/bed/chair/office/dark, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"gEv" = ( -/obj/structure/bed/roller, +/area/fiorina/tumor/ice_lab) +"gEq" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "platingdmg1" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/oob) "gEx" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/botany) -"gEF" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"gET" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/cigarette/cigar/tarbacks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"gEU" = ( -/obj/structure/monorail{ +"gEX" = ( +/obj/structure/stairs/perspective{ dir = 4; - name = "launch track" - }, -/turf/open/space, -/area/fiorina/oob) -"gEW" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" + icon_state = "p_stair_full" }, -/area/fiorina/station/lowsec) -"gFc" = ( -/obj/effect/decal/cleanable/blood/drip, +/obj/structure/platform, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"gFe" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/fiberbush) +/area/fiorina/station/disco) "gFg" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"gFq" = ( +"gFp" = ( +/obj/structure/inflatable/door, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/telecomm/lz1_tram) -"gFG" = ( +/area/fiorina/station/medbay) +"gFN" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "blue" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/station/civres_blue) -"gFK" = ( -/obj/item/stack/cable_coil, +/area/fiorina/station/research_cells) +"gFW" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" + dir = 6; + icon_state = "green" }, -/area/fiorina/tumor/servers) -"gGp" = ( -/obj/item/ammo_casing{ - icon_state = "casing_1" +/area/fiorina/tumor/aux_engi) +"gFZ" = ( +/obj/structure/barricade/wooden{ + dir = 1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"gGc" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/medbay) -"gGu" = ( -/obj/item/stack/rods, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) +/area/fiorina/station/disco) "gGx" = ( /obj/effect/landmark/queen_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"gGB" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"gGG" = ( -/obj/structure/closet/secure_closet/engineering_materials, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"gHh" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/tumor/civres) -"gHb" = ( -/obj/structure/prop/structure_lattice{ - health = 300 +/turf/open/floor/plating/prison, +/area/fiorina/station/research_cells) +"gHn" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 4 }, -/obj/structure/prop/structure_lattice{ - pixel_y = 10 +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/tumor/aux_engi) -"gHc" = ( -/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "bluefull" }, -/area/fiorina/station/research_cells) -"gHh" = ( +/area/fiorina/station/power_ring) +"gHo" = ( /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/research_cells) -"gHl" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/obj/structure/largecrate/random, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/station/telecomm/lz1_tram) "gHy" = ( /obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/plating/prison, @@ -11083,52 +10926,61 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"gHF" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryomid" +"gHC" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/obj/structure/platform{ + dir = 4 }, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"gHP" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 7; +"gIa" = ( +/obj/item/stool, +/obj/item/reagent_container/food/drinks/bottle/bluecuracao{ + pixel_x = 15; + pixel_y = 25 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"gIo" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/cups{ + pixel_x = -3; pixel_y = 6 }, +/obj/item/storage/box/cups, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"gHW" = ( +/area/fiorina/station/power_ring) +"gIs" = ( +/obj/item/reagent_container/food/drinks/bottle/rum, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowcorners2" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/botany) "gIB" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"gIF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +"gID" = ( +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/oob) "gJu" = ( /obj/effect/alien/weeds/node, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"gJG" = ( -/obj/item/stack/folding_barricade, +"gKg" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - dir = 8; - icon_state = "red" + icon_state = "floor_plate" }, /area/fiorina/station/security) "gKi" = ( @@ -11143,43 +10995,20 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"gKt" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/prop/souto_land/streamer{ - pixel_y = 24 - }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"gKu" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "Residential Apartment" +"gKG" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 1; + icon_state = "blue" }, -/area/fiorina/tumor/servers) -"gKA" = ( -/obj/structure/platform_decoration, +/area/fiorina/station/chapel) +"gLk" = ( +/obj/item/stool, /turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"gKL" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/power_ring) "gLu" = ( /turf/closed/shuttle/ert{ icon_state = "stan_leftengine" @@ -11192,64 +11021,54 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"gLG" = ( -/obj/item/paper, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"gMw" = ( -/obj/structure/pipes/standard/tank/oxygen, +"gLK" = ( +/obj/structure/tunnel/maint_tunnel, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"gMJ" = ( -/obj/structure/barricade/deployable{ - dir = 4 + icon_state = "greenblue" }, +/area/fiorina/station/botany) +"gLV" = ( +/obj/item/clothing/head/welding, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/lowsec) -"gMV" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/tumor/civres) +"gNx" = ( +/obj/structure/platform{ + dir = 1 }, /obj/structure/platform{ - dir = 4 + dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/botany) -"gNF" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 +/obj/structure/platform_decoration{ + dir = 5 }, -/obj/structure/machinery/shower{ - dir = 8 +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottomright" }, /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"gNJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/lowsec) -"gNK" = ( -/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"gNW" = ( -/obj/item/bodybag, +/area/fiorina/tumor/servers) +"gNU" = ( +/obj/structure/platform{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/disco) "gNY" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "ppflowers_2" @@ -11259,15 +11078,24 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"gOs" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"gOd" = ( +/obj/item/stack/sheet/wood, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"gOk" = ( +/obj/structure/cargo_container/grant/right{ + density = 0; + desc = "A huge industrial shipping container. You could slip just behind it."; + health = 5000; + layer = 4; + unacidable = 1 }, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/power_ring) "gOJ" = ( /obj/structure/closet/secure_closet/medical2{ req_access_txt = "100" @@ -11278,29 +11106,46 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"gPm" = ( -/obj/item/ammo_casing{ - icon_state = "casing_8" - }, +"gOU" = ( +/obj/item/bodybag, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "yellow" }, /area/fiorina/station/lowsec) +"gPk" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"gPo" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "green" + }, +/area/fiorina/tumor/civres) +"gPp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) "gPs" = ( /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"gPO" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +"gPE" = ( +/obj/structure/platform_decoration{ + dir = 8 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 10; + icon_state = "yellow" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/disco) "gPS" = ( /obj/item/stack/rods, /turf/open/floor/prison/chapel_carpet{ @@ -11308,28 +11153,26 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"gQh" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/device/flashlight/lamp/candelabra{ - layer = 3.2; - pixel_x = 1; - pixel_y = 13 +"gPV" = ( +/obj/item/ammo_casing{ + icon_state = "casing_8" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/chapel) -"gQx" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" + dir = 10; + icon_state = "floor_plate" }, +/area/fiorina/station/telecomm/lz1_cargo) +"gQc" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"gQz" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/chapel) +/area/fiorina/station/medbay) "gQK" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -11340,24 +11183,31 @@ }, /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/servers) -"gRm" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/medical_decals{ - icon_state = "docdecal1" - }, +"gQL" = ( +/obj/structure/surface/rack, +/obj/item/clothing/suit/storage/hazardvest, +/obj/item/clothing/suit/storage/hazardvest, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"gRf" = ( +/obj/structure/machinery/computer/crew, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"gRy" = ( -/obj/item/tool/shovel/etool, +"gRg" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/flight_deck) +"gRA" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) "gRT" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/sign/poster{ @@ -11368,20 +11218,6 @@ /obj/item/device/flashlight/lamp/green, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"gRV" = ( -/obj/structure/machinery/disposal, -/obj/item/tool/kitchen/rollingpin{ - pixel_y = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/station/civres_blue) "gRW" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -11390,7 +11226,9 @@ /obj/structure/bed/chair/comfy, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"gSD" = ( +"gSf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/explosive/grenade/incendiary/molotov, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 @@ -11398,34 +11236,24 @@ /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"gSG" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/prop/souto_land/pole, -/obj/structure/prop/souto_land/pole{ - dir = 4; - pixel_y = 24 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"gSN" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "handblood" +/area/fiorina/station/lowsec) +"gSg" = ( +/obj/structure/platform, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/power_ring) +"gSC" = ( +/obj/item/prop/helmetgarb/gunoil, +/turf/open/floor/prison, +/area/fiorina/maintenance) +"gSK" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/transit_hub) "gSP" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -11435,6 +11263,12 @@ }, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) +"gSX" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/park) "gTc" = ( /obj/item/storage/belt/shotgun/full/quackers, /obj/effect/spawner/gibspawner/human, @@ -11443,49 +11277,57 @@ name = "pool" }, /area/fiorina/station/park) -"gTw" = ( +"gTi" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + icon_state = "blue" }, -/area/fiorina/station/central_ring) -"gUf" = ( +/area/fiorina/station/chapel) +"gTy" = ( +/obj/item/stack/sheet/metal/medium_stack, +/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" + dir = 5; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/lz/near_lzI) +"gTN" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/ice_lab) +"gTW" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/transit_hub) "gUj" = ( /turf/closed/shuttle/ert{ icon_state = "stan3" }, /area/fiorina/tumor/ship) -"gUn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/plate{ - pixel_x = 1; - pixel_y = 3 +"gUu" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) +"gVc" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0"; + pixel_y = 2 }, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"gUx" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"gUH" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med, -/turf/closed/wall/prison, -/area/fiorina/station/medbay) -"gUO" = ( -/obj/item/tool/warning_cone, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, -/area/fiorina/station/park) +/area/fiorina/station/disco) "gVs" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/plating/prison, @@ -11501,34 +11343,15 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"gVA" = ( -/obj/item/frame/rack, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"gVR" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" +"gVT" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" }, -/area/fiorina/maintenance) -"gVX" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "darkpurple2" - }, -/area/fiorina/station/central_ring) -"gWf" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 1 - }, -/obj/item/frame/rack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/station/flight_deck) "gWg" = ( /obj/structure/powerloader_wreckage, /obj/effect/decal/cleanable/blood/gibs/robot/limb, @@ -11546,82 +11369,56 @@ /obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/wood, /area/fiorina/station/disco) -"gWT" = ( -/obj/item/stack/sandbags/large_stack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, -/area/fiorina/tumor/civres) -"gXi" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"gXt" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" +"gXd" = ( +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_y = 21 }, +/turf/open/floor/prison, /area/fiorina/station/chapel) "gXu" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/far, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"gXD" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"gXH" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 - }, -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 2; - layer = 6; - name = "overhead pipe"; - pixel_x = -16; - pixel_y = 12 - }, +"gXF" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkyellow2" }, /area/fiorina/tumor/servers) -"gXL" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +"gXI" = ( +/obj/item/book/manual/atmospipes, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"gYD" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "whitepurple" }, -/area/fiorina/station/lowsec) -"gYA" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +/area/fiorina/station/research_cells) +"gYH" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/item/ammo_magazine/shotgun/beanbag, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + icon_state = "redfull" }, -/area/fiorina/station/botany) +/area/fiorina/station/security) +"gYM" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "gZc" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "4" @@ -11636,66 +11433,83 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"gZE" = ( +"gZg" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"gZT" = ( +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "panelscorched" - }, -/area/fiorina/station/transit_hub) -"haa" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 + icon_state = "bluefull" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"hab" = ( +/area/fiorina/station/power_ring) +"gZx" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/trash/plate{ - pixel_x = 1; +/obj/item/reagent_container/food/drinks/bottle/vodka{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/reagent_container/food/drinks/bottle/vodka{ + pixel_x = 6; pixel_y = 3 }, -/turf/open/floor/prison, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, /area/fiorina/station/power_ring) -"hah" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"gZG" = ( +/obj/item/stack/sheet/metal/medium_stack, +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" }, +/area/fiorina/station/civres_blue) +"gZM" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/research_cells) -"ham" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/area/fiorina/station/park) +"hae" = ( /turf/open/floor/prison{ - dir = 4; + dir = 8; icon_state = "whitegreen" }, /area/fiorina/tumor/ice_lab) +"hao" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + pixel_y = 7 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "hay" = ( /turf/closed/shuttle/ert{ icon_state = "wy_leftengine" }, /area/fiorina/station/medbay) -"haU" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"haJ" = ( +/obj/item/disk, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/effect/decal/cleanable/blood, +/area/fiorina/tumor/servers) +"haQ" = ( +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "greenblue" + icon_state = "darkredfull2" }, -/area/fiorina/station/botany) +/area/fiorina/station/research_cells) +"hbn" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) "hbo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/classic{ @@ -11726,56 +11540,34 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"hbq" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 4 +"hbp" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/obj/structure/platform, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"hbt" = ( +/obj/item/tool/screwdriver, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"hbC" = ( -/obj/structure/monorail{ - name = "launch track" + icon_state = "darkpurplefull2" }, -/turf/open/space, -/area/fiorina/oob) -"hcb" = ( +/area/fiorina/tumor/servers) +"hbH" = ( +/obj/item/stack/sandbags_empty/half, /turf/open/floor/prison{ - dir = 4; - icon_state = "greencorner" - }, -/area/fiorina/tumor/civres) -"hce" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/handcuffs{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = -7; - pixel_y = 1 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = -2; - pixel_y = 11 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "darkyellow2" }, -/turf/open/floor/prison{ - icon_state = "redfull" +/area/fiorina/lz/near_lzI) +"hcs" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, -/area/fiorina/station/security) -"hcf" = ( -/obj/item/paper/carbon, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) "hcv" = ( /obj/item/stack/tile/plasteel{ pixel_x = 12; @@ -11786,40 +11578,88 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) +"hcB" = ( +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + pixel_y = 32 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"hcY" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) "hds" = ( /obj/structure/cable/heavyduty{ icon_state = "1-2-8" }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"hdv" = ( -/obj/item/tool/scythe, -/turf/open/floor/prison{ +"hdA" = ( +/obj/structure/barricade/wooden{ dir = 4; - icon_state = "blue_plate" + pixel_y = 4 }, -/area/fiorina/station/botany) -"heb" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"hdR" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, /area/fiorina/station/disco) -"heu" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" +"hej" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrown2" }, -/obj/item/reagent_container/food/snacks/meat, +/area/fiorina/maintenance) +"hek" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/item/weapon/baton, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + icon_state = "redfull" }, -/area/fiorina/station/botany) +/area/fiorina/station/security) +"heo" = ( +/obj/structure/closet/crate/trashcart, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/chapel) +"heA" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) "heO" = ( /turf/closed/shuttle/elevator, /area/fiorina/station/civres_blue) +"heT" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 6; + icon_state = "greenblue" + }, +/area/fiorina/station/botany) "hfc" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced{ @@ -11838,91 +11678,65 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"hfl" = ( -/obj/item/device/pinpointer, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) "hfT" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/flight_deck) -"hgp" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 4 - }, +"hgc" = ( +/obj/structure/largecrate/supply/medicine/medivend, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/oob) -"hgr" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/medbay) +"hgh" = ( +/obj/item/trash/burger, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"hgu" = ( -/obj/structure/barricade/handrail/type_b{ dir = 4; - layer = 3.5 + icon_state = "greenfull" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"hgz" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, +/area/fiorina/tumor/civres) +"hgA" = ( +/obj/item/ammo_magazine/smg/nailgun, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/maintenance) +"hgD" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ dir = 4; - icon_state = "greenfull" + icon_state = "darkbrowncorners2" }, -/area/fiorina/tumor/civres) -"hgC" = ( +/area/fiorina/tumor/aux_engi) +"hgP" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 10; - icon_state = "green" + dir = 1; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/transit_hub) -"hgJ" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/park) "hgS" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" }, /area/fiorina/tumor/aux_engi) -"hhg" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 6; - pixel_y = 7 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"hhh" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +"hhu" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"hhl" = ( -/obj/item/device/flashlight/flare/on, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"hhD" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/structure/surface/rack, +/obj/item/clothing/gloves/latex, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"hhy" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" + icon_state = "sterile_white" }, -/area/fiorina/station/park) +/area/fiorina/station/medbay) "hhL" = ( /obj/effect/spawner/random/powercell, /obj/structure/disposalpipe/segment{ @@ -11934,71 +11748,55 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"hil" = ( +/obj/structure/surface/rack, +/obj/item/tool/plantspray/pests, +/obj/item/tool/plantspray/weeds, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) "hir" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"hiu" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/station/telecomm/lz1_tram) -"hix" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"hiG" = ( -/obj/item/storage/backpack/souto, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"hiK" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/disco) "hiO" = ( /turf/closed/shuttle/elevator{ dir = 4 }, /area/fiorina/tumor/aux_engi) -"hja" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 +"hiP" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/botany) -"hjb" = ( -/obj/structure/closet/secure_closet/medical2, +/area/fiorina/station/medbay) +"hjp" = ( +/obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"hjr" = ( -/obj/structure/inflatable/popped/door, +/area/fiorina/tumor/ice_lab) +"hjB" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/medbay) +/area/fiorina/station/research_cells) +"hjC" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_half_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) "hjE" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced, @@ -12007,9 +11805,17 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"hjP" = ( +"hjM" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hjR" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/transit_hub) "hjV" = ( /obj/structure/stairs/perspective, /turf/open/floor/plating/prison, @@ -12025,32 +11831,56 @@ }, /turf/open/floor/almayer_hull, /area/fiorina/oob) -"hkW" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"hll" = ( -/obj/item/tool/warning_cone, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"hko" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" }, -/area/fiorina/station/power_ring) -"hln" = ( -/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/park) -"hlq" = ( -/obj/structure/janitorialcart, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"hlK" = ( +/area/fiorina/station/medbay) +"hkA" = ( /turf/open/floor/prison{ icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/flight_deck) +"hkB" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"hkH" = ( +/obj/item/stack/sheet/wood, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"hkM" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/body, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"hlk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/cigarette, +/obj/item/storage/fancy/cigarettes/emeraldgreen{ + pixel_x = -4; + pixel_y = 9 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"hlB" = ( +/obj/item/tool/kitchen/knife, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) "hlT" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -12059,80 +11889,69 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"hmd" = ( -/obj/structure/stairs/perspective{ +"hmq" = ( +/obj/item/device/flashlight, +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"hmE" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ dir = 4; - icon_state = "p_stair_sn_full_cap" + icon_state = "whitegreen" }, -/obj/structure/platform{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"hmS" = ( +/obj/structure/monorail{ + name = "launch track" }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"hmg" = ( -/obj/structure/platform_decoration, +"hnh" = ( +/obj/item/reagent_container/food/drinks/sillycup, /turf/open/floor/prison, -/area/fiorina/station/disco) -"hmj" = ( -/obj/item/storage/firstaid/toxin, +/area/fiorina/station/power_ring) +"hnK" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"hmk" = ( -/turf/open/floor/prison{ - icon_state = "whitegreencorner" - }, -/area/fiorina/tumor/ice_lab) -"hmr" = ( -/obj/structure/bed/sofa/south/grey/right, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) -"hng" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"hnJ" = ( -/obj/item/clothing/under/stowaway, -/obj/structure/machinery/shower{ - pixel_y = 13 +/area/fiorina/station/park) +"hnM" = ( +/obj/item/shard{ + icon_state = "large" }, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/security) "hob" = ( /obj/item/phone{ pixel_y = 7 }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"hor" = ( -/obj/structure/bed/chair{ - dir = 1; - layer = 2.7 +"hoo" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" + }, +/area/fiorina/station/civres_blue) +"hox" = ( +/obj/structure/barricade/handrail{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"hoy" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/central_ring) +"hoC" = ( +/obj/item/trash/popcorn, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) "hoH" = ( /obj/effect/decal/cleanable/cobweb{ desc = "Spun only by the terrifying space widow. Some say that even looking at it will kill you."; @@ -12140,24 +11959,10 @@ }, /turf/open/space, /area/fiorina/oob) -"hoN" = ( -/obj/item/ammo_casing{ - dir = 8; - icon_state = "casing_6" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"hoY" = ( -/obj/structure/surface/rack, -/obj/item/frame/table/almayer, -/obj/item/frame/table/almayer, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) +"hoT" = ( +/obj/effect/landmark/survivor_spawner, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "hoZ" = ( /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) @@ -12168,17 +11973,12 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/security) -"hpr" = ( -/obj/item/device/binoculars/civ, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"hpn" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/aux_engi) "hpz" = ( /obj/structure/ice/thin/indestructible{ dir = 1; @@ -12187,32 +11987,23 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"hpJ" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/filtration/console{ - can_block_movement = 0; - pixel_y = 22 - }, -/obj/item/trash/used_stasis_bag, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"hpN" = ( -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_x = 2; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "hpW" = ( /obj/item/stack/cable_coil/orange, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) +"hpX" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"hqb" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) "hqc" = ( /obj/structure/bed/chair/wood/normal, /turf/open/floor/carpet, @@ -12223,73 +12014,132 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"hqF" = ( -/obj/structure/prop/souto_land/pole{ +"hqG" = ( +/obj/structure/platform{ dir = 1 }, -/obj/structure/prop/souto_land/pole{ - dir = 8; - pixel_y = 24 +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 9; + icon_state = "whitegreen" }, -/area/fiorina/station/park) -"hqZ" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/adv, -/obj/item/storage/firstaid/toxin, +/area/fiorina/tumor/ice_lab) +"hqO" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/medbay) -"hrg" = ( -/obj/structure/barricade/handrail{ - dir = 4 +/area/fiorina/lz/near_lzII) +"hqX" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"hre" = ( +/obj/structure/platform_decoration{ + dir = 4 }, +/obj/item/device/flashlight, +/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) +"hrl" = ( +/obj/structure/bed/sofa/vert/grey, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) "hro" = ( /obj/structure/girder, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"hrX" = ( -/obj/structure/largecrate/random/case/double, +"hrw" = ( /turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 4; + icon_state = "darkpurple2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/tumor/servers) +"hrz" = ( +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_x = 2; + pixel_y = 21 + }, +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_x = 2; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"hrA" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) +"hrB" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/prison, +/area/fiorina/station/security) +"hrL" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/lowsec) "hsc" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"hsd" = ( -/obj/item/device/flashlight/flare, +"hsf" = ( +/obj/structure/bed/chair{ + dir = 8 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/telecomm/lz1_cargo) -"hss" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/park) +"hsl" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"hsz" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "p_stair_full" + pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"hsA" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/disco) "hsC" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/southleft, @@ -12308,41 +12158,92 @@ }, /turf/open/floor/prison/chapel_carpet, /area/fiorina/maintenance) -"htc" = ( -/obj/item/tool/wrench, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +"htq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "htt" = ( /turf/closed/shuttle/ert, /area/fiorina/station/power_ring) -"htL" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clipboard, +"htD" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"htO" = ( +/obj/item/ammo_casing{ + dir = 8; + icon_state = "casing_6" + }, +/obj/structure/barricade/metal{ + dir = 8; + health = 150; + icon_state = "metal_2" + }, +/obj/effect/spawner/random/gun/smg, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"htT" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" }, /area/fiorina/station/power_ring) -"hue" = ( -/obj/effect/decal/cleanable/blood, +"htX" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "green" + }, +/area/fiorina/station/chapel) +"hub" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, /turf/open/floor/prison{ dir = 1; - icon_state = "darkbrowncorners2" + icon_state = "darkbrown2" }, /area/fiorina/station/park) "hul" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) +"huB" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) "huD" = ( /obj/item/tool/crowbar, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"huI" = ( -/obj/structure/reagent_dispensers/water_cooler, +"huG" = ( +/obj/item/tool/wirecutters, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/lowsec) +"huJ" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/lowsec) "hva" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -12361,99 +12262,74 @@ icon_state = "plate" }, /area/fiorina/station/civres_blue) -"hvh" = ( -/obj/item/stack/tile/plasteel{ - pixel_x = 3; - pixel_y = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"hvi" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, +"hvp" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"hvE" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/structure/machinery/light/double/blue{ dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "whitegreen" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/ice_lab) "hvF" = ( /obj/structure/grille, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"hvG" = ( -/obj/item/weapon/gun/rifle/m16, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison, -/area/fiorina/station/security) -"hwn" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +"hvL" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"hwE" = ( -/obj/structure/tunnel/maint_tunnel, +"hwr" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 7; + pixel_y = 6 + }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 8; + icon_state = "blue" }, -/area/fiorina/tumor/servers) -"hxg" = ( +/area/fiorina/station/chapel) +"hwN" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 4; + icon_state = "yellow" }, -/area/fiorina/maintenance) -"hxi" = ( -/obj/item/roller, -/turf/open/floor/prison, /area/fiorina/station/lowsec) -"hxk" = ( -/obj/structure/platform{ - dir = 4 +"hwS" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/security/wardens) +"hxj" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) "hxq" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_cargo) -"hxy" = ( -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"hxC" = ( -/turf/open/floor/prison{ - icon_state = "darkbrowncorners2" +"hxG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/area/fiorina/tumor/aux_engi) +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/turf/open/space/basic, +/area/fiorina/oob) "hxJ" = ( /obj/structure/sign/poster{ icon_state = "poster12"; @@ -12470,57 +12346,71 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"hxU" = ( -/obj/item/shard{ - icon_state = "medium" - }, +"hyc" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrowncorners2" + }, +/area/fiorina/maintenance) +"hyo" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/station/chapel) -"hyz" = ( /turf/open/floor/prison{ - icon_state = "platingdmg1" + icon_state = "sterile_white" }, /area/fiorina/station/civres_blue) -"hyG" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/item/clothing/gloves/botanic_leather, +"hyq" = ( +/obj/structure/closet/crate/medical, +/obj/item/tool/surgery/bonegel, +/obj/item/tool/surgery/bonegel, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"hyR" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) +/area/fiorina/station/medbay) +"hys" = ( +/obj/structure/grille, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) "hyT" = ( /turf/closed/shuttle/ert{ icon_state = "stan_leftengine" }, /area/fiorina/tumor/aux_engi) -"hyX" = ( -/obj/structure/barricade/wooden{ - dir = 4 +"hzi" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/processor{ + desc = "It CAN blend it."; + icon_state = "blender_e"; + name = "Blendomatic"; + pixel_x = -2; + pixel_y = 10 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "kitchen" }, /area/fiorina/station/civres_blue) -"hzq" = ( -/obj/item/storage/fancy/cigarettes/lucky_strikes, -/obj/structure/surface/table/reinforced/prison, +"hzv" = ( +/obj/structure/window/framed/prison, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) +"hzF" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "hzG" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8; @@ -12530,46 +12420,65 @@ icon_state = "wy4" }, /area/fiorina/station/medbay) -"hAp" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 2; - layer = 6; - name = "overhead pipe"; - pixel_x = -16; - pixel_y = 12 - }, +"hzL" = ( +/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" + icon_state = "darkbrowncorners2" }, -/area/fiorina/tumor/servers) -"hAL" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/area/fiorina/tumor/aux_engi) +"hAs" = ( +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = -9; + pixel_y = 8 + }, +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 11; + pixel_y = 8 + }, +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 1; + pixel_y = 8 }, -/obj/item/weapon/gun/smg/mp5, -/obj/item/storage/belt/marine, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"hAI" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/security) -"hAY" = ( -/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) -"hBn" = ( -/obj/item/device/flashlight/lamp/tripod, +"hAP" = ( +/obj/item/clothing/under/stowaway, +/obj/structure/machinery/shower{ + pixel_y = 13 + }, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" + icon_state = "kitchen" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/lowsec) +"hAX" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/ice_lab) +"hBc" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"hBf" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) "hBF" = ( /obj/structure/window_frame/prison/reinforced, /obj/item/stack/sheet/glass/reinforced{ @@ -12577,127 +12486,116 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"hBI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/megaphone, +"hCc" = ( +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/park) +"hCh" = ( +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"hCk" = ( +/obj/item/poster, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"hBP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/phone{ - pixel_x = 7; - pixel_y = -16 + icon_state = "floor_plate" }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 16 +/area/fiorina/station/security) +"hCp" = ( +/obj/structure/prop/invuln{ + desc = "Floating cells are reserved for highly dangerous criminals. Whoever is out there is probably best left out there."; + icon = 'icons/obj/structures/doors/celldoor.dmi'; + icon_state = "door_closed"; + layer = 2.5; + name = "cell door" }, +/obj/structure/blocker/invisible_wall, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"hBX" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/area/fiorina/tumor/servers) +"hCR" = ( +/obj/item/stack/sheet/wood, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"hDb" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "kitchen" }, -/area/fiorina/station/medbay) -"hCc" = ( -/obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/park) -"hCd" = ( -/obj/structure/barricade/metal/wired, +/area/fiorina/station/civres_blue) +"hDl" = ( +/obj/structure/machinery/photocopier, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) -"hCS" = ( +/area/fiorina/station/medbay) +"hDm" = ( +/obj/item/trash/burger, /obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/chapel) -"hCT" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/ice_lab) +"hDS" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/tumor/civres) -"hCX" = ( -/obj/effect/landmark/wo_supplies/storage/belts/knifebelt, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"hDq" = ( -/obj/effect/landmark/corpsespawner/engineer, -/obj/effect/decal/cleanable/blood, -/turf/open/auto_turf/sand/layer1, -/area/fiorina/tumor/civres) -"hDr" = ( -/obj/item/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/station/lowsec) -"hDx" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"hDy" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" +/area/fiorina/station/power_ring) +"hDV" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" }, -/area/fiorina/station/medbay) -"hDL" = ( +/obj/item/stack/cable_coil/blue, /turf/open/floor/prison{ dir = 10; - icon_state = "darkyellow2" + icon_state = "sterile_white" }, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/station/medbay) "hEb" = ( /turf/closed/shuttle/ert{ icon_state = "wy20" }, /area/fiorina/station/medbay) +"hEk" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) "hEs" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/fiorina/station/research_cells) -"hFe" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.4 - }, -/obj/structure/barricade/handrail/type_b{ - dir = 8 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +"hEv" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/fiorina/tumor/ice_lab) -"hFn" = ( -/obj/structure/inflatable/popped/door, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"hEZ" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + icon_state = "platingdmg3" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/security) +"hFC" = ( +/obj/item/disk, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) "hFH" = ( /obj/item/gift, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -12706,34 +12604,49 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"hGz" = ( -/obj/item/clothing/gloves/botanic_leather, +"hFW" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/station/botany) -"hGC" = ( -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/research_cells) +"hGg" = ( +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + pixel_x = -24 }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) +"hGn" = ( +/obj/structure/bed/sofa/vert/grey/bot, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"hGu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/vials/random, /turf/open/floor/prison{ dir = 10; - icon_state = "greenblue" + icon_state = "whitegreenfull" }, -/area/fiorina/station/botany) -"hGP" = ( -/obj/structure/platform_decoration/kutjevo, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) -"hGZ" = ( -/obj/item/stack/cable_coil, +/area/fiorina/station/medbay) +"hGy" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"hGW" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/telecomm/lz1_cargo) "hHc" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -12748,145 +12661,98 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"hHh" = ( -/obj/structure/machinery/landinglight/ds1/delayone, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) "hHq" = ( /obj/structure/closet/cabinet, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"hHv" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"hIe" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"hIo" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +"hHr" = ( +/obj/item/tool/warning_cone, /turf/open/floor/prison{ - dir = 1; + dir = 8; icon_state = "darkbrown2" }, -/area/fiorina/tumor/aux_engi) -"hIu" = ( +/area/fiorina/station/park) +"hHC" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 4; + pixel_y = 24 + }, /obj/structure/bed/chair{ - dir = 8 + dir = 1 }, +/obj/effect/landmark/corpsespawner/security/liaison, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"hIR" = ( -/obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" + dir = 4; + icon_state = "darkbrown2" }, -/area/fiorina/station/civres_blue) -"hJc" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/area/fiorina/station/park) +"hHH" = ( +/obj/effect/decal/cleanable/blood{ + desc = "Watch your step."; + icon_state = "gib6" }, -/area/fiorina/tumor/aux_engi) -"hJw" = ( -/turf/open/floor/prison{ +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"hHX" = ( +/obj/structure/toilet{ dir = 4; - icon_state = "bluecorner" + pixel_y = 8 }, -/area/fiorina/station/civres_blue) -"hKE" = ( -/obj/structure/inflatable, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 10; + dir = 9; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"hKI" = ( -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"hKJ" = ( -/obj/structure/closet/emcloset, -/obj/item/storage/pill_bottle/kelotane/skillless, +"hIO" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"hKW" = ( -/obj/structure/closet/crate/science{ - density = 0; - icon_state = "open_science"; - opened = 1 +/area/fiorina/station/medbay) +"hIX" = ( +/obj/structure/machinery/power/apc{ + dir = 1 }, -/obj/item/organ/lungs, -/obj/structure/machinery/light/double/blue{ +/turf/open/floor/prison{ dir = 1; - pixel_y = 21 + icon_state = "green" }, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"hLt" = ( -/obj/structure/machinery/photocopier, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/area/fiorina/station/chapel) +"hJo" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 }, +/obj/item/reagent_container/food/drinks/flask/barflask, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/tumor/civres) -"hLy" = ( -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/research_cells) +"hKN" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "sterile_white" }, -/area/fiorina/lz/near_lzII) -"hLz" = ( -/turf/closed/wall/prison, -/area/fiorina/lz/near_lzII) -"hLK" = ( -/obj/structure/machinery/landinglight/ds2{ - dir = 8 +/area/fiorina/station/civres_blue) +"hKP" = ( +/obj/structure/platform{ + dir = 4 }, +/obj/item/tool/shovel/spade, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/botany) +"hLz" = ( +/turf/closed/wall/prison, /area/fiorina/lz/near_lzII) "hLM" = ( /obj/structure/sign/safety/bulkhead_door, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/fiberbush) -"hLO" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"hLX" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) "hMf" = ( /obj/item/tool/candle{ pixel_x = -2; @@ -12894,63 +12760,54 @@ }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"hMg" = ( -/obj/item/clothing/head/helmet/marine/specialist/hefa, -/turf/open/floor/prison, -/area/fiorina/station/park) -"hMK" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "pizzatime" +"hMj" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/power_ring) -"hMX" = ( -/obj/item/weapon/twohanded/spear, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"hMA" = ( +/obj/item/tool/crowbar, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreen" }, -/area/fiorina/station/research_cells) -"hNc" = ( +/area/fiorina/station/medbay) +"hMH" = ( /obj/item/newspaper, /turf/open/floor/prison{ dir = 4; icon_state = "red" }, /area/fiorina/lz/near_lzII) -"hNi" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"hMK" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "pizzatime" }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottomright" +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/power_ring) +"hNj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/cups, +/obj/item/storage/fancy/cigarettes/arcturian_ace{ + pixel_x = -6; + pixel_y = 20 + }, +/obj/item/storage/fancy/cigarettes/arcturian_ace{ + pixel_x = 6; + pixel_y = 20 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/power_ring) +"hNU" = ( +/obj/structure/janitorialcart, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "hNY" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"hOg" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"hOz" = ( -/obj/item/clothing/accessory/armband/cargo{ - desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; - name = "HEFA Order milita armband" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, -/area/fiorina/station/chapel) "hOA" = ( /obj/structure/sink{ dir = 8; @@ -12958,51 +12815,65 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"hOR" = ( -/obj/structure/platform{ - dir = 8 - }, +"hOG" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"hOQ" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/station/park) -"hOW" = ( /turf/open/floor/prison{ - icon_state = "floorscorched2" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"hPs" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +/area/fiorina/station/central_ring) +"hPi" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) +"hPq" = ( +/obj/structure/machinery/power/apc, /turf/open/floor/prison{ - icon_state = "yellow" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/station/lowsec) -"hPF" = ( -/obj/structure/reagent_dispensers/water_cooler{ - density = 0; - pixel_x = -8; - pixel_y = 16 +/area/fiorina/station/botany) +"hPu" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" }, +/area/fiorina/station/power_ring) +"hPL" = ( +/obj/item/tool/wrench, +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"hPN" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"hPW" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/security) +"hPO" = ( +/obj/effect/spawner/random/gun/rifle/highchance, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/lz/near_lzI) "hPY" = ( /obj/structure/surface/rack, /turf/open/floor/wood, /area/fiorina/station/chapel) -"hQg" = ( -/obj/item/bedsheet, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/lowsec) "hQh" = ( /obj/structure/barricade/handrail/type_b{ dir = 8; @@ -13010,70 +12881,123 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"hQH" = ( -/obj/structure/closet/crate, +"hQj" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hQk" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 + }, /turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) +/area/fiorina/oob) +"hQM" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"hQQ" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"hQR" = ( +/obj/structure/barricade/metal/wired{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"hQT" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/obj/item/stack/barbed_wire, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"hRb" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) "hRs" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"hRV" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "hRX" = ( /turf/open/gm/river{ color = "#995555"; name = "pool" }, /area/fiorina/station/park) -"hSf" = ( -/obj/item/dogtag, +"hSk" = ( +/obj/structure/toilet, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "sterile_white" }, /area/fiorina/station/civres_blue) -"hSF" = ( -/obj/structure/surface/table/reinforced/prison, +"hSl" = ( +/obj/structure/platform, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/disco) +"hSo" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/obj/item/tool/crowbar/red, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) +"hSA" = ( +/obj/item/reagent_container/food/drinks/bottle/tomatojuice, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"hSG" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/tumor/fiberbush) "hSH" = ( /obj/item/reagent_container/food/snacks/donkpocket, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"hSL" = ( -/obj/effect/decal/hefa_cult_decals/d32{ - icon_state = "2" - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"hSR" = ( -/obj/structure/window/reinforced, -/turf/open/floor/prison, -/area/fiorina/station/security) -"hTc" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, +"hSO" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/station/central_ring) +/area/fiorina/lz/near_lzI) "hTf" = ( /obj/structure/prop/structure_lattice{ dir = 4; @@ -13085,86 +13009,85 @@ icon_state = "squares" }, /area/fiorina/station/telecomm/lz1_cargo) -"hTm" = ( -/obj/structure/machinery/landinglight/ds2{ - dir = 4 +"hTh" = ( +/obj/structure/machinery/landinglight/ds1/delaytwo{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/lz/near_lzII) -"hTr" = ( -/obj/structure/closet, -/obj/effect/spawner/random/gun/shotgun/midchance, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) +/area/fiorina/lz/near_lzI) +"hTo" = ( +/obj/item/smallDelivery, +/obj/structure/closet/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "hTs" = ( /turf/closed/shuttle/elevator{ dir = 10 }, /area/fiorina/station/civres_blue) -"hTt" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/ice_lab) -"hTG" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" +"hTy" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/central_ring) "hTM" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"hUf" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"hUh" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" +"hTN" = ( +/obj/structure/platform_decoration/kutjevo, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/area/fiorina/tumor/ice_lab) +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/fiorina/oob) "hUi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"hUH" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/structure/window/reinforced{ - dir = 8 +"hUj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"hUD" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greencorner" + }, +/area/fiorina/station/chapel) +"hUL" = ( +/obj/structure/sink{ + pixel_y = 23 + }, +/obj/item/paper_bin{ + pixel_x = -11; + pixel_y = -5 }, -/obj/item/storage/box/flashbangs, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "hUO" = ( /turf/open/floor/prison/chapel_carpet{ dir = 1; icon_state = "doubleside" }, /area/fiorina/maintenance) -"hUV" = ( -/obj/item/clothing/head/helmet/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"hVm" = ( -/obj/item/trash/cigbutt/bcigbutt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/security) "hVu" = ( /obj/item/stack/sheet/metal, /obj/structure/cable/heavyduty{ @@ -13172,15 +13095,13 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"hVz" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" - }, -/obj/item/reagent_container/food/snacks/meat, +"hVA" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/station/security) +/area/fiorina/station/research_cells) "hVG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -13192,205 +13113,270 @@ /turf/closed/wall/prison, /area/fiorina/station/medbay) "hVS" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "lavendergrass_4" +/obj/structure/platform_decoration/kutjevo, +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"hWb" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/turf/open/floor/prison{ + icon_state = "darkredfull2" }, -/area/fiorina/station/central_ring) -"hWB" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/security) +"hWi" = ( +/obj/structure/machinery/door/airlock/almayer/maint/autoname{ + dir = 1; + name = "\improper Null Hatch REPLACE ME"; + req_access = null; + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"hWk" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/random/gun/rifle/lowchance, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 9; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/lz/near_lzI) +"hWv" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar/red, +/obj/item/storage/pill_bottle/inaprovaline/skillless, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"hWz" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/botany) "hWF" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"hWJ" = ( -/obj/item/trash/sosjerky, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" +"hWG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio{ + pixel_y = 8 }, -/area/fiorina/station/flight_deck) -"hWU" = ( -/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"hXc" = ( +/area/fiorina/station/power_ring) +"hXF" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_y = 7 - }, +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"hXi" = ( -/obj/structure/surface/rack, +"hXG" = ( +/obj/structure/barricade/metal/wired{ + dir = 1 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "darkyellow2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/lz/near_lzI) +"hXN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/weapon/gun/pistol/heavy, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"hXX" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) "hXZ" = ( /turf/closed/shuttle/ert{ icon_state = "wy2" }, /area/fiorina/station/medbay) -"hYK" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"hYT" = ( -/obj/item/disk/botany, +"hYl" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/botany) -"hYV" = ( -/obj/structure/prop/resin_prop{ - dir = 4; - icon_state = "chair"; - pixel_y = 6 +/area/fiorina/station/medbay) +"hYs" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + layer = 2.97; + pixel_y = -14 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"hYx" = ( +/obj/item/tool/wet_sign, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = -1 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"hYX" = ( +/obj/structure/machinery/bot/medbot, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"hZp" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/medbay) +"hZf" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"hZi" = ( +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_tram) +"hZG" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "p_stair_sn_full_cap" + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "bluefull" }, -/area/fiorina/station/chapel) +/area/fiorina/station/power_ring) +"hZN" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrowncorners2" + }, +/area/fiorina/maintenance) "hZR" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"iah" = ( -/obj/item/ammo_casing{ - dir = 8; - icon_state = "cartridge_2" - }, +"iaa" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "darkyellow2" + icon_state = "cell_stripe" }, -/area/fiorina/station/flight_deck) -"iaO" = ( +/area/fiorina/station/disco) +"iad" = ( +/obj/item/device/multitool, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + dir = 9; + icon_state = "green" }, -/area/fiorina/tumor/servers) -"ibb" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" +/area/fiorina/tumor/civres) +"iaE" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/station/civres_blue) -"ibN" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "yellowcorner" - }, -/area/fiorina/station/lowsec) -"icj" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottom" + icon_state = "floor_plate" }, +/area/fiorina/tumor/aux_engi) +"ibl" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"ick" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" +/area/fiorina/lz/near_lzI) +"ibz" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/central_ring) -"icK" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gibmid3" +/turf/open/floor/prison, +/area/fiorina/station/security) +"ibA" = ( +/obj/structure/barricade/metal/wired{ + health = 120; + icon_state = "metal_2" }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"icg" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "whitegreen" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/ice_lab) +"icu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/pizzabox/mushroom, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "icS" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor/wood, /area/fiorina/station/park) +"icT" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"idb" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/chapel) "idi" = ( /obj/item/trash/sosjerky, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"idq" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"idE" = ( -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"idO" = ( -/obj/structure/tunnel/maint_tunnel, +"idj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/briefcase/inflatable, /turf/open/floor/prison{ - dir = 10; - icon_state = "greenblue" + icon_state = "yellowfull" }, -/area/fiorina/station/botany) -"idT" = ( -/obj/structure/barricade/wooden{ - dir = 4; - pixel_y = 4 +/area/fiorina/station/lowsec) +"idP" = ( +/obj/structure/platform{ + dir = 1 }, -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "whitegreen" + pixel_y = 21 }, -/area/fiorina/station/medbay) -"idV" = ( -/obj/structure/largecrate/random/secure, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"ied" = ( +"idS" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"iea" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "blue" + dir = 1; + icon_state = "whitegreencorner" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) "ieu" = ( /obj/structure/platform{ dir = 4 @@ -13407,21 +13393,23 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"ieU" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, +"ieA" = ( +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"ieW" = ( -/obj/structure/machinery/computer3/server/rack, -/obj/structure/barricade/handrail/type_b{ - dir = 4 +/area/fiorina/lz/near_lzI) +"ieJ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) +/area/fiorina/tumor/fiberbush) +"ifc" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/tumor/civres) "ifk" = ( /obj/structure/platform_decoration{ dir = 4 @@ -13430,6 +13418,11 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) +"ifm" = ( +/turf/open/floor/prison{ + icon_state = "greencorner" + }, +/area/fiorina/tumor/civres) "ifp" = ( /obj/structure/surface/table/woodentable, /obj/structure/machinery/light/double/blue{ @@ -13440,24 +13433,10 @@ /obj/item/tool/wrench, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"ifq" = ( -/obj/item/stock_parts/micro_laser/ultra, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"ifs" = ( -/obj/structure/inflatable/popped, +"ifw" = ( +/obj/structure/bed/chair/comfy, /turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"ifI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/surgery/surgicaldrill, -/turf/open/floor/prison{ - icon_state = "yellowcorner" - }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/servers) "ifJ" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -13469,19 +13448,58 @@ }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"igA" = ( -/obj/effect/spawner/random/gun/smg, +"ifL" = ( +/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison{ - dir = 8; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"igD" = ( -/obj/structure/largecrate/supply/medicine/iv, +/area/fiorina/tumor/servers) +"ifN" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/lz/near_lzI) +"ifP" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) +"igc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/powercell, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"ign" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzI) +"igu" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenblue" + }, +/area/fiorina/station/botany) "igQ" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/rank/janitor, @@ -13489,188 +13507,217 @@ /obj/item/clothing/head/bio_hood/janitor, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"iht" = ( +"igV" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ihn" = ( +/obj/item/paper/crumpled, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/tumor/civres) +"ihp" = ( +/obj/structure/closet/crate/science{ + density = 0; + icon_state = "open_science"; + opened = 1 + }, +/obj/item/organ/lungs, /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + dir = 1; + pixel_y = 21 }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"ihv" = ( +/obj/item/stock_parts/matter_bin/super, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkpurple2" }, -/area/fiorina/station/civres_blue) +/area/fiorina/tumor/servers) "ihz" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"ihA" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/tool, +"ihB" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/power_ring) -"ihC" = ( -/obj/item/tool/wrench, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"iif" = ( -/obj/structure/bed/sofa/south/grey/left, +/area/fiorina/station/security) +"ihO" = ( +/obj/structure/machinery/computer/prisoner, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security/wardens) -"iin" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger{ - pixel_y = 4 + icon_state = "redfull" }, +/area/fiorina/station/security) +"ihV" = ( +/obj/structure/blocker/invisible_wall, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/station/security) -"iir" = ( -/obj/item/ammo_magazine/shotgun/buckshot, +/area/fiorina/oob) +"iie" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv, +/obj/item/storage/firstaid/adv, +/obj/item/storage/firstaid/toxin, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) -"iiE" = ( -/obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/medbay) +"iiw" = ( +/obj/structure/monorail{ + dir = 6; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"iiz" = ( +/obj/structure/machinery/gibber, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 8; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"iiY" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/station/research_cells) -"iiP" = ( -/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/central_ring) +"ijd" = ( +/obj/item/trash/cigbutt, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "ijs" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"ijv" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"ijP" = ( -/obj/effect/decal/cleanable/blood/oil, +"ijt" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" + dir = 10; + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) -"ikq" = ( +/area/fiorina/station/park) +"ijC" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/research_cells) -"ikz" = ( +/area/fiorina/lz/near_lzI) +"ika" = ( /obj/structure/bed{ icon_state = "abed" }, -/obj/item/toy/beach_ball/holoball, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"ikA" = ( -/obj/item/reagent_container/food/drinks/coffee{ - name = "\improper paper cup" - }, +"ikt" = ( +/obj/structure/closet/bodybag, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "whitegreen" }, -/area/fiorina/station/lowsec) -"ilb" = ( -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" +/area/fiorina/station/medbay) +"ikF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + layer = 3.1; + pixel_x = -2; + pixel_y = 10 }, -/area/fiorina/station/park) -"ilh" = ( -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/head/helmet/marine/veteran/ua_riot, /turf/open/floor/prison, -/area/fiorina/station/security) -"ilv" = ( -/obj/item/ammo_magazine/smg/mp5, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" +/area/fiorina/lz/near_lzII) +"ikL" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"ilr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"ilI" = ( /obj/structure/machinery/light/double/blue{ - pixel_y = -1 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "blue_plate" + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ilM" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/botany) -"ilX" = ( -/obj/item/stack/folding_barricade, -/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + dir = 8; + icon_state = "blue" }, /area/fiorina/station/chapel) -"imn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/close, +"img" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"imp" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 }, -/area/fiorina/station/telecomm/lz1_tram) -"imt" = ( -/turf/open/floor/almayer, -/area/fiorina/tumor/ship) -"imw" = ( -/obj/structure/bed/roller, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "blue" }, -/area/fiorina/station/medbay) +/area/fiorina/station/civres_blue) +"imt" = ( +/turf/open/floor/almayer, +/area/fiorina/tumor/ship) "imz" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/corsat{ icon_state = "squares" }, /area/fiorina/station/civres_blue) -"imH" = ( -/obj/item/tool/shovel/etool, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"imL" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/arcturian_ace{ - pixel_x = -4; - pixel_y = 9 - }, +"imG" = ( +/obj/item/trash/chunk, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"inh" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"imI" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"imN" = ( +/obj/structure/filingcabinet/disk, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"ing" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/tumor/aux_engi) "inA" = ( /obj/structure/surface/table/reinforced/prison{ flipped = 1 @@ -13678,25 +13725,63 @@ /obj/item/device/cassette_tape/hiphop, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"ioG" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "brflowers_1" +"inO" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/area/fiorina/tumor/aux_engi) +"ioc" = ( +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/lowsec) +"iox" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) +"ioE" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) "ioM" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/medbay) -"ioP" = ( -/obj/structure/bed/sofa/south/grey/left, +"ioS" = ( +/obj/item/storage/briefcase, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/medbay) +"ioV" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) +"ioW" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "ipa" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2; @@ -13709,22 +13794,37 @@ /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/botany) -"ipy" = ( -/obj/effect/alien/weeds/node, +"ipz" = ( +/obj/item/device/flashlight, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"ipA" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"ipM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/pistol/heavy{ + pixel_y = 7 + }, +/obj/item/ammo_magazine/pistol/heavy{ + pixel_y = 12 }, -/area/fiorina/tumor/servers) -"ipJ" = ( -/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) -"iqt" = ( -/obj/item/fuelCell, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/medbay) +"ipV" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "iqB" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/clothing/head/helmet/warden{ @@ -13734,35 +13834,6 @@ /obj/structure/machinery/computer/objective, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"iqR" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"iqV" = ( -/obj/item/clothing/mask/cigarette/bcigarette, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"irx" = ( -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"iry" = ( -/obj/structure/janitorialcart, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) "irB" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station/park) @@ -13773,113 +13844,37 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"irK" = ( -/obj/effect/spawner/random/gun/rifle/lowchance, +"irE" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5" + }, /turf/open/floor/prison{ - dir = 8; + dir = 4; icon_state = "darkyellow2" }, /area/fiorina/station/flight_deck) -"isi" = ( -/obj/item/tool/soap, -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 - }, -/obj/structure/machinery/shower{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/research_cells) -"isl" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"isB" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"isJ" = ( -/obj/structure/surface/rack, -/obj/item/key, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"isK" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"isL" = ( +"irQ" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 + dir = 1; + pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"isP" = ( -/obj/item/trash/snack_bowl, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/civres_blue) "itd" = ( /obj/item/tool/lighter/random, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) -"iti" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gib2" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"itq" = ( -/obj/structure/machinery/reagentgrinder/industrial{ - pixel_y = 10 - }, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/power_ring) -"itt" = ( -/obj/item/frame/rack, -/obj/item/stack/medical/bruise_pack, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) "itv" = ( /obj/item/toy/handcard/uno_reverse_yellow, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"itC" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +"itK" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + icon_state = "platingdmg3" }, -/area/fiorina/station/park) +/area/fiorina/maintenance) "itN" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/park) @@ -13890,30 +13885,25 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"iuw" = ( -/obj/item/reagent_container/food/drinks/cans/souto/cherry, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"iuV" = ( -/obj/structure/curtain, +"iuz" = ( +/obj/vehicle/train/cargo/trolley, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"iuC" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"iuW" = ( -/obj/structure/prop/almayer/computers/sensor_computer1{ - name = "computer" + icon_state = "yellowfull" }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/lowsec) +"iuN" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.5 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 1; + icon_state = "blue" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/tumor/servers) "iuZ" = ( /obj/item/stack/rods, /obj/structure/machinery/light/double/blue{ @@ -13926,6 +13916,18 @@ /obj/effect/spawner/gibspawner/human, /turf/open/space/basic, /area/fiorina/oob) +"ivr" = ( +/turf/open/floor/prison{ + icon_state = "cell_stripe" + }, +/area/fiorina/station/power_ring) +"ivw" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "ivz" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -13934,54 +13936,47 @@ /obj/effect/landmark/corpsespawner/prison_security, /turf/open/floor/wood, /area/fiorina/station/park) -"ivB" = ( -/obj/structure/surface/rack, -/obj/item/storage/pouch/tools/full, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"ivL" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"ivD" = ( +/obj/item/tool/weldingtool{ + pixel_x = 6; + pixel_y = -2 }, -/area/fiorina/station/transit_hub) -"ivM" = ( -/obj/structure/bed/chair, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"ivR" = ( -/obj/structure/machinery/optable{ - desc = "This maybe could be used for advanced medical procedures."; - name = "Exam Table" - }, -/obj/item/bedsheet/ce{ - desc = "It crinkles, aggressively."; - name = "sterile wax sheet" - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +/area/fiorina/tumor/servers) +"ivK" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) +/area/fiorina/maintenance) +"ivN" = ( +/obj/structure/window/reinforced, +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/attachment, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "iwf" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) -"iwK" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" +"iwi" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/prison{ + icon_state = "bluefull" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/research_cells) +/area/fiorina/station/power_ring) +"iwu" = ( +/obj/item/newspaper, +/turf/open/floor/prison, +/area/fiorina/station/security) +"iwy" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) "iwT" = ( /obj/structure/ice/thin/indestructible{ dir = 4; @@ -13994,16 +13989,33 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"ixb" = ( -/obj/item/ammo_casing{ - dir = 8; - icon_state = "cartridge_2" +"iwZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "Residential Archives" }, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/tumor/civres) +"ixl" = ( +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"ixn" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"ixK" = ( +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/fiorina/station/botany) "iyc" = ( /obj/item/stack/rods/plasteel, /turf/open/auto_turf/sand/layer1, @@ -14012,25 +14024,30 @@ /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"iyq" = ( -/obj/structure/platform_decoration{ - dir = 4 +"iyk" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/prop/souto_land/pole, +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 24 }, /turf/open/floor/prison{ dir = 8; - icon_state = "cell_stripe" + icon_state = "darkbrown2" }, /area/fiorina/station/park) -"iyu" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"iys" = ( +/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + icon_state = "kitchen" }, -/area/fiorina/station/botany) +/area/fiorina/station/power_ring) "iyS" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -14042,55 +14059,76 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"izJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/space_heater{ - pixel_x = -1; - pixel_y = 9 +"iyY" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/clothing/accessory/armband/cargo{ + desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; + name = "HEFA Order milita armband" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "blue" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/power_ring) -"izP" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalleft" +/area/fiorina/station/chapel) +"izh" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "cell_stripe" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) +"izN" = ( +/obj/structure/machinery/computer/secure_data, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) "izZ" = ( /turf/closed/wall/prison, /area/fiorina/station/disco) +"iAq" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/civres_blue) +"iAr" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) "iAA" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib5" }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"iAL" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"iAO" = ( -/obj/item/stack/sheet/wood, +"iAB" = ( /turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"iBi" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" + dir = 10; + icon_state = "darkpurple2" }, +/area/fiorina/station/central_ring) +"iBr" = ( +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"iBM" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 5; + icon_state = "greenblue" }, /area/fiorina/station/botany) "iBP" = ( @@ -14098,70 +14136,53 @@ icon_state = "stan25" }, /area/fiorina/oob) -"iCi" = ( -/obj/item/device/flashlight/lamp/tripod, +"iCf" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/boxing, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"iCo" = ( -/obj/structure/machinery/door/poddoor/almayer{ - density = 0; - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"iCC" = ( -/obj/item/storage/donut_box{ - pixel_y = 6 - }, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"iCP" = ( -/obj/structure/machinery/disposal, -/obj/item/tool/kitchen/rollingpin{ - pixel_y = 8 - }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) -"iCR" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" +/area/fiorina/station/lowsec) +"iCE" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/obj/structure/platform{ - dir = 8 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"iCN" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/lowsec) "iCU" = ( /obj/structure/sign/nosmoking_1, /turf/closed/wall/prison, /area/fiorina/station/disco) -"iDa" = ( -/obj/item/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" +"iDg" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0"; + pixel_y = 2 }, -/area/fiorina/station/lowsec) -"iDo" = ( -/obj/structure/platform, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 }, -/area/fiorina/station/park) +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "iDq" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -14173,150 +14194,235 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"iDE" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +"iDA" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/obj/structure/barricade/wooden{ + dir = 8 + }, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"iEi" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +/area/fiorina/station/telecomm/lz1_cargo) +"iDK" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" }, -/obj/structure/platform{ - dir = 1 +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue_plate" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"iEz" = ( -/obj/item/weapon/gun/smg/mp5, -/obj/effect/decal/cleanable/blood, +/area/fiorina/station/botany) +"iDO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"iDQ" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/effect/spawner/random/gun/rifle, /turf/open/floor/prison{ dir = 4; - icon_state = "darkyellow2" + icon_state = "greenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"iFj" = ( +/area/fiorina/station/chapel) +"iEl" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"iEA" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, +/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" + icon_state = "greenblue" }, -/area/fiorina/station/park) -"iFu" = ( +/area/fiorina/station/botany) +"iEF" = ( +/obj/item/tool/kitchen/utensil/fork, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"iEG" = ( /obj/structure/sink{ dir = 8; pixel_x = -12 }, -/obj/item/reagent_container/food/drinks/flask/barflask, +/obj/item/reagent_container/glass/bottle/cyanide{ + pixel_x = -12; + pixel_y = 13 + }, /turf/open/floor/prison{ dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"iFg" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"iFz" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/ice_lab) +"iFB" = ( +/obj/structure/toilet{ + dir = 8; + pixel_y = 8 + }, +/turf/open/floor/prison{ + dir = 5; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"iFD" = ( -/obj/structure/prop/structure_lattice{ +"iFC" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"iFP" = ( +/obj/structure/bed/chair{ dir = 4 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"iGL" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/area/fiorina/station/research_cells) +"iFZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/hugemushroomslice, +/obj/item/reagent_container/food/snacks/hugemushroomslice{ + pixel_y = 3 }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/turf/open/floor/prison{ + icon_state = "kitchen" }, +/area/fiorina/station/power_ring) +"iGw" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/civres_blue) -"iGW" = ( -/obj/structure/machinery/light/double/blue, +/area/fiorina/tumor/civres) +"iGx" = ( +/obj/structure/closet/crate/trashcart, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/servers) "iGX" = ( /obj/effect/landmark/queen_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"iHn" = ( -/obj/item/frame/toolbox_tiles_sensor, -/obj/structure/surface/table/reinforced/prison, +"iHu" = ( +/obj/item/newspaper, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"iHB" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0" + }, +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkyellow2" }, -/area/fiorina/tumor/civres) -"iHJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - network = list("PRISON") +/area/fiorina/station/telecomm/lz1_cargo) +"iHT" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 8 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "redcorner" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"iHU" = ( -/obj/structure/barricade/metal{ - dir = 8; - health = 150; - icon_state = "metal_2" - }, +"iHW" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/ice_lab) -"iIS" = ( -/obj/structure/machinery/constructable_frame, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz2_maint) -"iIX" = ( -/obj/structure/bed/chair, -/obj/structure/prop/souto_land/pole, -/obj/structure/prop/souto_land/pole{ dir = 4; - pixel_y = 24 + icon_state = "greenblue" }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" +/area/fiorina/station/botany) +"iIl" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, -/area/fiorina/station/park) -"iJf" = ( -/turf/open/floor/prison{ +/obj/structure/platform/stair_cut, +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "darkyellow2" + pixel_y = 21 }, +/turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"iJj" = ( -/obj/structure/platform_decoration{ - dir = 1 +"iIx" = ( +/obj/effect/decal/cleanable/blood{ + desc = "Watch your step."; + icon_state = "gib6" }, -/obj/structure/inflatable/popped, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"iJC" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/flight_deck) +"iIE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/cups, +/obj/item/reagent_container/food/drinks/coffee{ + name = "\improper paper cup"; + pixel_x = 8; + pixel_y = 16 }, -/area/fiorina/tumor/ice_lab) -"iJE" = ( -/obj/structure/stairs/perspective{ +/turf/open/floor/prison, +/area/fiorina/station/security) +"iIG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "p_stair_full" + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) +"iIS" = ( +/obj/structure/machinery/constructable_frame, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz2_maint) +"iIZ" = ( +/obj/item/stack/cable_coil, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkpurple2" }, -/turf/open/floor/prison, /area/fiorina/tumor/servers) "iJF" = ( /obj/structure/surface/table/reinforced/prison, @@ -14328,232 +14434,170 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"iJG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications/simple, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"iJJ" = ( -/obj/item/reagent_container/food/drinks/bottle/orangejuice, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"iJM" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/telecomm/lz1_tram) -"iKf" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" - }, -/area/fiorina/tumor/civres) "iKg" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"iKj" = ( -/obj/structure/machinery/newscaster{ - pixel_y = 32 +"iKs" = ( +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/chapel) +"iKy" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/effect/spawner/random/gun/pistol, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"iKF" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/transit_hub) -"iKs" = ( -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/chapel) -"iKC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/shotgun/buckshot, +"iKI" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkyellowcorners2" }, -/area/fiorina/station/research_cells) -"iKG" = ( -/obj/structure/bed/chair, -/obj/effect/decal/cleanable/blood, -/obj/effect/landmark/corpsespawner/prison_security, -/turf/open/floor/prison, -/area/fiorina/station/park) -"iKT" = ( -/obj/structure/platform/kutjevo/smooth{ +/area/fiorina/station/telecomm/lz1_cargo) +"iKO" = ( +/obj/structure/barricade/wooden{ dir = 1 }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitegreen" }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" +/area/fiorina/station/medbay) +"iLl" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, -/turf/open/space/basic, -/area/fiorina/oob) -"iLy" = ( -/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - icon_state = "floorscorched2" + icon_state = "yellowfull" }, -/area/fiorina/station/security) +/area/fiorina/station/lowsec) "iLJ" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"iLQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/barbed_wire, -/obj/item/stack/barbed_wire, -/obj/item/stack/cable_coil/blue, -/obj/item/stack/cable_coil/blue, -/obj/item/stack/cable_coil/blue, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"iMm" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.5 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/tumor/servers) "iMo" = ( /obj/structure/bed/chair/office/dark{ dir = 1 }, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"iMF" = ( -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"iMq" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 8 }, -/area/fiorina/station/disco) -"iMM" = ( -/obj/structure/machinery/vending/hydronutrients, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"iMN" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4; + layer = 3.25 }, -/area/fiorina/station/botany) -"iMS" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"iNw" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" - }, -/obj/item/reagent_container/food/snacks/meat, +"iNk" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) -"iNO" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/tumor/civres) +"iNt" = ( +/obj/item/device/whistle, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) "iOa" = ( /obj/structure/machinery/floodlight/landing/floor, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"iOe" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"iOt" = ( +"iON" = ( +/obj/structure/closet/bombcloset, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/civres_blue) -"iOE" = ( -/obj/structure/platform, +/area/fiorina/tumor/aux_engi) +"iOX" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/security) -"iOG" = ( -/obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "blue_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"iOJ" = ( +/area/fiorina/station/botany) +"iOY" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + dir = 6; + icon_state = "whitegreen" }, -/area/fiorina/station/disco) -"iPq" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/washing_machine{ - pixel_y = 15 +/area/fiorina/tumor/ice_lab) +"iPv" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 4 }, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "darkredfull2" }, -/area/fiorina/station/lowsec) +/area/fiorina/oob) "iPx" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"iPM" = ( +"iPz" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box/empty, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/medbay) -"iPV" = ( -/turf/open/floor/prison{ +/area/fiorina/station/security) +"iQj" = ( +/obj/structure/machinery/photocopier, +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "red" - }, -/area/fiorina/lz/near_lzII) -"iPZ" = ( -/obj/structure/disposalpipe/segment{ - icon_state = "delivery_outlet"; - layer = 6; - name = "overhead ducting"; - pixel_y = 33 + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/tumor/civres) -"iQu" = ( -/obj/structure/coatrack, -/obj/item/clothing/head/bowlerhat{ - pixel_y = 15 - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +"iQz" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, +/turf/open/floor/plating/prison, +/area/fiorina/station/botany) +"iQH" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "blue_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/botany) +"iQJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "iQK" = ( /obj/structure/disposalpipe/broken{ dir = 1 @@ -14561,182 +14605,214 @@ /obj/structure/disposalpipe/broken, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"iQP" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) "iRa" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"iRc" = ( +"iRn" = ( /obj/structure/machinery/light/double/blue{ dir = 8; pixel_x = -10; pixel_y = 13 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"iRe" = ( -/obj/item/clothing/suit/chef/classic, -/obj/structure/bed/stool, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/station/civres_blue) -"iRy" = ( -/obj/structure/surface/rack, -/obj/item/storage/belt/gun/flaregun/full, -/obj/item/storage/belt/gun/flaregun/full, -/obj/item/storage/belt/gun/flaregun/full, -/turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/tumor/aux_engi) +"iRG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/chunk, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "iRH" = ( /obj/item/frame/firstaid_arm_assembly, /obj/structure/surface/table/woodentable, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"iSf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - pixel_y = 9 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"iSh" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/obj/structure/prop/structure_lattice{ +"iRI" = ( +/turf/open/floor/prison{ dir = 4; - layer = 3.1; - pixel_y = 10 - }, -/turf/open/floor/prison, -/area/fiorina/station/park) -"iSi" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/oob) -"iSn" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "whitegreencorner" }, +/area/fiorina/tumor/ice_lab) +"iSg" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/flight_deck) "iSu" = ( /turf/closed/wall/prison{ desc = "Come Meet Souto Man!"; icon_state = "rwall_s" }, /area/fiorina/station/park) -"iSG" = ( -/obj/effect/landmark/xeno_spawn, +"iSw" = ( +/obj/structure/machinery/disposal, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"iSQ" = ( +/area/fiorina/station/transit_hub) +"iSR" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/telecomm/lz1_cargo) -"iTe" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/oob) +"iSW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/surgical_tray, +/obj/item/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/medbay) +"iTj" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) "iTm" = ( /turf/open/auto_turf/sand/layer1, /area/fiorina/station/civres_blue) -"iTw" = ( -/obj/item/stack/sheet/metal, +"iTr" = ( +/obj/structure/closet/basketball, +/obj/item/storage/pill_bottle/tramadol/skillless, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security) -"iTy" = ( -/obj/structure/machinery/photocopier, +/area/fiorina/station/research_cells) +"iTs" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/botany) +"iTt" = ( +/obj/structure/machinery/landinglight/ds2, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"iTG" = ( -/obj/vehicle/train/cargo/trolley, +/area/fiorina/lz/near_lzII) +"iTE" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/station/flight_deck) +"iTJ" = ( /turf/open/floor/prison{ dir = 9; - icon_state = "greenfull" + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"iTK" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison, +/area/fiorina/station/security) +"iUa" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottomright" }, -/area/fiorina/station/transit_hub) -"iUy" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/medbay) +"iUc" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) +"iUr" = ( +/obj/item/shard{ + icon_state = "large"; + name = "ice shard" + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"iUB" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) "iUO" = ( /obj/structure/platform{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"iVb" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" +"iUS" = ( +/obj/structure/barricade/handrail/type_b, +/obj/structure/barricade/handrail/type_b{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_tram) -"iVt" = ( -/obj/effect/landmark/objective_landmark/far, /turf/open/floor/prison, +/area/fiorina/station/disco) +"iVo" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, /area/fiorina/station/park) "iVv" = ( /obj/structure/blocker/invisible_wall, /turf/open/space, /area/fiorina/oob) -"iVC" = ( -/obj/structure/platform{ - dir = 1 +"iVT" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"iWe" = ( +/obj/item/trash/candy, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"iWg" = ( -/obj/structure/surface/table/reinforced/prison, +"iWp" = ( +/obj/item/reagent_container/food/drinks/coffee{ + name = "\improper paper cup" + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/botany) +/area/fiorina/station/lowsec) "iWq" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -14748,155 +14824,131 @@ }, /turf/open/space, /area/fiorina/oob) -"iWy" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" +"iWP" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/fiorina/tumor/servers) -"iWW" = ( -/obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"iXz" = ( -/obj/item/trash/cigbutt, /turf/open/floor/prison{ dir = 8; - icon_state = "blue" + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) -"iXL" = ( -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"iYq" = ( +/area/fiorina/station/central_ring) +"iXq" = ( +/obj/item/stool, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" + dir = 4; + icon_state = "yellow" }, -/area/fiorina/tumor/ice_lab) -"iYI" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/lowsec) +"iXs" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/fiorina/station/transit_hub) -"iZn" = ( -/obj/structure/barricade/metal{ - health = 250; - icon_state = "metal_1" +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"iXJ" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 6; + icon_state = "blue" }, -/area/fiorina/tumor/ice_lab) -"iZt" = ( -/obj/structure/bed/chair/comfy, +/area/fiorina/station/civres_blue) +"iXV" = ( +/obj/structure/closet/l3closet/general, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"iYa" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "blue" + icon_state = "bluecorner" }, -/area/fiorina/station/civres_blue) -"iZA" = ( -/obj/structure/largecrate/random/barrel, -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/chapel) +"iYe" = ( +/obj/item/tool/wirecutters, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 1; + icon_state = "bluecorner" }, -/area/fiorina/station/park) -"iZV" = ( +/area/fiorina/station/power_ring) +"iYw" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/central_ring) +"iYJ" = ( +/obj/structure/machinery/power/apc, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/research_cells) -"iZZ" = ( -/obj/structure/barricade/metal{ - health = 250; - icon_state = "metal_1" +/area/fiorina/tumor/civres) +"iZm" = ( +/obj/item/trash/chips, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/tumor/ice_lab) -"jae" = ( -/obj/structure/cargo_container/grant/left, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/servers) +"jaB" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/area/fiorina/station/power_ring) -"jah" = ( -/obj/item/tool/crowbar, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"jal" = ( -/obj/structure/largecrate/supply/explosives/mortar_flare, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"jao" = ( -/obj/structure/filingcabinet{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"jas" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/baton, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = -6; - pixel_y = 12 +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" +/turf/open/space/basic, +/area/fiorina/oob) +"jbg" = ( +/obj/structure/holohoop{ + dir = 1 }, -/area/fiorina/station/research_cells) -"jax" = ( -/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/power_ring) -"jay" = ( -/obj/item/reagent_container/food/snacks/boiledegg, -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/lowsec) +"jbm" = ( +/obj/item/clothing/under/color/orange, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"jaR" = ( -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 5; - pixel_y = 12 - }, +/area/fiorina/station/lowsec) +"jbq" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"jbk" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" +"jbu" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/area/fiorina/station/disco) -"jbx" = ( -/obj/structure/prop/almayer/computers/sensor_computer3, +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"jbF" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/storage/belt/shotgun, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "redfull" }, /area/fiorina/station/security) -"jbG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz2, -/turf/open/floor/prison, -/area/fiorina/lz/console_II) "jbU" = ( /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, @@ -14908,115 +14960,69 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"jcg" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, +"jci" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/medbay) "jcv" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /turf/open/floor/wood, /area/fiorina/station/park) -"jcB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stock_parts/subspace/amplifier{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/stock_parts/subspace/analyzer{ - pixel_x = -9; - pixel_y = 8 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"jdc" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/device/multitool, -/obj/item/device/multitool, -/obj/item/device/multitool, +"jcF" = ( /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"jdh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 10 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"jdo" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/head/that{ - pixel_y = 10 + dir = 8; + pixel_x = -10; + pixel_y = -3 }, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"jcG" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"jdX" = ( -/obj/item/clothing/under/shorts/red, +/area/fiorina/tumor/servers) +"jdn" = ( +/obj/structure/machinery/vending/snack, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/central_ring) -"jeh" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +/area/fiorina/tumor/ice_lab) +"jew" = ( +/obj/structure/largecrate/supply/ammo, +/obj/item/storage/fancy/crayons, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, +/area/fiorina/station/telecomm/lz1_cargo) +"jeL" = ( /obj/structure/platform{ dir = 1 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_tram) -"jeD" = ( -/obj/structure/machinery/gibber, -/obj/effect/decal/cleanable/blood{ - pixel_x = -6; - pixel_y = 4 - }, -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"jeY" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/surgery/scalpel/laser{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/item/tool/surgery/circular_saw{ - pixel_y = -2 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/telecomm/lz1_cargo) -"jfa" = ( -/obj/structure/machinery/cm_vending/sorted/marine_food{ - name = "\improper Fiorina Engineering Canteen Vendor" +/obj/structure/platform_decoration{ + dir = 5 }, /turf/open/floor/prison{ icon_state = "bluefull" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/chapel) "jfc" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, @@ -15026,12 +15032,6 @@ name = "pool" }, /area/fiorina/station/park) -"jfk" = ( -/obj/item/ammo_magazine/rifle/mar40/extended, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) "jfp" = ( /obj/structure/barricade/handrail, /obj/structure/barricade/handrail{ @@ -15041,92 +15041,113 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"jfD" = ( -/obj/item/weapon/gun/rifle/m16, -/obj/effect/decal/cleanable/blood, +"jft" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 + }, /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"jfN" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 - }, +/area/fiorina/station/flight_deck) +"jfO" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) -"jgl" = ( -/obj/structure/platform_decoration{ +/area/fiorina/station/central_ring) +"jfT" = ( +/obj/structure/platform{ dir = 4 }, -/obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/medbay) +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "jgu" = ( /turf/closed/wall/prison, /area/fiorina/station/park) -"jgN" = ( -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/obj/effect/landmark/nightmare{ - insert_tag = "yardbasketball" +"jgz" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"jgW" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 +/area/fiorina/station/flight_deck) +"jgL" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/obj/item/bodybag/tarp/reactive, -/obj/item/bodybag/tarp/reactive, -/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"jhi" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 + dir = 9; + icon_state = "greenfull" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/area/fiorina/station/botany) +"jhl" = ( +/obj/structure/closet/emcloset, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/medbay) +"jhp" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/transit_hub) "jhG" = ( /turf/closed/shuttle/ert{ icon_state = "stan25" }, /area/fiorina/tumor/ship) -"jit" = ( +"jhN" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/item/clothing/suit/armor/bulletproof/badge, /turf/open/floor/prison{ - icon_state = "panelscorched" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/tumor/civres) -"jiJ" = ( -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_y = 21 +/area/fiorina/station/lowsec) +"jiq" = ( +/obj/structure/lz_sign/prison_sign, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"jis" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/obj/structure/platform_decoration{ + dir = 1 }, /turf/open/floor/prison, -/area/fiorina/station/chapel) +/area/fiorina/station/disco) +"jiz" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"jiA" = ( +/obj/item/storage/firstaid/regular, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) "jiV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/condiment/saltshaker, @@ -15140,20 +15161,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"jiW" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) -"jje" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) "jjg" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, @@ -15162,108 +15169,112 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) +"jjp" = ( +/obj/structure/largecrate/random/case, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "jjs" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ req_one_access = null }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"jjH" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "jjM" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"jjS" = ( -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) "jjW" = ( /turf/open/floor/prison/chapel_carpet{ dir = 1; icon_state = "doubleside" }, /area/fiorina/station/chapel) -"jka" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) "jkg" = ( /obj/structure/largecrate/supply, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"jki" = ( -/obj/item/weapon/twohanded/spear, +"jkj" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/research_cells) -"jkZ" = ( -/obj/structure/barricade/handrail, +/area/fiorina/tumor/aux_engi) +"jkw" = ( +/obj/structure/machinery/computer/atmos_alert, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"jlg" = ( -/obj/structure/bed/chair{ - dir = 8 + icon_state = "floor_plate" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/tumor/fiberbush) +"jkW" = ( +/obj/structure/dropship_equipment/fulton_system, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"jlb" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, -/area/fiorina/station/medbay) +/turf/open/floor/prison, +/area/fiorina/tumor/servers) "jlk" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/aux_engi) +"jln" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/card/id/silver/clearance_badge, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"jlq" = ( +/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"jls" = ( +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/prison, +/area/fiorina/station/park) +"jlB" = ( +/obj/item/stack/nanopaste, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "jlH" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 }, /turf/open/space, /area/fiorina/oob) -"jlJ" = ( -/obj/effect/alien/weeds/node, -/obj/structure/prop/resin_prop{ - icon_state = "rack" - }, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"jlO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 10 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"jlI" = ( +/obj/structure/bed/sofa/south/grey, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"jlW" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" +/area/fiorina/station/disco) +"jlU" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food{ + name = "\improper Fiorina Engineering Canteen Vendor" }, -/area/fiorina/station/telecomm/lz1_tram) -"jmm" = ( -/obj/effect/spawner/random/gun/rifle/highchance, /turf/open/floor/prison{ - icon_state = "damaged3" + icon_state = "bluefull" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) "jmp" = ( /obj/item/ammo_magazine/handful/shotgun/incendiary{ unacidable = 1 @@ -15284,52 +15295,23 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"jms" = ( -/obj/structure/bed{ - icon_state = "abed" +"jmv" = ( +/obj/structure/machinery/shower{ + dir = 4 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "kitchen" }, /area/fiorina/station/lowsec) -"jmy" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) "jmG" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/research_cells) -"jmM" = ( -/obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"jmO" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 10 - }, -/obj/structure/reagent_dispensers/fueltank{ - layer = 2.6 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"jmV" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, +"jna" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "whitepurplecorner" }, -/area/fiorina/maintenance) +/area/fiorina/station/research_cells) "jnd" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -15338,24 +15320,35 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzII) -"jnr" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/medium, +"jnm" = ( +/obj/structure/machinery/vending/sovietsoda, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"jnO" = ( +/area/fiorina/station/civres_blue) +"jnQ" = ( /obj/structure/machinery/light/double/blue{ dir = 8; pixel_x = -10; - pixel_y = 13 + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"jnU" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkpurple2" }, /area/fiorina/tumor/servers) +"jnX" = ( +/obj/item/storage/pill_bottle/spaceacillin/skillless, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "jor" = ( /obj/effect/spawner/random/attachment, /obj/structure/disposalpipe/segment{ @@ -15379,47 +15372,21 @@ name = "astroturf" }, /area/fiorina/station/park) -"joy" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"joz" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"joD" = ( -/obj/item/trash/used_stasis_bag, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, +"joJ" = ( +/obj/structure/bed/roller, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"joU" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"joE" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 - }, -/turf/open/floor/wood, -/area/fiorina/station/park) -"joS" = ( -/obj/item/weapon/gun/rifle/mar40, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "jpc" = ( /obj/structure/barricade/wooden{ dir = 1 }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"jpl" = ( -/obj/item/clothing/under/CM_uniform, -/turf/open/floor/prison, -/area/fiorina/station/security) "jpt" = ( /obj/structure/machinery/light/small{ dir = 8; @@ -15435,43 +15402,40 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) +"jpx" = ( +/obj/item/ammo_casing{ + icon_state = "casing_8" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "jpN" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/research_cells) -"jpR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/folder/black_random, -/obj/item/folder/red{ - pixel_x = 3; - pixel_y = 5 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"jpS" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 +"jpQ" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/tumor/ice_lab) -"jqg" = ( -/obj/structure/platform, +/area/fiorina/station/medbay) +"jpW" = ( +/obj/item/reagent_container/food/drinks/cans/souto/cherry, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/central_ring) "jqs" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -15494,136 +15458,129 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_cargo) -"jqH" = ( -/obj/structure/curtain, +"jqE" = ( +/obj/item/circuitboard/robot_module/janitor, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"jqM" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/station/power_ring) -"jqR" = ( -/obj/structure/barricade/wooden{ +/area/fiorina/station/botany) +"jri" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/obj/structure/machinery/light/double/blue{ dir = 4; - pixel_y = 4 + pixel_x = 10; + pixel_y = -3 }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"jqX" = ( -/obj/structure/platform{ - dir = 8 +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/tumor/civres) +"jrN" = ( +/turf/open/floor/prison{ + icon_state = "platingdmg1" }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"jre" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - pixel_y = 6 +/area/fiorina/tumor/aux_engi) +"jrO" = ( +/obj/structure/platform_decoration{ + dir = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 9; + icon_state = "blue" }, -/area/fiorina/station/civres_blue) -"jrk" = ( +/area/fiorina/station/power_ring) +"jrT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger, +/obj/item/clothing/accessory/holobadge/cord, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + icon_state = "darkredfull2" }, -/area/fiorina/maintenance) -"jrn" = ( -/obj/item/reagent_container/food/snacks/xenoburger, -/obj/item/reagent_container/food/snacks/xenoburger, -/obj/item/reagent_container/food/snacks/xenoburger, -/obj/structure/closet/crate/freezer, +/area/fiorina/lz/near_lzI) +"jsf" = ( +/obj/structure/closet/crate/trashcart, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"jru" = ( -/obj/structure/machinery/space_heater, +/area/fiorina/station/chapel) +"jsp" = ( +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"jrL" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/area/fiorina/tumor/civres) +"jsu" = ( +/obj/structure/surface/table/reinforced/prison{ + dir = 8; + flipped = 1 }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"jsn" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"jsD" = ( -/obj/structure/bedsheetbin{ - icon_state = "linenbin-empty" +/obj/item/storage/box/ids, +/obj/item/reagent_container/food/drinks/cans/souto/grape{ + pixel_x = 14; + pixel_y = 7 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"jsU" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 3; + pixel_y = 4 }, -/area/fiorina/station/lowsec) -"jsE" = ( -/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/civres_blue) "jta" = ( /obj/structure/bed{ icon_state = "psychbed" }, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"jtv" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"jtF" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +"jtK" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"jum" = ( -/obj/item/toy/crayon/mime, +/area/fiorina/station/security) +"jtM" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"juE" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/area/fiorina/tumor/aux_engi) +"juX" = ( +/obj/structure/machinery/door/poddoor/almayer{ + density = 0; + dir = 4 }, -/area/fiorina/station/botany) -"juS" = ( -/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"juW" = ( -/obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison, +/area/fiorina/station/park) +"jva" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"jvi" = ( +/obj/structure/closet/wardrobe/orange, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, /area/fiorina/station/lowsec) "jvm" = ( /obj/item/storage/surgical_tray, @@ -15636,17 +15593,6 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"jvp" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"jvu" = ( -/obj/item/stool, -/turf/open/floor/prison, -/area/fiorina/station/disco) "jvy" = ( /mob/living/simple_animal/hostile/carp{ desc = "He is late for work."; @@ -15654,28 +15600,6 @@ }, /turf/open/space, /area/fiorina/oob) -"jvB" = ( -/obj/structure/closet/firecloset, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"jvE" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"jvG" = ( -/obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) "jwc" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -15686,50 +15610,42 @@ "jwK" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzII) -"jxa" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"jxy" = ( -/obj/structure/inflatable/door, +"jxc" = ( +/obj/item/stack/sandbags_empty/half, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"jxm" = ( +/obj/item/trash/hotdog, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"jxN" = ( -/obj/structure/machinery/vending/coffee, +/area/fiorina/station/medbay) +"jyo" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/transit_hub) -"jxY" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" +/area/fiorina/station/power_ring) +"jyv" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/fiorina/station/civres_blue) -"jya" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "greenbluecorner" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"jyc" = ( -/obj/structure/bed/chair{ - dir = 8 +/area/fiorina/station/security) +"jyF" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 }, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"jyK" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" + icon_state = "yellow" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/lowsec) "jyM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/floor/plating/prison, @@ -15738,89 +15654,70 @@ /obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"jyR" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"jzY" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"jAt" = ( -/obj/structure/platform/shiva, -/turf/open/floor/plating/prison, +"jyQ" = ( +/obj/item/device/flashlight, +/turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/central_ring) -"jAx" = ( +"jyY" = ( +/obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/security) -"jAy" = ( -/obj/item/ammo_casing{ - icon_state = "cartridge_1" +/area/fiorina/tumor/servers) +"jzN" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) +"jzP" = ( +/turf/open/floor/prison{ + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) +"jAF" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalleft" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison, /area/fiorina/station/medbay) "jAW" = ( /obj/structure/largecrate/supply/ammo, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"jBj" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkyellow2" +"jBn" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/lz/near_lzI) -"jBK" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"jBL" = ( -/obj/item/weapon/harpoon, -/obj/effect/decal/cleanable/blood{ - icon_state = "gib6" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"jBv" = ( +/obj/structure/bed/sofa/vert/grey/bot{ + pixel_y = 8 }, -/area/fiorina/station/disco) +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) "jBQ" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/wood, /area/fiorina/station/park) -"jBS" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 5 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/chapel) -"jCl" = ( +"jCe" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" - }, -/area/fiorina/station/security) -"jCp" = ( -/obj/structure/machinery/landinglight/ds1/delaytwo, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 5; + icon_state = "darkpurple2" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/tumor/servers) "jCt" = ( /obj/structure/machinery/light/small{ dir = 4; @@ -15847,47 +15744,25 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"jCQ" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"jCU" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/combat, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"jDj" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"jDk" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" +"jCO" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/chapel) -"jDL" = ( -/obj/structure/machinery/light/double/blue{ +/obj/structure/stairs/perspective{ dir = 1; - pixel_y = 21 + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"jDe" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/station/disco) "jDR" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -15895,192 +15770,193 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"jDX" = ( -/obj/item/trash/burger, +"jEa" = ( +/obj/effect/landmark/corpsespawner/engineer, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + dir = 1; + icon_state = "bluecorner" }, -/area/fiorina/tumor/civres) -"jEb" = ( +/area/fiorina/station/power_ring) +"jEr" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"jEy" = ( +/obj/structure/machinery/iv_drip, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"jEf" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +"jEz" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"jEl" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) -"jEC" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 3 - }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"jEG" = ( -/obj/structure/prop/resin_prop, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/civres) "jEK" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /turf/open/floor/wood, /area/fiorina/station/research_cells) -"jES" = ( -/obj/item/device/flashlight/lamp/tripod, +"jEQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz2, +/turf/open/floor/prison, +/area/fiorina/lz/console_II) +"jET" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/lowsec) +"jFh" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/botany) "jFl" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"jFN" = ( -/obj/item/explosive/grenade/high_explosive/m15, -/obj/effect/decal/cleanable/blood/splatter, +"jFz" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ - icon_state = "panelscorched" + dir = 1; + icon_state = "darkbrown2" }, /area/fiorina/tumor/aux_engi) +"jFD" = ( +/obj/structure/barricade/metal{ + health = 250; + icon_state = "metal_1" + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/ice_lab) "jFO" = ( /obj/effect/landmark/nightmare{ insert_tag = "poolparty" }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/park) -"jGd" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"jFP" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"jGj" = ( -/obj/structure/bed/sofa/vert/grey, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"jGA" = ( -/turf/open/floor/prison, -/area/fiorina/station/botany) -"jGL" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/tumor/ice_lab) +"jGf" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"jGs" = ( +/obj/structure/toilet{ dir = 8; - pixel_x = -10; - pixel_y = 13 + pixel_y = 8 }, +/obj/structure/blocker/invisible_wall, /turf/open/floor/prison{ - dir = 8; + dir = 5; icon_state = "whitepurple" }, -/area/fiorina/station/research_cells) -"jGP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 +/area/fiorina/oob) +"jGz" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 }, +/obj/effect/spawner/random/tool, +/obj/item/clothing/gloves/combat, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/flight_deck) -"jGV" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 8; - pixel_y = 5 + icon_state = "darkpurplefull2" }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/area/fiorina/station/research_cells) +"jGC" = ( +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"jIm" = ( -/obj/item/frame/firstaid_arm_assembly, +/area/fiorina/station/power_ring) +"jHj" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"jIZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, +/area/fiorina/station/power_ring) +"jHp" = ( +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"jJb" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"jJe" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4 + dir = 9; + icon_state = "greenfull" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"jJh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/objective, +/area/fiorina/station/transit_hub) +"jHz" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, /area/fiorina/tumor/servers) -"jJF" = ( -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_y = 21 +"jHC" = ( +/obj/structure/surface/rack, +/obj/item/tool/lighter, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"jHD" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_x = 17; - pixel_y = 21 +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/botany) +"jHU" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"jJG" = ( -/obj/item/stack/sheet/wood/medium_stack, -/obj/item/stack/sheet/wood/medium_stack, -/obj/structure/surface/rack, +"jHV" = ( +/obj/item/paper, +/obj/structure/inflatable/door, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "darkpurplefull2" }, -/area/fiorina/maintenance) -"jJM" = ( +/area/fiorina/station/research_cells) +"jIw" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/cans/waterbottle, +/obj/structure/machinery/computer/cameras{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "darkredfull2" }, -/area/fiorina/station/disco) +/area/fiorina/station/security) +"jIz" = ( +/obj/item/stack/sheet/metal/medium_stack, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"jJb" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) "jJS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/grape{ @@ -16108,32 +15984,30 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"jJT" = ( -/obj/item/stack/rods, -/turf/open/floor/prison, -/area/fiorina/station/security) -"jKb" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" +"jJZ" = ( +/obj/item/ammo_magazine/shotgun/buckshot, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/central_ring) +"jKv" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"jKm" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison, -/area/fiorina/station/security) -"jKG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 10 +/area/fiorina/station/telecomm/lz1_cargo) +"jKz" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/landinglight/ds1/delaytwo{ + dir = 1 }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) "jKI" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -16148,66 +16022,37 @@ }, /turf/open/space, /area/fiorina/oob) -"jKL" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" - }, -/area/fiorina/station/power_ring) "jKR" = ( /obj/structure/machinery/shower{ dir = 4 }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ice_lab) -"jLs" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"jLF" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, -/area/fiorina/station/chapel) -"jLK" = ( -/obj/item/stack/sheet/metal, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "platingdmg1" +"jLe" = ( +/obj/structure/machinery/constructable_frame, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"jLC" = ( +/obj/item/ammo_casing{ + dir = 8; + icon_state = "cartridge_2" }, -/area/fiorina/station/security) -"jLN" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 8; + icon_state = "darkyellowcorners2" }, /area/fiorina/station/telecomm/lz1_cargo) -"jLS" = ( -/obj/structure/closet/bombcloset, -/obj/effect/spawner/random/gun/rifle/midchance, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" +"jLD" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ + layer = 3.5 }, -/area/fiorina/station/flight_deck) -"jMe" = ( -/obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/power_ring) "jMf" = ( /obj/item/stack/tile/plasteel{ pixel_x = 5; @@ -16215,24 +16060,22 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) +"jMh" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) "jMk" = ( /obj/item/tool/screwdriver, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"jMz" = ( -/obj/structure/machinery/power/smes/buildable, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"jMA" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, +"jMv" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/station/power_ring) "jMH" = ( /obj/structure/barricade/metal/wired{ dir = 4 @@ -16241,11 +16084,16 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"jNa" = ( +"jNi" = ( +/obj/item/ammo_casing{ + dir = 2; + icon_state = "casing_5" + }, /turf/open/floor/prison{ - icon_state = "darkpurple2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/ice_lab) "jNl" = ( /obj/structure/ice/thin/indestructible{ icon_state = "Straight" @@ -16253,84 +16101,105 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"jNA" = ( -/obj/structure/bed/sofa/vert/grey/top, +"jNw" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "green" + dir = 9; + icon_state = "blue" }, -/area/fiorina/station/transit_hub) -"jOr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/processor{ - desc = "It CAN blend it."; - icon_state = "blender_e"; - name = "Blendomatic"; - pixel_x = -2; - pixel_y = 10 +/area/fiorina/tumor/servers) +"jOb" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"jOd" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/civres_blue) -"jOt" = ( +/area/fiorina/station/flight_deck) +"jOv" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"jOY" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = 11; - pixel_y = 14 +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/item/stack/cable_coil, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/fiberbush) -"jOJ" = ( -/obj/structure/machinery/space_heater, +/area/fiorina/station/security) +"jPK" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/fiorina/station/telecomm/lz1_cargo) +"jPM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) +"jPY" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "Residential Apartment" }, -/area/fiorina/station/medbay) -"jOO" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/flight_deck) -"jOW" = ( -/obj/item/trash/eat, +/area/fiorina/tumor/servers) +"jQc" = ( +/obj/item/organ/lungs, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"jPz" = ( -/obj/effect/alien/weeds/node, +/area/fiorina/station/telecomm/lz1_cargo) +"jQs" = ( /turf/open/floor/prison{ - dir = 5; + dir = 8; icon_state = "whitegreen" }, -/area/fiorina/tumor/ice_lab) -"jPK" = ( -/turf/closed/shuttle/elevator{ - dir = 6 - }, -/area/fiorina/station/telecomm/lz1_cargo) -"jPO" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/medbay) +"jQy" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" }, -/obj/structure/barricade/wooden{ - dir = 8 +/area/fiorina/tumor/civres) +"jQS" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null }, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/security) "jRf" = ( /obj/structure/girder/displaced, /turf/open/floor/plating/prison, @@ -16351,126 +16220,141 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"jRp" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, +"jRC" = ( /obj/structure/platform{ dir = 4 }, +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"jRF" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, -/area/fiorina/station/disco) +/area/fiorina/station/central_ring) "jRL" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/disco) -"jRR" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "yellowfull" +"jSc" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/area/fiorina/station/lowsec) -"jSC" = ( -/obj/structure/largecrate/random/case/small, +/obj/item/reagent_container/food/drinks/flask/marine, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/research_cells) "jSD" = ( /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"jTe" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 +"jSE" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/waffles, +/obj/item/stack/sheet/mineral/plastic, +/obj/item/stack/sheet/mineral/plastic, +/obj/item/stack/sheet/mineral/plastic, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"jSU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/area/fiorina/station/medbay) +"jSZ" = ( +/obj/structure/barricade/wooden{ + dir = 1 }, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/tumor/fiberbush) -"jTk" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"jTo" = ( +/obj/item/prop/helmetgarb/gunoil, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/telecomm/lz1_tram) -"jTG" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/medbay) +"jTD" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) "jTJ" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/lowsec) -"jUp" = ( -/obj/structure/window/reinforced/tinted, -/obj/item/storage/briefcase, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" +"jTN" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 4 }, -/area/fiorina/lz/near_lzI) -"jUs" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 4 }, -/turf/open/floor/prison/chapel_carpet, -/area/fiorina/station/chapel) -"jUy" = ( -/obj/structure/machinery/sensortower, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/tumor/civres) -"jUz" = ( -/obj/structure/surface/table/reinforced/prison{ - flipped = 1 +/area/fiorina/station/power_ring) +"jUa" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/obj/item/reagent_container/food/snacks/eat_bar, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"jUB" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/turf/open/floor/prison{ +/area/fiorina/tumor/ice_lab) +"jUs" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "whitegreen" + pixel_y = 21 }, -/area/fiorina/station/medbay) -"jUI" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/turf/open/floor/prison/chapel_carpet, +/area/fiorina/station/chapel) +"jUG" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/prison, /area/fiorina/station/park) -"jUK" = ( +"jUP" = ( +/obj/item/trash/c_tube, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) -"jVC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger{ - pixel_y = 4 +/area/fiorina/station/telecomm/lz1_cargo) +"jVj" = ( +/obj/structure/bed/chair, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "yellowfull" }, -/area/fiorina/oob) +/area/fiorina/station/disco) +"jVt" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "jVE" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -16485,21 +16369,23 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"jVH" = ( +"jVM" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "darkbrown2" + icon_state = "green" }, -/area/fiorina/tumor/aux_engi) -"jVQ" = ( -/obj/structure/window/framed/prison/reinforced, +/area/fiorina/station/botany) +"jWg" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"jWk" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/fiorina/station/security) -"jVW" = ( -/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ + dir = 8; icon_state = "blue" }, /area/fiorina/station/power_ring) @@ -16512,10 +16398,32 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"jWB" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison, -/area/fiorina/station/security) +"jWE" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) +"jWI" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"jWY" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/storage/fancy/cigar/tarbacks, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "jXj" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, @@ -16524,102 +16432,77 @@ /obj/structure/girder/reinforced, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"jXv" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison, -/area/fiorina/station/park) -"jXx" = ( -/turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/central_ring) "jXz" = ( /turf/closed/wall/prison, /area/fiorina/tumor/servers) -"jXB" = ( -/obj/structure/machinery/computer/cameras{ - network = list("omega") - }, -/obj/structure/surface/table/reinforced/prison, +"jXV" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"jXZ" = ( +/turf/closed/shuttle/elevator, +/area/fiorina/tumor/aux_engi) +"jYm" = ( +/obj/structure/machinery/constructable_frame, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"jXC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/pizzabox/mushroom, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"jXD" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +/area/fiorina/station/lowsec) +"jYn" = ( +/obj/structure/platform, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"jXO" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/transit_hub) +"jYs" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 }, -/area/fiorina/tumor/ice_lab) -"jXQ" = ( -/obj/structure/platform{ +/turf/open/floor/plating/prison, +/area/fiorina/station/research_cells) +"jYt" = ( +/obj/structure/barricade/metal/wired{ dir = 8 }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottomleft" +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" }, +/area/fiorina/lz/near_lzI) +"jYK" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "kitchen" }, -/area/fiorina/station/medbay) -"jXZ" = ( -/turf/closed/shuttle/elevator, -/area/fiorina/tumor/aux_engi) -"jYd" = ( +/area/fiorina/station/civres_blue) +"jYM" = ( +/obj/item/trash/chips, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) +"jYU" = ( /obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison{ dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_tram) +"jYV" = ( +/obj/structure/stairs/perspective{ + dir = 8; icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform{ dir = 4 }, -/turf/open/floor/plating/prison, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"jYs" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/research_cells) -"jYB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"jYS" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/lz/near_lzII) -"jZb" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/central_ring) "jZc" = ( /obj/structure/disposalpipe/segment{ icon_state = "delivery_outlet"; @@ -16629,58 +16512,43 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"jZx" = ( -/obj/effect/decal/cleanable/blood/drip, +"jZk" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"jZR" = ( -/obj/item/frame/rack, -/obj/structure/barricade/handrail/type_b{ - dir = 1 + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/station/telecomm/lz1_tram) +"kag" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"kau" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stool{ - pixel_y = 12 + dir = 4; + icon_state = "cell_stripe" }, +/area/fiorina/station/power_ring) +"kat" = ( /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/lowsec) -"kaB" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 +/area/fiorina/station/botany) +"kaw" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/structure/closet/bombcloset, +/obj/structure/platform, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"kaC" = ( -/obj/item/stack/cable_coil/random, -/turf/open/floor/prison{ - icon_state = "redfull" - }, /area/fiorina/station/security) -"kaH" = ( -/obj/structure/surface/rack, -/obj/item/tank/emergency_oxygen/engi, +"kaF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/bottle/sake, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) +/area/fiorina/lz/near_lzI) "kaO" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -16696,14 +16564,12 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/aux_engi) -"kbg" = ( -/obj/structure/machinery/computer/drone_control, -/obj/structure/window/reinforced{ - dir = 4 +"kbh" = ( +/obj/item/explosive/grenade/incendiary/molotov, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/window/reinforced, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/lowsec) "kbi" = ( /obj/item/ammo_casing{ dir = 6; @@ -16712,130 +16578,48 @@ /obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/wood, /area/fiorina/station/park) -"kbA" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"kbO" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"kbT" = ( -/turf/open/floor/plating/prison, -/area/fiorina/tumor/fiberbush) -"kcn" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaltopleft" - }, +"kbj" = ( +/obj/structure/surface/rack, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"kcw" = ( -/obj/structure/machinery/computer3/server/rack, -/obj/structure/window{ - dir = 4 + icon_state = "floor_plate" }, +/area/fiorina/station/telecomm/lz1_cargo) +"kbo" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"kcz" = ( -/obj/structure/platform{ - dir = 1 + dir = 8; + icon_state = "greenblue" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/botany) +"kbt" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop{ + pixel_x = 7; + pixel_y = -1 }, -/obj/structure/platform_decoration{ - dir = 5 +/obj/item/toy/bikehorn/rubberducky{ + desc = "He's already fed up with your bullshit face."; + name = "Dug the duck"; + pixel_x = -3; + pixel_y = 8 }, /turf/open/floor/prison, /area/fiorina/station/power_ring) -"kcO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 5; - pixel_y = 12 - }, -/obj/item/trash/cigbutt/ucigbutt, -/obj/item/trash/cigbutt/cigarbutt{ - pixel_x = 5; - pixel_y = 11 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"kcP" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"kdb" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) -"kdk" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/phone{ - pixel_x = 6; - pixel_y = -15 - }, -/obj/item/phone{ - pixel_y = 7 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"kdo" = ( -/obj/structure/platform_decoration, -/obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"kdw" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - desc = "So uh yeah, about that cat..."; - icon_state = "mwbloodyo"; - pixel_y = 6 - }, +"kbT" = ( +/turf/open/floor/plating/prison, +/area/fiorina/tumor/fiberbush) +"kdq" = ( +/obj/structure/machinery/vending/hydronutrients, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/botany) +"kds" = ( +/obj/item/clothing/suit/storage/hazardvest, +/turf/open/floor/prison, /area/fiorina/station/civres_blue) -"kdG" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/tumor/servers) "kdK" = ( /obj/item/stack/tile/plasteel, /turf/open/floor/carpet, @@ -16844,84 +16628,76 @@ /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzI) -"keo" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 1 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) -"keF" = ( +"kfL" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/prison, +/area/fiorina/station/security) +"kfW" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/device/flash, -/turf/open/floor/prison{ - icon_state = "redfull" +/obj/item/ashtray/plastic, +/obj/item/clothing/mask/cigarette, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_y = 8 }, -/area/fiorina/station/security) -"keL" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"kfY" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"kgp" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellow" }, -/area/fiorina/station/security/wardens) -"keV" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/effect/spawner/random/gun/rifle, +/area/fiorina/station/lowsec) +"kgG" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "greenfull" + icon_state = "darkyellow2" }, -/area/fiorina/station/chapel) -"kfl" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/area/fiorina/station/telecomm/lz1_cargo) +"kgN" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"kfA" = ( +/area/fiorina/station/lowsec) +"kgQ" = ( +/obj/item/stool, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) +"kgT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper/carbon, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/power_ring) -"kfF" = ( -/obj/item/stack/sheet/metal, -/obj/item/stack/sheet/metal, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"kfW" = ( +/area/fiorina/station/medbay) +"kgY" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/clothing/mask/cigarette, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_y = 8 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 30 - }, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"kge" = ( -/obj/effect/spawner/random/gun/rifle/highchance, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/lz/near_lzI) -"kgP" = ( -/obj/item/tool/wrench, +/area/fiorina/station/botany) +"khd" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, /area/fiorina/tumor/aux_engi) "khu" = ( @@ -16935,71 +16711,60 @@ icon_state = "squares" }, /area/fiorina/station/civres_blue) -"kic" = ( -/obj/structure/barricade/wooden{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"kik" = ( +"khw" = ( +/obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/security) -"kil" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/wood, -/area/fiorina/station/civres_blue) -"kiq" = ( +/area/fiorina/station/power_ring) +"khY" = ( +/obj/structure/closet/secure_closet/medical3, /turf/open/floor/prison{ - icon_state = "damaged2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/central_ring) -"kis" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/medbay) +"kid" = ( +/obj/item/ammo_casing{ + icon_state = "casing_8" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" +/obj/structure/surface/table/reinforced/prison{ + dir = 4; + flipped = 1 }, -/area/fiorina/station/lowsec) -"kiE" = ( -/obj/structure/bed/chair, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"kiW" = ( -/obj/item/ammo_casing{ - icon_state = "casing_1" - }, +"kii" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 9; + icon_state = "whitegreen" }, -/area/fiorina/station/telecomm/lz1_cargo) -"kjo" = ( -/obj/item/device/flashlight, +/area/fiorina/tumor/ice_lab) +"kil" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/wood, +/area/fiorina/station/civres_blue) +"kiR" = ( +/obj/item/tool/weldpack, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"kiT" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "darkyellow2" + icon_state = "darkpurplefull2" }, -/area/fiorina/lz/near_lzI) -"kjz" = ( -/obj/item/trash/cigbutt/cigarbutt, +/area/fiorina/station/research_cells) +"kjt" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/station/flight_deck) -"kjA" = ( -/obj/structure/platform_decoration, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/research_cells) "kjP" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/northleft, @@ -17014,85 +16779,109 @@ name = "astroturf" }, /area/fiorina/station/park) -"kkk" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"kjX" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"kka" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"kke" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"kky" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +"kkU" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/space/basic, +/area/fiorina/oob) +"kle" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"klb" = ( -/obj/item/tool/wirecutters, +/area/fiorina/station/botany) +"klh" = ( +/obj/structure/machinery/vending/security, /turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"klg" = ( -/obj/item/stack/sheet/cardboard, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/station/security) "klp" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_1"; opacity = 0 }, /area/fiorina/tumor/ship) -"klv" = ( -/obj/item/device/flashlight/lamp/tripod, +"klt" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "kitchen" }, -/area/fiorina/station/disco) +/area/fiorina/station/power_ring) +"klB" = ( +/obj/structure/machinery/landinglight/ds2/delayone, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "klC" = ( /obj/structure/surface/table/reinforced/prison{ flipped = 1 }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"klG" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"klL" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" +"klN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box{ + pixel_y = 6 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "bluefull" }, -/area/fiorina/station/chapel) -"kmB" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" +/area/fiorina/station/power_ring) +"kmm" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/area/fiorina/station/telecomm/lz1_tram) -"kmE" = ( -/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/station/park) -"kmL" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ - dir = 1; - icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' +/area/fiorina/station/disco) +"kmn" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security/wardens) +"kmL" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ + dir = 1; + icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) @@ -17104,58 +16893,70 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"kng" = ( -/obj/item/tool/stamp, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) +"knb" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) "knh" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"knt" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gibup1" +"kny" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"knW" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/station_alert{ + dir = 8 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/station/medbay) -"knu" = ( -/obj/structure/bed/chair{ - dir = 8 +/area/fiorina/tumor/ice_lab) +"knY" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + indestructible = 1; + name = "launch bay door" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/station/park) -"knv" = ( -/obj/structure/platform_decoration{ - dir = 1 +/area/fiorina/oob) +"kob" = ( +/obj/item/ammo_casing{ + icon_state = "cartridge_2" }, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"kny" = ( -/obj/item/stack/tile/plasteel{ - pixel_x = 5; - pixel_y = 5 + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"kov" = ( -/obj/item/stack/rods, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - density = 0; - dir = 4 +/area/fiorina/station/central_ring) +"kok" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" }, +/area/fiorina/station/transit_hub) +"kon" = ( +/obj/structure/surface/rack, +/obj/item/stack/sheet/wood/medium_stack, /turf/open/floor/prison{ - icon_state = "platingdmg3" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/security) +/area/fiorina/maintenance) +"kor" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "kow" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, @@ -17173,23 +16974,45 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"koV" = ( -/obj/structure/platform{ - dir = 4 +"koH" = ( +/obj/structure/surface/table/almayer, +/obj/item/clipboard, +/obj/item/paper, +/obj/item/tool/pen, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/obj/structure/platform, +/area/fiorina/station/medbay) +"koK" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 + }, +/obj/structure/closet/bombcloset, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"koY" = ( /obj/structure/platform_decoration{ - dir = 6 + dir = 4 }, -/obj/structure/closet/emcloset, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"kpm" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "green" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/medbay) +"kpe" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "kpp" = ( /obj/item/trash/popcorn, /obj/structure/cable/heavyduty{ @@ -17197,55 +17020,74 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"kpN" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; - pixel_x = 1; - pixel_y = -1 - }, +"kpq" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"kqe" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/obj/structure/platform{ - dir = 8; - layer = 2.5 + icon_state = "whitegreen" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_tram) -"kqr" = ( -/obj/item/ammo_magazine/smg/mp5, +/area/fiorina/tumor/ice_lab) +"kpu" = ( +/obj/structure/closet/wardrobe/orange, +/obj/item/explosive/mine/pmc, +/obj/effect/spawner/random/gun/smg, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"kpv" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"kqz" = ( /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/medbay) +"kpH" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryomid" + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"kpR" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/device/flashlight/lamp/candelabra{ + layer = 3.2; + pixel_x = 1; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/station/chapel) +"kqy" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/ice_lab) "kqC" = ( /turf/closed/wall/prison, /area/fiorina/station/lowsec) -"kqF" = ( -/obj/effect/landmark/objective_landmark/far, +"kqJ" = ( +/obj/item/trash/used_stasis_bag, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) -"kqP" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/lz/near_lzI) +"krb" = ( +/obj/structure/bookcase/manuals/engineering, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/civres) "krn" = ( /obj/structure/barricade/handrail/type_b{ dir = 8; @@ -17255,51 +17097,35 @@ name = "astroturf" }, /area/fiorina/tumor/servers) -"krp" = ( -/obj/item/ammo_casing{ - icon_state = "casing_9_1" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellowcorner" - }, -/area/fiorina/station/lowsec) -"krr" = ( -/obj/structure/machinery/filtration/console, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"krG" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ +"krE" = ( +/obj/structure/bed/chair/comfy{ dir = 8 }, -/obj/structure/platform_decoration{ - dir = 5 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"krQ" = ( -/obj/item/trash/popcorn, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "darkyellow2" }, -/area/fiorina/station/disco) -"krT" = ( +/area/fiorina/station/flight_deck) +"ksu" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"ksk" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "yellow" }, +/area/fiorina/station/disco) +"ksE" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"ksL" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, /area/fiorina/station/security) "ksV" = ( /obj/structure/barricade/handrail/type_b{ @@ -17310,80 +17136,45 @@ name = "astroturf" }, /area/fiorina/tumor/servers) -"kte" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/kitchen/rollingpin, +"ksY" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"ktq" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/power_ring) -"kty" = ( -/obj/structure/prop/ice_colony/surveying_device, +/area/fiorina/station/park) +"ktv" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/prison, +/area/fiorina/station/security) +"ktC" = ( +/obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "redfull" }, -/area/fiorina/tumor/servers) -"ktD" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/security) +"kue" = ( +/obj/structure/machinery/computer3/server/rack, +/obj/structure/window{ + dir = 4 }, -/area/fiorina/station/transit_hub) -"ktI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/poster, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, -/area/fiorina/station/research_cells) -"kul" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"kur" = ( -/obj/item/trash/chips, +/area/fiorina/tumor/servers) +"kvg" = ( /obj/structure/machinery/light/double/blue{ dir = 4; pixel_x = 10; - pixel_y = 13 + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "darkpurplefull2" }, /area/fiorina/tumor/servers) -"kuS" = ( -/obj/structure/machinery/optable{ - desc = "This maybe could be used for advanced medical procedures."; - name = "Exam Table" - }, -/obj/item/bedsheet/ce{ - desc = "It crinkles, aggressively."; - name = "sterile wax sheet" - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) -"kuT" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "ywflowers_3" - }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"kvd" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/golden_cup, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) "kvh" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 5 @@ -17399,76 +17190,29 @@ name = "astroturf" }, /area/fiorina/station/park) -"kvm" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/turf/open/space/basic, -/area/fiorina/oob) -"kvn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/weapon/gun/energy/taser, +"kvu" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "kvx" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"kwa" = ( -/obj/structure/closet/crate/science{ - density = 0; - icon_state = "open_science"; - opened = 1 - }, -/obj/item/organ/eyes, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"kwm" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"kwv" = ( -/obj/item/reagent_container/food/drinks/sillycup, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"kwy" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/snacks/hugemushroomslice, -/obj/item/reagent_container/food/snacks/hugemushroomslice{ - pixel_y = 3 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/power_ring) -"kwK" = ( -/obj/structure/bed/chair{ - dir = 4; - pixel_x = -5 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"kvT" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 7; + pixel_y = 6 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "blue" }, -/area/fiorina/station/medbay) +/area/fiorina/station/chapel) "kwL" = ( /obj/item/fuelCell, /obj/structure/platform, @@ -17483,61 +17227,89 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"kwZ" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "kxf" = ( /obj/item/stack/sheet/wood, /turf/open/floor/wood, /area/fiorina/station/park) -"kxo" = ( -/obj/structure/sign/poster{ - icon_state = "poster10"; - pixel_x = 32 +"kxl" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.4 + }, +/obj/structure/barricade/handrail/type_b{ + dir = 8 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"kxM" = ( -/obj/item/stack/rods, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/ice_lab) "kxQ" = ( /obj/structure/prop/resin_prop{ icon_state = "rack" }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"kxV" = ( -/obj/item/device/motiondetector, +"kxU" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "green" + }, +/area/fiorina/station/transit_hub) +"kyd" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"kye" = ( -/obj/structure/bed/chair{ - dir = 4; - pixel_x = -5 +/area/fiorina/station/security/wardens) +"kyh" = ( +/obj/structure/platform_decoration{ + dir = 4 }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"kyF" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"kyl" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_17"; - pixel_y = 13 +/area/fiorina/station/civres_blue) +"kyU" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = 1; + pixel_y = -1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/research_cells) "kyW" = ( /obj/item/stack/sandbags/large_stack, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"kyZ" = ( +/obj/item/clothing/under/CM_uniform, +/turf/open/floor/prison, +/area/fiorina/station/security) "kze" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Residential Apartment" @@ -17550,130 +17322,164 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) +"kzs" = ( +/obj/item/stack/sandbags/large_stack, +/turf/open/floor/prison{ + dir = 4; + icon_state = "green" + }, +/area/fiorina/tumor/civres) +"kzx" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "kzz" = ( /obj/item/tool/shovel/etool, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"kzI" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 - }, -/obj/structure/blocker/invisible_wall, +"kzB" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ dir = 5; - icon_state = "whitepurple" - }, -/area/fiorina/oob) -"kzN" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched2" - }, -/area/fiorina/station/security) -"kzO" = ( -/obj/structure/monorail{ - name = "launch track" + icon_state = "green" }, +/area/fiorina/station/chapel) +"kzL" = ( +/obj/structure/bed/sofa/south/grey/right, /obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, -/turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"kAo" = ( +"kzR" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/clipboard, +/obj/structure/machinery/computer/cameras{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/station/power_ring) -"kAr" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/monorail{ - dir = 4; - name = "launch track" +/area/fiorina/station/research_cells) +"kAc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/processor{ + desc = "It CAN blend it."; + icon_state = "blender_e"; + name = "Blendomatic"; + pixel_x = -2; + pixel_y = 10 }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) -"kAt" = ( -/obj/effect/spawner/random/gun/shotgun/highchance{ - mags_max = 0; - mags_min = 0 +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" }, -/turf/open/floor/prison, -/area/fiorina/station/chapel) +/area/fiorina/station/civres_blue) "kAO" = ( /obj/item/folder/yellow, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"kBm" = ( +/obj/item/device/multitool, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"kBt" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "kBE" = ( /obj/item/toy/bikehorn/rubberducky, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"kBV" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/station/park) -"kCg" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ +"kBX" = ( +/obj/structure/stairs/perspective{ dir = 4; - icon_state = "darkbrown2" + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"kCj" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/tumor/aux_engi) -"kCv" = ( -/obj/item/trash/cigbutt/ucigbutt, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "green" }, /area/fiorina/station/chapel) -"kCG" = ( -/obj/structure/reagent_dispensers/watertank, +"kCH" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + dir = 9; + icon_state = "darkbrown2" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/aux_engi) "kCI" = ( /obj/item/weapon/baseballbat/metal, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"kCK" = ( -/obj/item/trash/c_tube, +"kCN" = ( +/obj/structure/inflatable, +/obj/structure/barricade/handrail/type_b, +/obj/structure/barricade/handrail/type_b{ + dir = 8 + }, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/medbay) +"kCS" = ( +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"kCT" = ( +/obj/structure/toilet{ + dir = 8; + pixel_y = 8 + }, +/obj/effect/spawner/random/gun/smg, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "kCY" = ( /obj/item/tool/weldingtool, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"kDg" = ( -/obj/item/trash/cigbutt/cigarbutt, +"kDa" = ( +/obj/structure/platform{ + dir = 4 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"kDj" = ( -/obj/structure/janitorialcart, -/obj/item/clothing/head/bio_hood/janitor{ - pixel_x = -4; - pixel_y = 5 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"kDq" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/park) +"kDw" = ( +/turf/open/floor/prison{ + icon_state = "darkyellowcorners2" }, -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/station/telecomm/lz1_cargo) "kDN" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 4 @@ -17682,48 +17488,20 @@ name = "astroturf" }, /area/fiorina/station/park) -"kDO" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 12 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"kDW" = ( -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/structure/surface/rack, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) "kEj" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"kEp" = ( -/obj/structure/platform_decoration{ - dir = 1 +"kEx" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/turf/open/floor/prison, -/area/fiorina/station/park) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) "kEy" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -17735,11 +17513,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"kEE" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, -/area/fiorina/station/chapel) "kEZ" = ( /obj/item/stack/tile/plasteel{ pixel_x = 12; @@ -17747,77 +17520,67 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"kFa" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/secure_data{ - dir = 4 - }, +"kFd" = ( +/obj/structure/machinery/vending/hydronutrients, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/station/research_cells) -"kFH" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/station/botany) +"kGc" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/station/medbay) -"kFM" = ( -/obj/item/stack/sheet/metal{ - amount = 5 + icon_state = "darkyellow2" }, -/turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_cargo) -"kGh" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, +"kGd" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ dir = 8; - icon_state = "darkbrown2" + icon_state = "whitepurple" }, -/area/fiorina/station/park) -"kGi" = ( -/obj/structure/bed/chair/office/light, +/area/fiorina/station/research_cells) +"kGo" = ( +/obj/structure/machinery/power/apc, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"kGq" = ( -/obj/effect/decal/cleanable/blood/oil, +"kGB" = ( +/obj/structure/platform, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"kGu" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/sprays, +/area/fiorina/station/security) +"kGD" = ( +/obj/structure/largecrate/random/mini/med, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/botany) -"kGw" = ( +/area/fiorina/station/medbay) +"kGZ" = ( /obj/structure/platform{ dir = 1 }, -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ - layer = 3.5 +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform_decoration{ + dir = 5 }, -/area/fiorina/station/power_ring) -"kGW" = ( -/obj/structure/largecrate/random/case, /turf/open/floor/prison, /area/fiorina/station/power_ring) "kHa" = ( /obj/item/storage/toolbox, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"kHc" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "kHf" = ( /obj/structure/platform_decoration{ dir = 1 @@ -17827,23 +17590,55 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"kHu" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryocell2deval" +"kHv" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" }, +/area/fiorina/station/power_ring) +"kHF" = ( /turf/open/floor/prison{ - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) "kHG" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"kIc" = ( -/obj/structure/platform_decoration, -/obj/effect/spawner/random/toolbox, +"kHH" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/disco) +"kHI" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"kHS" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + layer = 2.97; + pixel_y = -14 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"kHZ" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"kIb" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "kIe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/engineering_particle_accelerator{ @@ -17857,6 +17652,22 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) +"kIg" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"kIh" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/landinglight/ds1/delaythree{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) "kIo" = ( /obj/structure/girder, /turf/open/floor/almayer{ @@ -17864,37 +17675,48 @@ icon_state = "plating" }, /area/fiorina/tumor/ship) -"kIF" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +"kIA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + pixel_y = 9 + }, +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"kIO" = ( +/obj/structure/machinery/vending/snack/packaged, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, +/area/fiorina/station/research_cells) +"kJd" = ( +/obj/item/tool/warning_cone, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/fiberbush) +/area/fiorina/station/park) "kJf" = ( /obj/item/tool/wrench, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"kJC" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, +"kJz" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/fuelcell_recycler, +/turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_cargo) -"kJI" = ( -/obj/effect/decal/cleanable/blood{ - desc = "Watch your step."; - icon_state = "gib6" +"kJJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/disco) "kJS" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -17907,29 +17729,65 @@ name = "astroturf" }, /area/fiorina/tumor/servers) -"kJX" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"kJU" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, /turf/open/floor/prison, -/area/fiorina/station/disco) -"kKZ" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/station/security) +"kKd" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"kLo" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/chapel) +"kKs" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) +"kKt" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/weapon/baton, +/turf/open/floor/prison{ dir = 4; - pixel_x = 10; - pixel_y = -3 + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"kKP" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"kKQ" = ( +/obj/structure/platform/stair_cut/alt, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"kLs" = ( +/obj/vehicle/powerloader{ + dir = 8 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) +/area/fiorina/station/power_ring) +"kLz" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/civres_blue) "kLI" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -17945,61 +17803,48 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"kLN" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop{ - pixel_x = 7; - pixel_y = -1 - }, -/obj/item/toy/bikehorn/rubberducky{ - desc = "He's already fed up with your bullshit face."; - name = "Dug the duck"; - pixel_x = -3; - pixel_y = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"kLQ" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"kLT" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"kLX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/phone, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"kLY" = ( -/obj/effect/decal/cleanable/blood/drip, +"kMm" = ( +/obj/structure/barricade/handrail, /turf/open/floor/prison{ - icon_state = "bluecorner" + icon_state = "floor_plate" }, -/area/fiorina/station/chapel) +/area/fiorina/station/central_ring) "kMq" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/civres_blue) +"kMC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/objective, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"kME" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/mineral/plastic, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) "kMU" = ( /obj/effect/spawner/gibspawner/robot, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/maintenance) -"kNl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"kMV" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 }, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/flight_deck) +"kNk" = ( +/obj/item/stack/sheet/metal/medium_stack, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "kNs" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison/chapel_carpet{ @@ -18007,12 +17852,6 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"kNz" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) "kNB" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/drinks/bottle/holywater{ @@ -18025,10 +17864,6 @@ /obj/item/stack/sheet/metal, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ship) -"kNP" = ( -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/prison, -/area/fiorina/station/security) "kNW" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -18046,144 +17881,150 @@ /obj/item/reagent_container/spray/cleaner, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"kOb" = ( +"kOu" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) "kOB" = ( /turf/open/organic/grass{ desc = "It'll get in your shoes no matter what you do."; name = "astroturf" }, /area/fiorina/station/civres_blue) -"kOM" = ( -/obj/structure/monorail{ - name = "launch track" +"kOV" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/folder/black_random, +/obj/item/folder/red{ + pixel_x = 3; + pixel_y = 5 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"kOZ" = ( -/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" + icon_state = "redfull" }, -/area/fiorina/station/power_ring) -"kPe" = ( -/obj/structure/largecrate/random, +/area/fiorina/station/security) +"kPf" = ( +/obj/structure/machinery/computer3/server/rack, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, /area/fiorina/tumor/servers) -"kPi" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - icon_state = "panelscorched" - }, -/area/fiorina/tumor/aux_engi) -"kPv" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/power_ring) "kPz" = ( /obj/structure/lattice, /turf/open/space, /area/fiorina/oob) -"kPC" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"kPJ" = ( -/obj/item/ammo_magazine/smg/nailgun, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) "kPY" = ( /turf/closed/wall/prison, /area/fiorina/tumor/fiberbush) -"kQY" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"kRt" = ( -/obj/structure/prop/structure_lattice{ +"kQr" = ( +/obj/structure/barricade/wooden{ dir = 4; - health = 300 + pixel_y = 4 }, -/obj/structure/prop/structure_lattice{ +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"kQy" = ( +/obj/item/frame/rack, +/obj/structure/barricade/handrail/type_b{ dir = 4; - layer = 3.1; - pixel_y = 10 + layer = 3.5 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, /area/fiorina/tumor/ice_lab) -"kRM" = ( -/obj/item/tool/warning_cone, +"kQG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/ricepudding, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"kSh" = ( -/turf/closed/shuttle/elevator{ - dir = 9 +/area/fiorina/tumor/servers) +"kQH" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/fiorina/station/telecomm/lz1_cargo) -"kSp" = ( -/obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" +/obj/effect/decal/cleanable/blood{ + icon_state = "gibarm_flesh" }, -/area/fiorina/station/medbay) -"kSI" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"kRO" = ( +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 2 }, -/area/fiorina/station/security) -"kSL" = ( -/obj/structure/platform, -/obj/item/clothing/gloves/botanic_leather, +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/structure/surface/rack, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" + }, +/area/fiorina/maintenance) +"kSd" = ( +/obj/structure/toilet{ + pixel_y = 4 }, -/area/fiorina/station/botany) -"kSP" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"kSU" = ( +"kSe" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"kSh" = ( +/turf/closed/shuttle/elevator{ + dir = 9 }, /area/fiorina/station/telecomm/lz1_cargo) -"kTK" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, +"kSB" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/maintenance) +"kSD" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/platform{ + dir = 8; + layer = 2.5 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) +"kTs" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/maintenance) +"kTD" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) "kTL" = ( /obj/item/stack/rods, /obj/item/shard{ @@ -18191,6 +18032,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"kTW" = ( +/obj/structure/barricade/metal/wired, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "kTY" = ( /obj/structure/machinery/defenses/sentry/premade/dumb{ dir = 4 @@ -18203,34 +18050,23 @@ /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"kUr" = ( +"kUo" = ( /obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"kUI" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +/obj/item/device/radio{ + pixel_y = 8 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "bluefull" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/power_ring) "kUR" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +/obj/structure/platform{ + dir = 1 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/flight_deck) "kVg" = ( /obj/item/stack/cable_coil/blue, /turf/open/floor/plating/prison, @@ -18239,73 +18075,78 @@ /obj/structure/largecrate/random, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"kVz" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +"kVN" = ( +/obj/structure/window/framed/prison/reinforced, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "redfull" }, -/area/fiorina/tumor/ice_lab) -"kWj" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/briefcase, +/area/fiorina/station/security) +"kVW" = ( +/obj/item/weapon/pole/wooden_cane, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"kWv" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/handcuffs, +/turf/open/floor/prison, +/area/fiorina/station/security) +"kWx" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 3; + pixel_y = 4 }, -/area/fiorina/station/botany) -"kWn" = ( -/obj/structure/inflatable, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/lowsec) -"kWD" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/toy/deck/uno, +/area/fiorina/station/research_cells) +"kWL" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 10; + icon_state = "floor_marked" }, -/area/fiorina/station/botany) -"kWJ" = ( -/obj/item/tool/shovel/snow, -/obj/item/device/flashlight, -/obj/structure/surface/rack, +/area/fiorina/lz/near_lzII) +"kWS" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/tumor/ice_lab) -"kXw" = ( -/obj/item/circuitboard/machine/rdserver, +"kXk" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 5; + icon_state = "whitepurple" }, -/area/fiorina/tumor/servers) -"kXD" = ( -/obj/structure/window/framed/prison, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"kXH" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/condiment/saltshaker{ - pixel_x = -5; - pixel_y = -6 +/area/fiorina/station/research_cells) +"kXm" = ( +/obj/structure/surface/rack, +/obj/item/weapon/gun/pistol/heavy, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" }, -/obj/item/reagent_container/food/condiment/peppermill{ - pixel_x = -5; - pixel_y = -11 +/area/fiorina/station/medbay) +"kXs" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 }, -/obj/item/reagent_container/food/snacks/cherrypie{ - pixel_y = 7 +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) +/area/fiorina/tumor/aux_engi) +"kXD" = ( +/obj/structure/window/framed/prison, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) "kXR" = ( /obj/structure/machinery/light/small{ dir = 4; @@ -18314,47 +18155,60 @@ }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"kYM" = ( -/obj/item/stack/tile/plasteel, +"kYd" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/medbay) +"kYi" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "handblood" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"kYz" = ( +/obj/structure/closet/crate/medical, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) "kYZ" = ( /obj/structure/surface/table/woodentable, /obj/item/cell/super/empty, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"kZb" = ( -/obj/structure/machinery/vending/snack, +"kZl" = ( +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/flight_deck) +/area/fiorina/tumor/aux_engi) +"kZu" = ( +/obj/structure/toilet{ + pixel_y = 4 + }, +/obj/item/prop/helmetgarb/gunoil{ + pixel_x = 2; + pixel_y = 25 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) "kZy" = ( /obj/item/clothing/mask/breath, /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"kZI" = ( -/obj/item/stool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"kZQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/stamp/captain, -/obj/structure/machinery/processor{ - icon_state = "blender_jug_f_red"; - pixel_x = -6; - pixel_y = 6 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) "kZS" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -18365,71 +18219,50 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) +"kZV" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "lag" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"lax" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"laD" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"laG" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ - density = 0; - pixel_y = 16 +"laz" = ( +/obj/structure/machinery/landinglight/ds1/delayone{ + dir = 8 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/maintenance) +/area/fiorina/lz/near_lzI) "laJ" = ( /obj/structure/airlock_assembly, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"laP" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/telecomm/lz1_tram) -"laZ" = ( -/obj/item/reagent_container/food/drinks/coffee{ - name = "\improper paper cup" - }, +"laK" = ( +/obj/item/stool, /turf/open/floor/prison{ - dir = 5; + dir = 10; icon_state = "yellow" }, -/area/fiorina/station/lowsec) -"lbe" = ( -/obj/item/stack/sheet/metal{ - amount = 5 +/area/fiorina/station/disco) +"laX" = ( +/obj/structure/toilet{ + dir = 8 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"lbk" = ( -/obj/effect/spawner/random/tech_supply, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "sterile_white" }, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/civres_blue) "lbt" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -18440,102 +18273,160 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"lbu" = ( -/obj/effect/decal/hefa_cult_decals/d32{ - icon_state = "bee" +"lbz" = ( +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 1; + pixel_y = 8 }, -/obj/structure/sign/prop2{ - pixel_y = 32 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"lcu" = ( -/obj/structure/inflatable/popped/door, +/area/fiorina/station/power_ring) +"lbK" = ( +/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"lbL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"lbZ" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"lcH" = ( -/obj/structure/prop/structure_lattice{ +"lcm" = ( +/obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 }, -/obj/structure/prop/structure_lattice{ +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"lcn" = ( +/turf/open/floor/prison{ + icon_state = "panelscorched" + }, +/area/fiorina/station/transit_hub) +"lco" = ( +/obj/item/stack/sandbags/large_stack, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"lcq" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space/basic, +/area/fiorina/oob) +"lcE" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"lcJ" = ( +/obj/effect/landmark/queen_spawn, +/turf/open/floor/prison{ dir = 4; - layer = 3.1; - pixel_y = 10 + icon_state = "whitegreencorner" }, -/turf/open/floor/prison, -/area/fiorina/maintenance) +/area/fiorina/tumor/ice_lab) +"ldd" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/stack/rods, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/station/chapel) "lde" = ( /obj/structure/prop/resin_prop{ icon_state = "coolanttank" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"ldm" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 +"ldj" = ( +/obj/item/weapon/harpoon, +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" }, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"ldt" = ( -/obj/item/ammo_casing{ - icon_state = "casing_6" +/area/fiorina/station/disco) +"ldz" = ( +/obj/structure/bed{ + icon_state = "abed" }, +/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ - dir = 1; + dir = 10; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"ldy" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4; - layer = 3.25 - }, +"ldF" = ( +/obj/structure/closet/emcloset, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"ldT" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "blue" }, -/obj/effect/landmark/corpsespawner/ua_riot, +/area/fiorina/station/power_ring) +"ldW" = ( +/obj/item/stack/sandbags, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "kitchen" }, -/area/fiorina/station/medbay) +/area/fiorina/station/power_ring) "ldZ" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"leq" = ( -/obj/effect/landmark/corpsespawner/prison_security, +/obj/item/explosive/grenade/incendiary/molotov, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "red" }, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "lev" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) +"lex" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/prison, +/area/fiorina/station/civres_blue) "leF" = ( /obj/item/trash/cigbutt/ucigbutt, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"leR" = ( -/obj/item/device/whistle, +"leN" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"leZ" = ( +/obj/item/trash/cigbutt, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" @@ -18545,39 +18436,54 @@ /obj/structure/pipes/standard/manifold/visible, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"lfJ" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"lfS" = ( -/obj/structure/surface/table/reinforced/prison, +"lfX" = ( +/obj/structure/inflatable/door, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/tumor/ice_lab) -"lgy" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/research_cells) +"lge" = ( /turf/open/floor/prison{ - icon_state = "redfull" + dir = 5; + icon_state = "blue" }, -/area/fiorina/station/security) -"lhj" = ( -/obj/structure/platform{ - dir = 1 +/area/fiorina/station/civres_blue) +"lgx" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" }, +/area/fiorina/station/park) +"lgG" = ( +/obj/structure/coatrack, +/obj/item/clothing/suit/storage/CMB, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/transit_hub) -"lhQ" = ( +/area/fiorina/station/security) +"lgH" = ( /turf/open/floor/prison{ - dir = 5; icon_state = "green" }, /area/fiorina/tumor/civres) +"lgS" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/park) +"lhJ" = ( +/obj/item/weapon/gun/flamer, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/ammo_magazine/flamer_tank, +/obj/item/ammo_magazine/flamer_tank, +/obj/item/storage/pouch/flamertank, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"lhS" = ( +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "lhY" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." @@ -18591,42 +18497,20 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"lif" = ( -/obj/structure/closet/crate/bravo, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/fuelCell, -/obj/item/stack/sheet/plasteel, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bluefull" +"lit" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/power_ring) -"lik" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/pills/lowchance, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/transit_hub) "liA" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"liT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/central_ring) -"liX" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) "liZ" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -18643,60 +18527,68 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"ljA" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"ljx" = ( +/obj/structure/platform_decoration{ + dir = 8 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"ljW" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 + icon_state = "floor_plate" }, +/area/fiorina/station/civres_blue) +"ljV" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"lkb" = ( +/obj/item/tool/kitchen/knife, +/obj/structure/bed/roller, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"lkr" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 9; + icon_state = "whitegreen" }, /area/fiorina/tumor/ice_lab) -"ljZ" = ( -/obj/item/device/flashlight/flare, +"lku" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_rightengine" + }, +/area/fiorina/oob) +"lkA" = ( +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"lka" = ( -/obj/structure/bed/chair{ - dir = 8 - }, +/area/fiorina/station/security/wardens) +"lkM" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ dir = 4; - icon_state = "yellow" + icon_state = "darkyellowfull2" }, -/area/fiorina/station/lowsec) -"lku" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan_rightengine" +/area/fiorina/tumor/servers) +"lkP" = ( +/obj/item/shard{ + icon_state = "medium" }, -/area/fiorina/oob) -"lle" = ( -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "redfull" }, -/area/fiorina/station/medbay) -"lll" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/cans/aspen, +/area/fiorina/station/security) +"lkQ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"lld" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + dir = 8; + icon_state = "red" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/security) "lls" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -18707,40 +18599,31 @@ /obj/item/reagent_container/food/drinks/cans/souto/diet/cherry, /turf/open/floor/wood, /area/fiorina/station/park) -"llC" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; +"llE" = ( +/obj/structure/machinery/reagentgrinder/industrial{ pixel_y = 10 }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) +"llJ" = ( +/obj/item/stack/rods, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + density = 0; + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"llG" = ( -/obj/structure/prop/almayer/computers/sensor_computer3, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "platingdmg3" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/security) "llQ" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 }, /turf/open/floor/almayer_hull, /area/fiorina/oob) -"llW" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) "lml" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 @@ -18756,259 +18639,287 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"lmr" = ( -/turf/open/floor/prison{ +"lmu" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "bluecorner" + pixel_y = 21 }, -/area/fiorina/station/chapel) -"lmy" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/park) -"lmM" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/flight_deck) +"lnK" = ( +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/telecomm/lz1_tram) +"loj" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"lmV" = ( -/turf/open/floor/prison, -/area/fiorina/tumor/fiberbush) -"lmX" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 + icon_state = "greenfull" }, -/obj/structure/mirror{ - pixel_x = -29 +/area/fiorina/tumor/civres) +"lou" = ( +/obj/item/ammo_box/magazine/misc/flares/empty{ + pixel_x = -1; + pixel_y = 7 }, /turf/open/floor/prison{ - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"lnf" = ( -/obj/structure/bed/chair/comfy{ +/area/fiorina/station/telecomm/lz1_cargo) +"loE" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"lnK" = ( -/turf/closed/wall/r_wall/prison, -/area/fiorina/station/telecomm/lz1_tram) -"lnU" = ( -/obj/item/stool, +/obj/structure/machinery/photocopier, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"lok" = ( +/area/fiorina/tumor/ice_lab) +"loP" = ( +/obj/structure/machinery/optable{ + desc = "This maybe could be used for advanced medical procedures."; + name = "Exam Table" + }, +/obj/item/bedsheet/ce{ + desc = "It crinkles, aggressively."; + name = "sterile wax sheet" + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "redfull" }, -/area/fiorina/oob) -"loy" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, -/obj/effect/landmark/objective_landmark/close, +/area/fiorina/station/medbay) +"lpd" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "blue" }, -/area/fiorina/station/power_ring) -"lpf" = ( -/obj/item/storage/belt/marine, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/chapel) "lpl" = ( /turf/closed/shuttle/ert{ icon_state = "stan27" }, /area/fiorina/lz/near_lzI) -"lpm" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"lpp" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - layer = 2.97; - pixel_y = -14 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/disco) "lpr" = ( /obj/structure/barricade/wooden{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"lps" = ( -/obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"lpA" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"lpV" = ( -/obj/item/device/flashlight/lamp/tripod, +"lpw" = ( +/obj/effect/spawner/random/toolbox, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, /area/fiorina/station/medbay) -"lqi" = ( -/obj/effect/landmark/corpsespawner/engineer, +"lpH" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" + dir = 9; + icon_state = "green" }, -/area/fiorina/station/power_ring) -"lqo" = ( -/obj/structure/dropship_equipment/medevac_system, +/area/fiorina/station/chapel) +"lpS" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"lpW" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_marked" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/telecomm/lz1_cargo) +"lpX" = ( +/obj/structure/machinery/door/airlock/prison/horizontal, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) +"lpZ" = ( +/obj/item/trash/boonie, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) +"lqa" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) "lqq" = ( /turf/open/floor/wood, /area/fiorina/station/chapel) -"lqB" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/structure/window/reinforced{ - dir = 4 +"lqC" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, -/obj/item/weapon/classic_baton, +/area/fiorina/lz/near_lzI) +"lqI" = ( /turf/open/floor/prison{ - icon_state = "redfull" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/security) -"lrm" = ( -/obj/structure/barricade/metal/wired{ - health = 250; - icon_state = "metal_3" +/area/fiorina/lz/near_lzI) +"lqJ" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "lavendergrass_2" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"lro" = ( -/obj/item/stack/cable_coil/blue, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/central_ring) +"lqN" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/obj/effect/spawner/random/gun/rifle, /turf/open/floor/prison{ - icon_state = "whitegreencorner" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/telecomm/lz1_cargo) +"lri" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "green" + }, +/area/fiorina/station/transit_hub) "lrA" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"lrC" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/station/park) "lrE" = ( /obj/structure/bed, /obj/item/bedsheet/rd, /obj/item/toy/katana, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"lsf" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"lsl" = ( -/obj/item/tool/shovel, -/turf/open/floor/prison{ - dir = 6; - icon_state = "green" +"lrI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/milk{ + pixel_x = 2; + pixel_y = 3 }, -/area/fiorina/tumor/civres) -"lso" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/tumor/fiberbush) -"lsr" = ( -/obj/structure/machinery/vending/cola, +"lrV" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/faxmachine, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/park) -"lsU" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_v" +/area/fiorina/station/security) +"lsn" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"lsO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/mineral/plastic/small_stack, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"lsR" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 }, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +/obj/structure/machinery/shower{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "darkyellow2" + icon_state = "kitchen" }, -/area/fiorina/station/telecomm/lz1_cargo) -"ltb" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/area/fiorina/station/lowsec) +"lsZ" = ( +/obj/item/tool/soap, +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/obj/structure/machinery/shower{ + dir = 8 }, -/obj/item/weapon/gun/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "kitchen" }, -/area/fiorina/station/security) -"ltu" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/station/research_cells) +"ltd" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"lte" = ( +/obj/structure/barricade/metal{ + dir = 4; + health = 85; + icon_state = "metal_1" }, -/area/fiorina/station/flight_deck) -"lty" = ( -/obj/item/toy/bikehorn, /turf/open/floor/prison{ dir = 1; icon_state = "darkbrown2" }, /area/fiorina/station/park) -"ltV" = ( +"ltz" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" + dir = 1; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"ltA" = ( +/turf/open/floor/prison{ + icon_state = "floorscorched1" + }, +/area/fiorina/tumor/aux_engi) +"ltQ" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"luf" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" }, -/area/fiorina/lz/near_lzI) -"luv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer3/laptop/secure_data, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) +"lun" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"lux" = ( +/obj/structure/inflatable/door, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "luy" = ( /obj/item/trash/candle, /turf/open/floor/prison/chapel_carpet{ @@ -19016,48 +18927,23 @@ icon_state = "doubleside" }, /area/fiorina/maintenance) -"luH" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 - }, -/obj/item/coin/gold{ - desc = "Coin op, in this place, in this year, localized entirely on this table? .... I uh, yes."; - name = "arcade token"; - pixel_x = -6; - pixel_y = 3 - }, +"luZ" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/flight_deck) -"luU" = ( -/obj/effect/spawner/random/gun/rifle/midchance, +/area/fiorina/tumor/ice_lab) +"lvf" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/aux_engi) "lvg" = ( /obj/item/trash/candle, /turf/open/floor/prison/chapel_carpet, /area/fiorina/maintenance) -"lvh" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gib2" - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "lvi" = ( /obj/structure/sign/poster{ icon_state = "poster6"; @@ -19065,39 +18951,23 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"lvk" = ( -/obj/structure/bed/sofa/south/grey, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"lvs" = ( -/turf/open/floor/prison{ - icon_state = "green" - }, -/area/fiorina/tumor/civres) -"lvx" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) "lvy" = ( /turf/closed/shuttle/ert{ icon_state = "stan_rightengine" }, /area/fiorina/tumor/aux_engi) -"lvN" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 5; - pixel_y = 12 +"lvD" = ( +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, -/obj/item/weapon/gun/pistol/heavy, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) +"lvV" = ( +/obj/structure/barricade/metal/wired, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "lwd" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -19106,51 +18976,57 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"lwB" = ( -/obj/structure/platform, -/obj/structure/bed/chair{ +"lwn" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - layer = 2.7 + pixel_y = 21 }, -/turf/open/floor/prison{ - icon_state = "whitegreen" +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"lwp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/security_space_law{ + pixel_x = 8; + pixel_y = 1 }, -/area/fiorina/station/medbay) -"lwG" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" +/obj/item/book/manual/security_space_law{ + pixel_x = -4; + pixel_y = 4 }, -/area/fiorina/tumor/aux_engi) -"lwK" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/obj/item/book/manual/security_space_law{ + pixel_x = 3; + pixel_y = 5 }, -/area/fiorina/tumor/servers) -"lwO" = ( -/obj/structure/largecrate/supply/supplies/water, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"lxe" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/pistol/heavy, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lwq" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/fiorina/station/medbay) -"lxk" = ( -/obj/structure/platform_decoration, /turf/open/floor/prison{ + dir = 1; icon_state = "whitegreen" }, -/area/fiorina/tumor/ice_lab) -"lyd" = ( -/obj/structure/surface/rack, -/obj/item/folder/black, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/central_ring) +"lwA" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/station/park) +"lxT" = ( +/obj/item/ammo_casing{ + dir = 8; + icon_state = "casing_6" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "lyf" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations have been the leading cause in asbestos related deaths in spacecraft for 3 years in a row now."; @@ -19159,50 +19035,24 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"lyg" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/cups, -/obj/item/storage/fancy/cigarettes/arcturian_ace{ - pixel_x = -6; - pixel_y = 20 - }, -/obj/item/storage/fancy/cigarettes/arcturian_ace{ - pixel_x = 6; - pixel_y = 20 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"lyF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/guestpass{ - dir = 4; - reason = "Visitor" - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "lyJ" = ( /obj/item/tool/crowbar, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"lyX" = ( -/obj/structure/inflatable/popped/door, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"lzb" = ( -/obj/structure/platform_decoration{ - dir = 1 +"lyY" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" }, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"lzd" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/medbay) "lzm" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced/tinted, @@ -19214,54 +19064,94 @@ icon_state = "squares" }, /area/fiorina/station/telecomm/lz1_cargo) -"lzJ" = ( -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"lzO" = ( -/obj/structure/closet/firecloset/full, +"lzq" = ( +/obj/item/tool/wet_sign, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = -1 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"lzz" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/storage/fancy/crayons, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/tumor/ice_lab) -"lzW" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0" +/area/fiorina/station/research_cells) +"lzB" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" }, +/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"lzX" = ( +/area/fiorina/station/botany) +"lzE" = ( +/obj/structure/machinery/vending/snack/packaged, /turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "floor_plate" }, +/area/fiorina/station/civres_blue) +"lzJ" = ( +/turf/open/floor/plating/prison, /area/fiorina/station/park) -"lAf" = ( -/obj/item/tool/crowbar, +"lzP" = ( +/obj/item/ammo_casing{ + dir = 8; + icon_state = "cartridge_2" + }, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 8; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/medbay) +/area/fiorina/station/park) "lAh" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/ice_lab) -"lAv" = ( -/obj/structure/sink{ - pixel_y = 15 +"lAn" = ( +/obj/effect/landmark/survivor_spawner, +/turf/open/floor/prison{ + icon_state = "darkbrown2" }, -/obj/structure/mirror{ - pixel_y = 28 +/area/fiorina/station/park) +"lAE" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"lAM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications{ + dir = 4; + pixel_y = 5 }, /turf/open/floor/prison{ - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"lAS" = ( -/turf/open/floor/prison, /area/fiorina/station/power_ring) +"lAN" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"lAQ" = ( +/obj/structure/machinery/vending/snack/packaged, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "lAV" = ( /obj/structure/bed/stool, /turf/open/floor/plating/prison, @@ -19271,48 +19161,60 @@ /obj/structure/machinery/door/window/northright, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"lBg" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) -"lBJ" = ( -/obj/structure/bed/chair{ +"lBb" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - layer = 2.8 + pixel_x = 10; + pixel_y = 13 }, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"lBY" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) -"lCm" = ( -/obj/item/ammo_casing{ - icon_state = "cartridge_1" +"lBE" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, +/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"lCs" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 +/area/fiorina/station/telecomm/lz1_cargo) +"lBI" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5_1" }, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/lowsec) -"lCw" = ( +"lBR" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/maintenance) +/area/fiorina/station/medbay) +"lBS" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"lCl" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/stamp/captain, +/obj/structure/machinery/processor{ + icon_state = "blender_jug_f_red"; + pixel_x = -6; + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) "lCz" = ( /obj/structure/machinery/light/small, /obj/structure/largecrate/random/barrel/green, @@ -19320,55 +19222,52 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"lCD" = ( -/obj/structure/closet/basketball, -/obj/item/storage/pill_bottle/tramadol/skillless, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"lCE" = ( -/obj/structure/platform{ +"lDo" = ( +/obj/item/storage/fancy/cigar, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"lDC" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ dir = 4 }, -/obj/item/tool/shovel/spade, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/turf/open/space/basic, +/area/fiorina/oob) +"lDG" = ( +/obj/structure/machinery/computer/drone_control, +/obj/structure/window/reinforced{ + dir = 4 }, -/area/fiorina/station/botany) -"lCZ" = ( -/obj/effect/landmark/objective_landmark/medium, +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"lDU" = ( +/obj/item/stack/cable_coil, /turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"lDe" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 6 + icon_state = "floor_plate" }, +/area/fiorina/tumor/servers) +"lEd" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/station/park) -"lDm" = ( -/obj/structure/foamed_metal, +/area/fiorina/station/research_cells) +"lEg" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"lDC" = ( -/turf/closed/wall/prison, -/area/fiorina/station/central_ring) -"lEa" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +/area/fiorina/lz/near_lzII) +"lEk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications{ + dir = 8; + icon_state = "commb" }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) +/turf/open/floor/prison, +/area/fiorina/tumor/servers) "lEp" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 @@ -19390,233 +19289,322 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"lEz" = ( +"lEF" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ - dir = 4 + dir = 8 }, /turf/open/floor/prison{ icon_state = "darkredfull2" }, -/area/fiorina/station/disco) -"lEI" = ( +/area/fiorina/station/security) +"lEL" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/gibspawner/human, /turf/open/floor/prison{ - dir = 10; - icon_state = "blue" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/park) "lFc" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/security/liaison, /turf/open/floor/wood, /area/fiorina/station/park) -"lFj" = ( -/obj/effect/spawner/random/gun/pistol, +"lFg" = ( +/obj/item/paper, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, -/area/fiorina/station/medbay) -"lFx" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/effect/landmark/corpsespawner/ua_riot, +/area/fiorina/station/research_cells) +"lFm" = ( +/obj/structure/bed/roller, +/obj/item/trash/used_stasis_bag, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"lFC" = ( -/obj/item/clothing/head/cmcap, +"lFo" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = 1 + }, /turf/open/floor/prison{ - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"lFO" = ( -/obj/structure/largecrate/supply/supplies/water, +/area/fiorina/lz/near_lzII) +"lFv" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"lFB" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "whitepurple" }, -/area/fiorina/station/telecomm/lz1_cargo) -"lGh" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/landinglight/ds1/delaythree{ - dir = 1 +/area/fiorina/station/research_cells) +"lFD" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"lFM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" }, -/area/fiorina/lz/near_lzI) -"lGm" = ( -/obj/structure/platform{ - dir = 1 +/area/fiorina/station/telecomm/lz1_tram) +"lFQ" = ( +/obj/structure/machinery/m56d_hmg/mg_turret/dropship, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"lFV" = ( +/obj/structure/machinery/space_heater, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"lHc" = ( -/obj/structure/bed{ - icon_state = "abed" +/area/fiorina/tumor/civres) +"lGL" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -1 }, -/obj/item/card/id/visa, /turf/open/floor/prison{ - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/chapel) +"lHw" = ( +/obj/structure/barricade/handrail/type_b, +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) "lHx" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"lHy" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"lHE" = ( +/obj/item/explosive/grenade/high_explosive/frag, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/disco) -"lHB" = ( -/obj/effect/spawner/random/gun/rifle/lowchance, +/turf/open/floor/prison, +/area/fiorina/station/security) +"lIj" = ( +/obj/structure/prop/ice_colony/surveying_device, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "blue" + }, +/area/fiorina/tumor/servers) +"lIk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/trash/cigbutt/ucigbutt, +/obj/item/trash/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = 11 }, -/area/fiorina/lz/near_lzI) -"lHL" = ( -/obj/structure/surface/rack, -/obj/item/device/flashlight, -/obj/effect/decal/cleanable/blood, -/obj/item/attachable/bipod, -/obj/item/device/multitool, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/medbay) +"lIl" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"lIt" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 4; + layer = 6; + name = "overhead pipe"; + pixel_y = 12 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "lIv" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" }, /area/fiorina/lz/near_lzI) -"lIx" = ( -/obj/item/tool/wet_sign, +"lIA" = ( +/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, -/area/fiorina/station/park) +/area/fiorina/tumor/aux_engi) +"lIC" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 8 + }, +/obj/structure/bed/chair/office/dark{ + dir = 4; + layer = 3.25 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "lIG" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/research_cells) +"lIH" = ( +/obj/structure/machinery/processor, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) "lIJ" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"lJa" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" +"lJf" = ( +/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ + layer = 2.6 }, -/area/fiorina/station/telecomm/lz1_cargo) -"lJm" = ( -/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) -"lJv" = ( -/obj/structure/platform, +/area/fiorina/lz/near_lzII) +"lJx" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"lJy" = ( -/obj/structure/platform{ - dir = 8 +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"lJI" = ( +/obj/item/clothing/suit/storage/hazardvest, +/obj/item/clothing/suit/storage/hazardvest, +/obj/structure/surface/rack, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/power_ring) -"lKd" = ( +/area/fiorina/maintenance) +"lJS" = ( +/obj/structure/largecrate/supply/medicine/iv, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "sterile_white" }, -/area/fiorina/tumor/civres) -"lKt" = ( -/obj/structure/sign/poster{ - icon_state = "poster18"; - pixel_y = 32 +/area/fiorina/station/medbay) +"lKI" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"lKP" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "blue" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/chapel) "lLe" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"lLv" = ( -/obj/structure/machinery/landinglight/ds2{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) "lLE" = ( /obj/item/bedsheet/blue, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"lLP" = ( -/obj/structure/bookcase/manuals/research_and_development{ - pixel_y = 10 +"lLQ" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"lLS" = ( +/obj/structure/prop/resin_prop{ + icon_state = "sheater0" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"lLU" = ( -/obj/effect/landmark/corpsespawner/engineer, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/aux_engi) +"lMh" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "lMi" = ( /obj/structure/largecrate/random, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"lMB" = ( -/obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"lMM" = ( +"lMq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + icon_state = "mwo"; + pixel_y = 6 + }, /turf/open/floor/prison{ - icon_state = "blue" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/tumor/servers) -"lNg" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/civres_blue) +"lMV" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications{ + dir = 1 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/station/power_ring) +"lNc" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lNf" = ( +/obj/item/inflatable, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "lNv" = ( /obj/item/handcuffs/cable/pink, /turf/open/floor/prison/chapel_carpet{ @@ -19624,133 +19612,125 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"lNB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/sign/poster{ - desc = "Hubba hubba."; - icon_state = "poster3"; - name = "magazine"; - pixel_x = 6; - pixel_y = 8 +"lNP" = ( +/obj/structure/bed/roller, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"lNR" = ( +/obj/item/trash/cigbutt/ucigbutt, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"lOe" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, -/obj/structure/sign/poster{ - desc = "Hubba hubba."; - icon_state = "poster17"; - name = "magazine" +/area/fiorina/station/telecomm/lz1_tram) +"lOk" = ( +/obj/structure/curtain, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" }, -/obj/structure/sign/poster{ - desc = "The M41A is on the cover."; - icon_state = "poster15"; - name = "magazine"; - pixel_x = -5; - pixel_y = 5 +/area/fiorina/station/power_ring) +"lOm" = ( +/obj/structure/largecrate/random/case/small, +/obj/item/bodybag/tarp/reactive{ + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/medbay) +"lOx" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/security/wardens) -"lOa" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"lOy" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" + icon_state = "darkyellow2" }, -/area/fiorina/station/lowsec) -"lOb" = ( -/obj/structure/closet/crate/internals, -/obj/item/tool/crew_monitor, +/area/fiorina/lz/near_lzI) +"lPA" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"lOo" = ( -/obj/structure/largecrate/random/case/double, +"lPE" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/condiment/enzyme, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"lOB" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 + icon_state = "kitchen" }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 +/area/fiorina/station/power_ring) +"lQo" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/turf/open/space/basic, -/area/fiorina/oob) -"lOE" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "blue" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/chapel) -"lPq" = ( -/obj/structure/prop/dam/crane, +/area/fiorina/station/transit_hub) +"lQJ" = ( +/obj/structure/closet/emcloset, +/obj/effect/landmark/objective_landmark/far, /turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" + dir = 10; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/servers) -"lPV" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/maintenance) +"lQL" = ( +/obj/structure/machinery/space_heater, +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"lPW" = ( -/obj/structure/machinery/light/double/blue{ +/turf/open/floor/prison{ dir = 8; - pixel_x = -10; - pixel_y = 13 + icon_state = "whitegreen" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"lQd" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, +/area/fiorina/tumor/ice_lab) +"lRk" = ( +/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "damaged3" }, -/area/fiorina/station/power_ring) -"lQf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/tool, +/area/fiorina/station/security) +"lRq" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "cell_stripe" }, /area/fiorina/station/park) -"lQZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/emails{ - pixel_y = 5 - }, +"lRr" = ( /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"lRe" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 + dir = 6; + icon_state = "blue" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" +/area/fiorina/station/civres_blue) +"lRT" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/lz/near_lzI) +"lRW" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" }, -/area/fiorina/station/flight_deck) -"lRH" = ( -/obj/item/stack/cable_coil, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"lRI" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/civres_blue) +"lSb" = ( +/obj/structure/machinery/vending/snack, /turf/open/floor/prison, -/area/fiorina/station/park) -"lRT" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/lz/near_lzI) +/area/fiorina/tumor/aux_engi) "lSj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ dir = 2; @@ -19758,22 +19738,19 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"lSY" = ( -/obj/effect/spawner/random/tool, +"lSq" = ( +/obj/item/ammo_magazine/shotgun/buckshot, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"lTm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"lSS" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 }, -/area/fiorina/tumor/ice_lab) +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) "lTp" = ( /obj/structure/sink{ pixel_y = 15 @@ -19782,34 +19759,18 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"lUg" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"lTW" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 }, -/area/fiorina/station/botany) +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "lUi" = ( /turf/closed/shuttle/ert{ icon_state = "stan23" }, /area/fiorina/tumor/ship) -"lUp" = ( -/obj/structure/largecrate/random, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottomright" - }, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) "lUs" = ( /obj/structure/ice/thin/indestructible{ dir = 4; @@ -19833,66 +19794,48 @@ icon_state = "plate" }, /area/fiorina/station/civres_blue) +"lUv" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "lUE" = ( /obj/structure/barricade/metal/wired{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"lVP" = ( -/obj/structure/machinery/constructable_frame, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "damaged2" +"lUZ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/lowsec) -"lWh" = ( -/obj/item/clothing/under/shorts/black, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"lWr" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform/shiva, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"lWD" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + icon_state = "darkredfull2" }, +/area/fiorina/station/research_cells) +"lVA" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "greenblue" + icon_state = "cell_stripe" }, -/area/fiorina/station/botany) -"lXc" = ( -/obj/item/stool, +/area/fiorina/lz/near_lzII) +"lVQ" = ( +/obj/structure/inflatable/door, /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" + icon_state = "whitegreencorner" }, -/area/fiorina/station/lowsec) -"lXf" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" +/area/fiorina/station/medbay) +"lWn" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 }, -/area/fiorina/station/power_ring) -"lXk" = ( -/obj/effect/spawner/random/toolbox, +/obj/item/tool/soap/nanotrasen, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/civres) "lXs" = ( /obj/item/book/manual/marine_law, /obj/item/book/manual/marine_law{ @@ -19916,148 +19859,95 @@ }, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"lYc" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"lYl" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.4 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"lYr" = ( -/obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"lYw" = ( -/obj/item/shard{ - icon_state = "large" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"lYj" = ( +/obj/structure/sink{ + pixel_y = 15 }, -/area/fiorina/station/security) -"lYA" = ( -/obj/structure/machinery/landinglight/ds1{ - dir = 8 +/obj/structure/mirror{ + pixel_y = 28 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "sterile_white" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/civres_blue) "lZf" = ( /turf/closed/shuttle/elevator{ dir = 10 }, /area/fiorina/tumor/aux_engi) -"lZA" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ - icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/research_cells) -"lZC" = ( -/obj/structure/bed/chair{ - dir = 8 - }, +"lZm" = ( +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, -/area/fiorina/maintenance) -"lZL" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; - pixel_y = 2 + dir = 4; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"lZo" = ( /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"mak" = ( -/obj/structure/machinery/shower{ + dir = 4; + pixel_x = 10; pixel_y = 13 }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/fiberbush) +"lZp" = ( /turf/open/floor/prison{ icon_state = "kitchen" }, /area/fiorina/station/lowsec) -"mam" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"lZs" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 2; + layer = 6; + name = "overhead pipe"; + pixel_x = -16; + pixel_y = 12 }, -/obj/structure/platform/stair_cut/alt, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"maC" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/faxmachine, /turf/open/floor/prison, -/area/fiorina/station/security) -"maE" = ( -/obj/item/device/motiondetector, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" +/area/fiorina/tumor/servers) +"lZA" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ + icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' }, -/area/fiorina/station/lowsec) -"mbc" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"mbe" = ( -/obj/effect/decal/cleanable/blood/xeno{ - icon_state = "xgib3" +/turf/open/floor/plating/prison, +/area/fiorina/station/research_cells) +"maA" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/tumor/ice_lab) +"maY" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/flight_deck) +/area/fiorina/tumor/servers) "mbg" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/medbay) -"mbi" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" - }, -/obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) "mbp" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"mbz" = ( +/obj/item/ammo_box/magazine/M16, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "mbC" = ( /obj/item/clipboard, /turf/open/floor/plating/prison, @@ -20072,71 +19962,73 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"mbN" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"mcc" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) "mcr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stock_parts/matter_bin/super, /turf/open/floor/wood, /area/fiorina/station/park) -"mct" = ( -/obj/item/trash/kepler, +"mcH" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "blue" }, -/area/fiorina/station/medbay) -"mcE" = ( +/area/fiorina/tumor/servers) +"mcJ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/shotgun/buckshot, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" + icon_state = "yellowfull" }, -/area/fiorina/lz/near_lzI) -"mcG" = ( -/obj/effect/landmark{ - icon_state = "hive_spawn"; - name = "xeno_hive_spawn" +/area/fiorina/station/disco) +"mdd" = ( +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/servers) +"mdz" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalleft" + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"mdD" = ( +/obj/item/stool, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/tumor/aux_engi) -"mcN" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "bluefull" }, -/area/fiorina/lz/near_lzI) -"mcT" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.4 +/area/fiorina/station/civres_blue) +"mdG" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 24 }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkbrown2" }, -/area/fiorina/tumor/ice_lab) -"mdd" = ( -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/servers) -"mdn" = ( -/obj/structure/machinery/recharge_station, +/area/fiorina/station/park) +"mdH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/card/id/guest{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/card/id/guest, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, /area/fiorina/station/security) "mdJ" = ( @@ -20146,18 +20038,22 @@ /obj/structure/platform/kutjevo/smooth, /turf/open/space, /area/fiorina/oob) -"mea" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/maintenance) -"med" = ( -/obj/structure/reagent_dispensers/watertank, +"mdS" = ( /turf/open/floor/prison{ + dir = 8; + icon_state = "greenbluecorner" + }, +/area/fiorina/station/botany) +"mdY" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "bluecorner" + pixel_x = 10; + pixel_y = 13 }, -/area/fiorina/station/power_ring) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) "mei" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ @@ -20172,51 +20068,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"mel" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"mey" = ( -/obj/item/trash/chunk, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"meF" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null - }, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"meG" = ( -/obj/structure/surface/rack, -/obj/item/tank/emergency_oxygen/engi, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) -"meM" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"mfd" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) "mfe" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/twohanded/sledgehammer{ @@ -20224,26 +20075,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"mfo" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/disco) -"mft" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"mfK" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"mfF" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "darkyellow2" }, -/area/fiorina/station/transit_hub) +/area/fiorina/lz/near_lzI) "mfR" = ( /obj/structure/bed{ icon_state = "psychbed" @@ -20254,45 +20091,35 @@ }, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"mfV" = ( -/obj/structure/inflatable/popped/door, +"mgh" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"mgC" = ( -/obj/structure/sign/poster{ - desc = "You are becoming hysterical."; - icon_state = "poster11"; - pixel_y = 32 + icon_state = "whitegreen" }, +/area/fiorina/tumor/ice_lab) +"mgz" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "sterile_white" }, -/area/fiorina/station/flight_deck) -"mgU" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "birthday" +/area/fiorina/station/research_cells) +"mgE" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) -"mhb" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" +/area/fiorina/lz/near_lzI) +"mgO" = ( +/obj/structure/window{ + dir = 8 }, -/area/fiorina/station/medbay) -"mhe" = ( -/obj/item/tool/wrench, +/obj/item/circuitboard/machine/rdserver, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/research_cells) +/area/fiorina/tumor/servers) "mho" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -20300,19 +20127,6 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"mhu" = ( -/obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"mhv" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) "mhM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -20324,64 +20138,33 @@ /obj/effect/spawner/random/gun/rifle/lowchance, /turf/open/auto_turf/sand/layer1, /area/fiorina/station/flight_deck) -"mhW" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/cigarette, -/obj/item/storage/fancy/cigarettes/emeraldgreen{ - pixel_x = -4; - pixel_y = 9 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"mie" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_18"; - pixel_y = 12 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/security/wardens) -"mii" = ( -/obj/item/weapon/pole/wooden_cane, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"miu" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ - density = 0; - pixel_y = 16 - }, +"mhS" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"miB" = ( -/obj/structure/barricade/metal{ - health = 85; - icon_state = "metal_1" + icon_state = "greenblue" }, -/turf/open/floor/prison, -/area/fiorina/station/park) +/area/fiorina/station/botany) "miU" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/station/disco) -"miZ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"mjm" = ( +/obj/item/reagent_container/food/drinks/coffee{ + name = "\improper paper cup" }, -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/central_ring) +"mju" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "mjx" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) @@ -20391,61 +20174,66 @@ name = "pool" }, /area/fiorina/station/park) -"mjD" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, +"mkn" = ( /turf/open/floor/prison{ - dir = 4; + dir = 6; icon_state = "darkyellow2" }, -/area/fiorina/station/flight_deck) -"mki" = ( -/obj/item/stack/sandbags_empty/half, +/area/fiorina/station/power_ring) +"mkI" = ( +/obj/structure/machinery/microwave{ + desc = "So uh yeah, about that cat..."; + icon_state = "mwbloodyo"; + pixel_y = 6 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"mlb" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + dir = 5; + icon_state = "whitegreen" }, -/area/fiorina/station/flight_deck) -"mky" = ( -/obj/item/storage/firstaid/regular, +/area/fiorina/tumor/ice_lab) +"mld" = ( +/obj/structure/machinery/photocopier, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"mkB" = ( +/area/fiorina/station/security) +"mlg" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"mlu" = ( +/obj/structure/prop/invuln/minecart_tracks/bumper{ + dir = 1 }, -/area/fiorina/station/park) -"mli" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/telecomm/lz1_tram) +/area/fiorina/tumor/servers) "mlC" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/disco) -"mlM" = ( -/obj/structure/machinery/computer3/server/rack, -/obj/structure/barricade/handrail/type_b{ - dir = 8; - layer = 3.5 +"mlU" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"mmh" = ( -/obj/item/trash/burger, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/obj/item/tool/soap/syndie, +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/random/gun/special, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/tumor/civres) "mmp" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stock_parts/matter_bin/adv{ @@ -20459,101 +20247,150 @@ /obj/item/reagent_container/food/drinks/bottle/sake, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"mmP" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/monorail{ - dir = 10; - name = "launch track" +"mnd" = ( +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) -"mni" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) +"mnr" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, +/turf/open/floor/prison, +/area/fiorina/tumor/fiberbush) +"mns" = ( +/obj/item/stool, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) -"mnp" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/research_cells) "mny" = ( /turf/closed/wall/prison, /area/fiorina/station/flight_deck) -"moJ" = ( -/obj/structure/filingcabinet{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = -8; - pixel_y = 4 +"mnJ" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/chapel) +"mnR" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/chapel) +"mom" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/surgery/surgicaldrill, +/turf/open/floor/prison{ + icon_state = "yellowcorner" + }, +/area/fiorina/station/lowsec) +"moK" = ( +/obj/item/clothing/under/shorts/red, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/central_ring) +"moQ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "moW" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"mpb" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison, +/area/fiorina/station/park) "mpf" = ( /obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ layer = 2.6 }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzII) -"mpr" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"mpB" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/area/fiorina/station/power_ring) -"mpO" = ( -/obj/structure/machinery/power/smes/buildable{ - capacity = 1e+006; - dir = 1 +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" }, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"mpT" = ( -/obj/structure/platform{ - dir = 1 +/turf/open/space/basic, +/area/fiorina/oob) +"mpE" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/flight_deck) -"mqc" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, +/area/fiorina/station/botany) +"mpN" = ( +/obj/item/stock_parts/manipulator/pico, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkpurple2" }, -/area/fiorina/lz/near_lzII) -"mqo" = ( -/obj/structure/barricade/metal{ - health = 250; - icon_state = "metal_1" +/area/fiorina/tumor/servers) +"mpR" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"mpY" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/barricade/handrail/type_b{ + dir = 1 }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"mqB" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "red" }, -/area/fiorina/tumor/ice_lab) -"mqY" = ( -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 8 +/area/fiorina/station/security) +"mqJ" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"mqM" = ( +/obj/item/stack/sandbags_empty/half, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) +/area/fiorina/station/flight_deck) "mrk" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -20561,41 +20398,39 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"mrm" = ( -/obj/item/stack/tile/plasteel{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"mrn" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) "mrG" = ( /obj/structure/extinguisher_cabinet, /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/disco) -"mrO" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"mrI" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med, +/turf/closed/wall/prison, +/area/fiorina/station/medbay) +"mrK" = ( +/obj/structure/closet/secure_closet/medical2, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/telecomm/lz1_cargo) +"mrW" = ( +/obj/item/stack/rods, +/turf/open/floor/prison, +/area/fiorina/station/disco) "mrX" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"msd" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "msj" = ( /obj/item/toy/crayon/orange, /turf/open/floor/plating/prison, @@ -20609,16 +20444,6 @@ icon_state = "plating" }, /area/fiorina/tumor/ship) -"mss" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_tram) "msu" = ( /obj/structure/barricade/wooden{ dir = 4; @@ -20626,22 +20451,20 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"msv" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"msF" = ( +/obj/structure/closet/secure_closet/engineering_materials, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/aux_engi) +"msH" = ( +/obj/item/tool/surgery/cautery, /turf/open/floor/prison{ - dir = 9; + dir = 8; icon_state = "yellow" }, /area/fiorina/station/lowsec) -"msS" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) "mtj" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -20650,122 +20473,159 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"mtk" = ( +"mtD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + pixel_y = 7 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" + icon_state = "bluefull" }, -/area/fiorina/tumor/ice_lab) -"mtm" = ( -/obj/effect/spawner/random/toolbox, +/area/fiorina/station/power_ring) +"mtG" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrowncorners2" }, -/area/fiorina/tumor/civres) -"mtr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/milk{ - pixel_x = 2; - pixel_y = 3 +/area/fiorina/station/park) +"mtP" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"mue" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 }, -/area/fiorina/tumor/fiberbush) -"muf" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"muB" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"muD" = ( +/obj/structure/tunnel, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/civres_blue) +"muX" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 }, -/area/fiorina/tumor/civres) -"muO" = ( -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"muT" = ( -/obj/item/device/flashlight/flare/on, /turf/open/floor/prison{ dir = 1; icon_state = "whitegreen" }, /area/fiorina/tumor/ice_lab) -"muZ" = ( -/obj/item/storage/briefcase, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) "mvl" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"mwL" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"mwU" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 - }, -/obj/structure/disposalpipe/segment{ - icon_state = "delivery_outlet"; - layer = 6; - name = "overhead ducting"; - pixel_y = 33 - }, +"mvp" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"mxk" = ( -/obj/item/trash/tray, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/power_ring) -"mxn" = ( +"mvF" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + indestructible = 1; + name = "launch bay door" + }, +/turf/open/floor/plating/prison, +/area/fiorina/oob) +"mvV" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ dir = 4; - icon_state = "bluecorner" + icon_state = "whitegreen" }, -/area/fiorina/station/chapel) -"mxs" = ( -/obj/item/storage/belt/marine/quackers, -/obj/effect/spawner/gibspawner/human, -/turf/open/gm/river{ - color = "#990000"; - name = "pool" +/area/fiorina/tumor/ice_lab) +"mvY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/tool, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"mwu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/station/park) -"mxz" = ( -/obj/item/bedsheet, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/lowsec) -"mxG" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ +"mwK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ dir = 8 }, -/turf/open/space/basic, -/area/fiorina/oob) -"mxO" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/obj/item/phone{ + pixel_x = -3; + pixel_y = 10 }, -/obj/structure/barricade/handrail/type_b{ - dir = 1 +/obj/item/phone{ + pixel_x = 9; + pixel_y = -10 }, -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"mwP" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"mxc" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/lz/near_lzII) +"mxk" = ( +/obj/item/trash/tray, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/power_ring) +"mxm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/plantspray/pests, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"mxs" = ( +/obj/item/storage/belt/marine/quackers, +/obj/effect/spawner/gibspawner/human, +/turf/open/gm/river{ + color = "#990000"; + name = "pool" + }, +/area/fiorina/station/park) "mxQ" = ( /turf/closed/wall/prison, /area/fiorina/station/power_ring) @@ -20773,61 +20633,84 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/wood, /area/fiorina/station/chapel) -"myg" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +"myf" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"myi" = ( +/obj/item/tool/mop, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"myt" = ( +/area/fiorina/station/civres_blue) +"myj" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"myA" = ( +/obj/structure/bed/chair{ + dir = 4; + layer = 2.8 + }, +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison{ - dir = 10; - icon_state = "red" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"myO" = ( -/obj/structure/closet/firecloset/full, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/flight_deck) +"myH" = ( +/obj/item/storage/briefcase, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/transit_hub) +"myJ" = ( +/obj/structure/closet/bombcloset, +/obj/effect/spawner/random/gun/rifle/midchance, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 6; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"mzp" = ( -/obj/structure/disposalpipe/segment{ - icon_state = "delivery_outlet"; - layer = 6; - name = "overhead ducting"; - pixel_y = 33 +/area/fiorina/station/flight_deck) +"myK" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/aux_engi) +"myQ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "whitegreen" }, /area/fiorina/tumor/ice_lab) +"mzn" = ( +/obj/item/frame/firstaid_arm_assembly, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/civres_blue) "mzy" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"mzz" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +"mzJ" = ( +/obj/item/tool/lighter/random{ + pixel_x = 14; + pixel_y = 13 }, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"mzF" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 - }, +/area/fiorina/station/power_ring) +"mzK" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreencorner" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/medbay) "mzS" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1; @@ -20841,99 +20724,81 @@ opacity = 0 }, /area/fiorina/oob) -"mAg" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 1; - pixel_y = 24 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 +"mAs" = ( +/obj/item/broken_device, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/medbay) +"mAt" = ( /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "greenbluecorner" }, -/area/fiorina/station/park) -"mAv" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0; - pixel_x = 10; - pixel_y = -8 +/area/fiorina/station/botany) +"mAK" = ( +/obj/structure/sign/poster{ + desc = "Hubba hubba."; + icon_state = "poster17"; + name = "magazine" }, -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +/obj/structure/sign/poster{ + desc = "Hubba hubba."; + icon_state = "poster3"; + name = "magazine"; + pixel_x = 6; + pixel_y = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"mAz" = ( -/obj/structure/closet/emcloset, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"mAA" = ( -/obj/item/storage/briefcase/inflatable, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"mAB" = ( -/obj/structure/filingcabinet{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/effect/landmark/objective_landmark/medium, +"mAN" = ( +/obj/item/toy/crayon/mime, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"mAE" = ( +/area/fiorina/station/power_ring) +"mAS" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/reagent_dispensers/water_cooler/stacks{ - pixel_y = 11 - }, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"mAG" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 +/area/fiorina/tumor/ice_lab) +"mBG" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/obj/item/tool/soap/nanotrasen, +/area/fiorina/station/disco) +"mBJ" = ( +/obj/item/ammo_box/magazine/misc/flares/empty, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/civres) -"mBm" = ( -/obj/item/storage/briefcase, +/area/fiorina/tumor/ice_lab) +"mBZ" = ( +/obj/structure/machinery/disposal, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) -"mBy" = ( -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 + icon_state = "floor_plate" }, +/area/fiorina/station/security/wardens) +"mCe" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"mBV" = ( -/obj/structure/platform_decoration{ - dir = 8 + dir = 1; + icon_state = "cell_stripe" }, +/area/fiorina/station/lowsec) +"mCp" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 1; + icon_state = "blue" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/chapel) "mCA" = ( /obj/structure/prop/resin_prop, /turf/open/floor/plating/prison, @@ -20942,175 +20807,202 @@ /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/fiorina/station/lowsec) -"mCG" = ( -/obj/structure/machinery/processor, -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" +"mCH" = ( +/obj/item/newspaper, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"mCR" = ( +/obj/structure/platform, +/obj/structure/bed/chair{ + dir = 1; + layer = 2.7 }, -/area/fiorina/station/botany) -"mCT" = ( -/obj/structure/surface/rack, -/obj/item/handcuffs/zip, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "whitegreen" }, -/area/fiorina/station/lowsec) -"mDi" = ( -/obj/structure/platform_decoration, +/area/fiorina/station/medbay) +"mDn" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "green" }, -/area/fiorina/station/central_ring) -"mDs" = ( -/obj/item/stack/sandbags_empty/half, +/area/fiorina/tumor/servers) +"mDq" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, +/obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + dir = 4; + icon_state = "greenblue" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/botany) "mDz" = ( /obj/structure/bed/chair/wood/normal{ dir = 8 }, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"mDV" = ( +"mDO" = ( +/obj/structure/bed{ + icon_state = "abed" + }, /turf/open/floor/prison{ - icon_state = "darkyellowcorners2" + dir = 6; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"mDS" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" }, -/area/fiorina/station/telecomm/lz1_cargo) -"mEb" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/prison, /area/fiorina/station/security) -"mEc" = ( +"mEn" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, /turf/open/floor/prison{ - icon_state = "darkbrowncorners2" + icon_state = "redfull" }, -/area/fiorina/station/park) -"mEv" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/station/security) +"mEJ" = ( +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/research_cells) -"mEL" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket" +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/secure_data, /turf/open/floor/prison, -/area/fiorina/station/chapel) +/area/fiorina/station/security) "mEO" = ( /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"mFf" = ( -/obj/structure/surface/table/reinforced/prison, +"mEU" = ( /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/oob) -"mFh" = ( +/area/fiorina/station/disco) +"mEY" = ( +/obj/item/device/flashlight/on, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + dir = 1; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/medbay) -"mFm" = ( -/obj/item/tool/mop, +/area/fiorina/tumor/aux_engi) +"mFS" = ( +/obj/structure/cargo_container/grant/left, /turf/open/floor/prison{ icon_state = "floor_plate" }, +/area/fiorina/station/power_ring) +"mGf" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue" + }, /area/fiorina/station/civres_blue) -"mFv" = ( -/obj/structure/largecrate/random/mini/ammo, -/turf/open/floor/prison, +"mGr" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) -"mFz" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gibmid1" +"mGN" = ( +/obj/structure/platform{ + dir = 8 }, +/obj/item/prop/almayer/handheld1, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"mGX" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"mGZ" = ( +/obj/item/trash/eat, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 }, -/area/fiorina/station/medbay) -"mGe" = ( -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"mGx" = ( -/obj/item/reagent_container/food/drinks/sillycup, /turf/open/floor/prison, /area/fiorina/station/power_ring) "mHC" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/maintenance) -"mHN" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) "mHR" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/aux_engi) -"mHZ" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 - }, -/obj/effect/landmark/objective_landmark/science, +"mHY" = ( +/obj/item/frame/rack, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"mIk" = ( -/obj/structure/bed/chair{ - dir = 4 + icon_state = "redfull" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/security) +"mIf" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/medbay) -"mIq" = ( -/obj/structure/barricade/handrail{ - dir = 8 +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/servers) +"mIr" = ( +/obj/structure/bed{ + icon_state = "abed" }, +/obj/item/reagent_container/food/snacks/wrapped/barcardine, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/central_ring) +/area/fiorina/station/research_cells) "mIu" = ( /obj/effect/spawner/random/sentry/midchance, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"mIA" = ( -/obj/structure/bed{ - icon_state = "abed" +"mIQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + pixel_y = 6 }, -/obj/item/bedsheet/green, /turf/open/floor/prison{ dir = 10; - icon_state = "yellow" + icon_state = "kitchen" }, -/area/fiorina/station/lowsec) -"mIE" = ( +/area/fiorina/station/civres_blue) +"mJc" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"mJe" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) +/area/fiorina/tumor/aux_engi) +"mJg" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/storage/pill_bottle/inaprovaline/skillless, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) "mJk" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/aspen{ @@ -21130,39 +21022,39 @@ /obj/item/trash/kepler, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"mJy" = ( +"mJH" = ( +/obj/item/device/flashlight/flare/on, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"mJz" = ( -/obj/structure/closet/emcloset, +/area/fiorina/tumor/ice_lab) +"mKd" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 4; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"mKo" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" }, /area/fiorina/maintenance) -"mJM" = ( -/obj/item/trash/uscm_mre, +"mKp" = ( +/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"mKt" = ( -/obj/item/storage/toolbox, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"mKy" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"mKG" = ( +/area/fiorina/station/security) +"mKx" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" + icon_state = "blue_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/botany) "mKS" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -21177,29 +21069,20 @@ }, /turf/open/space, /area/fiorina/oob) -"mLe" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +"mLm" = ( +/obj/structure/platform_decoration{ + dir = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"mLB" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + icon_state = "floor_plate" }, +/area/fiorina/station/botany) +"mLL" = ( +/obj/item/tool/mop, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"mLE" = ( -/obj/structure/closet, -/obj/item/reagent_container/spray/cleaner, -/obj/item/stack/sheet/plasteel/small_stack, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/park) "mLP" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/smartfridge/drinks{ @@ -21207,55 +21090,38 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"mLS" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, +"mLY" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/botany) -"mMb" = ( -/obj/structure/machinery/photocopier{ - pixel_y = 4 + dir = 4; + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"mMa" = ( +/obj/structure/closet/emcloset, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 5; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"mMf" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/reagent_dispensers/water_cooler, +"mMh" = ( +/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"mMo" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"mMi" = ( +/obj/item/tool/weldpack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"mMq" = ( -/obj/item/trash/chips, +/area/fiorina/station/civres_blue) +"mMk" = ( +/obj/structure/prop/resin_prop, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/research_cells) +/area/fiorina/tumor/aux_engi) "mMH" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -21268,98 +21134,108 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"mNg" = ( +"mMP" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/spacecash/c10, -/obj/item/spacecash/c10{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, +/obj/item/trash/plate, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/ice_lab) +"mNc" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison, +/area/fiorina/station/security) "mNh" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"mNj" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin, +"mNB" = ( +/obj/effect/decal/hefa_cult_decals/d32, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"mNN" = ( +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"mNn" = ( -/obj/structure/machinery/door/airlock/almayer/marine, +/area/fiorina/station/telecomm/lz1_cargo) +"mOf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/plastic, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) -"mNC" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/medbay) +"mOm" = ( +/obj/structure/platform{ + dir = 1 }, -/area/fiorina/station/power_ring) -"mNJ" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; - pixel_y = 2 +/obj/structure/platform{ + dir = 4 }, -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 +/obj/structure/platform_decoration{ + dir = 9 }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"mOn" = ( -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "greenblue" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"mOr" = ( -/obj/item/poster, +/area/fiorina/station/transit_hub) +"mOE" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 10; + icon_state = "bright_clean_marked" }, -/area/fiorina/station/research_cells) -"mOC" = ( -/obj/structure/closet/crate/medical, -/obj/effect/spawner/random/toolbox, +/area/fiorina/station/power_ring) +"mOI" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"mOF" = ( +/area/fiorina/station/lowsec) +"mOU" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"mPe" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ dir = 8; - icon_state = "bluecorner" + icon_state = "cell_stripe" }, -/area/fiorina/station/civres_blue) -"mOW" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 1 +/area/fiorina/station/medbay) +"mPf" = ( +/obj/item/ammo_magazine/smg/mp5, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" }, +/area/fiorina/station/telecomm/lz1_cargo) +"mPg" = ( +/obj/item/trash/boonie, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"mPA" = ( -/obj/structure/barricade/wooden, +/area/fiorina/station/power_ring) +"mPn" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/power_ring) "mPW" = ( /obj/structure/prop/structure_lattice{ dir = 4; @@ -21367,29 +21243,28 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_cargo) -"mQe" = ( -/obj/effect/decal/cleanable/blood, +"mPX" = ( /turf/open/floor/prison{ - icon_state = "greenblue" + dir = 5; + icon_state = "darkbrown2" }, -/area/fiorina/station/botany) -"mQn" = ( -/obj/structure/platform_decoration{ - dir = 1 +/area/fiorina/station/park) +"mQy" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null }, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"mQD" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; - pixel_y = 2 + icon_state = "redfull" }, -/obj/item/storage/toolbox/syndicate, +/area/fiorina/station/security) +"mQB" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras, /turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/lz/near_lzI) "mQG" = ( /obj/structure/barricade/handrail/type_b{ dir = 8; @@ -21399,90 +21274,60 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"mQZ" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"mRk" = ( -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/tool/warning_cone{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"mRz" = ( -/obj/item/ammo_casing{ - dir = 6; - icon_state = "casing_10_1" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"mRT" = ( -/obj/structure/platform{ +"mQV" = ( +/obj/item/tool/stamp, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"mRA" = ( +/obj/structure/bed/chair/office/dark{ dir = 1 }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/transit_hub) -"mRU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/surgery, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/medbay) +"mRM" = ( +/obj/structure/monorail{ + dir = 5; + name = "launch track" }, +/turf/open/space, +/area/fiorina/oob) +"mRS" = ( /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) -"mSM" = ( -/obj/item/stack/tile/plasteel{ - pixel_x = 3; - pixel_y = 4 + dir = 5; + icon_state = "darkpurple2" }, +/area/fiorina/station/central_ring) +"mSk" = ( +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"mSo" = ( +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/research_cells) -"mSN" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/station/transit_hub) +"mSp" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/weapon/gun/rifle/m16, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"mSY" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/atmos_alert, +/area/fiorina/station/security) +"mSP" = ( +/obj/effect/landmark/railgun_camera_pos, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"mSZ" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkbrown2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/aux_engi) "mTa" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -21495,130 +21340,128 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"mTq" = ( -/obj/structure/bed/chair{ - dir = 4; - layer = 2.8 - }, -/obj/structure/barricade/handrail/type_b, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"mTy" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - indestructible = 1; - name = "launch bay door" - }, +"mTl" = ( +/obj/item/storage/box/gloves, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/oob) -"mTJ" = ( -/obj/item/stool, -/obj/item/trash/cigbutt{ - pixel_y = 8 + dir = 9; + icon_state = "greenfull" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/transit_hub) +"mTs" = ( +/obj/structure/barricade/wooden{ + dir = 4 }, -/area/fiorina/station/power_ring) +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) "mTM" = ( /obj/item/tool/warning_cone, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"mTS" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"mTX" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"mUk" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" +"mUd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/fiorina/station/medbay) -"mUr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/crayons, +/obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/station/medbay) +/area/fiorina/station/research_cells) "mUA" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"mUV" = ( -/obj/structure/closet/basketball, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"mVg" = ( +"mUK" = ( /obj/structure/window{ - dir = 8 + dir = 4 }, /obj/item/circuitboard/machine/rdserver, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, /area/fiorina/tumor/servers) -"mWg" = ( -/obj/structure/reagent_dispensers/fueltank, +"mVd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/sign/poster{ + desc = "Hubba hubba."; + icon_state = "poster3"; + name = "magazine"; + pixel_x = 6; + pixel_y = 8 + }, +/obj/structure/sign/poster{ + desc = "Hubba hubba."; + icon_state = "poster17"; + name = "magazine" + }, +/obj/structure/sign/poster{ + desc = "The M41A is on the cover."; + icon_state = "poster15"; + name = "magazine"; + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"mWi" = ( -/obj/structure/closet/secure_closet/engineering_materials, -/obj/effect/spawner/random/gun/smg, -/obj/effect/landmark/objective_landmark/medium, +/area/fiorina/station/security/wardens) +"mVk" = ( +/obj/item/stack/sheet/wood, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"mWx" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/area/fiorina/station/telecomm/lz1_cargo) +"mVn" = ( +/obj/structure/largecrate/random, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/station/telecomm/lz1_tram) +"mVO" = ( +/obj/item/tool/extinguisher, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"mWF" = ( -/obj/structure/bed/chair{ - dir = 1; - layer = 2.7 +/area/fiorina/tumor/servers) +"mVY" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "damaged2" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"mWV" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "xtracks" +/area/fiorina/station/security) +"mWs" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 6 }, /turf/open/floor/prison{ dir = 1; - icon_state = "green" + icon_state = "darkbrown2" }, -/area/fiorina/station/chapel) +/area/fiorina/station/park) +"mWO" = ( +/obj/effect/spawner/random/tool, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"mWR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications/simple, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"mWS" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) "mWX" = ( /obj/structure/platform{ dir = 8 @@ -21635,158 +21478,75 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"mXe" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/botany) "mXk" = ( /obj/structure/cable/heavyduty{ icon_state = "1-4" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"mXq" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 +"mXS" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null }, -/obj/structure/machinery/shower{ - dir = 8 +/obj/item/weapon/gun/launcher/grenade/m81, +/obj/item/storage/pill_bottle/kelotane, +/turf/open/floor/prison{ + icon_state = "redfull" }, +/area/fiorina/station/security) +"mYl" = ( +/obj/item/ammo_magazine/rifle/mar40, /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 8; + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"mXI" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +"mYy" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"mXT" = ( -/obj/structure/platform_decoration{ - dir = 8 + dir = 1; + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"mYG" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"mXY" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, -/area/fiorina/station/civres_blue) -"mYo" = ( -/obj/structure/machinery/photocopier, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"mYp" = ( -/obj/structure/bed{ - icon_state = "abed" +/area/fiorina/tumor/ship) +"mZo" = ( +/obj/item/tool/shovel, +/turf/open/auto_turf/sand/layer1, +/area/fiorina/tumor/civres) +"mZy" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/storage/bible/hefa, +/obj/effect/spawner/random/gun/smg/lowchance, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"mYu" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/med_data/laptop{ - dir = 4 +"mZH" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, -/area/fiorina/station/medbay) -"mYx" = ( -/obj/structure/tunnel/maint_tunnel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) -"mYN" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"mYZ" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"mZo" = ( -/obj/item/tool/shovel, -/turf/open/auto_turf/sand/layer1, -/area/fiorina/tumor/civres) -"mZw" = ( -/obj/structure/prop/almayer/computers/sensor_computer1{ - name = "computer" - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/security) -"mZG" = ( -/obj/item/paper/crumpled/bloody, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"mZV" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/central_ring) "naf" = ( /turf/closed/shuttle/ert, /area/fiorina/oob) -"naj" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"naN" = ( -/obj/effect/decal/cleanable/blood, +"naI" = ( +/obj/item/clothing/under/color/orange, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellow" }, -/area/fiorina/station/disco) +/area/fiorina/station/lowsec) "naW" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/civres) @@ -21794,84 +21554,87 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"nbo" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"nbv" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"nbU" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +"nbP" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/park) -"ncn" = ( +/area/fiorina/station/lowsec) +"ncb" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" + dir = 6; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/aux_engi) -"ncP" = ( +/area/fiorina/lz/near_lzI) +"ncj" = ( +/obj/item/device/flashlight/lamp/tripod, /obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"nck" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -5; + pixel_y = -6 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = -11 + }, +/obj/item/reagent_container/food/snacks/cherrypie{ + pixel_y = 7 + }, +/turf/open/floor/prison{ dir = 4; - pixel_x = 10; - pixel_y = -1 + icon_state = "darkyellowfull2" }, +/area/fiorina/station/flight_deck) +"ncs" = ( +/obj/structure/machinery/vending/sovietsoda, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/station/chapel) -"ncQ" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/botany) +"ncF" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"ndh" = ( -/obj/effect/decal/hefa_cult_decals/d32{ - icon_state = "4" +/area/fiorina/tumor/ice_lab) +"ncY" = ( +/obj/structure/bed/sofa/south/grey/right, +/obj/item/storage/briefcase{ + pixel_y = -2 }, -/obj/item/weapon/gun/shotgun/pump{ - starting_attachment_types = list(/obj/item/attachable/stock/shotgun) +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "ndl" = ( /obj/item/storage/box/cups, /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/pills/lowchance, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"nds" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = 11; - pixel_y = 14 - }, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +"ndD" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/largecrate/random/mini/chest/c, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"ndt" = ( -/obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"ndC" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/faxmachine, +/area/fiorina/lz/near_lzII) +"ndQ" = ( +/obj/structure/machinery/recharge_station, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 5; + icon_state = "whitepurple" }, -/area/fiorina/station/security) +/area/fiorina/station/research_cells) "ndZ" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" @@ -21893,49 +21656,65 @@ name = "astroturf" }, /area/fiorina/station/park) -"nee" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 +"nez" = ( +/obj/item/ammo_casing{ + dir = 6; + icon_state = "casing_5" }, /turf/open/floor/prison{ dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"nej" = ( -/obj/item/storage/fancy/cigarettes/lucky_strikes, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, /area/fiorina/station/park) -"nes" = ( +"neE" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/prison, +/area/fiorina/station/security) +"neT" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"neY" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" + icon_state = "cell_stripe" }, -/area/fiorina/station/telecomm/lz1_tram) -"neD" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" +/area/fiorina/station/central_ring) +"nfe" = ( +/obj/effect/decal/cleanable/blood/writing{ + icon_state = "u_psycopath_l"; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/blood/writing{ + icon_state = "u_ketchup_l"; + pixel_x = 8; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/blood/writing{ + icon_state = "u_guilty_l"; + pixel_x = -12; + pixel_y = 2 }, -/area/fiorina/tumor/ice_lab) -"neH" = ( -/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) +"nfh" = ( +/obj/structure/machinery/landinglight/ds2/delayone{ + dir = 8 }, -/area/fiorina/station/research_cells) -"neX" = ( -/obj/structure/platform, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/lz/near_lzII) +"nfu" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryomid" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "nfA" = ( /obj/structure/platform, /obj/item/stack/sheet/metal, @@ -21947,71 +21726,36 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"nfI" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) +"nfZ" = ( +/obj/structure/closet/firecloset, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "nga" = ( /turf/closed/wall/strata_ice/jungle{ desc = "It is made of Fiberbush(tm). It contains asbestos."; name = "synthetic vegetation" }, /area/fiorina/station/civres_blue) -"ngd" = ( -/obj/item/trash/hotdog, +"ngg" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "bluefull" }, /area/fiorina/station/power_ring) -"ngk" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"ngq" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"ngr" = ( -/obj/structure/platform_decoration, -/obj/item/reagent_container/food/drinks/sillycup, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"ngG" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/effect/landmark/objective_landmark/close, +"ngn" = ( +/obj/structure/machinery/deployable/barrier, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"nhd" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 + icon_state = "redfull" }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"nhi" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/tool, -/obj/effect/landmark/objective_landmark/medium, +/area/fiorina/station/security) +"ngF" = ( +/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "whitepurple" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/research_cells) "nho" = ( /obj/structure/platform{ dir = 1 @@ -22022,23 +21766,25 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"nhz" = ( +"nhM" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.5 + }, /turf/open/floor/prison{ - icon_state = "whitepurplecorner" + dir = 1; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) +"nhX" = ( +/obj/structure/machinery/gibber, +/obj/effect/decal/cleanable/blood{ + pixel_x = -6; + pixel_y = 4 }, -/area/fiorina/station/research_cells) -"nhF" = ( -/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "blue_plate" }, -/area/fiorina/station/medbay) -"nhR" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/area/fiorina/station/botany) "nhY" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, @@ -22047,20 +21793,24 @@ /obj/structure/sign/safety/fire_haz, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) +"nie" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "repairpanelslz" + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"nim" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/lz/near_lzI) "nip" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"nis" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - layer = 2.97; - pixel_y = -14 - }, -/turf/open/floor/prison, -/area/fiorina/station/disco) "niw" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -22069,25 +21819,37 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"njq" = ( -/obj/item/tool/weldpack, +"njg" = ( +/obj/effect/spawner/random/gun/rifle/lowchance, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/civres_blue) -"njx" = ( -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"njC" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 +/area/fiorina/station/flight_deck) +"njm" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"nju" = ( +/obj/item/gift, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"njG" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) "njK" = ( @@ -22104,16 +21866,50 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"njT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/taperecorder{ - pixel_x = 8; - pixel_y = 8 +"njN" = ( +/obj/item/stock_parts/micro_laser/ultra, +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"njY" = ( +/obj/structure/inflatable/popped, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"nkg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) +"nkF" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/park) +"nkJ" = ( +/obj/structure/largecrate/supply/medicine/medkits, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"nkM" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) "nlw" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -22130,12 +21926,43 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) +"nmh" = ( +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"nmi" = ( +/obj/structure/machinery/door/airlock/almayer/marine{ + dir = 1; + icon = 'icons/obj/structures/doors/prepdoor_charlie.dmi' + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/research_cells) "nmm" = ( /turf/open/organic/grass{ name = "astroturf" }, /area/fiorina/station/research_cells) -"nmx" = ( +"nmy" = ( +/obj/structure/machinery/space_heater, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/tumor/ice_lab) +"nmK" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"nmL" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, @@ -22144,33 +21971,49 @@ icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"nmQ" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison, -/area/fiorina/station/research_cells) +"nmM" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "nmT" = ( /obj/item/toy/crayon/blue, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"nnx" = ( +"nnr" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"nny" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/emails{ - dir = 8; - pixel_x = -2; - pixel_y = 7 +/obj/item/trash/cigbutt/bcigbutt, +/turf/open/floor/prison{ + icon_state = "bluefull" }, +/area/fiorina/station/power_ring) +"nnC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"nnX" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" +/area/fiorina/station/power_ring) +"nnG" = ( +/obj/structure/platform{ + dir = 4 }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/botany) +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 6 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "noa" = ( /obj/structure/largecrate/supply/supplies/plasteel, /turf/open/floor/plating/prison, @@ -22181,27 +22024,22 @@ name = "astroturf" }, /area/fiorina/station/park) -"noY" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"nor" = ( +/obj/effect/decal/medical_decals{ + dir = 4; + icon_state = "triagedecaldir" }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"nph" = ( -/obj/item/stool, /turf/open/floor/prison{ - icon_state = "damaged2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) -"npp" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/area/fiorina/station/medbay) +"noz" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/botany) +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "npx" = ( /obj/structure/barricade/handrail/type_b{ dir = 4; @@ -22211,158 +22049,121 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"npz" = ( -/obj/structure/monorail{ - name = "launch track" +"nqL" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/spray/cleaner, +/obj/structure/machinery/power/apc{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"nqN" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/security) +"nrd" = ( +/obj/structure/platform{ + dir = 8 }, +/obj/structure/platform, /obj/structure/platform_decoration{ - dir = 1 + dir = 10 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_tram) -"npN" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 - }, -/obj/effect/spawner/random/gun/pistol, +/area/fiorina/station/botany) +"nre" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/prison, +/area/fiorina/station/civres_blue) +"nrn" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + dir = 5; + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) -"npV" = ( -/obj/structure/machinery/vending/snack, +/area/fiorina/maintenance) +"nrU" = ( +/obj/item/tool/pickaxe, +/obj/item/tool/pickaxe{ + pixel_y = 5 + }, +/obj/item/tool/pickaxe{ + pixel_y = 10 + }, +/obj/structure/surface/rack, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/tumor/ice_lab) -"nql" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"nqs" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ +"nsm" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/window/reinforced{ dir = 8; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"nqL" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/spray/cleaner, -/obj/structure/machinery/power/apc{ - dir = 4 + health = 80 }, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"nqN" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/security) -"nqV" = ( -/obj/item/device/cassette_tape/nam, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"nre" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"nrq" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"nrI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/plantspray/pests, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"nrL" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 +"nss" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" }, -/obj/structure/machinery/m56d_hmg, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"nrR" = ( -/turf/open/floor/prison{ +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/research_cells) +"nsD" = ( +/obj/structure/prop/structure_lattice{ dir = 4; - icon_state = "green" - }, -/area/fiorina/station/transit_hub) -"nrY" = ( -/turf/open/floor/prison{ - icon_state = "bluecorner" + health = 300 }, -/area/fiorina/station/chapel) -"nsb" = ( -/obj/structure/bed/chair{ - dir = 4 +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"nsg" = ( +/area/fiorina/tumor/civres) +"ntc" = ( /turf/open/floor/prison{ - dir = 8; + dir = 4; icon_state = "green" }, /area/fiorina/tumor/civres) -"nsn" = ( -/obj/structure/janitorialcart, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"nsx" = ( -/obj/structure/closet/firecloset/full, -/obj/item/storage/pill_bottle/bicaridine/skillless, +"ntf" = ( +/obj/item/implanter/compressed, +/obj/structure/safe, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "redfull" }, -/area/fiorina/tumor/ice_lab) -"nsC" = ( -/obj/item/stack/sandbags_empty/half, +/area/fiorina/station/security) +"ntv" = ( +/obj/structure/window/framed/prison, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) +"ntw" = ( /turf/open/floor/prison{ - icon_state = "darkyellow2" + dir = 8; + icon_state = "cell_stripe" }, /area/fiorina/lz/near_lzI) -"nsH" = ( -/obj/structure/platform, +"ntx" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/security) -"ntg" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_27"; - pixel_y = 6 +/area/fiorina/station/disco) +"ntE" = ( +/obj/structure/barricade/handrail/type_b, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/wood, -/area/fiorina/station/civres_blue) -"ntv" = ( -/obj/structure/window/framed/prison, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) +/area/fiorina/station/disco) "ntH" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -22375,66 +22176,133 @@ }, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"nuE" = ( -/obj/structure/inflatable/popped, +"ntM" = ( +/obj/structure/machinery/space_heater, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"ntZ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"nub" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"nvz" = ( -/obj/structure/flora/pottedplant/random, +/area/fiorina/tumor/servers) +"nuo" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security/wardens) +"nup" = ( +/obj/structure/barricade/handrail/type_b, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"nuN" = ( +/obj/structure/bed/chair/office/light{ + dir = 1 + }, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "sterile_white" }, -/area/fiorina/tumor/civres) -"nvC" = ( -/obj/structure/platform{ +/area/fiorina/station/medbay) +"nuX" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) +"nvi" = ( +/obj/structure/barricade/wooden{ dir = 1 }, -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"nvn" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" }, +/area/fiorina/station/chapel) +"nvs" = ( /obj/structure/platform_decoration{ - dir = 9 + dir = 8 + }, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" }, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/medbay) "nvD" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/botany) -"nvF" = ( -/obj/structure/machinery/vending/cigarette/colony, +"nvK" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"nvO" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/tumor/aux_engi) +"nvX" = ( +/turf/open/floor/prison{ dir = 8; - pixel_x = -10; - pixel_y = -3 + icon_state = "blue" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"nvZ" = ( -/obj/structure/machinery/vending/coffee, +/area/fiorina/station/power_ring) +"nwv" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/ice_lab) -"nwh" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docstripingdir" +/area/fiorina/tumor/aux_engi) +"nwS" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, -/obj/structure/bed/roller, +/area/fiorina/station/telecomm/lz1_tram) +"nwT" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/aux_engi) +"nxc" = ( +/obj/structure/sign/poster{ + icon_state = "poster18"; + pixel_y = 32 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "nxl" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -22445,61 +22313,66 @@ icon_state = "plate" }, /area/fiorina/station/civres_blue) -"nxH" = ( -/obj/item/trash/boonie, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"nxM" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0"; - pixel_y = 2 +"nxq" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 7; + pixel_y = 6 }, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"nyk" = ( -/obj/structure/machinery/power/geothermal, +/area/fiorina/station/chapel) +"nxW" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/obj/structure/barricade/wooden{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 1; - icon_state = "bluecorner" + icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"nyl" = ( -/obj/structure/window{ - dir = 1 +/area/fiorina/station/telecomm/lz1_cargo) +"nxY" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/gloves/latex, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "redfull" }, -/area/fiorina/tumor/servers) -"nyo" = ( +/area/fiorina/station/medbay) +"nyq" = ( /obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"nyy" = ( -/obj/structure/machinery/vending/cigarette/colony, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"nyD" = ( -/obj/structure/barricade/handrail{ - dir = 8 + icon_state = "whitegreen" }, +/area/fiorina/station/medbay) +"nyC" = ( +/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - dir = 8; - icon_state = "red" + icon_state = "floorscorched2" }, /area/fiorina/station/security) -"nyQ" = ( -/obj/structure/dropship_equipment/mg_holder, +"nyF" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/disco) +"nyO" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "nyS" = ( /obj/structure/platform{ dir = 4 @@ -22510,24 +22383,34 @@ /obj/item/tool/extinguisher/mini, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"nza" = ( -/obj/structure/machinery/deployable/barrier, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/security) -"nzm" = ( -/obj/structure/platform, +"nzf" = ( +/obj/structure/machinery/processor, +/obj/effect/decal/cleanable/blood{ + pixel_y = 20 + }, +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"nzi" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"nzu" = ( +/obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"nzp" = ( -/obj/item/clothing/gloves/boxing/blue, +/area/fiorina/station/security/wardens) +"nzw" = ( +/obj/item/clothing/head/soft/yellow, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/servers) "nzI" = ( /obj/structure/largecrate/random, /turf/open/floor/wood, @@ -22548,156 +22431,125 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"nAr" = ( +"nAm" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) -"nBp" = ( -/obj/item/weapon/gun/smg/nailgun, -/obj/structure/surface/rack, +/area/fiorina/lz/near_lzII) +"nAs" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "yellowfull" }, -/area/fiorina/maintenance) -"nBu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, +/area/fiorina/station/lowsec) +"nAK" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellowcorner" + }, +/area/fiorina/station/lowsec) +"nBb" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"nBB" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/lz/near_lzI) -"nBG" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" +/area/fiorina/station/lowsec) +"nBt" = ( +/obj/effect/decal/hefa_cult_decals/d32{ + icon_state = "4" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/obj/item/weapon/gun/shotgun/pump{ + starting_attachment_types = list(/obj/item/attachable/stock/shotgun) }, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"nBK" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/botany) -"nBM" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/ammo_magazine/shotgun/beanbag, +"nBw" = ( /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"nBO" = ( -/obj/effect/spawner/random/powercell, -/turf/open/floor/prison{ - icon_state = "bluefull" + dir = 8; + icon_state = "bluecorner" }, /area/fiorina/station/power_ring) -"nBR" = ( -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 1 +"nCh" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"nCm" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 8; + icon_state = "darkyellowcorners2" }, /area/fiorina/lz/near_lzI) -"nBV" = ( -/turf/open/floor/prison{ - icon_state = "darkpurple2" +"nCt" = ( +/obj/effect/decal/hefa_cult_decals/d32{ + icon_state = "2" }, -/area/fiorina/tumor/servers) -"nCa" = ( -/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"nCl" = ( -/obj/structure/machinery/vending/cigarette/colony, +/area/fiorina/station/medbay) +"nCH" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"nCu" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"nCw" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/obj/structure/barricade/wooden{ - dir = 8 + dir = 5; + icon_state = "yellow" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/disco) +"nCV" = ( +/obj/item/ammo_casing{ + icon_state = "casing_7_1" }, -/area/fiorina/station/telecomm/lz1_cargo) -"nCC" = ( -/obj/item/trash/candy, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "sterile_white" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/medbay) "nCX" = ( /turf/open/organic/grass{ name = "astroturf" }, /area/fiorina/station/park) -"nDJ" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 - }, +"nDq" = ( +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"nDT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/handcuffs, -/turf/open/floor/prison, /area/fiorina/station/security) -"nDW" = ( -/obj/structure/machinery/space_heater, -/obj/structure/platform{ - dir = 8 +"nDr" = ( +/obj/structure/machinery/door/airlock/almayer/maint/autoname{ + name = "\improper Null Hatch REPLACE ME"; + req_access = null; + req_one_access = null }, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"nDI" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "floor_plate" }, /area/fiorina/tumor/ice_lab) -"nEs" = ( +"nEh" = ( +/obj/item/device/flashlight, /turf/open/floor/prison{ - icon_state = "greencorner" + dir = 8; + icon_state = "blue" }, -/area/fiorina/tumor/civres) -"nEy" = ( -/obj/item/explosive/grenade/high_explosive/frag, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/civres_blue) +"nEB" = ( +/obj/item/device/flashlight, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/medbay) +"nEI" = ( +/obj/structure/machinery/deployable/barrier, /turf/open/floor/prison, /area/fiorina/station/security) "nEN" = ( @@ -22707,78 +22559,89 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"nFB" = ( +"nEP" = ( +/obj/structure/closet, +/obj/item/reagent_container/spray/cleaner, +/obj/item/stack/sheet/plasteel/small_stack, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"nEW" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/gift, -/turf/open/floor/wood, -/area/fiorina/station/park) -"nFI" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +/obj/structure/machinery/computer/communications{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"nGk" = ( -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 4 + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/tumor/ice_lab) +"nFb" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/emeraldgreen, +/obj/item/tool/lighter, /turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"nFc" = ( +/obj/item/ammo_casing{ + icon_state = "cartridge_1" + }, +/obj/effect/landmark/survivor_spawner, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"nFB" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/gift, +/turf/open/floor/wood, +/area/fiorina/station/park) +"nFJ" = ( +/obj/structure/stairs/perspective{ dir = 4; - icon_state = "darkyellowfull2" + icon_state = "p_stair_full" }, +/turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"nGq" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, +"nGp" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/disco) "nGy" = ( /obj/item/newspaper, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"nGz" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"nGI" = ( +"nGB" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/station/park) -"nGW" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" + dir = 6; + icon_state = "yellow" }, -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/station/disco) +"nGO" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"nGX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications{ - dir = 8; - icon_state = "commb" +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"nHb" = ( +/area/fiorina/station/disco) +"nGV" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "whitepurple" }, -/area/fiorina/station/chapel) +/area/fiorina/station/research_cells) +"nGZ" = ( +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "nHm" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/cigar, @@ -22787,29 +22650,23 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"nHG" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"nHH" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) "nHZ" = ( /turf/closed/shuttle/ert{ icon_state = "wy_rightengine" }, /area/fiorina/station/medbay) +"nIb" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/device/flashlight/lamp/candelabra{ + layer = 3.2; + pixel_x = 1; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/station/transit_hub) "nIc" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -22827,74 +22684,41 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"nIf" = ( -/obj/structure/platform{ - dir = 4 +"nIw" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" }, -/obj/item/stool, -/obj/item/clothing/shoes/slippers_worn, /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) -"nIh" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - density = 0; - dir = 4 + icon_state = "darkredfull2" }, -/turf/open/floor/prison, /area/fiorina/station/security) -"nIn" = ( -/obj/item/reagent_container/food/snacks/wrapped/booniebars, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"nIo" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" +"nJq" = ( +/obj/structure/platform{ + dir = 1 }, -/area/fiorina/station/botany) -"nIq" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"nIy" = ( -/obj/item/explosive/grenade/high_explosive/frag, +/area/fiorina/station/transit_hub) +"nJu" = ( +/obj/item/stack/rods, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"nJT" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"nID" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8; + icon_state = "whitegreen" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/medbay) +"nKf" = ( +/obj/structure/bed/chair{ + dir = 1 }, -/area/fiorina/lz/near_lzII) -"nJC" = ( -/obj/item/stack/sheet/metal/medium_stack, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"nJQ" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/smg/nailgun, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "bluefull" }, -/area/fiorina/maintenance) +/area/fiorina/station/power_ring) "nKl" = ( /obj/structure/platform{ dir = 1 @@ -22907,16 +22731,17 @@ }, /turf/open/gm/river/desert/deep, /area/fiorina/lz/near_lzII) -"nKq" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"nKo" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + icon_state = "mwo"; + pixel_y = 6 }, -/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/civres_blue) +/area/fiorina/tumor/civres) "nKG" = ( /obj/item/stack/sheet/metal, /turf/open/floor/almayer{ @@ -22935,38 +22760,77 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"nLf" = ( -/obj/structure/bed/chair{ - dir = 8 +"nLS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -5; + pixel_y = -6 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = -11 }, +/obj/item/reagent_container/food/snacks/doughslice, /turf/open/floor/prison{ dir = 4; - icon_state = "blue_plate" + icon_state = "darkyellowfull2" }, -/area/fiorina/station/botany) -"nLh" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/station/flight_deck) +"nLV" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan27" }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 +/area/fiorina/tumor/aux_engi) +"nMg" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkyellow2" }, +/area/fiorina/station/telecomm/lz1_tram) +"nMi" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/transit_hub) -"nLl" = ( +/area/fiorina/station/medbay) +"nMm" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"nMn" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/gun/pistol/lowchance, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"nLV" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan27" +"nMp" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenblue" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/botany) +"nMz" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/central_ring) +"nMI" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/ice_lab) "nMZ" = ( /obj/structure/ice/thin/indestructible, /obj/structure/prop/invuln{ @@ -22986,6 +22850,36 @@ /obj/structure/surface/rack, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"nNS" = ( +/obj/item/device/flashlight/flare, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"nOe" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"nOg" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) +"nOi" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "nOw" = ( /obj/structure/ice/thin/indestructible{ dir = 1; @@ -22994,6 +22888,10 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) +"nOy" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "nOz" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -23003,21 +22901,6 @@ }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"nOF" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"nPa" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "nPj" = ( /obj/item/clothing/glasses/gglasses, /turf/open/space, @@ -23033,76 +22916,113 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"nPO" = ( -/obj/item/tool/pickaxe, -/obj/structure/platform{ - dir = 4 +"nQl" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docstripingdir" }, +/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/medbay) "nQq" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, /turf/closed/wall/prison, /area/fiorina/station/medbay) -"nQN" = ( +"nQu" = ( /turf/open/floor/prison{ - icon_state = "green" - }, -/area/fiorina/station/botany) -"nQS" = ( -/obj/structure/reagent_dispensers/water_cooler{ - density = 0; - pixel_x = -11; - pixel_y = 13 + icon_state = "floor_plate" }, +/area/fiorina/station/central_ring) +"nQE" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) -"nRb" = ( -/turf/open/floor/prison, -/area/fiorina/station/security/wardens) -"nRf" = ( -/obj/structure/largecrate/random/barrel/white, +/area/fiorina/tumor/ice_lab) +"nQF" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison, -/area/fiorina/station/security) -"nRI" = ( -/obj/structure/machinery/light/small{ - dir = 4; - pixel_x = 11; - pixel_y = 10 +/area/fiorina/lz/near_lzI) +"nQH" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"nSa" = ( +/area/fiorina/lz/near_lzII) +"nQJ" = ( /obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, +/obj/structure/sink{ + pixel_y = 32 + }, +/obj/item/tool/kitchen/knife/butcher, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "kitchen" }, -/area/fiorina/tumor/aux_engi) -"nSi" = ( -/obj/structure/machinery/door/window/eastright{ - dir = 2 +/area/fiorina/station/power_ring) +"nRQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -5; + pixel_y = -6 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = -11 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/flight_deck) +"nRT" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"nRU" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"nSh" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "nSx" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/disco) -"nSz" = ( +"nSS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/dropper, +/obj/item/attachable/bipod, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/disco) +/area/fiorina/lz/near_lzI) "nSU" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/emergency, @@ -23113,20 +23033,33 @@ icon_state = "stan5" }, /area/fiorina/tumor/ship) -"nTD" = ( -/obj/structure/platform{ - dir = 8 +"nTv" = ( +/turf/open/floor/prison{ + icon_state = "bluecorner" }, -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/chapel) +"nTV" = ( +/obj/structure/machinery/autolathe/full, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/aux_engi) "nUb" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"nUe" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/prison, +/area/fiorina/station/park) +"nUm" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "nUr" = ( /obj/structure/ice/thin/indestructible, /obj/structure/prop/invuln{ @@ -23152,162 +23085,205 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"nUy" = ( -/obj/structure/machinery/door/morgue{ - dir = 2; - name = "Confession Booth" - }, +"nUJ" = ( +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"nUS" = ( +/obj/structure/machinery/computer3/server/rack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"nUF" = ( -/obj/structure/prop/resin_prop{ - icon_state = "rack" +/area/fiorina/tumor/servers) +"nVu" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 }, -/obj/structure/machinery/light/double/blue, +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/tumor/aux_engi) -"nUJ" = ( -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"nVq" = ( +/area/fiorina/station/research_cells) +"nVE" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"nVN" = ( +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"nVA" = ( -/obj/structure/platform{ - dir = 4 + icon_state = "floor_plate" }, -/obj/item/shard{ - icon_state = "medium"; - name = "ice shard" +/area/fiorina/station/telecomm/lz1_cargo) +"nVR" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"nWh" = ( +/obj/item/tool/wrench, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"nWk" = ( +/obj/effect/spawner/random/gun/smg/midchance, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/ice_lab) -"nVH" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/park) +"nWv" = ( +/obj/item/reagent_container/food/drinks/coffee{ + name = "\improper paper cup" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"nWx" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"nWB" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "darkbrown2" }, -/area/fiorina/station/power_ring) +/area/fiorina/maintenance) "nWC" = ( /obj/item/clothing/shoes/yellow, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"nWK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"nWM" = ( +/obj/structure/machinery/disposal, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "bluefull" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) "nXj" = ( /obj/structure/curtain/black, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"nXq" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" - }, -/area/fiorina/station/disco) -"nYi" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ +"nXu" = ( +/obj/item/storage/backpack/satchel/lockable, +/turf/open/floor/prison, +/area/fiorina/station/security) +"nXE" = ( +/obj/item/ammo_casing{ + icon_state = "casing_6_1" + }, +/obj/item/weapon/gun/smg/mp5, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"nXX" = ( +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/prison, +/area/fiorina/station/security) +"nYi" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"nYk" = ( +"nYB" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) +"nYE" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"nYT" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/barricade/handrail{ dir = 1; - icon_state = "green" + icon_state = "hr_kutjevo"; + name = "solar lattice" }, -/area/fiorina/station/botany) -"nYw" = ( +/turf/open/space/basic, +/area/fiorina/oob) +"nZB" = ( /turf/open/floor/prison{ - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"nYA" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/lz/near_lzII) +"nZI" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/flight_deck) "nZQ" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"nZT" = ( -/obj/effect/decal/cleanable/blood/xeno{ - icon_state = "xgib3" +"nZU" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" }, +/area/fiorina/station/flight_deck) +"oaa" = ( /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, /area/fiorina/station/flight_deck) -"oan" = ( -/obj/item/trash/semki, +"obh" = ( +/obj/structure/window/framed/prison/reinforced, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"oaI" = ( -/obj/structure/barricade/wooden{ - dir = 4; - pixel_y = 4 +/area/fiorina/station/security) +"oby" = ( +/obj/structure/platform{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/park) -"oaX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/supply_kit, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/botany) "obz" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"obE" = ( +/obj/structure/machinery/power/apc{ + start_charge = 0 + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "obI" = ( /obj/effect/landmark/nightmare{ insert_tag = "engineeroffice" }, /turf/closed/wall/prison, /area/fiorina/tumor/civres) -"obL" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"obT" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue" - }, -/area/fiorina/station/civres_blue) "occ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/lime{ @@ -23335,171 +23311,156 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"ocd" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"ocB" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/coin/uranium, -/obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"ocJ" = ( -/obj/structure/toilet{ - dir = 4; - pixel_y = 8 +"ode" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"odl" = ( +/obj/structure/tunnel/maint_tunnel, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"ocS" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 2; - layer = 6; - name = "overhead pipe"; - pixel_x = -16; - pixel_y = 12 + icon_state = "darkpurplefull2" }, +/area/fiorina/tumor/servers) +"ody" = ( +/obj/structure/machinery/autolathe, /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"odg" = ( -/obj/structure/inflatable/popped/door, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"odH" = ( -/obj/item/trash/candle, /turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"odN" = ( -/obj/structure/bed/chair{ - dir = 8 + icon_state = "floor_plate" }, -/obj/effect/spawner/random/gun/rifle/midchance, +/area/fiorina/tumor/civres) +"odC" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "platingdmg1" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/civres) "odQ" = ( /obj/structure/largecrate/supply, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"oem" = ( -/obj/effect/landmark/objective_landmark/close, +"oer" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, -/area/fiorina/tumor/aux_engi) -"oex" = ( -/obj/structure/bed/chair, +/area/fiorina/station/park) +"oev" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"oeN" = ( +/obj/effect/landmark/corpsespawner/prison_security, /turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"oeT" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; dir = 4; + layer = 6; + name = "overhead pipe"; + pixel_y = 12 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"oeV" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + dir = 8; icon_state = "blue_plate" }, /area/fiorina/station/botany) -"oeG" = ( -/obj/structure/largecrate/random, -/obj/effect/spawner/random/powercell, -/obj/item/device/camera/oldcamera{ - pixel_y = 11 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"oeZ" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"ofb" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/prison, -/area/fiorina/station/security) -"ofo" = ( +"oeY" = ( /obj/effect/spawner/random/tool, -/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"ofl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/disco) "ofq" = ( /turf/closed/shuttle/elevator{ dir = 10 }, /area/fiorina/station/telecomm/lz1_cargo) -"ofr" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/disco) "ofw" = ( /obj/structure/machinery/newscaster, /turf/closed/wall/prison, /area/fiorina/station/transit_hub) -"ofy" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/prison{ - icon_state = "darkredfull2" +"ofA" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"ofQ" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"oga" = ( +/obj/structure/bed{ + icon_state = "psychbed" }, -/area/fiorina/station/research_cells) -"ofF" = ( -/obj/structure/prop/souto_land/pole, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 5; + icon_state = "whitegreen" }, -/area/fiorina/station/park) -"ogd" = ( -/obj/structure/machinery/lapvend, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"ogo" = ( +/area/fiorina/station/medbay) +"ogf" = ( /obj/structure/monorail{ - dir = 9; name = "launch track" }, /turf/open/space, /area/fiorina/oob) -"ogr" = ( -/obj/item/stack/cable_coil/pink, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) +"ogs" = ( +/obj/structure/machinery/power/geothermal, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "ogM" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"ogX" = ( -/obj/vehicle/powerloader{ - dir = 8 - }, +"ohc" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"ohs" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/goggles/lowchance, +/area/fiorina/station/security) +"ohl" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkpurple2" + }, +/area/fiorina/station/central_ring) +"ohx" = ( +/obj/item/tool/match, /turf/open/floor/prison{ icon_state = "redfull" }, @@ -23508,23 +23469,6 @@ /obj/structure/platform/kutjevo/smooth, /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/ice_lab) -"ohI" = ( -/turf/open/floor/prison{ - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"ohN" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 - }, -/obj/structure/machinery/shower{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/research_cells) "ohY" = ( /obj/item/circuitboard/machine/pacman/super, /obj/structure/machinery/constructable_frame{ @@ -23532,48 +23476,72 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"oii" = ( -/obj/structure/inflatable/popped, +"oib" = ( +/obj/item/trash/hotdog, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"oiu" = ( +/area/fiorina/station/power_ring) +"oih" = ( +/obj/item/paper/crumpled/bloody, /turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) +"oiF" = ( +/obj/structure/filingcabinet, +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "bluecorner" + pixel_y = 21 }, -/area/fiorina/station/power_ring) -"oiR" = ( -/obj/effect/landmark/queen_spawn, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/tumor/aux_engi) -"oja" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" +/area/fiorina/tumor/servers) +"oiV" = ( +/turf/open/floor/prison{ + icon_state = "darkpurple2" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/tumor/servers) +"oiX" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"ojf" = ( -/obj/structure/machinery/portable_atmospherics/powered/pump, +/area/fiorina/station/telecomm/lz1_cargo) +"ojc" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - icon_state = "whitepurple" + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"ojj" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 }, -/area/fiorina/station/research_cells) -"ojh" = ( -/obj/item/stack/rods/plasteel, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/telecomm/lz1_cargo) +"ojk" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"ojq" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) "ojv" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -23585,6 +23553,14 @@ "ojK" = ( /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_tram) +"ojW" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "okg" = ( /obj/structure/barricade/handrail/type_b{ dir = 1 @@ -23594,6 +23570,13 @@ "okv" = ( /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) +"okE" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/disco) "okF" = ( /obj/structure/blocker/invisible_wall, /obj/structure/ice/thin/indestructible, @@ -23639,12 +23622,25 @@ }, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"okM" = ( -/obj/structure/machinery/vending/dinnerware, +"okG" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "yellowfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/lowsec) +"okJ" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/research_cells) "okT" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, @@ -23665,33 +23661,18 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"oli" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic{ - pixel_x = 3 - }, -/obj/item/trash/cigbutt{ - pixel_y = 8 - }, -/obj/item/trash/cigbutt{ - pixel_x = 4 - }, -/obj/item/paper_bin{ - pixel_x = -10; - pixel_y = 8 - }, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security/wardens) -"olm" = ( -/obj/item/device/binoculars, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"olg" = ( +/obj/structure/closet/crate/delta{ + desc = "A crate with delta squad's symbol on it. Now how did that get here? The words 'HEFA was never real' are scrawled on it in black ink."; + name = "crate" }, -/area/fiorina/tumor/fiberbush) +/obj/item/ammo_box/magazine/shotgun/buckshot, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"olk" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "olo" = ( /obj/structure/machinery/disposal, /turf/open/organic/grass{ @@ -23707,42 +23688,6 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"olB" = ( -/obj/structure/tunnel/maint_tunnel, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) -"olC" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" - }, -/area/fiorina/station/chapel) -"olG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/station_alert{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"olQ" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/turf/open/space/basic, -/area/fiorina/oob) -"olT" = ( -/obj/structure/machinery/computer3/server/rack, -/obj/structure/window{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) "omb" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/guestpass, @@ -23754,28 +23699,6 @@ }, /turf/open/space, /area/fiorina/oob) -"omi" = ( -/obj/structure/bed/sofa/south/grey/left, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security/wardens) -"omw" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean2" - }, -/area/fiorina/station/park) "omD" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/structure/cable/heavyduty{ @@ -23783,47 +23706,112 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"omF" = ( -/obj/structure/curtain/shower, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/tumor/civres) "omI" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"ond" = ( -/obj/structure/machinery/computer3/server/rack, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +"omN" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/tumor/servers) -"onw" = ( -/obj/structure/bed/chair, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/botany) +"omO" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "cell_stripe" }, -/area/fiorina/tumor/servers) -"onz" = ( -/obj/structure/machinery/optable{ - desc = "This maybe could be used for advanced medical procedures."; - name = "Exam Table" +/area/fiorina/station/medbay) +"onb" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/structure/prop/souto_land/pole{ + dir = 1 + }, +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 24 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) -"ooF" = ( +/area/fiorina/station/park) +"onh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ont" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"onB" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/device/multitool, +/obj/item/device/multitool, +/obj/item/device/multitool, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"onW" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/research_cells) +"ooq" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"oou" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/head/cmcap{ + pixel_x = -5; + pixel_y = 14 + }, +/obj/item/clothing/glasses/mbcg{ + pixel_y = -14 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"oox" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison{ + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) +"ooF" = ( /obj/structure/machinery/power/apc, /turf/open/floor/wood, /area/fiorina/station/park) +"ooO" = ( +/obj/item/storage/briefcase/inflatable, +/turf/open/floor/prison, +/area/fiorina/station/disco) "oph" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/reagent_container/food/drinks/bottle/holywater, @@ -23833,49 +23821,44 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"opy" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/floor/prison{ +"opj" = ( +/obj/structure/sink{ dir = 4; - icon_state = "whitegreen" + pixel_x = 12 }, -/area/fiorina/station/medbay) -"opB" = ( -/obj/structure/machinery/constructable_frame, +/obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"opC" = ( +"opM" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"opV" = ( -/obj/structure/bed{ - icon_state = "psychbed" + icon_state = "bluefull" }, +/area/fiorina/station/power_ring) +"opN" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"oqn" = ( +/area/fiorina/station/chapel) +"opP" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ dir = 8; - icon_state = "cell_stripe" + icon_state = "greenblue" }, /area/fiorina/station/botany) -"oqu" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" +"oqG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/park) "orr" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -23889,77 +23872,112 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"ors" = ( -/obj/item/trash/candle, +"ort" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 8; + icon_state = "green" + }, +/area/fiorina/station/chapel) +"orB" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"orC" = ( +/obj/structure/machinery/vending/sovietsoda, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/botany) +"orD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/surgery{ + name = "Lung Transplants for Dummies"; + pixel_y = 4 + }, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"orx" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" +"orV" = ( +/obj/item/tool/weldingtool, +/turf/open/auto_turf/sand/layer1, +/area/fiorina/tumor/civres) +"osv" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/station/medbay) -"orA" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"orG" = ( -/obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"osO" = ( -/obj/structure/inflatable/door, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + dir = 8; + icon_state = "darkbrowncorners2" }, +/area/fiorina/station/park) +"osN" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/prison, /area/fiorina/station/lowsec) -"osR" = ( -/obj/item/trash/semki, +"osQ" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/bedsheet/green, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "yellow" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/lowsec) "osX" = ( /obj/structure/cable/heavyduty{ icon_state = "0-4" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"oti" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"otq" = ( -/obj/effect/decal/cleanable/blood/oil, +"ota" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"otB" = ( -/obj/effect/decal/cleanable/blood/oil, +"otg" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + dir = 8; + icon_state = "darkpurple2" }, -/area/fiorina/lz/near_lzI) -"otG" = ( -/obj/item/tool/scythe, +/area/fiorina/tumor/servers) +"oty" = ( +/obj/structure/closet/bombcloset, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"otz" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/fancy/vials/random, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"otC" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/area/fiorina/station/botany) -"otP" = ( -/obj/item/stack/rods, /turf/open/floor/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/security/wardens) +"otK" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "floor_marked" + }, +/area/fiorina/tumor/servers) "ouH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop{ @@ -23967,58 +23985,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"ouS" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +"ove" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/station/medbay) -"ovc" = ( -/obj/structure/sink{ +/turf/open/floor/prison, +/area/fiorina/station/park) +"ovk" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ dir = 4; - pixel_x = 12 - }, -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; - pixel_x = 1; - pixel_y = -1 + icon_state = "whitegreencorner" }, +/area/fiorina/tumor/ice_lab) +"ovq" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"ovj" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_cargo) "ovr" = ( /obj/structure/girder/displaced, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"ovB" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"ovC" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gib2" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) -"ovE" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellowcorners2" - }, -/area/fiorina/station/flight_deck) "ovJ" = ( /turf/open/floor/wood, /area/fiorina/station/medbay) @@ -24031,64 +24020,45 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"ovZ" = ( -/obj/structure/largecrate/supply/floodlights, +"owd" = ( +/obj/item/storage/backpack/souto, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"owp" = ( +/obj/effect/landmark/static_comms/net_two, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"own" = ( -/obj/item/stack/sheet/metal/medium_stack, -/obj/structure/surface/rack, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"owv" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/iv_drip{ - pixel_y = 19 - }, -/obj/item/bedsheet/green, +/area/fiorina/lz/near_lzII) +"owS" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; + dir = 8; + pixel_x = -10; pixel_y = 13 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 8; + icon_state = "whitepurple" }, -/area/fiorina/station/medbay) -"owG" = ( -/obj/structure/machinery/landinglight/ds1, -/turf/open/floor/prison{ +/area/fiorina/station/research_cells) +"oxp" = ( +/obj/structure/platform{ dir = 4; - icon_state = "darkyellowfull2" + layer = 2 }, -/area/fiorina/lz/near_lzI) -"oxg" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"oxk" = ( -/obj/structure/inflatable/popped/door, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" + icon_state = "floor_plate" }, +/area/fiorina/tumor/ice_lab) +"oxv" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) "oxA" = ( /turf/closed/shuttle/ert{ icon_state = "stan22" @@ -24100,158 +24070,115 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"oxN" = ( -/obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) "oxS" = ( /obj/item/paper/crumpled/bloody, /turf/open/floor/prison/chapel_carpet{ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"oxT" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"oxZ" = ( -/obj/structure/inflatable/popped, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"oxU" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/station/transit_hub) "oyd" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"oyg" = ( +"oyk" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"oyo" = ( +/obj/structure/flora/pottedplant/random, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/security/wardens) -"oys" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/area/fiorina/tumor/civres) +"oyy" = ( +/obj/structure/bed{ + icon_state = "abed" }, /turf/open/floor/prison{ - dir = 8; - icon_state = "green" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/station/chapel) +/area/fiorina/station/research_cells) "oyC" = ( /obj/structure/bed/sofa/south/grey/right, /turf/open/floor/wood, /area/fiorina/station/park) -"ozg" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 +"oyJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 }, -/obj/structure/platform_decoration{ - dir = 9 +/turf/open/floor/wood, +/area/fiorina/station/park) +"oyO" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/structure/largecrate/random, +/obj/structure/platform, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "bright_clean_marked" }, /area/fiorina/station/power_ring) -"ozh" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, +"oyS" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/prison, /area/fiorina/station/disco) -"ozH" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/close, +"oyT" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/station/botany) -"oAa" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/clothing/accessory/armband/cargo{ - desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; - name = "HEFA Order milita armband" +/area/fiorina/station/park) +"oza" = ( +/obj/structure/largecrate/random/case/double, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottom" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/chapel) -"oAm" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" + dir = 10; + icon_state = "sterile_white" }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"oAv" = ( -/obj/item/reagent_container/food/drinks/cans/waterbottle, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"oAH" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"oAL" = ( -/obj/effect/decal/cleanable/blood/writing{ - icon_state = "u_psycopath_l"; - pixel_y = 4 - }, -/obj/effect/decal/cleanable/blood/writing{ - icon_state = "u_ketchup_l"; - pixel_x = 8; - pixel_y = 4 - }, -/obj/effect/decal/cleanable/blood/writing{ - icon_state = "u_guilty_l"; - pixel_x = -12; - pixel_y = 2 +"ozC" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"oAf" = ( +/obj/item/trash/boonie, /turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/power_ring) -"oAQ" = ( -/obj/item/shard{ - icon_state = "large"; - name = "ice shard" + dir = 10; + icon_state = "sterile_white" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/medbay) +"oAj" = ( +/obj/structure/machinery/bot/medbot{ + name = "Dr. O" }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"oAV" = ( -/obj/structure/platform{ - dir = 4 + dir = 10; + icon_state = "whitegreenfull" }, -/turf/open/floor/prison, -/area/fiorina/station/park) -"oBd" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/medbay) "oBj" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/prison, @@ -24264,48 +24191,81 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"oBP" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) "oCe" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/park) -"oCI" = ( -/obj/structure/platform_decoration{ +"oCn" = ( +/obj/structure/platform{ dir = 1 }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/station/park) "oDe" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"oDn" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"oDz" = ( -/obj/structure/bed/chair/comfy, +"oDg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/phone{ + pixel_x = 6; + pixel_y = -15 + }, +/obj/item/phone{ + pixel_y = 7 + }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"oDG" = ( -/obj/structure/barricade/wooden{ - dir = 4 +/area/fiorina/station/security) +"oDh" = ( +/obj/item/stack/rods, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"oDH" = ( +/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" + icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) +"oDV" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"oEi" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) +"oEn" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuelCell, +/obj/item/stack/sheet/plasteel, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "oEs" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -24318,28 +24278,27 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"oEt" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/security_space_law{ - pixel_x = 3; - pixel_y = 5 +"oEu" = ( +/obj/structure/platform_decoration, +/obj/item/shard{ + icon_state = "medium"; + name = "ice shard" }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "whitegreen" }, -/area/fiorina/station/security) +/area/fiorina/tumor/ice_lab) "oED" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"oEI" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"oEH" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/disco) +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) "oEK" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -24354,92 +24313,125 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"oEY" = ( -/obj/item/explosive/grenade/incendiary/molotov, +"oEN" = ( +/obj/item/prop/almayer/comp_closed{ + pixel_x = -1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"oEQ" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "red" + dir = 6; + icon_state = "blue" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) +"oEX" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/fiorina/station/botany) +"oFf" = ( +/obj/item/reagent_container/food/drinks/cans/aspen, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "oFk" = ( /obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/almayer{ icon_state = "plate" }, /area/fiorina/tumor/ship) -"oFv" = ( +"oFp" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 + }, /obj/structure/machinery/light/double/blue{ - pixel_y = -1 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ + dir = 1; icon_state = "yellow" }, -/area/fiorina/station/disco) +/area/fiorina/station/lowsec) "oFI" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"oFW" = ( -/obj/structure/platform, -/obj/structure/bed/chair{ - dir = 1; - layer = 2.7 +"oFO" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryotop" + }, +/obj/structure/pipes/standard/simple/visible{ + dir = 9 }, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"oGm" = ( +"oFU" = ( /obj/structure/machinery/light/double/blue{ dir = 4; pixel_x = 10; - pixel_y = -3 + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 4; + icon_state = "greenblue" }, -/area/fiorina/tumor/civres) -"oGT" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/botany) +"oGg" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, -/area/fiorina/station/park) -"oGU" = ( -/obj/structure/surface/table/woodentable, -/obj/structure/machinery/recharger{ - pixel_y = 4 + dir = 4; + icon_state = "darkbrown2" }, -/turf/open/floor/carpet, -/area/fiorina/station/civres_blue) -"oHk" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_v" +/area/fiorina/tumor/aux_engi) +"oGy" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) -"oHn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/pill_bottle/imidazoline, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, /area/fiorina/tumor/ice_lab) -"oHI" = ( +"oGR" = ( +/obj/structure/machinery/landinglight/ds1/delaythree{ + dir = 1 + }, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" }, +/area/fiorina/lz/near_lzI) +"oGU" = ( +/obj/structure/surface/table/woodentable, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/fiorina/station/civres_blue) +"oHi" = ( +/obj/item/stool, +/turf/open/floor/prison, /area/fiorina/station/disco) +"oHm" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) "oHX" = ( /obj/structure/ice/thin/indestructible{ dir = 4; @@ -24448,6 +24440,13 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) +"oIg" = ( +/obj/structure/platform, +/obj/structure/reagent_dispensers/oxygentank{ + layer = 2.6 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "oIq" = ( /obj/structure/ice/thin/indestructible{ dir = 1; @@ -24460,19 +24459,49 @@ }, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"oIR" = ( +"oIz" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical/green, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"oIE" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) +"oJd" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"oJl" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "bluecorner" + pixel_y = 21 }, -/area/fiorina/station/chapel) -"oJs" = ( -/obj/structure/machinery/photocopier, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/botany) +"oJm" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"oJK" = ( +/obj/structure/window/reinforced/tinted, +/obj/item/storage/briefcase, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/lz/near_lzI) "oJL" = ( /obj/structure/machinery/light/small{ dir = 8; @@ -24487,43 +24516,31 @@ }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"oJO" = ( -/obj/structure/platform{ - dir = 4 +"oJN" = ( +/obj/structure/surface/table/reinforced/prison{ + flipped = 1 }, +/obj/item/reagent_container/food/snacks/eat_bar, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"oJU" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/station/medbay) +"oJY" = ( +/obj/item/stack/sandbags/large_stack, /turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"oJW" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"oKa" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" + dir = 6; + icon_state = "green" }, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"oKl" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/civres) +"oKf" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/transit_hub) +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) "oKn" = ( /obj/structure/holohoop{ dir = 4; @@ -24541,60 +24558,71 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"oKQ" = ( -/obj/structure/machinery/floodlight{ - name = "Yard Floodlight" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) "oKV" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/station/civres_blue) -"oLd" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, +"oLF" = ( +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"oLB" = ( -/obj/structure/platform{ - dir = 8 + icon_state = "darkbrown2" }, -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_half_cap" +/area/fiorina/station/park) +"oLK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/objective, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"oMy" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 +/area/fiorina/tumor/servers) +"oLV" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"oLX" = ( +/obj/structure/surface/rack, +/obj/item/tank/emergency_oxygen/engi, +/turf/open/floor/prison{ + icon_state = "bluecorner" }, +/area/fiorina/station/power_ring) +"oMf" = ( +/obj/structure/bed/chair/comfy, /turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security/wardens) +"oMu" = ( +/obj/effect/landmark/survivor_spawner, +/turf/open/floor/prison, +/area/fiorina/station/park) +"oMw" = ( +/obj/structure/toilet{ dir = 8; - icon_state = "darkyellow2" + pixel_y = 8 }, -/area/fiorina/lz/near_lzI) -"oMz" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = 1; + pixel_y = -1 }, -/area/fiorina/station/lowsec) -"oMR" = ( -/obj/item/paper, /turf/open/floor/prison{ - dir = 8; + dir = 5; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) +"oNu" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "oNx" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -24603,6 +24631,37 @@ name = "astroturf" }, /area/fiorina/station/research_cells) +"oNC" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"oOg" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4; + layer = 3.5 + }, +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"oOh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "oOi" = ( /obj/effect/decal/hefa_cult_decals/d32, /turf/open/floor/prison/chapel_carpet{ @@ -24610,75 +24669,75 @@ icon_state = "doubleside" }, /area/fiorina/maintenance) -"oOs" = ( +"oOk" = ( +/obj/structure/platform, +/obj/structure/bed/chair{ + dir = 1; + layer = 2.7 + }, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" + icon_state = "whitegreen" }, -/area/fiorina/station/central_ring) -"oOv" = ( -/obj/structure/barricade/wooden{ - dir = 8 +/area/fiorina/station/medbay) +"oOp" = ( +/obj/structure/machinery/power/smes/buildable{ + capacity = 1e+006; + dir = 1 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"oOK" = ( -/obj/item/device/multitool, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"oOw" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - dir = 9; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/civres_blue) +"oOU" = ( +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) "oOV" = ( /obj/structure/machinery/filtration/console{ pixel_y = 22 }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"oPC" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"oPJ" = ( -/obj/effect/decal/cleanable/blood/gibs, -/obj/item/ammo_magazine/rifle/mar40, +"oPn" = ( +/obj/structure/bed/roller, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/medbay) "oPN" = ( /obj/structure/inflatable/popped/door, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"oPW" = ( -/obj/structure/closet/crate/medical, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/gloves/latex, +"oPR" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/disco) +"oPU" = ( +/turf/open/floor/prison, +/area/fiorina/station/park) "oPZ" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) -"oQz" = ( -/obj/item/prop/almayer/comp_closed{ - pixel_x = -1 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"oQF" = ( -/obj/effect/decal/cleanable/blood/oil, +"oQk" = ( +/obj/structure/inflatable/popped, /turf/open/floor/prison{ - dir = 8; - icon_state = "greenblue" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/botany) +/area/fiorina/station/medbay) "oQI" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; @@ -24688,57 +24747,71 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"oQY" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" +"oQS" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/security) -"oRb" = ( -/obj/item/trash/boonie, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/disco) +"oRg" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "oRR" = ( /obj/structure/surface/table/reinforced/prison, /turf/open/floor/wood, /area/fiorina/station/park) -"oSo" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, +"oSn" = ( +/obj/structure/inflatable/door, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 5; + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"oSK" = ( -/obj/structure/monorail{ - dir = 9; - name = "launch track" +"oSz" = ( +/obj/item/shard{ + icon_state = "medium" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"oSR" = ( -/obj/item/device/flashlight, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/research_cells) -"oTe" = ( +/area/fiorina/station/disco) +"oTa" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger{ - pixel_y = 4 +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt{ + pixel_y = 8 }, +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"oTi" = ( +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"oTy" = ( +/obj/structure/prop/structure_lattice{ + health = 300 + }, +/obj/structure/prop/structure_lattice{ + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/station/security) -"oTl" = ( -/obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/aux_engi) "oTz" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -24751,24 +24824,27 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) -"oTG" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 8 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) -"oTH" = ( -/obj/structure/bed/chair, +"oTP" = ( /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "darkyellow2" }, -/area/fiorina/station/security) -"oTU" = ( -/turf/open/floor/prison{ +/area/fiorina/station/telecomm/lz1_tram) +"oTS" = ( +/obj/structure/stairs/perspective{ dir = 4; - icon_state = "darkbrowncorners2" + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"oTT" = ( +/obj/structure/platform_decoration{ + dir = 8 }, +/turf/open/floor/prison, /area/fiorina/station/park) "oUg" = ( /turf/closed/wall/prison, @@ -24781,75 +24857,87 @@ /turf/open/space, /area/fiorina/oob) "oVk" = ( -/obj/structure/sign/prop3{ - desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." - }, -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/central_ring) -"oVn" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"oVC" = ( +/obj/vehicle/train/cargo/trolley, /turf/open/floor/prison{ - dir = 6; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"oWc" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/station/transit_hub) +"oWw" = ( /turf/open/floor/prison{ - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"oWz" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"oWB" = ( -/obj/structure/prop/structure_lattice{ dir = 4; - health = 300 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 + icon_state = "darkbrowncorners2" }, +/area/fiorina/station/park) +"oWC" = ( +/obj/item/stack/sandbags/large_stack, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/disco) "oWF" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"oWV" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"oWG" = ( +/obj/item/ammo_casing{ + dir = 6; + icon_state = "casing_10_1" }, -/area/fiorina/tumor/aux_engi) -"oWW" = ( /turf/open/floor/prison{ dir = 1; - icon_state = "redcorner" + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"oWY" = ( +/obj/structure/largecrate/random, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"oXb" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "redfull" }, /area/fiorina/station/security) -"oXE" = ( -/obj/item/newspaper, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"oXJ" = ( -/obj/structure/machinery/shower{ - dir = 8 +"oXg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"oXk" = ( +/obj/structure/closet/secure_closet/personal, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"oXD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/aspen, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" }, /area/fiorina/station/lowsec) +"oXI" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "oXR" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -24867,46 +24955,65 @@ /obj/item/stock_parts/manipulator/nano, /turf/open/floor/wood, /area/fiorina/station/park) -"oYc" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 +"oYs" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/barricade/handrail/type_b{ + dir = 1 }, -/area/fiorina/station/research_cells) -"oYm" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5" +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"oYG" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/obj/item/clothing/suit/armor/vest/security, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 4; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"oYH" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/chapel) +"oYW" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"oYM" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/power_ring) -"oYX" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/tumor/servers) +"oZf" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) -"oZc" = ( +/area/fiorina/tumor/ice_lab) +"oZi" = ( +/obj/item/clothing/under/color/orange, +/turf/open/floor/prison, +/area/fiorina/station/security) +"oZj" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - icon_state = "darkyellowcorners2" + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"oZk" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/ice_lab) +"oZx" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" }, +/turf/open/floor/prison, /area/fiorina/station/flight_deck) "oZy" = ( /obj/structure/platform{ @@ -24924,15 +25031,20 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"oZR" = ( +"oZS" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/door/window/eastright{ - dir = 1 +/obj/item/clipboard, +/turf/open/floor/prison{ + icon_state = "bluefull" }, +/area/fiorina/station/power_ring) +"oZU" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) +/area/fiorina/station/research_cells) "pab" = ( /obj/item/tool/weldpack{ pixel_x = 6 @@ -24943,70 +25055,69 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) +"pae" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docdecal1" + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "pah" = ( /obj/structure/platform{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"pan" = ( -/obj/item/reagent_container/food/snacks/meat, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"pat" = ( -/obj/item/clothing/accessory/armband/cargo{ - desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; - name = "HEFA Order milita armband" +"pai" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food{ + desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; + name = "\improper Fiorina Green Block Canteen Vendor" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"pax" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 + icon_state = "floor_plate" }, +/area/fiorina/station/lowsec) +"paF" = ( +/obj/item/tool/shovel/etool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"paQ" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/station/civres_blue) +"paI" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"paO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 }, -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/security) "pbp" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"pbC" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"pbF" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ +"pbv" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ dir = 4; - icon_state = "darkyellow2" + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/lz/near_lzI) -"pbS" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/surgical_tray/empty, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) "pbV" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -25021,66 +25132,34 @@ }, /turf/open/space, /area/fiorina/oob) -"pbZ" = ( -/obj/item/trash/plate{ - pixel_x = 1; - pixel_y = 3 - }, +"pbX" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" - }, -/area/fiorina/station/civres_blue) -"pcl" = ( -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 + icon_state = "red" }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/area/fiorina/station/security) +"pca" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/lowsec) +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "pcu" = ( /turf/open/floor/almayer_hull, /area/fiorina/oob) -"pcD" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) "pcK" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/drinks/cans/aspen, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"pdf" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"pdm" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"pdw" = ( -/obj/item/stack/rods, +"pcN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/medbay) +/area/fiorina/station/research_cells) "pdB" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -25088,156 +25167,191 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) -"pdV" = ( -/obj/structure/machinery/shower{ - dir = 8 +"pdN" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"peh" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/chapel) +"pdP" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"pdX" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "lavendergrass_1" }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, +/area/fiorina/station/central_ring) +"pen" = ( +/obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "green" }, -/area/fiorina/station/medbay) -"pes" = ( -/obj/structure/bed/chair, +/area/fiorina/station/transit_hub) +"peA" = ( +/obj/structure/machinery/computer/communications{ + dir = 4; + pixel_y = 5 + }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/servers) +"peP" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/area/fiorina/station/power_ring) -"peY" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "darkyellow2" }, -/area/fiorina/tumor/aux_engi) -"pfi" = ( -/obj/structure/monorail{ - dir = 6; - name = "launch track" +/area/fiorina/station/telecomm/lz1_cargo) +"pgb" = ( +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/ice_lab) +"pgx" = ( +/obj/structure/machinery/computer3/server/rack, +/obj/structure/window{ + dir = 8 }, -/turf/open/space, -/area/fiorina/oob) -"pfE" = ( -/obj/item/tool/wrench, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/lowsec) -"pfW" = ( -/obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"pgV" = ( -/obj/item/book/manual/atmospipes, +/area/fiorina/tumor/servers) +"pgQ" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 10; + icon_state = "blue" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/chapel) "phe" = ( /obj/structure/girder, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"phg" = ( -/obj/effect/spawner/random/tool, +"pho" = ( +/obj/item/stack/sheet/wood, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/research_cells) "phz" = ( /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"pie" = ( +"phC" = ( +/obj/item/newspaper, /turf/open/floor/prison{ - icon_state = "platingdmg3" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/transit_hub) -"pip" = ( -/obj/structure/platform_decoration{ +/area/fiorina/tumor/ice_lab) +"phQ" = ( +/obj/structure/platform{ dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"piy" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"piL" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "darkbrowncorners2" + icon_state = "whitegreen" }, -/area/fiorina/tumor/aux_engi) -"pjT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"pka" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/tumor/ice_lab) +"pim" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/lowsec) +"piw" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform_decoration{ + dir = 9 }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"pjf" = ( +/obj/item/ammo_magazine/rifle/m16, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, /turf/open/floor/prison{ - dir = 5; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"pkc" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/dropper, -/obj/item/attachable/bipod, +/area/fiorina/station/security) +"pjg" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 9; + icon_state = "green" }, -/area/fiorina/lz/near_lzI) -"pkp" = ( -/obj/item/stack/cable_coil/cut, -/turf/open/floor/prison, /area/fiorina/tumor/servers) -"pkw" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" +"pjE" = ( +/obj/structure/filingcabinet/filingcabinet{ + pixel_x = 8 }, -/obj/structure/platform{ +/obj/structure/filingcabinet/filingcabinet{ + pixel_x = -8 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"pjR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"pkG" = ( -/obj/item/stool, +/obj/item/phone{ + pixel_x = 7; + pixel_y = -16 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 16 + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "floor_plate" }, +/area/fiorina/station/security) +"pjT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/plating/prison, /area/fiorina/station/power_ring) +"pjW" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/tumor/ice_lab) +"pkB" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzI) "pkM" = ( /obj/structure/largecrate/machine, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"plc" = ( -/obj/structure/machinery/computer/arcade, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"plr" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"plh" = ( /turf/open/floor/prison{ - icon_state = "blue_plate" + dir = 10; + icon_state = "greenblue" }, /area/fiorina/station/botany) "plu" = ( @@ -25247,83 +25361,78 @@ "plK" = ( /turf/closed/wall/prison, /area/fiorina/station/security/wardens) -"pmg" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"pma" = ( +/obj/structure/foamed_metal, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"pmo" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +/area/fiorina/station/civres_blue) +"pmn" = ( +/obj/structure/surface/rack, +/obj/item/poster, +/obj/item/poster, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) -"pmy" = ( -/obj/item/device/t_scanner, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/lz/near_lzI) +"pmv" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 2; + layer = 6; + name = "overhead pipe"; + pixel_x = -16; + pixel_y = 12 }, -/area/fiorina/station/civres_blue) -"pmM" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/park) -"pnc" = ( -/obj/structure/largecrate/random/case/double, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottom" +/area/fiorina/tumor/servers) +"pmC" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_v" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"pnv" = ( -/obj/structure/reagent_dispensers/watertank, +/area/fiorina/station/telecomm/lz1_cargo) +"pnh" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "greenblue" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/botany) -"pnA" = ( -/obj/item/toy/handcard/uno_reverse_blue, +/area/fiorina/tumor/servers) +"pnx" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"pnP" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/lowsec) "pnS" = ( /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/servers) -"poo" = ( -/obj/item/tool/crowbar/red, +"poC" = ( +/obj/structure/machinery/photocopier, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"poD" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" + icon_state = "darkredfull2" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"ppb" = ( -/obj/structure/bed/chair{ - dir = 4 +/area/fiorina/station/research_cells) +"ppq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/security) "ppG" = ( /obj/item/stack/rods/plasteel, /turf/open/floor/plating/prison, @@ -25334,26 +25443,17 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"ppK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/donut_box{ - pixel_y = 6 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"ppO" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, +"ppQ" = ( +/obj/item/storage/briefcase, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"ppS" = ( +/obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + dir = 1; + icon_state = "green" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/transit_hub) "ppX" = ( /obj/structure/closet/secure_closet/medical2{ req_access_txt = "100" @@ -25363,29 +25463,13 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"ppY" = ( -/obj/structure/barricade/sandbags{ - dir = 4; - icon_state = "sandbag_0"; - pixel_y = 2 - }, -/obj/item/storage/pouch/tools/full, +"ppZ" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"pqq" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/tool, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreenfull" }, -/area/fiorina/station/transit_hub) +/area/fiorina/tumor/ice_lab) "pqz" = ( /obj/item/clothing/suit/storage/labcoat, /turf/open/organic/grass{ @@ -25396,19 +25480,18 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"pqG" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) "pqO" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" }, /area/fiorina/tumor/ship) +"pqY" = ( +/obj/structure/monorail{ + dir = 9; + name = "launch track" + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "prh" = ( /obj/structure/girder/reinforced, /turf/open/floor/almayer{ @@ -25416,127 +25499,170 @@ icon_state = "plating" }, /area/fiorina/tumor/ship) -"pri" = ( -/obj/structure/machinery/space_heater, +"prC" = ( +/obj/structure/machinery/autolathe/medilathe/full, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/fiberbush) -"pry" = ( -/obj/structure/prop/resin_prop{ - icon_state = "coolanttank" +/area/fiorina/station/medbay) +"prG" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/surface/rack, +/obj/item/stack/flag/yellow, +/obj/item/stack/flag/yellow, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"prL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/space_heater{ + pixel_x = -1; + pixel_y = 9 }, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 10; + icon_state = "blue" }, -/area/fiorina/tumor/aux_engi) -"prP" = ( +/area/fiorina/station/power_ring) +"pse" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/item/ammo_casing{ + dir = 6; + icon_state = "casing_5" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"psm" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison, +/area/fiorina/station/security) +"pst" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/central_ring) +"psx" = ( +/obj/structure/platform, /turf/open/floor/prison{ dir = 8; icon_state = "cell_stripe" }, -/area/fiorina/station/power_ring) -"pso" = ( -/obj/structure/platform{ - dir = 1 +/area/fiorina/station/botany) +"psL" = ( +/obj/structure/machinery/optable{ + desc = "This maybe could be used for advanced medical procedures."; + name = "Exam Table" }, -/obj/structure/platform{ - dir = 8 +/obj/item/bedsheet/ce{ + desc = "It crinkles, aggressively."; + name = "sterile wax sheet" }, -/obj/structure/platform_decoration{ - dir = 5 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"psO" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 2; - layer = 6; - name = "overhead pipe"; - pixel_x = -16; - pixel_y = 12 +/area/fiorina/station/medbay) +"psP" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "pte" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/power_ring) -"pty" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"pti" = ( +/obj/structure/machinery/vending/dinnerware, /turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"ptH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/sink{ dir = 4; - icon_state = "greenfull" + pixel_x = 11 }, -/area/fiorina/tumor/civres) -"ptV" = ( -/obj/vehicle/train/cargo/trolley, +/obj/item/clothing/gloves/latex, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"ptZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/pill_bottle/russianRed{ - pixel_y = 9 + icon_state = "redfull" }, -/obj/item/storage/pill_bottle/kelotane/skillless, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) "puw" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"puB" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, +"puE" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"pvi" = ( +/obj/item/ammo_box/magazine/M16, /obj/item/stack/sheet/metal{ amount = 5 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/telecomm/lz1_cargo) -"puE" = ( -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/lz/near_lzI) +"pvz" = ( +/obj/structure/janitorialcart, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "pvD" = ( /turf/closed/wall/r_wall/prison_unmeltable{ desc = "A huge chunk of metal used to seperate rooms."; name = "metal wall" }, /area/fiorina/oob) -"pvT" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" +"pvE" = ( +/obj/item/clothing/under/color/orange, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, +/area/fiorina/station/lowsec) +"pvF" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreencorner" }, /area/fiorina/tumor/ice_lab) -"pwg" = ( -/obj/structure/platform/stair_cut/alt, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +"pwo" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"pwi" = ( -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" }, +/area/fiorina/station/flight_deck) +"pwC" = ( +/obj/effect/spawner/random/gun/rifle/highchance, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "damaged3" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/security) "pwL" = ( /obj/item/stack/tile/plasteel{ pixel_x = 12; @@ -25544,18 +25670,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"pwN" = ( -/obj/structure/barricade/handrail/type_b, +"pxf" = ( +/obj/structure/machinery/vending/snack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"pxa" = ( -/obj/item/circuitboard/machine/rdserver, -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, -/area/fiorina/tumor/servers) +/area/fiorina/station/flight_deck) "pxk" = ( /obj/structure/closet/cabinet, /obj/item/reagent_container/pill/cyanide, @@ -25563,58 +25683,43 @@ /obj/item/reagent_container/syringe, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"pxu" = ( -/obj/structure/machinery/vending/cola, +"pxr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box{ + pixel_y = 6 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/tumor/aux_engi) -"pxI" = ( -/obj/item/reagent_container/food/snacks/eat_bar, +/area/fiorina/station/security) +"pxL" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "whitegreen" + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) -"pxR" = ( -/obj/structure/closet/crate/trashcart, +/area/fiorina/maintenance) +"pxW" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/item/tool/pickaxe, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreen" }, -/area/fiorina/station/chapel) -"pya" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/tumor/ice_lab) +"pxX" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 1; + dir = 6; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"pyv" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) "pyK" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/freight, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"pyW" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) "pzh" = ( /obj/item/toy/beach_ball, /turf/open/gm/river{ @@ -25622,102 +25727,44 @@ name = "pool" }, /area/fiorina/station/park) -"pzG" = ( +"pzE" = ( /obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/power_ring) -"pzN" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/stool, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"pzQ" = ( -/obj/item/paper, -/obj/structure/inflatable/door, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"pzV" = ( -/obj/item/ammo_box/magazine/M16, -/obj/item/stack/sheet/metal{ - amount = 5 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"pAe" = ( -/obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ icon_state = "whitegreen" }, -/area/fiorina/tumor/ice_lab) -"pAt" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, -/obj/item/stack/sheet/metal{ - amount = 5 - }, +/area/fiorina/station/medbay) +"pzL" = ( +/obj/item/ammo_magazine/m56d, +/obj/item/ammo_magazine/m56d, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) -"pAB" = ( -/obj/structure/machinery/light/double/blue{ dir = 4; - pixel_x = 10; - pixel_y = 13 + icon_state = "cell_stripe" }, +/area/fiorina/station/central_ring) +"pAl" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"pAN" = ( -/obj/structure/machinery/landinglight/ds1{ - dir = 1 + dir = 8; + icon_state = "blue_plate" }, +/area/fiorina/station/botany) +"pAr" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"pAO" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" + icon_state = "darkbrownfull2" }, -/obj/structure/platform, -/turf/open/floor/plating/prison, /area/fiorina/station/park) -"pBg" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"pBn" = ( -/obj/structure/surface/rack, +"pBb" = ( +/obj/structure/curtain/open/black, +/turf/open/floor/prison, +/area/fiorina/maintenance) +"pBe" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "green" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/chapel) "pBq" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating/prison, @@ -25738,6 +25785,13 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) +"pBW" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "pCc" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -25750,110 +25804,61 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"pCF" = ( -/obj/structure/lz_sign/prison_sign, +"pCG" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison, /area/fiorina/lz/near_lzI) -"pCN" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/prison{ +"pCH" = ( +/obj/structure/monorail{ dir = 10; - icon_state = "kitchen" + name = "launch track" }, -/area/fiorina/tumor/civres) -"pCS" = ( -/obj/structure/platform_decoration, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"pCX" = ( -/obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, -/area/fiorina/tumor/servers) -"pCZ" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"pDg" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" +/area/fiorina/station/transit_hub) +"pCQ" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/botany) -"pDH" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/random/gun/rifle/highchance, -/turf/open/floor/prison, -/area/fiorina/station/security) -"pDV" = ( -/obj/structure/bed{ - icon_state = "abed" +/obj/item/stool{ + pixel_x = 4; + pixel_y = 6 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) -"pEe" = ( -/obj/structure/largecrate/random, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_y = 13 +"pCX" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/servers) +"pDo" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/autoname{ + icon = 'icons/obj/structures/doors/2x1prepdoor_charlie.dmi' }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"pEw" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_tram) -"pEL" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/effect/spawner/random/gun/smg/lowchance, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "sterile_white" }, /area/fiorina/station/research_cells) -"pER" = ( -/obj/structure/closet/secure_closet/engineering_materials, +"pDQ" = ( +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"pEY" = ( -/obj/structure/barricade/sandbags{ - dir = 4; - icon_state = "sandbag_0"; - pixel_y = 2 - }, -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 + icon_state = "redfull" }, +/area/fiorina/station/security) +"pEt" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"pFg" = ( -/obj/structure/bed{ - icon_state = "abed" + dir = 9; + icon_state = "darkbrown2" }, -/obj/item/reagent_container/food/snacks/wrapped/barcardine, +/area/fiorina/maintenance) +"pFc" = ( +/obj/structure/machinery/vending/snack, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) "pFi" = ( /obj/structure/platform_decoration{ dir = 8 @@ -25879,37 +25884,21 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"pFY" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"pGf" = ( -/obj/structure/platform{ - dir = 8 +"pFW" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/prop/almayer/handheld1, -/obj/structure/surface/rack, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"pGg" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"pGi" = ( -/turf/open/floor/prison{ - icon_state = "darkyellow2" +/area/fiorina/station/power_ring) +"pGy" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, -/area/fiorina/station/telecomm/lz1_tram) -"pGv" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/fiorina/lz/near_lzII) +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/botany) "pGH" = ( /turf/closed/shuttle/ert{ icon_state = "stan_white_t_up" @@ -25923,10 +25912,13 @@ name = "pool" }, /area/fiorina/station/park) -"pHc" = ( -/obj/effect/landmark/objective_landmark/close, +"pGS" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "pHh" = ( @@ -25941,28 +25933,29 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"pHu" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"pIi" = ( -/obj/structure/machinery/space_heater, -/obj/structure/platform{ +"pHi" = ( +/obj/structure/window/reinforced{ dir = 4 }, +/obj/structure/machinery/space_heater, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "floor_plate" }, /area/fiorina/tumor/ice_lab) -"pIo" = ( -/obj/structure/machinery/light/double/blue, +"pHx" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 + }, +/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - icon_state = "blue" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/chapel) +/area/fiorina/station/lowsec) "pIs" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 4 @@ -25982,68 +25975,55 @@ /obj/item/reagent_container/food/snacks/grown/apple/poisoned, /turf/open/floor/wood, /area/fiorina/station/park) -"pIK" = ( -/obj/structure/platform, -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"pIX" = ( -/obj/structure/inflatable/door, +"pIw" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"pJa" = ( -/obj/structure/bed/chair/office/light{ +/area/fiorina/tumor/civres) +"pIA" = ( +/obj/structure/prop/structure_lattice{ dir = 4 }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"pJo" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/lz/near_lzI) +/turf/open/floor/prison, +/area/fiorina/station/park) +"pJc" = ( +/turf/open/floor/wood, +/area/fiorina/maintenance) "pJK" = ( /obj/structure/surface/rack, /obj/item/reagent_container/glass/bucket/mopbucket, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"pKd" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, +"pJP" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "panelscorched" }, -/area/fiorina/station/medbay) -"pKh" = ( -/obj/item/stool{ - pixel_x = -4; +/area/fiorina/station/chapel) +"pKf" = ( +/obj/structure/machinery/washing_machine, +/obj/item/clothing/head/that{ pixel_y = 10 }, -/obj/structure/sign/poster{ - icon_state = "poster1"; - pixel_y = 32 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "sterile_white" }, -/area/fiorina/station/lowsec) -"pKz" = ( -/obj/structure/largecrate/random/barrel/blue, +/area/fiorina/station/civres_blue) +"pKu" = ( +/obj/item/tool/wet_sign, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/servers) "pKJ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, /obj/structure/barricade/wooden{ @@ -26057,50 +26037,69 @@ name = "astroturf" }, /area/fiorina/station/park) +"pKO" = ( +/obj/effect/decal/hefa_cult_decals/d32{ + icon_state = "2" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) "pKY" = ( /obj/structure/cable/heavyduty{ icon_state = "2-4" }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"pLh" = ( -/obj/structure/bed/sofa/vert/grey/bot, +"pLj" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"pLE" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 15 + }, /turf/open/floor/prison{ - icon_state = "green" + icon_state = "yellowfull" }, -/area/fiorina/station/transit_hub) -"pLk" = ( -/obj/structure/machinery/door/airlock/prison/horizontal, +/area/fiorina/station/lowsec) +"pLM" = ( +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 8; + icon_state = "blue" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/power_ring) "pLQ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"pMA" = ( -/obj/structure/filingcabinet{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/filingcabinet{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"pLS" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 8; + icon_state = "greencorner" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/aux_engi) "pNj" = ( /obj/structure/bookcase, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) +"pNG" = ( +/obj/structure/closet/crate/science{ + density = 0; + icon_state = "open_science"; + opened = 1 + }, +/obj/item/organ/eyes, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "pNI" = ( /obj/item/stack/tile/plasteel{ pixel_x = 3; @@ -26108,46 +26107,27 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"pNV" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) -"pOd" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"pOm" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"pON" = ( -/obj/structure/closet, -/turf/open/floor/prison{ +"pOU" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) -"pPb" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/oob) +/turf/open/floor/prison, +/area/fiorina/station/central_ring) "pPd" = ( /obj/structure/prop/resin_prop{ icon_state = "coolanttank" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"pPf" = ( -/obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/prison, -/area/fiorina/station/security) +"pPo" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) "pPG" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -26158,63 +26138,55 @@ }, /turf/closed/wall/prison, /area/fiorina/tumor/servers) -"pPQ" = ( -/obj/item/shard{ - icon_state = "medium"; - name = "ice shard" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"pQb" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"pQh" = ( -/obj/item/trash/liquidfood, +"pQc" = ( +/obj/structure/closet/basketball, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/tumor/ice_lab) -"pQq" = ( -/obj/item/tool/warning_cone, +/area/fiorina/station/research_cells) +"pQs" = ( +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"pQz" = ( /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 8; + icon_state = "bluecorner" }, -/area/fiorina/station/lowsec) -"pQu" = ( -/obj/structure/holohoop{ - dir = 1 +/area/fiorina/station/civres_blue) +"pRa" = ( +/obj/structure/bed{ + icon_state = "abed" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 9; + icon_state = "whitepurple" }, -/area/fiorina/station/lowsec) -"pQD" = ( -/obj/structure/window/reinforced{ - dir = 1 +/area/fiorina/station/research_cells) +"pRp" = ( +/obj/structure/platform, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/transit_hub) +"pRx" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"pRn" = ( -/obj/item/paper/crumpled, +/area/fiorina/station/power_ring) +"pRz" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "red" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/power_ring) +"pRD" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "pRG" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, @@ -26223,22 +26195,24 @@ /obj/item/weapon/wirerod, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"pSm" = ( -/obj/structure/filingcabinet/filingcabinet{ - pixel_x = 8 - }, -/obj/structure/filingcabinet/filingcabinet{ - pixel_x = -8 - }, -/obj/effect/landmark/objective_landmark/science, +"pSr" = ( +/obj/structure/pipes/standard/manifold/visible, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"pSJ" = ( -/turf/open/floor/wood, -/area/fiorina/maintenance) +"pSs" = ( +/obj/item/ammo_box/magazine/misc/flares{ + layer = 3.1; + pixel_y = 16 + }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "pSU" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/med_data/laptop, @@ -26247,14 +26221,6 @@ "pTj" = ( /turf/open/floor/plating/prison, /area/fiorina/station/security) -"pTA" = ( -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, -/area/fiorina/station/civres_blue) "pTR" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -26267,42 +26233,61 @@ dir = 5 }, /area/fiorina/station/telecomm/lz1_cargo) -"pUS" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/clothing/mask/cigarette, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_y = 8 +"pUf" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 30 +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"pUo" = ( +/obj/structure/platform, +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"pUG" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) -"pVq" = ( -/turf/open/floor/prison, /area/fiorina/station/research_cells) -"pVv" = ( -/obj/structure/platform{ - dir = 1 +"pUO" = ( +/obj/item/trash/boonie, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"pVw" = ( -/obj/structure/mirror{ - pixel_x = -32 +/area/fiorina/tumor/ice_lab) +"pVc" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12 +/turf/open/floor/wood, +/area/fiorina/station/civres_blue) +"pVk" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/civres) +/area/fiorina/lz/near_lzI) +"pVD" = ( +/obj/structure/window/framed/prison, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) "pVR" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/bible/hefa{ @@ -26311,24 +26296,31 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/wood, /area/fiorina/station/chapel) -"pWm" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/beer_pack{ - pixel_y = 7 - }, +"pVY" = ( +/obj/item/stack/sheet/mineral/plastic, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 9; + icon_state = "yellow" }, /area/fiorina/station/lowsec) +"pWc" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) +"pWl" = ( +/obj/structure/machinery/power/geothermal, +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "pWp" = ( /turf/closed/shuttle/ert{ icon_state = "stan8" }, /area/fiorina/tumor/ship) -"pWH" = ( -/obj/item/clipboard, -/turf/open/floor/prison, -/area/fiorina/station/park) "pWO" = ( /obj/item/stack/rods, /obj/structure/cable/heavyduty{ @@ -26336,22 +26328,39 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"pXj" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/prison, -/area/fiorina/station/disco) +"pWX" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5" + }, +/obj/item/clothing/suit/armor/vest/security, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"pXt" = ( +/obj/item/reagent_container/food/snacks/wrapped/booniebars, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) "pXH" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_tram) -"pXP" = ( -/obj/structure/bed/sofa/vert/grey/top, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"pXJ" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "pXY" = ( /obj/structure/bookcase{ icon_state = "book-5" @@ -26364,37 +26373,33 @@ }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"pYh" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"pYp" = ( -/obj/item/stack/sandbags/large_stack, +"pYz" = ( +/obj/structure/closet/emcloset, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/telecomm/lz1_cargo) -"pYI" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/storage/bible/hefa, +/area/fiorina/maintenance) +"pYB" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "bluefull" }, -/area/fiorina/station/chapel) -"pYO" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkyellowcorners2" +/area/fiorina/station/power_ring) +"pYD" = ( +/obj/structure/monorail{ + dir = 5; + name = "launch track" }, -/area/fiorina/station/telecomm/lz1_cargo) -"pZb" = ( -/turf/open/floor/prison{ +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"pYL" = ( +/obj/structure/stairs/perspective{ dir = 8; - icon_state = "yellowcorner" + icon_state = "p_stair_full" }, -/area/fiorina/station/lowsec) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/botany) "pZm" = ( /obj/structure/machinery/light/small{ dir = 8; @@ -26409,12 +26414,34 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"qam" = ( -/obj/structure/machinery/light/double/blue, +"pZn" = ( /turf/open/floor/prison{ - icon_state = "blue" + dir = 8; + icon_state = "yellowcorner" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/lowsec) +"pZp" = ( +/obj/item/tool/soap, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/research_cells) +"qaA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/turf/open/floor/prison{ + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"qaL" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "qaO" = ( /obj/structure/barricade/handrail/type_b{ layer = 3.5 @@ -26426,6 +26453,14 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) +"qaT" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "qbd" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations are the leading cause in asbestos related deaths for 3 years in a row."; @@ -26437,39 +26472,32 @@ "qbl" = ( /turf/open/auto_turf/sand/layer1, /area/fiorina/lz/near_lzII) -"qbr" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "lavendergrass_2" - }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"qbu" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 +"qbn" = ( +/obj/structure/barricade/wooden{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"qbD" = ( +/area/fiorina/maintenance) +"qby" = ( +/obj/item/stack/sheet/metal{ + amount = 5 + }, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"qbI" = ( +/obj/structure/surface/table/reinforced/prison, /obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + pixel_y = 9 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"qbR" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) -"qbT" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" + icon_state = "kitchen" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/power_ring) "qbW" = ( /obj/item/tool/candle{ pixel_x = -6; @@ -26484,73 +26512,67 @@ /obj/item/stack/catwalk, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"qcv" = ( +"qcy" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, -/area/fiorina/lz/near_lzII) -"qcK" = ( -/obj/effect/landmark/railgun_camera_pos, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"qcM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/skills{ - dir = 4 + dir = 10; + icon_state = "floor_plate" }, +/area/fiorina/station/telecomm/lz1_cargo) +"qcX" = ( +/obj/structure/machinery/vending/snack/packaged, /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"qcT" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/park) "qdd" = ( /obj/structure/grille, /obj/structure/lattice, /turf/open/space/basic, /area/fiorina/oob) -"qdB" = ( -/obj/structure/largecrate/random/secure, +"qdf" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"qdC" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/tumor/civres) +"qdE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/tool/pen, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, /area/fiorina/station/security) "qdJ" = ( /obj/structure/window/framed/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"qeh" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/security/wardens) -"qeu" = ( -/obj/structure/toilet{ - pixel_y = 4 +"qes" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"qew" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 2; - layer = 6; - name = "overhead pipe"; - pixel_x = -16; - pixel_y = 12 +/area/fiorina/station/telecomm/lz1_tram) +"qet" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) +/area/fiorina/station/security) "qeC" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced{ @@ -26567,18 +26589,23 @@ /obj/effect/spawner/random/pills/highchance, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"qeU" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +"qeN" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"qeR" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 4; + pixel_y = 4 }, -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_marked" }, -/area/fiorina/station/medbay) +/area/fiorina/station/park) "qeX" = ( /obj/structure/surface/table/reinforced/prison{ flipped = 1 @@ -26596,39 +26623,17 @@ }, /turf/open/gm/river/desert/deep, /area/fiorina/lz/near_lzII) -"qfu" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, -/area/fiorina/oob) -"qfE" = ( -/obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"qfI" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"qfU" = ( +"qfg" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"qfi" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/botany) +/area/fiorina/station/telecomm/lz1_cargo) "qgd" = ( /obj/item/explosive/grenade/incendiary/molotov{ pixel_x = 8; @@ -26646,33 +26651,28 @@ }, /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/civres) -"qgq" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/kitchen/utensil/knife{ - pixel_x = 9 - }, -/obj/item/reagent_container/food/snacks/tomatomeat{ - pixel_x = -6 +"qgk" = ( +/obj/structure/barricade/metal/wired{ + dir = 1 }, -/obj/item/reagent_container/food/snacks/tomatomeat{ - pixel_x = -6; - pixel_y = 3 +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" }, -/obj/item/reagent_container/food/snacks/tomatomeat{ - pixel_x = -6; - pixel_y = 6 +/area/fiorina/lz/near_lzI) +"qgv" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/tool/surgery/scalpel/laser{ + pixel_x = -5; + pixel_y = 12 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" +/obj/item/tool/surgery/circular_saw{ + pixel_y = -2 }, -/area/fiorina/station/power_ring) -"qgA" = ( -/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "qgB" = ( /obj/item/clothing/gloves/rainbow, /turf/open/floor/plating/prison, @@ -26681,238 +26681,190 @@ /obj/item/reagent_container/food/drinks/golden_cup, /turf/open/space, /area/fiorina/oob) -"qgS" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/obj/item/stack/barbed_wire, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"qhB" = ( -/obj/effect/decal/cleanable/blood, -/obj/item/trash/kepler, -/turf/open/floor/prison, -/area/fiorina/station/security) -"qiq" = ( -/obj/item/trash/cigbutt, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) -"qit" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"qjc" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"qjg" = ( -/obj/item/tool/shovel/etool, +"qhk" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"qjp" = ( -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_x = 2; - pixel_y = 21 - }, -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_x = 2; - pixel_y = 21 + dir = 6; + icon_state = "darkbrown2" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"qjC" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/park) +"qhC" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gib2" }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz1_tram) -"qjY" = ( -/obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "yellow" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/station/lowsec) -"qkf" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - layer = 3.5; - pixel_y = 6 +/area/fiorina/station/medbay) +"qhD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + network = list("PRISON") }, /turf/open/floor/prison{ dir = 4; - icon_state = "greenfull" + icon_state = "redcorner" }, -/area/fiorina/station/transit_hub) -"qkg" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/wood, -/area/fiorina/station/park) -"qkk" = ( -/obj/structure/platform_decoration{ +/area/fiorina/station/power_ring) +"qhJ" = ( +/obj/structure/bed/chair/comfy{ dir = 1 }, /turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"qks" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 + dir = 8; + icon_state = "redcorner" }, -/obj/item/tool/pen, +/area/fiorina/station/power_ring) +"qhN" = ( /turf/open/floor/prison{ - icon_state = "redfull" + dir = 4; + icon_state = "redcorner" }, /area/fiorina/station/security) -"qkN" = ( +"qhP" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications, -/turf/open/floor/plating/prison, -/area/fiorina/station/telecomm/lz2_maint) -"qkY" = ( -/obj/structure/bed{ - icon_state = "abed" +/obj/item/newspaper, +/obj/item/attachable/bipod, +/turf/open/floor/prison{ + icon_state = "darkyellow2" }, -/obj/effect/spawner/random/sentry/midchance, +/area/fiorina/lz/near_lzI) +"qhZ" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "platingdmg3" }, -/area/fiorina/station/lowsec) -"qlf" = ( -/obj/structure/cable/heavyduty{ - icon_state = "1-2" +/area/fiorina/station/transit_hub) +"qif" = ( +/obj/item/inflatable, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/chapel) +"qiq" = ( +/obj/item/trash/cigbutt, /turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"qmd" = ( -/obj/item/storage/toolbox/antag, -/turf/open/floor/prison{ - dir = 8; - icon_state = "green" +/area/fiorina/tumor/aux_engi) +"qiK" = ( +/obj/structure/platform{ + dir = 1 }, -/area/fiorina/tumor/civres) -"qms" = ( -/obj/structure/barricade/deployable{ - dir = 8 +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalbottomleft" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"qmz" = ( -/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 9; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"qmC" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 8 +"qjb" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/toolbox, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/platform_decoration{ - dir = 5 +/area/fiorina/tumor/servers) +"qjh" = ( +/obj/item/reagent_container/food/snacks/boiledegg, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottomright" +/area/fiorina/tumor/aux_engi) +"qjM" = ( +/obj/structure/inflatable, +/obj/structure/barricade/handrail/type_b{ + dir = 4 }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"qmO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 - }, -/obj/item/reagent_container/food/snacks/cheesyfries, -/turf/open/floor/prison{ +"qjR" = ( +/obj/structure/machinery/computer/station_alert{ dir = 4; - icon_state = "darkyellowfull2" + pixel_y = 5 }, -/area/fiorina/station/flight_deck) -"qmS" = ( -/obj/structure/surface/rack, -/obj/item/stack/sheet/wood/medium_stack, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "floor_plate" }, -/area/fiorina/maintenance) -"qnc" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/tumor/aux_engi) +"qjX" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 5; - icon_state = "blue" + dir = 1; + icon_state = "greenblue" }, -/area/fiorina/station/power_ring) -"qnq" = ( -/obj/effect/landmark/xeno_spawn, +/area/fiorina/station/botany) +"qkg" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/wood, +/area/fiorina/station/park) +"qkn" = ( +/obj/structure/surface/rack, +/obj/item/storage/pouch/tools/full, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"qkq" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "darkbrown2" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/tumor/aux_engi) -"qnu" = ( +/area/fiorina/oob) +"qkt" = ( +/obj/structure/bed/chair/office/dark, /turf/open/floor/prison{ dir = 10; - icon_state = "damaged1" + icon_state = "sterile_white" }, -/area/fiorina/station/disco) -"qnB" = ( -/obj/structure/monorail{ - dir = 6; - name = "launch track" +/area/fiorina/tumor/ice_lab) +"qkN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/communications, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz2_maint) +"qlf" = ( +/obj/structure/cable/heavyduty{ + icon_state = "1-2" }, /turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzII) -"qnE" = ( -/obj/structure/barricade/metal{ - dir = 4; - health = 85; - icon_state = "metal_1" +/area/fiorina/station/civres_blue) +"qmj" = ( +/obj/structure/closet/emcloset, +/obj/item/weapon/nullrod{ + desc = "The explosive tip has been deactivated."; + force = 25; + icon_state = "hefasword"; + name = "de-activated HEFA Sword" }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"qmv" = ( +/obj/structure/monorail{ + dir = 10; + name = "launch track" }, -/area/fiorina/station/park) -"qnK" = ( -/obj/structure/surface/table/reinforced/prison, +/turf/open/space, +/area/fiorina/oob) +"qnb" = ( +/obj/structure/bed/roller, /turf/open/floor/prison{ dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"qny" = ( +/obj/item/tool/wirecutters/clippers, +/turf/open/floor/prison{ + dir = 9; icon_state = "greenfull" }, /area/fiorina/tumor/civres) -"qnQ" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/prison, -/area/fiorina/station/security) "qob" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -26922,44 +26874,45 @@ icon_state = "plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"qos" = ( -/obj/structure/bed/chair{ - dir = 8 +"qoc" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/tumor/civres) +"qof" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/disco) +"qov" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/newspaper, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) "qoG" = ( /obj/item/toy/crayon/rainbow, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"qoZ" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryotop" - }, -/obj/structure/pipes/standard/simple/visible{ - dir = 9 +"qph" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) -"qpa" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, +/area/fiorina/tumor/servers) +"qpk" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"qpw" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 3 + icon_state = "bluecorner" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/civres_blue) "qpB" = ( /obj/item/stack/cable_coil/blue, /turf/open/floor/plating/prison, @@ -26969,56 +26922,110 @@ icon_state = "stan_leftengine" }, /area/fiorina/station/power_ring) -"qqa" = ( -/obj/structure/platform{ - dir = 1 +"qpN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, -/obj/structure/platform{ - dir = 8 +/obj/item/coin/gold{ + desc = "Coin op, in this place, in this year, localized entirely on this table? .... I uh, yes."; + name = "arcade token"; + pixel_x = -6; + pixel_y = 3 }, -/obj/structure/platform_decoration{ - dir = 5 +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/station/flight_deck) +"qpX" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"qqu" = ( -/obj/structure/surface/rack, -/obj/item/poster, -/obj/item/poster, +/area/fiorina/tumor/servers) +"qqc" = ( +/obj/structure/inflatable/popped, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, /turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"qqd" = ( +/obj/structure/stairs/perspective{ dir = 1; - icon_state = "darkyellow2" + icon_state = "p_stair_full" }, -/area/fiorina/lz/near_lzI) -"qqJ" = ( -/obj/item/stack/cable_coil, /turf/open/floor/prison, -/area/fiorina/station/disco) -"qqM" = ( -/obj/structure/closet/emcloset, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/security) +"qqC" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/area/fiorina/station/medbay) -"qqX" = ( -/obj/item/disk, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/servers) -"qqZ" = ( +/area/fiorina/station/research_cells) +"qqQ" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurplecorner" + dir = 5; + icon_state = "green" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/transit_hub) +"qqW" = ( +/obj/item/trash/cigbutt/cigarbutt, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"qre" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/central_ring) +"qrn" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/medbay) +"qrt" = ( +/obj/effect/landmark/xeno_spawn, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "qrz" = ( /obj/item/explosive/plastic, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_cargo) +"qrI" = ( +/obj/structure/bed/sofa/south/grey/left, +/obj/item/reagent_container/food/snacks/sandwich{ + pixel_y = 2 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"qrU" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/floor/prison{ + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"qsc" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "qso" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -27027,32 +27034,46 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"qtq" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) -"qty" = ( +"qss" = ( +/obj/structure/flora/pottedplant/random, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, /area/fiorina/tumor/civres) -"qtX" = ( -/obj/structure/blocker/invisible_wall, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" +"qsE" = ( +/obj/item/shard{ + icon_state = "large"; + name = "ice shard" + }, +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/oob) -"quk" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 5; + dir = 8; icon_state = "whitegreen" }, +/area/fiorina/tumor/ice_lab) +"qsF" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) +"qtP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/prop/helmetgarb/raincover, +/turf/open/floor/prison, /area/fiorina/station/medbay) +"qug" = ( +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "qun" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 @@ -27064,28 +27085,12 @@ name = "astroturf" }, /area/fiorina/station/park) -"quy" = ( -/obj/item/tool/wrench, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"quU" = ( -/obj/structure/filingcabinet{ - pixel_x = -8 - }, -/obj/structure/filingcabinet{ - pixel_x = 8 - }, -/obj/item/reagent_container/food/drinks/coffeecup{ - pixel_x = -7; - pixel_y = 11 - }, +"quL" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "bluefull" }, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) "qva" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/smg/mp5, @@ -27094,53 +27099,14 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"qvk" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"qvn" = ( -/obj/structure/monorail{ - dir = 10; - name = "launch track" - }, -/turf/open/space, -/area/fiorina/oob) -"qvx" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"qvL" = ( -/obj/structure/platform_decoration, -/turf/open/floor/prison{ - dir = 6; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"qwh" = ( -/obj/structure/barricade/wooden{ - dir = 4 +"qvN" = ( +/obj/structure/prop/resin_prop{ + icon_state = "rack" }, -/obj/structure/barricade/wooden, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"qwl" = ( -/obj/item/clothing/mask/cigarette/cigar/cohiba, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/servers) "qws" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "bee" @@ -27150,56 +27116,38 @@ icon_state = "doubleside" }, /area/fiorina/maintenance) -"qwy" = ( -/obj/item/weapon/baton/cattleprod, +"qwG" = ( +/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"qwJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 + dir = 6; + icon_state = "darkbrown2" }, +/area/fiorina/maintenance) +"qwH" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"qwU" = ( +/area/fiorina/station/lowsec) +"qwK" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrowncorners2" - }, -/area/fiorina/maintenance) -"qwZ" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" + icon_state = "floorscorched2" }, +/area/fiorina/station/civres_blue) +"qxx" = ( +/obj/item/ammo_magazine/smg/mp5, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/station/central_ring) -"qxB" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 + dir = 10; + icon_state = "whitepurple" }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"qxL" = ( -/obj/item/toy/deck, +/area/fiorina/station/research_cells) +"qxy" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/servers) "qxN" = ( /obj/structure/barricade/sandbags{ dir = 8; @@ -27208,124 +27156,127 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"qyc" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"qyi" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, +"qxP" = ( /turf/open/floor/prison{ + dir = 10; icon_state = "darkbrown2" }, -/area/fiorina/station/park) -"qyk" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/prison{ - dir = 5; - icon_state = "darkyellow2" +/area/fiorina/tumor/aux_engi) +"qxZ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/lz/near_lzI) -"qyB" = ( -/obj/structure/platform_decoration, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "yellowfull" }, -/area/fiorina/station/park) -"qyX" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/lowsec) +"qya" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/combat, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ dir = 1; - icon_state = "p_stair_sn_full_cap" + icon_state = "whitepurple" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/research_cells) +"qyq" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"qzl" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/machinery/shower{ - dir = 8 - }, +/area/fiorina/station/power_ring) +"qyM" = ( /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/research_cells) -"qzn" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, -/turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" +/area/fiorina/station/disco) +"qzb" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/tumor/ice_lab) -"qzy" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"qzo" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/prison, +/area/fiorina/station/security) +"qzM" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"qzB" = ( -/obj/item/reagent_container/food/condiment/peppermill{ - pixel_x = -5; - pixel_y = -11 +"qzZ" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0"; + pixel_y = 2 }, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) -"qzI" = ( -/obj/item/tool/crowbar/red, +/area/fiorina/station/disco) +"qAe" = ( +/obj/item/trash/eat, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"qzS" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"qzW" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" +/area/fiorina/station/telecomm/lz1_cargo) +"qAk" = ( +/obj/item/shard{ + icon_state = "medium" }, -/area/fiorina/tumor/aux_engi) -"qzX" = ( -/obj/structure/machinery/photocopier{ - pixel_y = 4 +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, +/area/fiorina/tumor/servers) +"qAl" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) -"qBh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/toy/handcard/aceofspades, +/area/fiorina/station/medbay) +"qAQ" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/station/research_cells) -"qBk" = ( -/obj/item/reagent_container/food/drinks/cans/aspen, +/area/fiorina/tumor/aux_engi) +"qBe" = ( +/turf/open/floor/prison, +/area/fiorina/station/disco) +"qBf" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/lowsec) -"qBs" = ( -/obj/item/tool/mop{ - pixel_y = 23 +/area/fiorina/station/central_ring) +"qBj" = ( +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/item/storage/briefcase, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/station/security/wardens) "qBB" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ desc = "A ticket to Souto Man's raffle!"; @@ -27342,24 +27293,31 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"qBG" = ( -/obj/structure/inflatable/popped/door, -/obj/item/stack/barbed_wire, -/obj/effect/decal/cleanable/blood/oil, +"qBI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"qBQ" = ( -/obj/item/storage/secure/briefcase{ - pixel_x = 9; - pixel_y = 18 + icon_state = "darkredfull2" }, +/area/fiorina/station/research_cells) +"qBS" = ( +/obj/item/circuitboard/mecha/gygax/targeting, +/obj/structure/surface/rack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/civres) +"qBT" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "qCa" = ( /obj/structure/prop/resin_prop{ dir = 1; @@ -27368,50 +27326,48 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"qCs" = ( -/obj/structure/largecrate/random/case/small, +"qCk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -5; + pixel_y = -6 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = -11 + }, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "bluefull" }, -/area/fiorina/tumor/aux_engi) -"qCw" = ( -/obj/structure/inflatable/popped/door, -/obj/item/ammo_casing{ - icon_state = "casing_1" +/area/fiorina/station/civres_blue) +"qCx" = ( +/obj/item/reagent_container/food/drinks/sillycup, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"qCE" = ( +/obj/structure/machinery/computer/emails{ + dir = 1; + pixel_y = 4 }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"qCK" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "damaged1" + }, +/area/fiorina/station/lowsec) "qCW" = ( /turf/closed/shuttle/elevator{ dir = 6 }, /area/fiorina/tumor/aux_engi) -"qDc" = ( -/obj/structure/monorail{ - dir = 9; - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"qDd" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"qDi" = ( -/obj/item/reagent_container/food/condiment/saltshaker{ - pixel_x = -5; - pixel_y = -6 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) "qDn" = ( /obj/item/stool, /obj/structure/sign/poster{ @@ -27423,72 +27379,56 @@ icon_state = "doubleside" }, /area/fiorina/maintenance) -"qDo" = ( -/obj/structure/janitorialcart, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"qDy" = ( -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/prison, -/area/fiorina/station/park) -"qDD" = ( +"qDq" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; + dir = 8; + pixel_x = -10; pixel_y = -3 }, -/obj/structure/largecrate/random/case, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"qDG" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"qDH" = ( -/obj/structure/bookcase{ - icon_state = "book-5" - }, +/area/fiorina/station/telecomm/lz1_tram) +"qDZ" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"qDI" = ( -/obj/structure/toilet{ - dir = 4; - pixel_y = 8 +"qEk" = ( +/obj/structure/bed/sofa/south/grey/left, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"qDY" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 + icon_state = "floor_plate" }, +/area/fiorina/station/security/wardens) +"qEl" = ( +/obj/structure/closet/bodybag, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"qEn" = ( -/obj/structure/barricade/wooden, +/area/fiorina/station/medbay) +"qEs" = ( /turf/open/floor/prison{ dir = 4; - icon_state = "whitepurple" + icon_state = "yellowcorner" }, -/area/fiorina/station/research_cells) -"qFg" = ( -/obj/item/stack/rods, +/area/fiorina/station/lowsec) +"qEC" = ( +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"qFf" = ( +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor/prison{ + icon_state = "kitchen" }, /area/fiorina/station/power_ring) "qFi" = ( @@ -27502,109 +27442,108 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"qFs" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) "qFE" = ( /obj/structure/platform/kutjevo/smooth{ dir = 4 }, /turf/open/space/basic, /area/fiorina/oob) -"qFQ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/obj/structure/barricade/handrail/type_b{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"qGl" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +"qFO" = ( +/obj/structure/barricade/wooden{ + dir = 8 }, /turf/open/floor/prison{ dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"qGn" = ( -/turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "floor_plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"qGX" = ( -/obj/structure/prop/structure_lattice{ - health = 300 +"qGe" = ( +/obj/structure/machinery/landinglight/ds1/delaytwo{ + dir = 4 }, -/obj/structure/prop/structure_lattice{ - layer = 3.1; - pixel_y = 10 +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/lz/near_lzI) +"qGf" = ( +/obj/item/tool/scythe, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/tumor/aux_engi) -"qHC" = ( +/area/fiorina/station/botany) +"qGh" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/chapel) +"qGn" = ( +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"qGy" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"qGB" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"qGO" = ( +/obj/structure/machinery/photocopier, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"qGP" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) "qHG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 25 }, /turf/open/floor/plating/plating_catwalk, /area/fiorina/tumor/ship) -"qHK" = ( -/obj/item/gift, -/turf/open/floor/prison{ - icon_state = "darkbrown2" +"qHX" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/area/fiorina/station/park) -"qHZ" = ( -/obj/item/tool/warning_cone, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, /turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"qIk" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ - layer = 3.5 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) +/area/fiorina/station/security) "qIq" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"qIy" = ( -/obj/item/tool/match, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"qIO" = ( -/obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"qIZ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"qIT" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket" }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "blue" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/chapel) "qJf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/blue{ @@ -27632,15 +27571,32 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"qJJ" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 +"qJl" = ( +/obj/structure/bedsheetbin{ + icon_state = "linenbin-empty" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "blue" + dir = 8; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/lowsec) +"qJr" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/fiberbush) +"qJv" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "qJK" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ @@ -27658,37 +27614,74 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"qKs" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/spray/pepper, -/obj/item/clothing/glasses/sunglasses/sechud, +"qJP" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"qKF" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/chapel) +"qJQ" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"qJR" = ( +/obj/item/disk/data, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"qKq" = ( +/obj/structure/machinery/computer/arcade, +/obj/item/toy/syndicateballoon{ + anchored = 1; + pixel_x = 12; + pixel_y = 25 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + layer = 2.8; + pixel_x = 15; + pixel_y = 5 }, /turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/station/flight_deck) +"qKx" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) "qKT" = ( /obj/item/stack/rods/plasteel, /turf/open/auto_turf/sand/layer1, /area/fiorina/lz/near_lzII) -"qLp" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"qLa" = ( +/obj/item/weapon/baseballbat/metal, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" + }, +/area/fiorina/station/chapel) +"qLi" = ( +/obj/structure/toilet{ + dir = 8; + pixel_y = 8 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"qLv" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison, -/area/fiorina/tumor/servers) -"qLz" = ( -/obj/structure/machinery/autolathe/medilathe/full, +/area/fiorina/station/transit_hub) +"qLH" = ( +/obj/item/trash/used_stasis_bag, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/lz/near_lzI) "qLI" = ( /obj/item/storage/toolbox, /obj/structure/machinery/light/double/blue{ @@ -27700,65 +27693,79 @@ icon_state = "plate" }, /area/fiorina/station/civres_blue) -"qLJ" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) "qLN" = ( /obj/item/storage/toolbox/mechanical/green, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"qMV" = ( +"qMi" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"qMs" = ( +/obj/item/stack/cable_coil/green, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"qMI" = ( +/turf/open/floor/prison{ + icon_state = "damaged3" + }, +/area/fiorina/station/security) +"qNj" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, /obj/structure/platform_decoration{ - dir = 1 + dir = 10 }, +/obj/structure/closet/firecloset/full, /turf/open/floor/prison{ dir = 10; - icon_state = "blue" + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"qNu" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/item/clothing/accessory/storage/holster, +/obj/structure/window/reinforced{ + dir = 4 }, -/area/fiorina/station/power_ring) -"qNm" = ( -/obj/structure/closet/secure_closet/engineering_materials, -/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "redfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/security) "qNv" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"qNw" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"qNS" = ( -/obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"qNy" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, -/area/fiorina/tumor/civres) -"qNW" = ( -/obj/structure/platform_decoration, +/obj/item/reagent_container/food/snacks/cheesyfries, /turf/open/floor/prison{ - icon_state = "darkbrowncorners2" - }, -/area/fiorina/station/park) -"qOd" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/station/flight_deck) +"qNF" = ( /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 5; + icon_state = "yellow" }, /area/fiorina/station/lowsec) "qOk" = ( @@ -27771,18 +27778,11 @@ /obj/structure/grille, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"qOy" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"qOG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/cups, +"qOu" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "damaged3" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/disco) "qON" = ( /obj/item/stack/cable_coil/cyan, /turf/open/floor/plating/prison, @@ -27799,17 +27799,13 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"qOY" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, +"qPa" = ( +/obj/item/device/motiondetector, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/lowsec) "qPb" = ( /turf/open/organic/grass{ desc = "It'll get in your shoes no matter what you do."; @@ -27820,32 +27816,42 @@ /obj/item/ammo_magazine/smg/nailgun, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/maintenance) -"qPC" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +"qPL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/powercell, +/obj/item/storage/syringe_case/burn{ + pixel_x = -10; + pixel_y = 8 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"qPG" = ( -/obj/structure/machinery/washing_machine, /turf/open/floor/prison{ - icon_state = "sterile_white" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/civres_blue) -"qPT" = ( -/obj/structure/bed/chair/comfy, +/area/fiorina/station/research_cells) +"qQa" = ( /turf/open/floor/prison{ - icon_state = "blue" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/civres_blue) -"qQf" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" +/area/fiorina/station/central_ring) +"qQb" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/tumor/aux_engi) +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) +"qQd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) "qQj" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, @@ -27859,6 +27865,15 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"qQy" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) "qQA" = ( /obj/item/reagent_container/food/drinks/bottle/holywater{ desc = "A flask of the holy HEFA grenade oil."; @@ -27868,15 +27883,30 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"qQO" = ( -/obj/item/tool/wet_sign, +"qQM" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/floor/prison, -/area/fiorina/tumor/servers) -"qQU" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/prop/helmetgarb/raincover, +/area/fiorina/station/disco) +"qRa" = ( +/obj/effect/decal/cleanable/blood/gibs/core, /turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) +"qRf" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "qRg" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." @@ -27895,90 +27925,83 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"qRD" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"qSg" = ( -/obj/structure/machinery/bot/medbot{ - name = "Dr. O" - }, +"qRK" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"qSv" = ( -/obj/structure/machinery/vending/snack/packaged, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 + dir = 6; + icon_state = "darkpurple2" }, +/area/fiorina/station/central_ring) +"qRS" = ( +/obj/item/trash/candy, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"qTa" = ( -/turf/open/floor/prison{ +/area/fiorina/station/telecomm/lz1_cargo) +"qRW" = ( +/obj/structure/stairs/perspective{ dir = 8; - icon_state = "cell_stripe" + icon_state = "p_stair_ew_full_cap" }, -/area/fiorina/station/security) -"qTp" = ( -/obj/structure/sink{ - pixel_y = 23 +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"qSm" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"qSy" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + pixel_y = 17 }, -/obj/item/prop/helmetgarb/rabbitsfoot{ - pixel_y = 22 +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"qSz" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" }, -/obj/item/reagent_container/food/drinks/bottle/kahlua{ - pixel_x = 5; - pixel_y = 25 +/area/fiorina/station/lowsec) +"qSA" = ( +/obj/item/trash/candy, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" }, +/area/fiorina/tumor/ice_lab) +"qTe" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"qTt" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "yellow" }, -/area/fiorina/station/medbay) -"qTr" = ( -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/disco) +"qTx" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/tumor/ice_lab) -"qTy" = ( -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = -9; - pixel_y = 8 - }, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 11; - pixel_y = 8 + icon_state = "whitegreenfull" }, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 1; - pixel_y = 8 +/area/fiorina/station/medbay) +"qTQ" = ( +/obj/structure/platform_decoration, +/obj/item/reagent_container/food/drinks/sillycup, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/flight_deck) +"qTW" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "blue" }, /area/fiorina/station/power_ring) -"qUe" = ( -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/obj/item/ammo_casing/shell{ - icon_state = "shell_9_1" - }, -/obj/structure/barricade/metal{ - health = 250; - icon_state = "metal_1" - }, -/turf/open/floor/prison, -/area/fiorina/station/park) "qUo" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -27998,532 +28021,355 @@ name = "astroturf" }, /area/fiorina/station/park) -"qUp" = ( -/obj/effect/landmark{ - icon_state = "hive_spawn"; - name = "xeno_hive_spawn" +"qUw" = ( +/obj/item/device/multitool, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"qUC" = ( +/obj/item/ammo_casing{ + dir = 2; + icon_state = "casing_5" }, -/obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/prison{ dir = 1; icon_state = "darkbrown2" }, -/area/fiorina/tumor/aux_engi) -"qUx" = ( -/obj/item/stack/tile/plasteel, +/area/fiorina/station/park) +"qVW" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison, +/area/fiorina/station/park) +"qXj" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "kitchen" }, +/area/fiorina/station/lowsec) +"qXM" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"qUQ" = ( -/obj/item/stack/cable_coil, +"qYZ" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"qUZ" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" + icon_state = "darkpurplefull2" }, -/obj/structure/platform, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +/area/fiorina/tumor/servers) +"qZc" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"qVe" = ( -/obj/structure/machinery/cm_vending/sorted/marine_food{ - desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; - name = "\improper Fiorina Green Block Canteen Vendor" +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"qVq" = ( -/obj/item/ammo_box/magazine/misc/flares{ - layer = 3.1; - pixel_y = 16 +/area/fiorina/station/telecomm/lz1_cargo) +"qZv" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/obj/structure/largecrate/random/secure, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/tumor/ice_lab) -"qVt" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/central_ring) +"raC" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison{ dir = 8; - pixel_x = -10; - pixel_y = -3 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/telecomm/lz1_tram) -"qVD" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 10 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"qVF" = ( -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/botany) -"qWa" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/random/gun/rifle/lowchance, -/turf/open/floor/prison{ - dir = 9; icon_state = "darkyellow2" }, /area/fiorina/lz/near_lzI) -"qWf" = ( -/obj/item/trash/popcorn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"qWi" = ( -/obj/structure/largecrate/guns/merc, -/obj/item/toy/deck/uno, +"raL" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"qWw" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 4; - pixel_y = 24 - }, -/obj/structure/bed/chair{ - dir = 1 + icon_state = "bluefull" }, -/obj/effect/landmark/corpsespawner/security/liaison, +/area/fiorina/station/civres_blue) +"raP" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/park) -"qWB" = ( -/obj/structure/largecrate/random, +/area/fiorina/station/medbay) +"rbp" = ( +/obj/structure/closet/crate/medical, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"qWO" = ( -/obj/item/tool/weldingtool, -/turf/open/auto_turf/sand/layer1, -/area/fiorina/tumor/civres) -"qXl" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, +/area/fiorina/station/medbay) +"rbv" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"qXM" = ( -/obj/item/stack/tile/plasteel, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/civres) -"qXP" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison, -/area/fiorina/station/chapel) -"qYc" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + icon_state = "darkpurplefull2" }, +/area/fiorina/tumor/servers) +"rbI" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"qYq" = ( -/obj/effect/decal/cleanable/blood{ - desc = "Watch your step."; - icon_state = "gib6" - }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"qZa" = ( -/obj/item/shard{ - icon_state = "large"; - name = "ice shard" - }, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 5; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/ice_lab) -"qZh" = ( -/obj/structure/platform_decoration, -/obj/item/shard{ - icon_state = "medium"; - name = "ice shard" +/area/fiorina/lz/near_lzI) +"rbK" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"rbW" = ( +/obj/structure/cargo_container/grant/right{ + health = 5000; + unacidable = 1 }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"rbZ" = ( +/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"qZx" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - layer = 3.5; - pixel_y = 6 + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/medbay) +"rcc" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"qZL" = ( -/obj/structure/machinery/computer/arcade, -/obj/item/toy/syndicateballoon{ - anchored = 1; - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - layer = 2.8; - pixel_x = 15; - pixel_y = 5 + dir = 4; + icon_state = "blue_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"qZW" = ( +/area/fiorina/station/botany) +"rce" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/wy_mre{ - pixel_x = 5; - pixel_y = 2 +/obj/structure/reagent_dispensers/water_cooler{ + pixel_y = 11 }, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, /area/fiorina/station/research_cells) -"rac" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 +"rcg" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"rcl" = ( +/obj/structure/monorail{ + name = "launch track" }, -/turf/open/space/basic, -/area/fiorina/oob) -"rar" = ( -/obj/structure/window/reinforced{ - dir = 4 +/obj/structure/machinery/constructable_frame{ + icon_state = "box_1" }, -/obj/structure/window/reinforced, -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"rcE" = ( +/obj/structure/inflatable/popped/door, +/obj/item/stack/barbed_wire, +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/ice_lab) -"raD" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 + dir = 6; + icon_state = "whitegreen" }, +/area/fiorina/station/medbay) +"rcI" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/limb, /turf/open/floor/prison{ dir = 4; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"raF" = ( -/obj/item/card/id/silver/clearance_badge/cl{ - desc = "Wow sorry, didn't mean to drop that in front of you, it's real, btw."; - name = "certified powerloader operator card"; - registered_name = "John Forklift" + icon_state = "whitegreencorner" }, +/area/fiorina/station/medbay) +"rdi" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"rbD" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 8 + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/transit_hub) +"rdo" = ( /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 1; + icon_state = "greenbluecorner" }, -/area/fiorina/station/security) -"rbE" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/botany) +"rdt" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/fiorina/station/medbay) -"rbK" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/plating/prison, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"rcu" = ( -/obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"rcG" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"red" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) -"rdS" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"rdX" = ( +"rez" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" +/obj/structure/machinery/computer/cameras{ + dir = 4 }, -/area/fiorina/tumor/civres) -"rev" = ( /turf/open/floor/prison{ - icon_state = "blue" + icon_state = "darkredfull2" }, -/area/fiorina/station/power_ring) -"reD" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/station/disco) +"reZ" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0" }, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"reO" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"rfa" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "rfd" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited, /turf/closed/wall/prison, /area/fiorina/tumor/ice_lab) -"rfo" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"rfq" = ( -/obj/structure/bed/chair{ - dir = 8 - }, +"rfe" = ( +/obj/structure/surface/rack, +/obj/item/tool/mop, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"rfD" = ( -/obj/structure/barricade/wooden, +"rft" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"rfG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/toolbox/mechanical/green, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"rfJ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/snacks/mre_pack/meal4{ - name = "\improper prison food"; - pixel_y = 9 + icon_state = "greenblue" }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/botany) +"rfQ" = ( +/obj/effect/spawner/random/tech_supply, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/research_cells) -"rfR" = ( -/obj/item/shard{ - icon_state = "medium"; - name = "ice shard" +/turf/open/floor/prison, +/area/fiorina/station/security) +"rgc" = ( +/obj/item/device/binoculars/civ, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/lowsec) "rgg" = ( /obj/item/tool/candle{ pixel_x = -2 }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"rgD" = ( -/obj/effect/landmark/corpsespawner/ua_riot, +"rhf" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "cell_stripe" + }, +/area/fiorina/station/research_cells) +"rhh" = ( +/obj/structure/monorail{ + dir = 4; + name = "launch track" }, -/area/fiorina/station/lowsec) -"rhF" = ( -/obj/item/stack/sheet/metal/medium_stack, -/obj/structure/surface/rack, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/transit_hub) +"rhH" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/area/fiorina/station/power_ring) -"rhK" = ( -/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/tumor/aux_engi) -"rib" = ( -/obj/item/trash/cigbutt/cigarbutt, +/area/fiorina/station/research_cells) +"rie" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 1; + dir = 8; icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"ril" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/emeraldgreen, -/obj/item/tool/lighter, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"riu" = ( -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 1; - pixel_y = 8 - }, +"riP" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/tumor/aux_engi) "rja" = ( /turf/closed/wall/prison, /area/fiorina/station/civres_blue) -"rjn" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, +"rjy" = ( +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"rjz" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/effect/decal/cleanable/blood{ - icon_state = "gibarm_flesh" + dir = 10; + icon_state = "kitchen" }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"rjE" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/area/fiorina/tumor/civres) +"rjP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" + icon_state = "floor_plate" }, /area/fiorina/station/medbay) -"rjM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/surgery{ - name = "Lung Transplants for Dummies"; - pixel_y = 4 - }, +"rki" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"rkb" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/structure/machinery/light/double/blue{ +/area/fiorina/tumor/civres) +"rko" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"rkp" = ( +/obj/structure/toilet{ dir = 4; - pixel_x = 10; - pixel_y = 13 + pixel_y = 8 }, -/obj/effect/landmark/objective_landmark/medium, +/obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/maintenance) -"rkh" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/cleanable/blood/gibs/up, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, /area/fiorina/station/lowsec) -"rkr" = ( +"rkv" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "greenblue" + dir = 8; + icon_state = "greencorner" }, -/area/fiorina/station/botany) -"rkB" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/chapel) +"rkF" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, -/obj/item/device/flashlight, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/telecomm/lz1_cargo) "rkH" = ( /obj/structure/grille, /obj/structure/lattice, /turf/open/space, /area/fiorina/oob) -"rkQ" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/stack/rods, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/chapel) "rkR" = ( /obj/item/clothing/glasses/science, /turf/open/space, @@ -28532,33 +28378,12 @@ /obj/item/stack/cable_coil/green, /turf/open/floor/wood, /area/fiorina/station/chapel) -"rlC" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 10 - }, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/chapel) -"rmb" = ( -/obj/structure/machinery/shower{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/research_cells) -"rmg" = ( -/obj/structure/largecrate/random/case, +"rlP" = ( +/obj/structure/largecrate/supply, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) "rmh" = ( /obj/structure/surface/rack, /obj/item/storage/bag/trash, @@ -28568,46 +28393,22 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"rmA" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg3" - }, -/area/fiorina/station/security) -"rmG" = ( -/obj/item/ammo_casing{ - icon_state = "casing_5" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +"rmX" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/station/flight_deck) -"rmI" = ( /obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottomleft" - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"rmS" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_v" - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"rmZ" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 }, -/area/fiorina/station/telecomm/lz1_cargo) +/obj/structure/largecrate/random, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) "rna" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 @@ -28618,210 +28419,264 @@ }, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"rol" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" +"rnl" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 }, -/turf/open/floor/plating/prison, +/turf/open/floor/prison, /area/fiorina/station/transit_hub) -"roo" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = 1 +"rnn" = ( +/obj/structure/largecrate/supply/explosives/mortar_flare, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"rnE" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"rnM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/crayons, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"roi" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 9 }, -/area/fiorina/lz/near_lzII) -"ror" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/research_cells) -"rov" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "gib6" +/area/fiorina/station/park) +"rot" = ( +/obj/structure/barricade/metal{ + health = 250; + icon_state = "metal_1" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + dir = 6; + icon_state = "darkpurple2" }, /area/fiorina/tumor/ice_lab) -"rox" = ( -/obj/structure/platform_decoration, -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 +"roE" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalleft" }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"roF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/computer/cameras{ + dir = 8 }, -/area/fiorina/station/disco) -"roC" = ( -/obj/item/tool/weldpack, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"roN" = ( -/obj/structure/closet/crate/medical, -/obj/item/tool/surgery/bonegel, -/obj/item/tool/surgery/bonegel, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"roS" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/security) +"roH" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "darkredfull2" }, -/area/fiorina/station/power_ring) -"roY" = ( +/area/fiorina/oob) +"roQ" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"rpf" = ( +/obj/structure/grille, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/research_cells) -"rpe" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar/red, -/obj/item/storage/pill_bottle/inaprovaline/skillless, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"rqL" = ( -/obj/structure/surface/rack, +"rpt" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"rpL" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison, /area/fiorina/lz/near_lzII) -"rrb" = ( -/obj/structure/reagent_dispensers/water_cooler, +"rpT" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5" + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"rqh" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"rqq" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"rqA" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" + }, +/area/fiorina/tumor/servers) +"rqC" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"rqG" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/security/wardens) -"rrj" = ( -/obj/item/clothing/under/color/orange, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/civres_blue) +"rqY" = ( +/obj/structure/filingcabinet/disk, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) +"rrs" = ( +/obj/item/stack/rods/plasteel, +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "rru" = ( /obj/effect/spawner/random/goggles/midchance, /turf/open/organic/grass{ name = "astroturf" }, /area/fiorina/station/research_cells) -"rrP" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, -/area/fiorina/station/chapel) -"rsh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/cigarette/weed{ - icon_state = "ucigoff" +"rrD" = ( +/obj/structure/machinery/landinglight/ds1{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/lowsec) +/area/fiorina/lz/near_lzI) +"rsg" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison, +/area/fiorina/station/park) "rsp" = ( /obj/item/toy/crayon/purple, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"rss" = ( +"rsH" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"rsz" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 +"rsQ" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/obj/structure/platform_decoration{ + dir = 10 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"rsE" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"rsW" = ( +/area/fiorina/station/power_ring) +"rsR" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"rth" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 + dir = 5; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"rsU" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/floor/prison, /area/fiorina/tumor/aux_engi) -"rtM" = ( +"rtc" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"rtw" = ( /obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 + icon_state = "pottedplant_22"; + layer = 2.8 }, +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security/wardens) -"rue" = ( -/obj/structure/monorail{ - dir = 10; - name = "launch track" +/area/fiorina/station/flight_deck) +"rty" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"ruv" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "green" + dir = 5; + icon_state = "blue" }, -/area/fiorina/station/chapel) -"ruy" = ( +/area/fiorina/station/civres_blue) +"rtP" = ( +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/ice_lab) -"ruB" = ( -/obj/effect/decal/medical_decals{ - dir = 4; - icon_state = "triagedecaldir" +/area/fiorina/station/medbay) +"rur" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, +/area/fiorina/station/park) +"ruu" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "darkbrown2" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/aux_engi) "ruD" = ( /turf/open/floor/wood, /area/fiorina/oob) -"ruE" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) "ruJ" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -28833,53 +28688,22 @@ }, /turf/closed/wall/prison, /area/fiorina/tumor/servers) -"rvf" = ( -/obj/effect/decal/cleanable/blood/tracks/footprints{ - dir = 1; - icon_state = "human2" - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"rvu" = ( -/obj/structure/toilet, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, -/area/fiorina/station/civres_blue) -"rvR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/adv{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 9; - pixel_y = 2 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"rvW" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) "rwj" = ( /obj/structure/barricade/plasteel, /turf/open/organic/grass{ name = "astroturf" }, /area/fiorina/station/park) -"rwt" = ( -/obj/effect/decal/cleanable/blood, +"rwm" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitepurple" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/research_cells) "rwu" = ( /obj/structure/bed/chair{ dir = 1 @@ -28892,99 +28716,89 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"rxh" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"rwK" = ( +/obj/item/clothing/under/color/orange, +/obj/item/clothing/under/color/orange, +/obj/item/clothing/under/color/orange, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"rwQ" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + dir = 8; + icon_state = "greenblue" }, -/area/fiorina/station/park) +/area/fiorina/station/botany) +"rxg" = ( +/turf/open/floor/prison{ + icon_state = "redcorner" + }, +/area/fiorina/station/security) "rxr" = ( /obj/structure/bed/chair/office/light{ dir = 8 }, /turf/open/floor/almayer_hull, /area/fiorina/oob) -"rxu" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "lavendergrass_3" +"rxL" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/area/fiorina/station/central_ring) -"rxz" = ( -/obj/structure/curtain/open/black, -/turf/open/floor/prison, -/area/fiorina/maintenance) -"rym" = ( -/obj/structure/inflatable/popped/door, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"ryt" = ( -/obj/structure/window/framed/prison/reinforced, -/turf/open/floor/prison, -/area/fiorina/station/security) -"ryx" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" }, -/area/fiorina/tumor/aux_engi) +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"rxM" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "ryJ" = ( /obj/structure/machinery/door/airlock/prison/horizontal{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"ryN" = ( +"rzp" = ( /turf/open/floor/prison{ - dir = 5; - icon_state = "whitegreen" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "rzt" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"rzR" = ( -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" +"rzF" = ( +/obj/structure/holohoop{ + pixel_y = 25 }, -/area/fiorina/station/power_ring) -"rAa" = ( -/obj/item/pamphlet/skill/powerloader, -/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"rAk" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 + icon_state = "yellow" }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/lowsec) "rAm" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"rAt" = ( -/obj/structure/barricade/wooden, +"rAw" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/research_cells) "rAK" = ( @@ -28999,36 +28813,20 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"rAQ" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" +"rAU" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/medbay) -"rAW" = ( -/obj/structure/largecrate/random, -/obj/structure/barricade/wooden, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"rBa" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/civres) +"rAY" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison, /area/fiorina/station/security) "rBr" = ( /obj/item/device/flashlight/lamp/tripod, @@ -29039,6 +28837,15 @@ icon_state = "plate" }, /area/fiorina/station/civres_blue) +"rBu" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/flight_deck) "rBz" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -29048,13 +28855,15 @@ "rBF" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/flight_deck) -"rBR" = ( -/obj/effect/decal/cleanable/blood/oil, +"rCe" = ( +/obj/structure/platform{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 6; + icon_state = "yellow" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/disco) "rCq" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/plating/prison, @@ -29065,102 +28874,49 @@ }, /turf/open/floor/wood, /area/fiorina/station/lowsec) -"rCL" = ( -/obj/structure/machinery/optable{ - desc = "This maybe could be used for advanced medical procedures."; - name = "Exam Table" - }, -/obj/item/bedsheet/ce{ - desc = "It crinkles, aggressively."; - name = "sterile wax sheet" - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) -"rCO" = ( +"rDu" = ( /obj/structure/stairs/perspective{ dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/servers) -"rDl" = ( -/obj/item/trash/hotdog, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"rDm" = ( -/obj/item/tool/crowbar/red, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"rEe" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/botany) -"rEg" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 + icon_state = "p_stair_full" }, -/obj/item/storage/fancy/cigarettes/blackpack, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" +/obj/structure/platform, +/obj/structure/barricade/handrail/type_b{ + layer = 3.4 }, -/area/fiorina/station/research_cells) -"rEm" = ( -/obj/item/tool/weldingtool, /turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"rEH" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" - }, -/area/fiorina/oob) -"rFr" = ( -/obj/structure/barricade/wooden{ - dir = 4; - pixel_y = 4 - }, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, -/area/fiorina/station/central_ring) +/area/fiorina/station/medbay) "rFu" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison/chapel_carpet{ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"rFH" = ( -/obj/structure/largecrate/random, +"rFw" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"rFF" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/central_ring) -"rFT" = ( -/obj/item/ammo_casing{ - icon_state = "casing_7_1" +/area/fiorina/tumor/ice_lab) +"rGc" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/tumor/ice_lab) +"rGe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer3/laptop/secure_data, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/medbay) "rGf" = ( /turf/open/auto_turf/sand/layer1, /area/fiorina/station/disco) @@ -29183,32 +28939,22 @@ name = "astroturf" }, /area/fiorina/station/park) -"rGV" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"rHd" = ( -/obj/item/stock_parts/manipulator/pico, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"rHj" = ( -/obj/structure/surface/table/reinforced/prison{ - flipped = 1 +"rHf" = ( +/obj/structure/machinery/optable{ + desc = "This maybe could be used for advanced medical procedures."; + name = "Exam Table" }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"rHh" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison{ + icon_state = "floorscorched1" + }, +/area/fiorina/station/chapel) "rHr" = ( /obj/effect/alien/weeds/node, /turf/open/floor/plating/prison, @@ -29217,59 +28963,58 @@ /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"rHx" = ( +"rHV" = ( +/obj/structure/bed/chair, /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/civres_blue) -"rIo" = ( +/area/fiorina/tumor/servers) +"rHX" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/station/chapel) -"rIC" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/area/fiorina/tumor/ice_lab) +"rIr" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"rIy" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/phone{ + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) "rIE" = ( /obj/item/stack/rods, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"rII" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) "rIS" = ( /obj/structure/sign/poster{ icon_state = "poster6" }, /turf/closed/wall/prison, /area/fiorina/station/medbay) -"rIW" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "red" - }, -/area/fiorina/station/security) -"rIX" = ( +"rJc" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/chapel) "rJh" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/prison, @@ -29280,18 +29025,22 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"rJK" = ( +"rJF" = ( /turf/open/floor/prison{ - icon_state = "blue" + icon_state = "floor_plate" }, /area/fiorina/station/chapel) "rJO" = ( /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"rJT" = ( -/obj/item/storage/bag/trash, +"rJW" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, /turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/lz/near_lzI) "rJZ" = ( /obj/item/stack/cable_coil/green, /turf/open/floor/plating/prison, @@ -29306,102 +29055,94 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"rKB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/rifle/m16, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"rKO" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"rKd" = ( +/obj/item/stool, +/obj/structure/sign/poster{ + icon_state = "poster14"; + pixel_y = 32 }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"rKS" = ( -/obj/item/tool/wrench, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/tumor/servers) -"rKX" = ( -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/lowsec) +"rKm" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, -/area/fiorina/station/civres_blue) -"rKZ" = ( -/obj/item/storage/toolbox/electrical, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"rLb" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"rLC" = ( -/obj/structure/window{ - dir = 4 + icon_state = "redfull" }, -/obj/item/circuitboard/machine/rdserver, +/area/fiorina/station/security) +"rKs" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/cups, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"rLJ" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/chapel) -"rLT" = ( -/obj/structure/machinery/photocopier, +/area/fiorina/station/power_ring) +"rKy" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "greenblue" }, -/area/fiorina/station/medbay) -"rMg" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/area/fiorina/station/botany) +"rKA" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + icon_state = "blue" }, +/area/fiorina/station/civres_blue) +"rKG" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 8; + icon_state = "blue_plate" }, -/area/fiorina/tumor/civres) -"rMt" = ( -/obj/item/shard{ - icon_state = "medium" +/area/fiorina/station/botany) +"rLA" = ( +/obj/structure/platform, +/turf/open/floor/prison, +/area/fiorina/station/botany) +"rLG" = ( +/turf/open/floor/prison{ + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"rLJ" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/chapel) +"rMo" = ( +/obj/effect/landmark/objective_landmark/far, +/obj/structure/closet/secure_closet/engineering_personal, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/tumor/servers) -"rME" = ( -/obj/structure/machinery/bot/medbot, +/area/fiorina/maintenance) +"rMq" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"rMP" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"rMS" = ( -/obj/structure/largecrate/random/secure, +"rMw" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" + dir = 5; + icon_state = "yellow" }, -/area/fiorina/station/medbay) +/area/fiorina/station/disco) +"rMT" = ( +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) "rMY" = ( /obj/structure/machinery/light/small{ dir = 8; @@ -29423,46 +29164,25 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"rNp" = ( -/obj/item/reagent_container/glass/bucket/mopbucket, -/obj/item/tool/mop, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"rNF" = ( -/obj/item/stack/sandbags/large_stack, +"rNK" = ( +/obj/effect/spawner/random/gun/pistol/lowchance, /turf/open/floor/prison{ - dir = 6; - icon_state = "green" - }, -/area/fiorina/tumor/civres) -"rOa" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"rOm" = ( -/obj/structure/platform_decoration{ - dir = 4 + dir = 1; + icon_state = "darkbrown2" }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"rOo" = ( -/obj/structure/monorail{ - dir = 9; - name = "launch track" +/area/fiorina/station/park) +"rNV" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/civres) "rOu" = ( /obj/structure/closet, /obj/effect/spawner/random/sentry/midchance, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"rOE" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) "rOI" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations have been the leading cause in asbestos related deaths in spacecraft for 3 years in a row now."; @@ -29471,27 +29191,39 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"rON" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/storage/pill_bottle/kelotane/skillless, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/station/park) -"rPh" = ( +"rOL" = ( +/obj/structure/machinery/floodlight{ + name = "Yard Floodlight" + }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"rPu" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 1 +/area/fiorina/station/central_ring) +"rPd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/metal/medium_stack, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"rPf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/transit_hub) +"rPD" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/lowsec) "rPI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/drinks/cans/souto/cherry{ @@ -29519,20 +29251,16 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"rPQ" = ( -/obj/structure/sign/poster{ - desc = "You are becoming hysterical."; - icon_state = "poster11"; - pixel_x = -24 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) "rPS" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) +"rPW" = ( +/obj/effect/spawner/random/gun/rifle/lowchance, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzI) "rPZ" = ( /obj/item/shard{ icon_state = "medium" @@ -29545,24 +29273,19 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"rQm" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/obj/structure/platform_decoration, +"rQu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/cable_coil/orange, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"rQF" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/maintenance) +"rQB" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "greencorner" + icon_state = "sterile_white" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/lowsec) "rQK" = ( /obj/item/bananapeel{ name = "tactical banana peel" @@ -29571,45 +29294,34 @@ icon_state = "squares" }, /area/fiorina/station/medbay) -"rQP" = ( -/obj/structure/machinery/power/terminal{ - dir = 8 - }, +"rQN" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "bluecorner" + dir = 6; + icon_state = "darkbrown2" }, /area/fiorina/station/power_ring) -"rRb" = ( -/obj/item/shard{ - icon_state = "large" - }, +"rRg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/mineral/plastic, /turf/open/floor/prison{ icon_state = "darkpurplefull2" }, /area/fiorina/tumor/servers) -"rRO" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 - }, -/obj/structure/machinery/light/double/blue{ +"rRo" = ( +/turf/open/floor/prison{ dir = 1; - pixel_y = 21 + icon_state = "darkyellow2" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"rRT" = ( -/obj/item/clothing/under/color/orange, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/telecomm/lz1_tram) +"rRz" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/area/fiorina/station/security) -"rSh" = ( -/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 1; + icon_state = "blue" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/civres_blue) "rSr" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -29617,19 +29329,38 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"rSM" = ( -/obj/structure/inflatable/popped, +"rSN" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/autolathe/full{ + layer = 2.98 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"rSU" = ( +/obj/structure/barricade/sandbags{ + dir = 4; + icon_state = "sandbag_0"; + pixel_y = 2 + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"rTd" = ( +/obj/item/ammo_casing{ + icon_state = "casing_5" + }, /turf/open/floor/prison{ + dir = 8; icon_state = "whitegreen" }, -/area/fiorina/station/medbay) -"rTb" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" +/area/fiorina/tumor/ice_lab) +"rTD" = ( +/obj/effect/spawner/random/powercell, +/turf/open/floor/prison{ + icon_state = "bluefull" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/power_ring) "rTH" = ( /obj/structure/sign/prop1{ layer = 2.5; @@ -29637,57 +29368,78 @@ }, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"rTL" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +"rTV" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gibup1" }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"rUc" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/lz/near_lzI) -"rUr" = ( -/obj/structure/monorail{ - dir = 4; - name = "launch track" +/area/fiorina/station/medbay) +"rTZ" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurplecorner" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/research_cells) +"rUf" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/fiorina/tumor/servers) "rUA" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"rUL" = ( -/obj/item/stack/cable_coil/green, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"rUQ" = ( +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_y = 21 }, -/area/fiorina/tumor/civres) -"rUT" = ( -/obj/item/shard{ - icon_state = "medium" +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_x = 17; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/security) -"rUY" = ( -/obj/structure/platform_decoration, +/area/fiorina/station/medbay) +"rVi" = ( +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 6; + icon_state = "darkyellow2" }, -/area/fiorina/station/disco) -"rVy" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/flight_deck) +"rVp" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) +"rVL" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/prison{ dir = 1; - icon_state = "p_stair_full" + icon_state = "yellow" }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) +/area/fiorina/station/lowsec) "rVM" = ( /obj/structure/closet/crate/miningcar, /obj/structure/barricade/wooden{ @@ -29700,125 +29452,133 @@ /obj/item/reagent_container/food/drinks/cans/beer, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"rVS" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"rVQ" = ( +/obj/item/stack/sheet/metal/medium_stack, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"rVV" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"rWt" = ( +/obj/item/stack/cable_coil/cut, +/turf/open/floor/prison, /area/fiorina/tumor/servers) -"rVZ" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"rWQ" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 2; + layer = 6; + name = "overhead pipe"; + pixel_x = -16; + pixel_y = 12 }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"rXt" = ( +/obj/structure/surface/rack, +/obj/item/device/camera, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"rWi" = ( -/obj/structure/machinery/vending/sovietsoda, +/area/fiorina/tumor/fiberbush) +"rYw" = ( +/obj/item/trash/liquidfood, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/botany) -"rWB" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"rWX" = ( -/turf/open/floor/prison{ - icon_state = "damaged3" +/area/fiorina/tumor/ice_lab) +"rYy" = ( +/obj/item/stool{ + pixel_x = -4; + pixel_y = 10 }, -/area/fiorina/station/disco) -"rWZ" = ( -/obj/item/weapon/gun/rifle/m16, -/obj/item/ammo_casing{ - dir = 6; - icon_state = "casing_5" +/obj/structure/sign/poster{ + icon_state = "poster1"; + pixel_y = 32 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 1; + icon_state = "yellow" }, -/area/fiorina/station/telecomm/lz1_cargo) -"rXz" = ( -/obj/structure/pipes/unary/freezer{ - icon_state = "freezer_1" +/area/fiorina/station/lowsec) +"rYK" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"rYY" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/filtration/console{ + can_block_movement = 0; + pixel_y = 22 + }, +/obj/item/trash/used_stasis_bag, +/turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"rXT" = ( -/obj/structure/machinery/vending/cigarette/colony, +"rZe" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" + icon_state = "redfull" }, -/area/fiorina/lz/near_lzI) -"rYC" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" +/area/fiorina/station/security/wardens) +"rZi" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_rightengine" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"rYJ" = ( -/obj/structure/reagent_dispensers/watertank, +/area/fiorina/station/power_ring) +"rZI" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/aux_engi) -"rZa" = ( -/obj/structure/barricade/metal/wired{ +/area/fiorina/station/medbay) +"rZN" = ( +/obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) -"rZh" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +/area/fiorina/station/flight_deck) +"rZO" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"rZi" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan_rightengine" +/turf/open/floor/prison{ + icon_state = "redfull" }, -/area/fiorina/station/power_ring) -"rZr" = ( -/obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/security) "rZP" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/aux_engi) -"sad" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" +"saL" = ( +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = -9; + pixel_y = 8 }, -/area/fiorina/station/disco) -"saI" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 11; + pixel_y = 8 + }, +/obj/structure/reagent_dispensers/water_cooler{ + pixel_x = 1; + pixel_y = 8 }, -/area/fiorina/tumor/aux_engi) -"saQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/pill_bottle/inaprovaline/skillless, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/station/power_ring) "sbf" = ( /obj/effect/landmark/corpsespawner/prisoner, /turf/open/gm/river{ @@ -29826,88 +29586,64 @@ name = "pool" }, /area/fiorina/station/park) -"sbg" = ( -/obj/item/trash/cigbutt, +"sbF" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "red" }, -/area/fiorina/station/medbay) -"sbj" = ( -/obj/structure/bed/sofa/vert/grey/top, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"sbp" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, +/area/fiorina/station/security) +"sbL" = ( +/obj/structure/surface/rack, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"sbM" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 +/area/fiorina/tumor/ice_lab) +"sbU" = ( +/obj/item/trash/pistachios, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"sbW" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + dir = 4; + icon_state = "greenbluecorner" }, -/area/fiorina/station/disco) -"sbQ" = ( +/area/fiorina/station/botany) +"scp" = ( /obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"sbY" = ( -/obj/structure/inflatable, -/obj/structure/barricade/handrail/type_b, -/obj/structure/barricade/handrail/type_b{ - dir = 8 - }, +/obj/item/trash/uscm_mre, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"scg" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/lowsec) -"sct" = ( -/obj/structure/closet/crate/delta{ - desc = "A crate with delta squad's symbol on it. Now how did that get here? The words 'HEFA was never real' are scrawled on it in black ink."; - name = "crate" - }, -/obj/item/ammo_box/magazine/shotgun/buckshot, +"scG" = ( +/obj/item/reagent_container/food/drinks/sillycup, /turf/open/floor/prison, -/area/fiorina/station/medbay) -"scw" = ( -/obj/item/storage/beer_pack{ - pixel_y = 10 - }, -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/flight_deck) +"scH" = ( +/obj/structure/machinery/washing_machine, /turf/open/floor/prison{ - icon_state = "yellow" + icon_state = "sterile_white" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/civres_blue) "scM" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/telecomm/lz1_tram) -"scU" = ( -/obj/structure/window/reinforced{ - dir = 4 +"scS" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 8; + layer = 3.5 }, -/obj/item/storage/briefcase, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security/wardens) +/area/fiorina/station/disco) "scZ" = ( /obj/structure/platform, /obj/structure/platform{ @@ -29918,21 +29654,24 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"sde" = ( -/obj/item/tool/kitchen/utensil/fork, +"sda" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"sdr" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "whitegreenfull" }, -/area/fiorina/station/flight_deck) -"sdg" = ( -/obj/item/implanter/compressed, -/obj/structure/safe, -/obj/effect/landmark/objective_landmark/science, +/area/fiorina/station/medbay) +"sdE" = ( +/obj/item/storage/wallet/random, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/security) +/area/fiorina/tumor/civres) "sdK" = ( /obj/structure/surface/table/woodentable, /obj/item/device/flashlight/lamp{ @@ -29942,47 +29681,68 @@ }, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) +"sdR" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"sdV" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "sdY" = ( /obj/structure/largecrate/random, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/station/civres_blue) -"sel" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/turf/open/floor/plating/prison, -/area/fiorina/station/park) -"seu" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" +"seh" = ( +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/area/fiorina/station/civres_blue) +"set" = ( +/obj/structure/bed/chair{ + dir = 4 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) +"seF" = ( +/obj/structure/monorail{ + dir = 6; + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) "seW" = ( /turf/closed/shuttle/ert{ icon_state = "stan_r_w" }, /area/fiorina/tumor/ship) -"seY" = ( -/obj/item/frame/rack, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +"sfe" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "sfi" = ( /obj/structure/platform_decoration{ dir = 1 @@ -29991,6 +29751,18 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) +"sfn" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "delivery_outlet"; + layer = 6; + name = "overhead ducting"; + pixel_y = 33 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/tumor/civres) "sfs" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/candle_box, @@ -29999,29 +29771,69 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"sfw" = ( +"sfu" = ( +/obj/structure/toilet{ + dir = 4; + pixel_y = 8 + }, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/lowsec) +"sfI" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/aux_engi) "sfW" = ( /obj/structure/platform{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"sgb" = ( -/obj/item/ammo_box/magazine/misc/flares/empty, +"sfZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/weapon/baton, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -6; + pixel_y = 12 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"sga" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 + }, +/obj/structure/barricade/metal/wired, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/flight_deck) +"sgt" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) "sgw" = ( /obj/structure/window_frame/prison, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) +"sgJ" = ( +/obj/structure/surface/rack, +/obj/item/storage/belt/gun/flaregun/full, +/obj/item/storage/belt/gun/flaregun/full, +/obj/item/storage/belt/gun/flaregun/full, +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "sha" = ( /obj/item/storage/bible/hefa{ pixel_y = 3 @@ -30030,91 +29842,86 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"shq" = ( -/obj/structure/machinery/space_heater, +"shh" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "kitchen" }, -/area/fiorina/tumor/ice_lab) -"shC" = ( -/obj/structure/machinery/autolathe/full, +/area/fiorina/station/research_cells) +"shH" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"sia" = ( +/obj/effect/landmark/objective_landmark/far, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) -"shG" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, +"sig" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/gloves/latex, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/medbay) -"siz" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 + icon_state = "floor_plate" }, +/area/fiorina/tumor/fiberbush) +"siy" = ( +/obj/item/stack/cable_coil, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"siR" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 + icon_state = "floor_plate" }, -/obj/item/tool/soap/syndie, -/obj/structure/closet/crate/trashcart, -/obj/effect/spawner/random/gun/special, -/obj/effect/landmark/objective_landmark/far, +/area/fiorina/station/power_ring) +"siB" = ( +/obj/item/poster, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/tumor/civres) -"sjc" = ( -/obj/structure/barricade/sandbags{ - dir = 8; - icon_state = "sandbag_0" + dir = 9; + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"siE" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/prison{ - icon_state = "darkyellow2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/telecomm/lz1_cargo) -"sjl" = ( -/obj/item/stack/nanopaste, -/turf/open/floor/prison{ +/area/fiorina/tumor/aux_engi) +"siK" = ( +/obj/structure/prop/resin_prop{ dir = 1; - icon_state = "blue" + icon_state = "chair"; + pixel_y = 6 }, -/area/fiorina/station/civres_blue) -"sjn" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"siW" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"sjd" = ( /obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"sjJ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/ice_lab) -"sjw" = ( +/area/fiorina/station/security) +"sjM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/goggles/lowchance, /turf/open/floor/prison{ - icon_state = "whitegreencorner" + icon_state = "redfull" }, -/area/fiorina/station/medbay) -"sjx" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "sjR" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 8 @@ -30127,60 +29934,114 @@ name = "astroturf" }, /area/fiorina/station/park) -"skM" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "repairpanelslz" +"sjT" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 2; + layer = 6; + name = "overhead pipe"; + pixel_x = -16; + pixel_y = 12 }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"skO" = ( -/obj/item/trash/cigbutt, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"slG" = ( -/obj/structure/machinery/disposal, +/area/fiorina/tumor/servers) +"sjX" = ( +/obj/item/reagent_container/blood, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "greenbluecorner" }, -/area/fiorina/station/power_ring) -"slM" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/trash/waffles, -/obj/item/stack/sheet/mineral/plastic, -/obj/item/stack/sheet/mineral/plastic, -/obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"sma" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/station/botany) +"sjZ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"skj" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/prison{ + icon_state = "yellow" }, +/area/fiorina/station/lowsec) +"skG" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "blue" }, -/area/fiorina/tumor/ice_lab) -"smh" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +/area/fiorina/tumor/servers) +"slc" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/park) +"slh" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"sli" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison{ icon_state = "floor_plate" }, +/area/fiorina/station/telecomm/lz1_cargo) +"sls" = ( +/obj/structure/pipes/standard/tank/oxygen, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"slR" = ( +/obj/effect/decal/cleanable/blood{ + desc = "Watch your step."; + icon_state = "gib6" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"slT" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"smj" = ( +/obj/structure/barricade/handrail/type_b, +/turf/open/floor/prison, /area/fiorina/station/disco) -"smq" = ( -/obj/structure/closet/emcloset, +"sms" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "bluecorner" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/civres_blue) "smv" = ( /obj/item/trash/used_stasis_bag{ desc = "Wow, instant sand. They really have everything in space."; @@ -30188,68 +30049,40 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"smz" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"smX" = ( -/obj/item/stock_parts/matter_bin/super, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" +"smR" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, -/area/fiorina/tumor/servers) -"snp" = ( -/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"snq" = ( +/area/fiorina/lz/near_lzI) +"snr" = ( /obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4 }, -/area/fiorina/station/park) -"sns" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison, -/area/fiorina/station/security) -"snO" = ( +/obj/item/stool, /turf/open/floor/prison{ - dir = 6; - icon_state = "blue" + icon_state = "bluefull" }, -/area/fiorina/station/power_ring) -"soc" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" +/area/fiorina/station/civres_blue) +"snW" = ( +/obj/structure/prop/resin_prop{ + icon_state = "rack" }, -/obj/effect/spawner/random/gun/rifle, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"sol" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/camera, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "darkbrownfull2" }, +/area/fiorina/tumor/aux_engi) +"soj" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/station/botany) "sov" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_1"; @@ -30262,15 +30095,14 @@ /obj/item/clothing/suit/armor/det_suit, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"soQ" = ( -/obj/structure/bed{ - icon_state = "abed" - }, +"spb" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/botany) "spl" = ( /obj/item/stack/sheet/metal, /obj/structure/barricade/handrail{ @@ -30280,17 +30112,52 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"sqg" = ( -/turf/open/floor/prison{ +"spm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + pixel_y = 9 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/security) +"spA" = ( +/obj/structure/stairs/perspective{ dir = 8; - icon_state = "whitegreen" + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/prop/souto_land/pole{ + dir = 1 + }, +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 24 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"spH" = ( +/obj/structure/disposalpipe/segment{ + icon_state = "delivery_outlet"; + layer = 6; + name = "overhead ducting"; + pixel_y = 33 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"sql" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +"spR" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) "sqx" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ density = 0; @@ -30298,60 +30165,62 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"sqB" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/station/park) "sqC" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison, /area/fiorina/station/lowsec) -"sru" = ( +"sqR" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/plasteel/medium_stack, -/obj/item/reagent_container/food/drinks/flask/vacuumflask{ - pixel_x = 7; - pixel_y = 22 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/obj/effect/spawner/random/supply_kit, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"srz" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"srp" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"srt" = ( +/obj/item/reagent_container/food/drinks/bottle/sake, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/civres) "srI" = ( /obj/item/tool/crowbar/red, /turf/open/floor/plating/prison, /area/fiorina/maintenance) +"srQ" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"ssb" = ( +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"ssc" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "ywflowers_2" + }, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/central_ring) "sso" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/bag/plants, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"ssD" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - indestructible = 1; - name = "launch bay door" - }, -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/oob) +"ssC" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "ssJ" = ( /obj/structure/lattice, /obj/structure/platform/kutjevo/smooth{ @@ -30359,123 +30228,191 @@ }, /turf/open/space, /area/fiorina/oob) +"ssM" = ( +/obj/structure/janitorialcart, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) "ssO" = ( /obj/item/ashtray/glass, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) +"ssR" = ( +/obj/item/clothing/under/shorts/black, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/central_ring) "sta" = ( /obj/structure/machinery/door/airlock/almayer/marine{ icon = 'icons/obj/structures/doors/prepdoor_charlie.dmi' }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"stq" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"stf" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"stw" = ( +/obj/structure/machinery/line_nexter, +/turf/open/floor/prison{ + dir = 8; + icon_state = "red" }, -/obj/structure/machinery/light/double/blue, +/area/fiorina/station/security) +"stC" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ dir = 9; - icon_state = "yellow" + icon_state = "greenfull" }, -/area/fiorina/station/disco) -"stX" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "darkbrown2" +/area/fiorina/tumor/civres) +"stP" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 3 }, -/area/fiorina/tumor/aux_engi) -"suj" = ( -/obj/structure/barricade/wooden{ - dir = 1 +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"stU" = ( +/obj/structure/sign/poster{ + icon_state = "poster7"; + pixel_x = -26; + pixel_y = 6 }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"sun" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" + icon_state = "floor_plate" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/medbay) +"sue" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/tracker, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" }, -/turf/open/floor/plating/prison, /area/fiorina/station/disco) -"suB" = ( -/obj/structure/dropship_equipment/fulton_system, +"suq" = ( +/obj/item/stool, +/turf/open/floor/prison{ + dir = 10; + icon_state = "damaged2" + }, +/area/fiorina/station/lowsec) +"suX" = ( /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"suE" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/area/fiorina/station/central_ring) +"suY" = ( +/obj/item/device/cassette_tape/nam, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/reagent_container/glass/bottle/robot/antitoxin, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, +/area/fiorina/station/medbay) +"svc" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkredfull2" }, /area/fiorina/station/security) +"sve" = ( +/obj/item/explosive/grenade/phosphorus, +/obj/item/explosive/grenade/phosphorus, +/obj/item/explosive/grenade/phosphorus, +/obj/structure/surface/rack, +/obj/item/explosive/grenade/phosphorus, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "svh" = ( /obj/structure/machinery/computer/telecomms/monitor, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"svo" = ( -/obj/structure/grille, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"svF" = ( -/obj/structure/blocker/invisible_wall, +"svN" = ( +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/obj/structure/machinery/shower{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + icon_state = "kitchen" + }, +/area/fiorina/station/lowsec) +"svP" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"svW" = ( +/obj/structure/surface/rack, +/obj/item/clothing/gloves/latex, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/oob) -"svG" = ( -/obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/prison, /area/fiorina/station/medbay) "swg" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/space, /area/fiorina/oob) -"swh" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"sws" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +"swj" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/tumor/civres) +"swJ" = ( +/obj/item/tool/shovel/snow, +/obj/item/device/flashlight, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"syf" = ( -/obj/structure/inflatable, -/obj/structure/barricade/handrail/type_b{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"swT" = ( +/obj/structure/platform{ + dir = 1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"syF" = ( -/obj/structure/machinery/microwave{ - desc = "So uh yeah, about that cat..."; - icon_state = "mwbloodyo"; - pixel_y = 6 +/area/fiorina/tumor/ice_lab) +"sxc" = ( +/obj/item/weapon/gun/rifle/mar40, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/lowsec) +"sxk" = ( +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/servers) +"sxE" = ( +/turf/open/floor/prison{ + icon_state = "redcorner" + }, +/area/fiorina/station/power_ring) +"sxH" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"syj" = ( +/obj/item/clothing/under/color/orange, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) "syG" = ( /obj/item/tool/wirecutters/clippers, /turf/open/organic/grass{ @@ -30500,78 +30437,67 @@ /obj/structure/sign/safety/fridge, /turf/closed/wall/prison, /area/fiorina/station/power_ring) -"szK" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/wood, -/area/fiorina/station/park) -"szQ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"sAe" = ( -/obj/effect/spawner/random/gun/smg, +"sze" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 1; + icon_state = "greencorner" }, -/area/fiorina/station/research_cells) -"sAk" = ( -/obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/civres) +"szs" = ( +/obj/item/clothing/accessory/armband/cargo{ + desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; + name = "HEFA Order milita armband" }, -/area/fiorina/station/power_ring) -"sAv" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"sAx" = ( -/obj/structure/bed{ - icon_state = "abed" + dir = 4; + icon_state = "bluecorner" }, -/obj/effect/spawner/random/goggles/lowchance, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" +/area/fiorina/station/chapel) +"szD" = ( +/obj/structure/stairs/perspective{ + dir = 9; + icon_state = "p_stair_full" }, -/area/fiorina/station/research_cells) -"sAK" = ( +/turf/open/floor/prison, +/area/fiorina/station/security) +"szK" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/wood, +/area/fiorina/station/park) +"szP" = ( +/obj/item/stack/sandbags_empty/half, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"sAp" = ( /obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"sAF" = ( +/obj/item/inflatable, /turf/open/floor/prison{ dir = 1; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"sBl" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/glass/bottle/spaceacillin{ - pixel_x = -6; - pixel_y = 4 + icon_state = "yellow" }, -/obj/item/reagent_container/syringe{ - pixel_x = 3; - pixel_y = -3 +/area/fiorina/station/lowsec) +"sBf" = ( +/obj/structure/platform{ + dir = 1 }, -/obj/item/reagent_container/glass/bottle/spaceacillin{ - pixel_x = 6; - pixel_y = 12 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"sBr" = ( -/obj/item/reagent_container/food/drinks/coffee, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +/area/fiorina/station/park) +"sBj" = ( +/obj/structure/barricade/metal{ + health = 85; + icon_state = "metal_1" }, -/area/fiorina/station/telecomm/lz1_cargo) +/turf/open/floor/prison, +/area/fiorina/station/park) "sBA" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -30579,58 +30505,57 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"sCh" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/card/id/silver/clearance_badge, +"sBM" = ( +/obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"sCj" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - icon_state = "mwo"; - pixel_y = 6 + dir = 4; + icon_state = "whitegreencorner" }, +/area/fiorina/station/medbay) +"sBO" = ( +/obj/structure/machinery/power/apc, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "whitegreenfull" }, -/area/fiorina/station/civres_blue) -"sCo" = ( +/area/fiorina/station/medbay) +"sBW" = ( /obj/structure/platform{ - dir = 1 + dir = 8 }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"sBY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/goggles/lowchance, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"sCB" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/area/fiorina/station/park) +"sCe" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/tumor/aux_engi) -"sDp" = ( -/obj/structure/largecrate/random, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"sDF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - pixel_y = 7 +/area/fiorina/station/chapel) +"sCH" = ( +/obj/item/frame/rack, +/obj/item/clothing/under/marine/ua_riot, +/turf/open/floor/prison{ + icon_state = "redfull" }, +/area/fiorina/station/security) +"sDn" = ( +/obj/structure/inflatable/popped/door, /obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) "sDL" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -30638,98 +30563,162 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"sDV" = ( +"sDR" = ( +/obj/effect/decal/cleanable/blood/tracks/footprints{ + dir = 1; + icon_state = "human2" + }, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "yellowfull" }, -/area/fiorina/station/central_ring) -"sEi" = ( +/area/fiorina/station/lowsec) +"sDS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16, /turf/open/floor/prison{ - dir = 8; icon_state = "darkyellow2" }, /area/fiorina/lz/near_lzI) -"sED" = ( -/turf/open/floor/prison{ - icon_state = "damaged2" - }, -/area/fiorina/station/disco) "sEO" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/lz/near_lzII) -"sFf" = ( -/obj/item/tool/crowbar/red, -/turf/open/floor/prison, -/area/fiorina/station/security) -"sFn" = ( -/obj/structure/machinery/door/window/northleft{ - dir = 4 +"sFd" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "greenblue" }, +/area/fiorina/station/botany) +"sFo" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security/wardens) -"sFI" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "Residential Archives" +/area/fiorina/station/park) +"sFr" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 8 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"sFN" = ( +/area/fiorina/station/flight_deck) +"sFH" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/chem_dispenser/soda, +/obj/item/folder/red{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/folder/red{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/tool/stamp, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/lowsec) +"sFY" = ( +/obj/structure/barricade/metal/wired{ + dir = 4 + }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"sGa" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison{ icon_state = "floor_plate" }, +/area/fiorina/station/disco) +"sGg" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"sGb" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" +"sGk" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/iv_drip{ + pixel_y = 19 }, +/obj/item/newspaper, +/obj/item/bedsheet/green, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/disco) -"sGu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/glass/bottle/spaceacillin{ - pixel_x = -6; - pixel_y = 4 +/area/fiorina/station/medbay) +"sGx" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/research_cells) +/area/fiorina/tumor/aux_engi) +"sGC" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/station/civres_blue) "sGI" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/wood, /area/fiorina/station/park) -"sHb" = ( -/obj/structure/platform_decoration{ - dir = 4 +"sGX" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/mre_pack/meal4{ + name = "\improper prison food"; + pixel_y = 9 + }, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"sHe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stock_parts/subspace/amplifier{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/stock_parts/subspace/analyzer{ + pixel_x = -9; + pixel_y = 8 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) -"sHw" = ( -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +/area/fiorina/station/power_ring) +"sHj" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "yellowcorner" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/lowsec) -"sHH" = ( -/turf/open/floor/prison, -/area/fiorina/station/lowsec) +/area/fiorina/station/research_cells) +"sHL" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"sHM" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell2deval" + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "sHO" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -30739,121 +30728,135 @@ }, /turf/open/space, /area/fiorina/oob) -"sHQ" = ( -/obj/structure/largecrate/random/case/double, +"sIg" = ( +/obj/item/device/pinpointer, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"sII" = ( -/obj/structure/bookcase{ - icon_state = "book-5"; - name = "\improper Mentor's Guide Bookcase" +/area/fiorina/station/telecomm/lz1_cargo) +"sIh" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 }, -/turf/open/floor/wood, -/area/fiorina/station/civres_blue) -"sIJ" = ( -/obj/structure/extinguisher_cabinet, -/turf/closed/wall/r_wall/prison, -/area/fiorina/lz/near_lzI) -"sIQ" = ( -/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/civres) -"sIT" = ( -/obj/structure/machinery/landinglight/ds2/delaytwo{ - dir = 4 + icon_state = "redfull" }, +/area/fiorina/station/security) +"sIj" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzII) -"sJc" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/area/fiorina/station/flight_deck) +"sIk" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 }, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "kitchen" }, /area/fiorina/station/lowsec) -"sJl" = ( -/obj/structure/largecrate/random/barrel/white, +"sIs" = ( +/obj/item/weapon/gun/smg/nailgun, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/maintenance) +"sIz" = ( +/obj/structure/machinery/computer/emails{ + pixel_y = 6 + }, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/park) +"sIC" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/civres) +"sII" = ( +/obj/structure/bookcase{ + icon_state = "book-5"; + name = "\improper Mentor's Guide Bookcase" + }, +/turf/open/floor/wood, +/area/fiorina/station/civres_blue) +"sIJ" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall/prison, +/area/fiorina/lz/near_lzI) "sJu" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"sJw" = ( +"sJy" = ( +/obj/item/ammo_casing{ + icon_state = "casing_9_1" + }, /turf/open/floor/prison{ - icon_state = "floorscorched1" + dir = 8; + icon_state = "yellowcorner" }, -/area/fiorina/station/chapel) +/area/fiorina/station/lowsec) +"sJB" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison, +/area/fiorina/station/security) "sJN" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/lz/near_lzI) -"sJT" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"sKn" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"sKq" = ( +"sJP" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"sKP" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 8 +/area/fiorina/station/lowsec) +"sKr" = ( +/obj/item/storage/secure/briefcase{ + pixel_x = 9; + pixel_y = 18 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"sKS" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/area/fiorina/station/lowsec) +"sKt" = ( +/obj/structure/bed/chair{ + dir = 1; + layer = 2.7 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "yellowfull" }, -/area/fiorina/station/disco) -"sLl" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" +/area/fiorina/station/lowsec) +"sKu" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"sKY" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) -"sLo" = ( -/obj/structure/machinery/landinglight/ds1/delaythree{ - dir = 1 +"sLu" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "darkredfull2" }, /area/fiorina/lz/near_lzI) "sLx" = ( @@ -30866,26 +30869,29 @@ }, /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/civres) -"sLT" = ( -/obj/item/tool/weldingtool, +"sMe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/security_space_law{ + pixel_x = 3; + pixel_y = 5 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/station/civres_blue) -"sMj" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +/area/fiorina/station/security) +"sMX" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"sMo" = ( -/obj/item/clothing/under/marine/ua_riot, -/obj/item/weapon/gun/rifle/m16, +/area/fiorina/tumor/aux_engi) +"sMY" = ( +/obj/item/reagent_container/food/snacks/eat_bar, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/botany) "sNb" = ( /obj/item/device/radio, /turf/open/organic/grass{ @@ -30893,43 +30899,54 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"sNd" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, +"sNg" = ( +/obj/structure/closet/firecloset/full, +/obj/item/storage/pill_bottle/bicaridine/skillless, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"sNu" = ( -/obj/structure/bed/chair{ +"sNi" = ( +/obj/item/device/flashlight, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) +"sNj" = ( +/obj/structure/barricade/metal/wired{ dir = 8 }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" +/obj/item/stack/sheet/metal{ + amount = 5 }, -/area/fiorina/maintenance) -"sNK" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) "sNN" = ( /obj/structure/platform, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"sNT" = ( -/obj/effect/spawner/random/gun/pistol/lowchance, +"sNQ" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_tram) +"sNU" = ( /turf/open/floor/prison{ dir = 1; - icon_state = "darkbrown2" + icon_state = "red" }, -/area/fiorina/station/park) +/area/fiorina/station/security) "sOf" = ( /obj/item/clothing/mask/cigarette/weed{ icon_state = "ucigoff" @@ -30945,21 +30962,16 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"sOn" = ( -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security/wardens) -"sOp" = ( -/obj/effect/decal/cleanable/blood{ - desc = "Watch your step."; - icon_state = "gib6" +"sOj" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/telecomm/lz1_cargo) +/turf/open/floor/prison, +/area/fiorina/station/security) "sOs" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/almayer{ @@ -30967,84 +30979,110 @@ icon_state = "plating" }, /area/fiorina/tumor/ship) -"sPk" = ( -/obj/structure/stairs/perspective{ +"sOM" = ( +/obj/item/device/flashlight/lamp/tripod, +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "p_stair_full" + pixel_y = 21 }, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"sPC" = ( -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 22 +/area/fiorina/station/central_ring) +"sPh" = ( +/obj/item/stack/sheet/metal/medium_stack, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, +/area/fiorina/lz/near_lzI) +"sPi" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "blue" + icon_state = "darkyellowcorners2" }, -/area/fiorina/station/civres_blue) -"sQK" = ( -/obj/effect/decal/cleanable/blood/splatter{ - icon_state = "gibdown1" +/area/fiorina/station/telecomm/lz1_cargo) +"sPt" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/obj/structure/platform/shiva, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"sPJ" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/fiorina/station/medbay) -"sQL" = ( -/obj/structure/platform, -/turf/open/gm/river{ - color = "#995555"; - name = "pool" +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/fiorina/station/park) -"sRb" = ( -/obj/item/trash/candy, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +/area/fiorina/tumor/civres) +"sQr" = ( +/obj/structure/janitorialcart, +/obj/item/clothing/head/bio_hood/janitor{ + pixel_x = -4; + pixel_y = 5 }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"sQy" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/random/gun/pistol/midchance, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "redfull" }, -/area/fiorina/station/medbay) -"sRg" = ( -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/security) +"sQz" = ( +/obj/structure/closet/emcloset, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"sRk" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/station/park) -"sRH" = ( -/obj/item/pamphlet/engineer, -/obj/structure/closet, +/area/fiorina/tumor/ice_lab) +"sQC" = ( +/obj/structure/surface/rack, /obj/item/handcuffs, -/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ icon_state = "darkredfull2" }, +/area/fiorina/station/security) +"sQL" = ( +/obj/structure/platform, +/turf/open/gm/river{ + color = "#995555"; + name = "pool" + }, +/area/fiorina/station/park) +"sRv" = ( +/obj/item/clothing/shoes/marine/upp/knife, +/turf/open/floor/prison, /area/fiorina/station/lowsec) -"sRV" = ( +"sRE" = ( +/obj/structure/platform, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) +"sRJ" = ( +/obj/structure/machinery/constructable_frame, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/security) -"sSJ" = ( -/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" + dir = 10; + icon_state = "damaged2" }, /area/fiorina/station/lowsec) +"sSM" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) "sSY" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -31056,16 +31094,17 @@ }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/servers) -"sTa" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "red" - }, -/area/fiorina/station/security) "sTd" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"sTm" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) "sTu" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -31075,34 +31114,86 @@ /obj/structure/blocker/invisible_wall, /turf/open/space, /area/fiorina/station/medbay) -"sTB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"sTw" = ( +/obj/structure/barricade/wooden{ + dir = 8 }, -/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"sTI" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"sTV" = ( +/area/fiorina/station/medbay) +"sTK" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/telecomm/lz1_cargo) +"sTU" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"sUc" = ( +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"sUe" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "sUl" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ density = 0 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"sUq" = ( -/obj/item/stack/sheet/metal/medium_stack, +"sUr" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/bible/hefa, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/chapel) +"sUt" = ( +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor/prison, +/area/fiorina/station/park) +"sUV" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrowncorners2" + }, +/area/fiorina/tumor/aux_engi) "sUX" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/organic/grass{ @@ -31115,63 +31206,36 @@ icon_state = "squares" }, /area/fiorina/station/civres_blue) -"sVa" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" - }, -/turf/open/floor/prison{ +"sVd" = ( +/obj/structure/stairs/perspective{ dir = 8; - icon_state = "blue" + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/civres_blue) -"sVi" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/botany) "sVv" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 }, /turf/open/space, /area/fiorina/oob) -"sVy" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 - }, -/obj/item/trash/barcardine, +"sVS" = ( +/obj/item/trash/pistachios, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"sVD" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/pamphlet/skill/powerloader, +"sVT" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"sVM" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/tumor/aux_engi) -"sVN" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"sVP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" + icon_state = "sterile_white" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/ice_lab) "sVU" = ( /obj/structure/largecrate/machine, /obj/item/reagent_container/food/drinks/cans/aspen{ @@ -31179,80 +31243,147 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"sWu" = ( -/obj/structure/bed/chair{ - dir = 4 +"sVW" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" }, +/area/fiorina/tumor/aux_engi) +"sVZ" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/spawner/random/pills/lowchance, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) -"sWF" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/station/botany) +"sWb" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 }, -/obj/structure/platform{ - dir = 4 +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/ice_lab) +"sWe" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) +"sWl" = ( +/obj/structure/bed/roller, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"sWr" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"sWw" = ( +/obj/item/storage/bag/trash, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"sWX" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/research_cells) +"sXa" = ( +/obj/structure/machinery/filtration/console, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"sXe" = ( +/turf/open/floor/prison, +/area/fiorina/station/research_cells) "sXi" = ( /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"sXy" = ( -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"sXt" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) +"sXP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/hardpoint/support/flare_launcher{ + pixel_x = -1; + pixel_y = 5 }, -/area/fiorina/station/chapel) -"sYe" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" + icon_state = "darkyellow2" }, -/area/fiorina/station/central_ring) +/area/fiorina/lz/near_lzI) "sYn" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"sYM" = ( -/obj/effect/decal/cleanable/blood, +"sYy" = ( +/obj/item/ammo_casing{ + icon_state = "casing_1" + }, /turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"sYB" = ( +/turf/open/floor/prison{ + dir = 9; icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) +/area/fiorina/station/telecomm/lz1_tram) "sYP" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"sZr" = ( -/obj/structure/largecrate/random/secure, +"sZt" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) +"sZZ" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"tam" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/area/fiorina/station/telecomm/lz1_cargo) +"tad" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"tai" = ( +/obj/structure/bed/chair, +/obj/structure/prop/souto_land/pole, +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 24 }, -/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/storage/belt/shotgun, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "darkbrown2" }, -/area/fiorina/station/security) +/area/fiorina/station/park) +"taj" = ( +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "tan" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/oob) @@ -31262,108 +31393,135 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"tax" = ( -/obj/item/clothing/under/color/orange, +"taI" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"taX" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 + icon_state = "darkpurplefull2" }, +/area/fiorina/station/research_cells) +"taL" = ( +/obj/item/clothing/under/color/orange, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/security) +"taS" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + dir = 5; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) "taY" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/space/basic, /area/fiorina/lz/near_lzI) -"tbs" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"tbC" = ( +"tbd" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - dir = 5; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"tbZ" = ( -/obj/structure/filingcabinet, +/area/fiorina/tumor/ship) +"tbj" = ( +/obj/item/stack/sandbags_empty/half, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"tcl" = ( -/obj/structure/largecrate/random/mini/med, +/area/fiorina/station/flight_deck) +"tbm" = ( +/obj/item/stack/cable_coil, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/medbay) -"tcJ" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/tumor/servers) +"tbG" = ( +/obj/structure/bed{ + icon_state = "psychbed" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" }, +/area/fiorina/tumor/servers) +"tco" = ( +/obj/item/paper/crumpled/bloody/csheet, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"tcO" = ( +/area/fiorina/lz/near_lzII) +"tcB" = ( +/obj/effect/alien/weeds/node, /turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) +"tcD" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gib2" + }, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"tcL" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 10 + }, +/turf/open/floor/prison{ + icon_state = "bluefull" }, /area/fiorina/station/chapel) -"tdb" = ( +"tcW" = ( +/obj/structure/monorail{ + name = "launch track" + }, /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8; + pixel_x = -10; + pixel_y = -3 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"tde" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"tdo" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/area/fiorina/station/central_ring) +"tdq" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/area/fiorina/station/park) -"tdA" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "redcorner" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"tdG" = ( -/obj/item/storage/backpack/satchel/lockable, -/turf/open/floor/prison, -/area/fiorina/station/security) -"tdZ" = ( -/obj/structure/platform_decoration, -/turf/open/floor/prison, -/area/fiorina/station/park) -"tef" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - layer = 2.5 +"tdr" = ( +/obj/structure/prop/resin_prop{ + dir = 4; + icon_state = "chair"; + pixel_y = 6 }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "tel" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/station/medbay) +"teq" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/botany) "tet" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -31374,19 +31532,42 @@ icon_state = "plate" }, /area/fiorina/station/telecomm/lz1_cargo) -"teH" = ( -/obj/structure/platform_decoration, +"teu" = ( +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"teI" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"teK" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/area/fiorina/station/park) -"teT" = ( -/obj/item/paper/crumpled, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"tfl" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"tfw" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) "tfx" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -31400,130 +31581,223 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"tgc" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/tumor/servers) -"tgv" = ( -/obj/structure/machinery/computer/emails{ - pixel_y = 6 +"tge" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 }, -/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/medbay) "tgB" = ( /obj/structure/barricade/wooden{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"the" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, -/area/fiorina/station/security) -"thi" = ( +"tgK" = ( +/obj/structure/machinery/landinglight/ds1/delayone, /turf/open/floor/prison{ dir = 4; - icon_state = "cell_stripe" + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) +"tgL" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"thz" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/lockbox/vials{ + pixel_x = -4; + pixel_y = 4 }, -/area/fiorina/tumor/aux_engi) -"thU" = ( -/obj/structure/prop/almayer/computers/sensor_computer1, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"tih" = ( -/obj/item/tool/warning_cone, +/area/fiorina/station/lowsec) +"thI" = ( /obj/structure/machinery/light/double/blue{ dir = 8; pixel_x = -10; pixel_y = -3 }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"tik" = ( -/obj/structure/barricade/handrail/type_b{ - layer = 3.5 +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue" }, +/area/fiorina/station/civres_blue) +"thV" = ( +/obj/item/tool/kitchen/utensil/pfork, /turf/open/floor/prison{ - dir = 1; + dir = 4; icon_state = "blue" }, +/area/fiorina/station/power_ring) +"tii" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"til" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/stool, +/obj/item/clothing/shoes/slippers_worn, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, /area/fiorina/station/civres_blue) -"tiW" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/chunk, +"tir" = ( +/obj/item/ammo_magazine/rifle/m16, /turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/security) +"tis" = ( +/obj/structure/inflatable, +/obj/structure/barricade/handrail/type_b, +/obj/structure/barricade/handrail/type_b{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"tiM" = ( +/obj/item/shard{ + icon_state = "medium"; + name = "ice shard" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "tiX" = ( /obj/item/stack/sheet/mineral/plastic, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"tjo" = ( -/obj/structure/machinery/vending/coffee/simple, +"tiY" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "floorscorched2" + }, +/area/fiorina/tumor/civres) +"tiZ" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" }, /area/fiorina/station/park) -"tjM" = ( -/obj/structure/platform_decoration{ - dir = 4 +"tja" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"tji" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + layer = 2.5 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"tjp" = ( +/obj/item/tool/warning_cone, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 + }, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"tjw" = ( +/obj/structure/platform_decoration, +/obj/structure/inflatable, +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"tjR" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/machinery/shower{ + dir = 1; + pixel_y = -1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/research_cells) +"tkd" = ( +/obj/structure/filingcabinet, +/obj/structure/filingcabinet{ + pixel_x = 16 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"tkg" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"tjQ" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/station/park) +"tkj" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "green" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/chapel) -"tjU" = ( +/area/fiorina/station/park) +"tkP" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/botany) +"tkZ" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; + dir = 8; + pixel_x = -10; pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 8; + icon_state = "whitepurple" }, -/area/fiorina/tumor/servers) -"tke" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/research_cells) +"tle" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 4 }, -/obj/structure/machinery/constructable_frame{ - icon_state = "box_1" +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 4 }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"tkk" = ( -/obj/structure/machinery/light/double/blue, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"tld" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"tlp" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - pixel_y = 7 +/area/fiorina/tumor/civres) +"tlj" = ( +/obj/structure/bed/chair{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "bluecorner" }, /area/fiorina/station/power_ring) "tlq" = ( @@ -31542,24 +31816,46 @@ }, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"tlM" = ( -/obj/item/device/flashlight/lamp/tripod, +"tlC" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 5 + }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/power_ring) +"tlF" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) +"tlJ" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "tlQ" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"tlS" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) "tlV" = ( /obj/structure/machinery/space_heater, /obj/item/device/flashlight/lamp{ @@ -31567,13 +31863,10 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"tmi" = ( -/obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) +"tmo" = ( +/obj/structure/stairs/perspective, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) "tmx" = ( /obj/structure/bed/chair{ dir = 1 @@ -31585,6 +31878,30 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) +"tmF" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"tmI" = ( +/obj/effect/alien/weeds/node, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) +"tmL" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) +"tmX" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/prison, +/area/fiorina/station/park) "tna" = ( /obj/structure/bed/sofa/pews{ dir = 4 @@ -31595,102 +31912,29 @@ }, /turf/open/floor/wood, /area/fiorina/station/chapel) -"tnd" = ( -/obj/structure/largecrate/supply/medicine/medkits, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"tng" = ( -/obj/structure/computerframe, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) -"tnj" = ( -/obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - dir = 9; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"tno" = ( -/obj/item/stack/sheet/cardboard, +"tnw" = ( +/obj/effect/landmark/queen_spawn, /turf/open/floor/prison{ dir = 1; - icon_state = "yellow" + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) -"tnr" = ( -/obj/effect/landmark/survivor_spawner, +/area/fiorina/tumor/aux_engi) +"tnY" = ( +/obj/structure/platform_decoration, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"tnA" = ( -/obj/structure/platform, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"tnH" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"tnP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/pills/lowchance, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) "tob" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; name = "Residential Apartment" }, /turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"tom" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"tov" = ( -/obj/effect/spawner/random/gun/smg/midchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"toE" = ( -/turf/open/floor/carpet, -/area/fiorina/station/civres_blue) -"toJ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/security) +/area/fiorina/station/civres_blue) +"toE" = ( +/turf/open/floor/carpet, +/area/fiorina/station/civres_blue) "tpa" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ req_one_access = null @@ -31711,91 +31955,116 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) -"tpO" = ( -/obj/structure/machinery/microwave{ - desc = "There's two of them."; - pixel_y = 5 - }, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - desc = "Holy shit"; - pixel_y = 18 - }, -/obj/item/storage/pill_bottle/kelotane/skillless{ - desc = "Don't touch -Dr. O"; - pixel_x = 6; - pixel_y = 31 +"tpw" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, +/obj/structure/largecrate/random/case, /turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"tpz" = ( +/obj/item/paper/carbon, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, /area/fiorina/station/medbay) +"tpE" = ( +/obj/item/tank/jetpack/carbondioxide, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) +"tpF" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "green" + }, +/area/fiorina/tumor/aux_engi) "tpY" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"tqa" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 4 +"tpZ" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecalleft" }, -/turf/open/space/basic, -/area/fiorina/oob) -"tqM" = ( -/obj/structure/filingcabinet, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/tumor/aux_engi) -"tqN" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/processor{ - desc = "It CAN blend it."; - icon_state = "blender_e"; - name = "Blendomatic"; - pixel_x = -2; - pixel_y = 10 +/area/fiorina/station/medbay) +"tql" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + icon_state = "greenblue" }, -/area/fiorina/station/civres_blue) -"tqQ" = ( +/area/fiorina/station/botany) +"tqw" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"tqx" = ( +/obj/structure/prop/resin_prop{ + icon_state = "rack" + }, +/obj/item/storage/toolbox, +/obj/item/storage/toolbox, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/lz/near_lzI) -"tqR" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/tumor/servers) +"tqP" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalleft" +/obj/structure/platform/kutjevo/smooth{ + dir = 4 }, -/turf/open/floor/prison{ +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail{ dir = 1; - icon_state = "whitegreen" + icon_state = "hr_kutjevo"; + name = "solar lattice" }, -/area/fiorina/station/medbay) +/turf/open/space/basic, +/area/fiorina/oob) "trl" = ( /obj/item/trash/buritto, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"trB" = ( -/obj/effect/decal/cleanable/blood/oil, +"trJ" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"trH" = ( -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 + icon_state = "darkpurple2" }, +/area/fiorina/station/central_ring) +"trN" = ( +/obj/item/stack/barbed_wire, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"trR" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/item/storage/fancy/cigarettes/blackpack, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "trS" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -31803,47 +32072,73 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) +"tsc" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + indestructible = 1; + name = "launch bay door" + }, +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/oob) "tsf" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box{ + pixel_y = 9 }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"tsi" = ( -/obj/structure/barricade/metal/wired, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/station/lowsec) -"tsu" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/station/power_ring) +"tsr" = ( +/obj/structure/pipes/unary/freezer{ + icon_state = "freezer_1" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/medbay) +"tss" = ( +/obj/structure/bookcase/manuals/engineering, /turf/open/floor/prison{ dir = 9; - icon_state = "blue" + icon_state = "greenfull" }, -/area/fiorina/station/power_ring) -"tsQ" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/tumor/civres) +"tst" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/oob) +"tsA" = ( +/obj/structure/barricade/metal{ + dir = 8; + health = 150; + icon_state = "metal_2" }, -/turf/open/floor/prison, -/area/fiorina/station/park) -"tts" = ( -/obj/structure/machinery/landinglight/ds2, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/ice_lab) +"tsH" = ( +/obj/structure/tunnel, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/tumor/fiberbush) +"tsN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 }, -/area/fiorina/lz/near_lzII) -"ttK" = ( -/obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/security) "tuf" = ( /obj/item/clothing/shoes/jackboots{ name = "Awesome Guy" @@ -31859,52 +32154,12 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"tuo" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 - }, -/turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"tur" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"tuB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/pen/blue/clicky, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"tuD" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"tuH" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/obj/structure/bed/chair{ - dir = 1; - layer = 2.8 - }, +"tuA" = ( /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/disco) +/area/fiorina/station/telecomm/lz1_tram) "tuX" = ( /obj/structure/platform{ dir = 1 @@ -31917,119 +32172,95 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"tvu" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"tvI" = ( -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"tvM" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"tvU" = ( +"tvi" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_27"; - layer = 3.1; - pixel_x = -2; - pixel_y = 10 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"tvX" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/chapel) +/area/fiorina/tumor/ice_lab) "twb" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/maintenance) -"twd" = ( -/obj/effect/decal/cleanable/blood, +"twR" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/park) -"twB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 +/area/fiorina/tumor/ice_lab) +"txb" = ( +/obj/structure/window/framed/prison/reinforced{ + opacity = 1 }, +/obj/structure/machinery/door/poddoor/shutters/almayer, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"twL" = ( -/obj/vehicle/train/cargo/trolley, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"txS" = ( -/obj/item/stack/sandbags, -/turf/open/floor/prison{ - icon_state = "kitchen" +/area/fiorina/station/chapel) +"txf" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" }, -/area/fiorina/station/power_ring) -"tyb" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/lockbox/vials{ - pixel_x = -4; - pixel_y = 4 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/station/lowsec) -"tyk" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/prison{ +/area/fiorina/station/research_cells) +"txh" = ( +/obj/structure/bed/sofa/vert/grey, +/turf/open/floor/prison, +/area/fiorina/station/security) +"txY" = ( +/obj/structure/prop/souto_land/streamer{ dir = 1; - icon_state = "whitepurple" + pixel_y = 24 }, -/area/fiorina/station/research_cells) -"tyO" = ( -/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/botany) -"tyQ" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 + dir = 8; + icon_state = "darkbrown2" }, +/area/fiorina/station/park) +"tyj" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "blue" + }, +/area/fiorina/station/chapel) +"tyt" = ( +/obj/item/ammo_casing{ + dir = 8; + icon_state = "cartridge_2" }, -/area/fiorina/station/power_ring) -"tzj" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) +"tyC" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo{ + dir = 4 }, -/area/fiorina/tumor/civres) -"tzx" = ( -/obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/lz/near_lzII) +"tyJ" = ( +/obj/item/reagent_container/food/snacks/xenoburger, +/obj/item/reagent_container/food/snacks/xenoburger, +/obj/item/reagent_container/food/snacks/xenoburger, +/obj/structure/closet/crate/freezer, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) "tzy" = ( /obj/item/ammo_magazine/smg/mp5, /obj/structure/extinguisher_cabinet{ @@ -32037,19 +32268,33 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"tzF" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" +"tzM" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/structure/platform{ +/turf/open/floor/prison, +/area/fiorina/station/disco) +"tzN" = ( +/obj/structure/platform/kutjevo/smooth{ dir = 4 }, +/obj/structure/platform/kutjevo/smooth, +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"tzU" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"tzW" = ( +/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkbrown2" }, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/aux_engi) "tAb" = ( /obj/structure/surface/rack, /obj/item/storage/backpack/general_belt{ @@ -32058,115 +32303,54 @@ /obj/item/storage/backpack/general_belt, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"tAf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"tAk" = ( -/obj/item/weapon/gun/rifle/m16, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"tAI" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ +"tAj" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"tBa" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_magazine/shotgun/buckshot, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/disco) -"tBe" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, -/obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"tBt" = ( -/obj/item/newspaper, -/turf/open/floor/prison{ - icon_state = "green" + pixel_y = 21 }, -/area/fiorina/station/transit_hub) -"tBy" = ( /turf/open/floor/prison{ dir = 4; icon_state = "cell_stripe" }, -/area/fiorina/station/telecomm/lz1_tram) -"tBD" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 4 +/area/fiorina/station/medbay) +"tAE" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"tAR" = ( +/obj/structure/surface/rack, +/obj/item/tool/extinguisher, +/obj/item/tool/crowbar{ + pixel_x = 5; + pixel_y = -5 }, +/obj/item/tool/crowbar, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "tBP" = ( /obj/structure/machinery/shower{ dir = 1 }, /turf/open/floor/interior/plastic, /area/fiorina/station/research_cells) -"tBR" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, +"tCv" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"tBU" = ( -/obj/item/paper/crumpled/bloody/csheet, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/lz/near_lzII) -"tCf" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"tCj" = ( -/obj/structure/machinery/power/apc{ - dir = 8 + icon_state = "greenfull" }, +/area/fiorina/tumor/civres) +"tCH" = ( +/obj/item/stack/folding_barricade, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"tCu" = ( -/obj/item/frame/rack, -/obj/item/clothing/under/marine/ua_riot, -/turf/open/floor/prison{ - icon_state = "redfull" - }, /area/fiorina/station/security) "tCZ" = ( /obj/structure/platform/kutjevo/smooth{ @@ -32189,6 +32373,12 @@ }, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) +"tDC" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) "tDE" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -32204,28 +32394,12 @@ }, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"tDY" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/obj/item/tool/pickaxe, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"tEb" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/flight_deck) -"tEj" = ( -/obj/item/device/flashlight/lamp/tripod, +"tEA" = ( +/obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/chapel) "tEH" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, @@ -32237,9 +32411,25 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"tFu" = ( -/obj/effect/decal/cleanable/blood/oil, +"tEX" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/transit_hub) +"tEY" = ( +/obj/structure/machinery/newscaster{ + pixel_y = 32 + }, /turf/open/floor/prison, +/area/fiorina/station/security) +"tFo" = ( +/obj/structure/reagent_dispensers/watertank{ + layer = 2.6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/fiorina/lz/near_lzII) "tFA" = ( /obj/structure/platform{ @@ -32247,67 +32437,67 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"tGi" = ( +"tFY" = ( +/obj/structure/platform, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, /obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"tGl" = ( -/obj/structure/bed/sofa/vert/grey, -/turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/lz/near_lzII) -"tGF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/newspaper, -/obj/item/attachable/bipod, /turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"tGO" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications{ - dir = 1 + dir = 6; + icon_state = "whitegreen" }, +/area/fiorina/station/medbay) +"tGU" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/pill_bottle/tramadol/skillless, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"tHh" = ( +/area/fiorina/station/medbay) +"tGY" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/atmos_alert{ - dir = 8 +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 12 }, -/area/fiorina/tumor/fiberbush) +/turf/open/floor/plating/prison, +/area/fiorina/station/security/wardens) "tHl" = ( /obj/structure/inflatable, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"tHr" = ( -/obj/effect/decal/cleanable/blood/oil, +"tHw" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkbrown2" }, /area/fiorina/tumor/aux_engi) -"tHs" = ( +"tHF" = ( +/obj/structure/platform{ + dir = 8 + }, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/security) -"tHu" = ( -/obj/structure/inflatable, +/area/fiorina/station/medbay) +"tHJ" = ( +/obj/structure/closet/firecloset, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - icon_state = "whitepurple" + dir = 9; + icon_state = "darkbrown2" }, -/area/fiorina/station/research_cells) +/area/fiorina/maintenance) "tHL" = ( /obj/structure/blocker/invisible_wall, /turf/closed/shuttle/ert{ @@ -32315,29 +32505,29 @@ opacity = 0 }, /area/fiorina/station/medbay) -"tHP" = ( -/obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellow2" +"tIf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 3 }, -/area/fiorina/station/telecomm/lz1_cargo) -"tHU" = ( -/obj/structure/monorail{ - dir = 5; - name = "launch track" +/turf/open/floor/prison{ + icon_state = "kitchen" }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"tHX" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryomid" +/area/fiorina/station/power_ring) +"tIn" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison, +/area/fiorina/station/chapel) +"tIp" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/obj/structure/platform/kutjevo/smooth{ + dir = 4 }, -/area/fiorina/station/medbay) +/turf/open/space/basic, +/area/fiorina/oob) "tIC" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations are the leading cause in asbestos related deaths for 3 years in a row."; @@ -32349,43 +32539,44 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"tII" = ( -/obj/item/reagent_container/food/drinks/bottle/rum, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"tIK" = ( -/obj/item/tool/screwdriver, -/turf/open/floor/prison{ - dir = 10; - icon_state = "green" - }, -/area/fiorina/tumor/civres) "tIU" = ( /obj/item/tool/candle, /turf/open/floor/prison/chapel_carpet, /area/fiorina/maintenance) -"tJe" = ( +"tIW" = ( /turf/open/floor/prison{ dir = 10; - icon_state = "green" + icon_state = "darkyellow2" }, -/area/fiorina/station/chapel) -"tJn" = ( -/obj/item/tool/wirecutters, -/obj/structure/platform/shiva{ - dir = 1 +/area/fiorina/lz/near_lzI) +"tJw" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitegreen" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"tJM" = ( -/obj/item/prop/helmetgarb/riot_shield, +/area/fiorina/station/medbay) +"tJC" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"tJH" = ( +/obj/item/reagent_container/food/drinks/coffee, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) +"tJQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/cigarette/cigar/tarbacks, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/chapel) "tJR" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 7 @@ -32393,12 +32584,6 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"tJT" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/central_ring) "tJU" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light/double/blue{ @@ -32411,15 +32596,16 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"tKs" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 7; - pixel_y = 6 +"tKk" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/turf/open/floor/prison, -/area/fiorina/station/chapel) +/obj/item/reagent_container/food/snacks/wrapped/barcardine, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "tKv" = ( /obj/structure/machinery/computer/secure_data{ dir = 8 @@ -32427,130 +32613,89 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"tLd" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/communications{ +"tKN" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" + }, +/turf/open/floor/prison{ dir = 4; - pixel_y = 5 + icon_state = "green" }, +/area/fiorina/tumor/civres) +"tLk" = ( +/obj/item/paper/crumpled, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) "tLC" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"tLT" = ( -/obj/item/reagent_container/food/drinks/bottle/sake, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"tLY" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"tMe" = ( -/turf/open/floor/prison{ - icon_state = "redcorner" - }, -/area/fiorina/station/power_ring) -"tMn" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/transit_hub) -"tMr" = ( -/obj/item/toy/deck, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +"tMb" = ( +/obj/structure/prop/souto_land/pole{ + dir = 1 }, -/area/fiorina/station/research_cells) -"tMx" = ( -/obj/structure/prop/almayer/computers/sensor_computer2, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "darkbrown2" }, -/area/fiorina/station/security) -"tMz" = ( -/obj/structure/closet/crate/bravo, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/fuelCell, -/obj/item/stack/sheet/plasteel, +/area/fiorina/station/park) +"tMs" = ( +/obj/item/weapon/gun/smg/mp5, +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/power_ring) -"tMA" = ( -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/prison, /area/fiorina/station/telecomm/lz1_cargo) -"tMF" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 4; - layer = 3.5 +"tMS" = ( +/obj/effect/alien/weeds/node, +/obj/structure/prop/resin_prop{ + icon_state = "rack" }, -/obj/structure/platform_decoration{ - dir = 8 +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"tMU" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"tML" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/cell/super{ - pixel_y = 12 - }, -/obj/item/cell/super, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, /area/fiorina/tumor/civres) -"tMP" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"tNs" = ( -/obj/structure/platform_decoration, +"tMV" = ( +/obj/structure/closet/firecloset/full, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"tNt" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/cigbutt/bcigbutt, +/area/fiorina/station/medbay) +"tNf" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) -"tNu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/hardpoint/support/flare_launcher{ - pixel_x = -1; - pixel_y = 5 +/area/fiorina/tumor/ice_lab) +"tNF" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null }, +/obj/item/weapon/gun/smg/mp5, +/obj/item/storage/belt/marine, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/obj/item/prop/helmetgarb/riot_shield, /turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"tNS" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "redfull" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/security) "tNV" = ( /obj/item/stack/sheet/wood, /turf/open/floor/plating/prison, @@ -32558,39 +32703,23 @@ "tOc" = ( /turf/open/floor/wood, /area/fiorina/station/disco) -"tOo" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) "tOp" = ( /obj/structure/window/framed/prison/cell, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"tOr" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) "tOG" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/pill_bottle/kelotane/skillless, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"tOK" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) +"tOM" = ( +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"tOP" = ( +/obj/structure/platform, +/obj/structure/closet/radiation, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "tOS" = ( /obj/structure/flora/grass/tallgrass/jungle, /obj/item/reagent_container/food/snacks/grown/eggplant{ @@ -32601,26 +32730,6 @@ name = "astroturf" }, /area/fiorina/station/park) -"tOZ" = ( -/obj/effect/spawner/random/toolbox, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"tPi" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) "tPz" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/candelabra{ @@ -32633,279 +32742,196 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"tPN" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) -"tPP" = ( -/obj/effect/landmark/objective_landmark/medium, +"tPA" = ( +/obj/structure/largecrate/supply/medicine/iv, /turf/open/floor/prison{ - dir = 9; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"tPB" = ( +/turf/open/floor/prison{ + dir = 6; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"tPQ" = ( +"tPC" = ( /turf/open/floor/prison{ - icon_state = "platingdmg1" + icon_state = "darkyellowcorners2" }, -/area/fiorina/station/security) -"tQi" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 1; - pixel_y = 24 +/area/fiorina/station/flight_deck) +"tPN" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, +/area/fiorina/maintenance) +"tQk" = ( +/obj/item/shard{ + icon_state = "medium" }, -/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/tumor/servers) "tQm" = ( /obj/item/trash/boonie, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"tQn" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/fiberbush) -"tQq" = ( +"tQB" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"tRH" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/botany) +"tSl" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/sheet/mineral/plastic, /turf/open/floor/prison{ - dir = 8; - icon_state = "greencorner" + icon_state = "yellowfull" }, -/area/fiorina/tumor/civres) -"tQs" = ( -/obj/effect/decal/cleanable/blood/drip, +/area/fiorina/station/lowsec) +"tSm" = ( /turf/open/floor/prison{ dir = 8; icon_state = "greenblue" }, /area/fiorina/station/botany) -"tQB" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"tQJ" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"tQL" = ( +"tSL" = ( /obj/structure/platform{ dir = 1 }, /obj/structure/platform{ - dir = 8 + dir = 4 }, /obj/structure/platform_decoration{ - dir = 5 + dir = 9 }, +/obj/structure/largecrate/random, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"tRa" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"tRt" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" - }, -/obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/prison{ - dir = 1; - icon_state = "greenblue" - }, -/area/fiorina/station/botany) -"tRH" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/botany) -"tSi" = ( -/obj/structure/bed/sofa/vert/grey/top, +"tSY" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"tSn" = ( -/turf/open/floor/prison{ - icon_state = "cell_stripe" +/area/fiorina/station/transit_hub) +"tTm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stool{ + pixel_y = 12 }, -/area/fiorina/station/medbay) -"tST" = ( -/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"tTr" = ( -/obj/structure/platform_decoration{ - dir = 1 + icon_state = "yellowfull" }, +/area/fiorina/station/lowsec) +"tTv" = ( +/obj/item/stack/sandbags/large_stack, /turf/open/floor/prison{ dir = 8; - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) -"tTu" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkyellow2" }, -/area/fiorina/station/security) +/area/fiorina/station/telecomm/lz1_cargo) "tTA" = ( /obj/structure/prop/souto_land/pole{ dir = 1 }, /turf/open/floor/wood, /area/fiorina/station/park) -"tTK" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_7" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"tTM" = ( -/obj/structure/machinery/iv_drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"tTV" = ( -/obj/effect/decal/cleanable/blood/oil, +"tTB" = ( +/obj/item/clothing/gloves/boxing/green, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"tUe" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 10 + dir = 6; + icon_state = "yellow" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/central_ring) +"tTI" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/medical_decals{ + dir = 4; + icon_state = "triagedecaldir" }, -/area/fiorina/station/botany) -"tUr" = ( -/obj/structure/closet/toolcloset, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/maintenance) +/area/fiorina/station/medbay) "tUs" = ( /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"tUA" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/explosive/grenade/incendiary/molotov, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"tUS" = ( -/obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"tVt" = ( -/obj/structure/bed/chair/office/light{ - dir = 1 +"tUC" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"tVu" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_v" + dir = 4; + icon_state = "darkyellow2" }, +/area/fiorina/lz/near_lzI) +"tUD" = ( +/obj/structure/closet, /turf/open/floor/prison{ dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"tVB" = ( -/obj/item/ammo_casing{ - dir = 8; - icon_state = "casing_6" - }, -/obj/structure/barricade/metal{ - dir = 8; - health = 150; - icon_state = "metal_2" +/area/fiorina/station/flight_deck) +"tUG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/toolbox/mechanical/green, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, -/obj/effect/spawner/random/gun/smg, +/area/fiorina/maintenance) +"tUS" = ( +/obj/item/explosive/grenade/high_explosive/frag, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"tVf" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuelCell, +/obj/item/stack/sheet/plasteel, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "bluefull" }, -/area/fiorina/station/park) -"tVG" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/power_ring) +"tVI" = ( +/obj/structure/inflatable/popped/door, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/station/research_cells) "tVV" = ( /obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"tVX" = ( -/obj/structure/window/reinforced/tinted, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/lz/near_lzI) -"tVZ" = ( -/obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"tWe" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, +"tVY" = ( +/obj/structure/machinery/power/smes/buildable, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"tWf" = ( +/obj/structure/inflatable/popped, +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/station/central_ring) +"tWh" = ( +/obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"tWo" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/botany) +"tWs" = ( +/obj/item/toy/deck, /turf/open/floor/prison{ - icon_state = "greenblue" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/botany) -"tWq" = ( +/area/fiorina/station/research_cells) +"tWz" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/trash/plate{ - pixel_x = 1; - pixel_y = 3 - }, +/obj/item/tool/pen/blue/clicky, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, /area/fiorina/station/power_ring) "tWI" = ( @@ -32915,31 +32941,32 @@ }, /turf/open/space, /area/fiorina/oob) -"tXi" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +"tXt" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/storage/box/pillbottles, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/security) -"tXQ" = ( -/turf/open/floor/prison{ - icon_state = "platingdmg1" +/area/fiorina/station/transit_hub) +"tXD" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/tumor/servers) -"tYc" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_v" +/obj/structure/platform{ + dir = 4 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) +"tXT" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ - icon_state = "darkyellow2" + icon_state = "redfull" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/security) "tYd" = ( /obj/structure/machinery/light/double/blue{ dir = 4; @@ -32950,100 +32977,136 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"tYr" = ( -/obj/structure/platform{ - dir = 4 +"tYg" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) +/area/fiorina/tumor/servers) +"tYt" = ( +/obj/structure/bed/roller, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "tYw" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/civres) -"tYx" = ( -/obj/structure/surface/rack, -/obj/item/tool/lighter, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"tZo" = ( -/obj/item/newspaper, -/turf/open/floor/prison, -/area/fiorina/station/security) -"tZs" = ( -/obj/structure/machinery/landinglight/ds2/delayone{ - dir = 8 +"tYD" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"tYQ" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/lz/near_lzII) -"tZN" = ( -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/botany) +"tYU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/tumor/ice_lab) +"tZe" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/tumor/servers) -"tZS" = ( /turf/open/floor/prison{ - icon_state = "platingdmg1" + icon_state = "yellowfull" }, -/area/fiorina/tumor/civres) -"tZV" = ( -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 8 +/area/fiorina/station/lowsec) +"tZk" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/tumor/aux_engi) +"tZz" = ( +/obj/structure/prop/almayer/computers/sensor_computer1, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "darkredfull2" }, /area/fiorina/lz/near_lzI) +"tZO" = ( +/obj/item/frame/rack, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) "tZW" = ( /obj/item/tool/wet_sign, /turf/open/floor/almayer{ icon_state = "plate" }, /area/fiorina/tumor/ship) -"tZX" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 - }, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) "uap" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"uat" = ( +"uaL" = ( +/obj/item/stack/sheet/wood, /turf/open/floor/prison{ dir = 8; icon_state = "darkbrown2" }, -/area/fiorina/maintenance) +/area/fiorina/station/park) +"uaM" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkbrowncorners2" + }, +/area/fiorina/tumor/aux_engi) "ubc" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"ubk" = ( +"ubh" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - icon_state = "floorscorched1" + icon_state = "kitchen" }, -/area/fiorina/tumor/aux_engi) -"ubH" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/lowsec) +"ubo" = ( +/obj/item/stack/sheet/metal/medium_stack, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/security) +/area/fiorina/station/power_ring) +"ubA" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) "ubN" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_1"; opacity = 0 }, /area/fiorina/tumor/aux_engi) +"ubP" = ( +/turf/open/floor/prison, +/area/fiorina/station/security) "ubQ" = ( /obj/structure/ice/thin/indestructible{ dir = 8; @@ -33052,65 +33115,84 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"ubT" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, +"ubX" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + dir = 5; + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) -"uch" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/tumor/ice_lab) +"uci" = ( +/obj/effect/spawner/random/tool, +/obj/structure/surface/rack, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/turf/open/floor/prison, -/area/fiorina/station/disco) +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) "ucj" = ( /turf/closed/shuttle/ert{ icon_state = "stan25" }, /area/fiorina/station/power_ring) -"ucr" = ( +"ucu" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" + icon_state = "redfull" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/security) +"ucN" = ( +/obj/structure/tunnel, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/central_ring) "ucS" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/telecomm/lz1_tram) -"uds" = ( -/obj/item/ammo_casing{ - dir = 2; - icon_state = "casing_5" - }, +"udj" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) +"udt" = ( +/obj/structure/barricade/handrail{ dir = 1; - icon_state = "darkbrown2" + pixel_y = 2 }, -/area/fiorina/station/park) -"udY" = ( -/obj/structure/platform{ +/obj/structure/barricade/handrail{ dir = 8 }, -/obj/item/prop/almayer/flight_recorder, /turf/open/floor/prison, +/area/fiorina/station/security) +"udB" = ( +/obj/structure/bed/roller, +/obj/effect/spawner/random/gun/rifle/highchance, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/fiorina/lz/near_lzI) -"ued" = ( -/obj/structure/sign/prop3{ - desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." +"udE" = ( +/obj/structure/barricade/metal/wired, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" }, -/turf/closed/wall/prison, -/area/fiorina/station/central_ring) -"uef" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, +/area/fiorina/lz/near_lzI) +"uen" = ( +/obj/item/weapon/gun/rifle/m16, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/telecomm/lz1_cargo) "uep" = ( /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, @@ -33123,121 +33205,150 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"ueA" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"ueI" = ( +/obj/structure/filingcabinet, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"ueF" = ( -/obj/structure/largecrate/random/barrel/yellow, +"ueP" = ( +/obj/item/paper/crumpled, /turf/open/floor/prison{ - icon_state = "yellow" + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ueX" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/station/medbay) +"ufE" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison, /area/fiorina/station/lowsec) -"ufo" = ( +"ufL" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"ufN" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/prison{ + icon_state = "panelscorched" + }, +/area/fiorina/tumor/aux_engi) +"ufR" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitepurplecorner" + }, +/area/fiorina/station/research_cells) +"ugg" = ( /obj/structure/closet/crate/miningcar{ name = "\improper materials storage bin" }, /obj/item/reagent_container/food/snacks/meat, /turf/open/floor/prison, /area/fiorina/station/lowsec) -"ufX" = ( -/obj/item/reagent_container/food/drinks/sillycup, +"ugk" = ( /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/power_ring) -"ugC" = ( -/obj/item/stack/cable_coil, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/aux_engi) +"ugm" = ( +/obj/structure/prop/resin_prop{ + icon_state = "coolanttank" }, -/area/fiorina/tumor/servers) -"ugH" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/servers) -"ugT" = ( -/obj/effect/landmark/corpsespawner/ua_riot/burst, -/turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"ugU" = ( -/obj/structure/machinery/portable_atmospherics/canister/nitrogen, +"ugq" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gibdown1" + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/lowsec) -"uhb" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/sillycup{ - pixel_x = -5; - pixel_y = 10 +/area/fiorina/station/medbay) +"ugv" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 }, -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/fiorina/oob) +"ugP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/plate{ pixel_x = 1; - pixel_y = -1 + pixel_y = 3 }, +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"uhd" = ( +/area/fiorina/station/power_ring) +"ugT" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/aux_engi) +"uha" = ( +/obj/structure/prop/resin_prop{ + icon_state = "sheater0" + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkpurple2" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/servers) +/area/fiorina/tumor/aux_engi) "uhm" = ( /obj/structure/window_frame/prison/reinforced, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"uhH" = ( -/obj/structure/machinery/landinglight/ds1/delaythree{ - dir = 4 - }, +"uhA" = ( +/obj/structure/closet/bodybag, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"uin" = ( -/obj/item/ammo_box/magazine/misc/flares/empty{ - pixel_x = -1; - pixel_y = 7 + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/research_cells) +"uhX" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "whitegreen" }, -/area/fiorina/station/telecomm/lz1_cargo) -"uix" = ( -/obj/structure/bed/chair/office/dark, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"uiK" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalleft" +/area/fiorina/station/medbay) +"uia" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/botany) +"uiD" = ( +/obj/structure/barricade/wooden{ + dir = 8 }, -/area/fiorina/station/medbay) -"uiR" = ( -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/park) "uiV" = ( /obj/structure/platform{ dir = 4 @@ -33250,6 +33361,19 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"ujb" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"ujo" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "ujs" = ( /obj/item/shard{ icon_state = "large"; @@ -33259,109 +33383,76 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"ujC" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, -/area/fiorina/station/civres_blue) -"ujJ" = ( -/obj/structure/monorail{ - dir = 5; - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) -"ujO" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 8 - }, +"ujz" = ( +/obj/item/paper/prison_station/inmate_handbook, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_marked" - }, -/area/fiorina/station/park) -"ukk" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 + icon_state = "floor_plate" }, -/obj/effect/spawner/random/pills/lowchance, +/area/fiorina/station/telecomm/lz1_cargo) +"ukg" = ( +/obj/item/trash/candle, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" + icon_state = "darkyellow2" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/telecomm/lz1_cargo) "ukr" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 }, -/turf/open/organic/grass{ - name = "astroturf" - }, -/area/fiorina/station/park) -"ukz" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/gun/pistol/midchance, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"ukI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" +/turf/open/organic/grass{ + name = "astroturf" }, -/area/fiorina/tumor/ice_lab) -"ukN" = ( -/obj/structure/bed/chair{ - dir = 1 +/area/fiorina/station/park) +"uky" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform_decoration{ + dir = 10 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreen" }, -/area/fiorina/station/security) +/area/fiorina/tumor/ice_lab) "ukR" = ( /obj/structure/window/framed/prison/reinforced/hull, /obj/structure/window/framed/prison/reinforced/hull, /turf/open/space/basic, /area/fiorina/lz/near_lzI) -"ulJ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"ulc" = ( +/obj/item/paper, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 8; + icon_state = "whitepurple" }, -/area/fiorina/station/lowsec) -"ulW" = ( -/obj/structure/prop/almayer/computers/sensor_computer2, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +/area/fiorina/station/research_cells) +"ume" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = 11; + pixel_y = 14 }, -/area/fiorina/tumor/servers) -"umq" = ( -/obj/structure/barricade/wooden{ - dir = 4 +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, +/obj/structure/largecrate/random/mini/chest/c, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) +"umg" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "blue" }, -/area/fiorina/station/telecomm/lz1_cargo) +/area/fiorina/station/civres_blue) +"umm" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) "umy" = ( /obj/structure/prop/resin_prop{ dir = 4; @@ -33370,6 +33461,20 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) +"umz" = ( +/obj/item/trash/kepler, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"umI" = ( +/obj/item/clothing/gloves/boxing/blue, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) "umW" = ( /obj/structure/bed/sofa/pews, /turf/open/floor/wood, @@ -33378,52 +33483,102 @@ /obj/effect/spawner/random/toolbox, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"unc" = ( -/obj/structure/coatrack, -/obj/item/clothing/suit/storage/CMB, +"uno" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"unp" = ( +/obj/structure/machinery/landinglight/ds1/delaythree{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) +"unu" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, +/turf/open/floor/prison, /area/fiorina/station/security) -"unW" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 +"unz" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/item/storage/box/flashbangs, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "redfull" }, -/area/fiorina/station/research_cells) -"uod" = ( -/obj/structure/largecrate/random/barrel/white, +/area/fiorina/station/security) +"unA" = ( +/turf/open/floor/prison{ + icon_state = "platingdmg1" + }, +/area/fiorina/station/civres_blue) +"unF" = ( +/obj/item/tool/wirecutters, +/obj/structure/platform/shiva{ + dir = 1 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"uou" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0"; + pixel_y = 2 + }, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"uol" = ( -/obj/structure/machinery/landinglight/ds1{ - dir = 4 +/area/fiorina/station/disco) +"uoH" = ( +/obj/structure/barricade/sandbags{ + dir = 4; + icon_state = "sandbag_0"; + pixel_y = 2 }, +/obj/item/storage/pouch/tools/full, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 10; + icon_state = "yellow" }, -/area/fiorina/lz/near_lzI) -"upt" = ( +/area/fiorina/station/disco) +"upf" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) +"upr" = ( /obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/tumor/ice_lab) -"upF" = ( -/obj/structure/machinery/processor{ - desc = "It CAN blend it."; - icon_state = "blender_e"; - name = "Blendomatic"; +/turf/open/floor/prison{ + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"upw" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/lz/near_lzII) +"upK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + layer = 3.1; pixel_x = -2; pixel_y = 10 }, -/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + dir = 4; + icon_state = "redcorner" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/power_ring) "upM" = ( /obj/structure/disposalpipe/broken, /turf/open/floor/plating/prison, @@ -33432,118 +33587,107 @@ /obj/structure/sign/nosmoking_1, /turf/closed/wall/prison, /area/fiorina/station/security/wardens) -"uqa" = ( -/obj/item/clothing/accessory/armband/cargo{ - desc = "Sworn to the shrapnel and the shards therein. So sayeth her command when the first detonation occured."; - name = "HEFA Order milita armband" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"uqo" = ( -/obj/effect/landmark/queen_spawn, +"upY" = ( +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"uqd" = ( +/obj/item/pamphlet/skill/powerloader, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/tumor/ice_lab) -"uqp" = ( -/obj/structure/bed/sofa/vert/grey/bot{ - pixel_y = 8 +/area/fiorina/station/medbay) +"uqj" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"urc" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + dir = 10; + icon_state = "bright_clean2" }, -/area/fiorina/station/disco) -"uri" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"urw" = ( -/obj/structure/machinery/vending/snack/packaged, +/area/fiorina/station/park) +"uqV" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 1; + icon_state = "whitepurple" }, /area/fiorina/station/research_cells) +"urv" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "urJ" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/almayer_hull, /area/fiorina/oob) -"urS" = ( -/obj/item/trash/chunk, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"usa" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "green" - }, -/area/fiorina/station/chapel) "usg" = ( /obj/effect/spawner/random/attachment, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"usq" = ( -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"usz" = ( -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"usA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"utf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "uts" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical/green, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"utC" = ( -/obj/item/stool, +"utw" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/research_cells) +"utG" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/boxing/blue, /turf/open/floor/prison{ dir = 1; - icon_state = "cell_stripe" + icon_state = "yellow" }, -/area/fiorina/station/flight_deck) -"utV" = ( -/obj/structure/machinery/light/double/blue{ +/area/fiorina/station/lowsec) +"utL" = ( +/obj/structure/bed/chair, +/turf/open/floor/prison{ dir = 1; - pixel_y = 21 + icon_state = "darkbrown2" }, +/area/fiorina/station/park) +"utW" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 5; + dir = 1; icon_state = "darkyellow2" }, /area/fiorina/lz/near_lzI) +"uud" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"uuk" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"uuG" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 15 + }, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) "uuJ" = ( /obj/structure/holohoop{ dir = 8; @@ -33568,93 +33712,86 @@ /obj/item/prop/helmetgarb/gunoil, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"uvh" = ( -/obj/structure/barricade/wooden{ - dir = 4 - }, +"uvn" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkyellow2" }, -/area/fiorina/station/research_cells) -"uvi" = ( -/obj/structure/reagent_dispensers/watertank, +/area/fiorina/station/telecomm/lz1_cargo) +"uvu" = ( /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 1; + icon_state = "redcorner" }, -/area/fiorina/station/park) -"uvy" = ( -/obj/effect/landmark{ - icon_state = "hive_spawn"; - name = "xeno_hive_spawn" +/area/fiorina/station/power_ring) +"uvF" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 }, -/obj/effect/landmark/ert_spawns/groundside_xeno, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreencorner" +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/tumor/ice_lab) -"uvG" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno/down, +/turf/open/floor/prison, +/area/fiorina/maintenance) +"uvS" = ( +/obj/structure/blocker/invisible_wall, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "whitepurple" }, -/area/fiorina/station/medbay) -"uvM" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"uwg" = ( -/obj/effect/spawner/random/tool, +/area/fiorina/oob) +"uvV" = ( +/obj/structure/coatrack, /turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"uvZ" = ( +/obj/structure/prop/structure_lattice{ dir = 4; - icon_state = "whitegreencorner" + health = 300 }, -/area/fiorina/tumor/ice_lab) +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/civres_blue) +"uwb" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "uwk" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/research_cells) -"uwI" = ( -/obj/structure/machinery/power/smes/buildable{ - capacity = 1e+006; - dir = 1 +"uws" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/civres_blue) +"uwT" = ( +/obj/structure/sign/poster{ + icon_state = "poster10"; + pixel_x = 32 }, -/area/fiorina/tumor/aux_engi) -"uwP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/stack/sheet/mineral/plastic, /turf/open/floor/prison, -/area/fiorina/tumor/servers) -"uwY" = ( -/obj/structure/lattice, -/obj/structure/platform/kutjevo/smooth, -/turf/open/space, -/area/fiorina/oob) -"uxa" = ( -/obj/effect/decal/cleanable/blood/splatter, +/area/fiorina/station/power_ring) +"uxd" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"uxi" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecaldir" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"uxp" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) "uxv" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, @@ -33666,52 +33803,51 @@ name = "pool" }, /area/fiorina/station/park) -"uxO" = ( -/obj/effect/landmark/objective_landmark/far, -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"uxY" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"uyb" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "gib6" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"uyd" = ( -/obj/item/stack/sheet/metal, +"uye" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, -/area/fiorina/station/lowsec) -"uym" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/plating/prison, -/area/fiorina/station/disco) -"uyq" = ( +/area/fiorina/station/security) +"uyp" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"uyw" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/prison{ icon_state = "bluefull" }, /area/fiorina/station/power_ring) -"uyr" = ( -/obj/item/device/flashlight/lamp/tripod, +"uyC" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/machinery/shower{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "green" + icon_state = "kitchen" }, -/area/fiorina/station/chapel) +/area/fiorina/station/research_cells) "uyM" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) +"uyN" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/fiberbush) "uza" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gibup1" @@ -33719,64 +33855,35 @@ /obj/item/explosive/grenade/high_explosive/frag, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"uzd" = ( +"uzi" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/disco) +/area/fiorina/tumor/aux_engi) "uzw" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"uzO" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 +"uzy" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/structure/largecrate/random/secure, /turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"uzX" = ( -/obj/structure/barricade/wooden{ - dir = 8 - }, -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"uAd" = ( -/obj/item/clothing/gloves/boxing/green, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, -/area/fiorina/station/central_ring) -"uAi" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, -/obj/item/clothing/suit/armor/bulletproof/badge, -/turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"uAv" = ( +/area/fiorina/station/civres_blue) +"uzG" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "blue" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/civres_blue) -"uAG" = ( -/obj/structure/inflatable, +/area/fiorina/tumor/aux_engi) +"uAg" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + dir = 1; + icon_state = "whitegreencorner" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/ice_lab) "uAX" = ( /obj/effect/decal/hefa_cult_decals/d32, /turf/open/floor/prison/chapel_carpet{ @@ -33791,136 +33898,116 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"uBS" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +"uBV" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/tumor/servers) -"uBW" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/trash/cigbutt, /turf/open/floor/prison{ icon_state = "bluefull" }, -/area/fiorina/station/power_ring) -"uCa" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"uCu" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 - }, -/obj/structure/barricade/metal/wired, +/area/fiorina/station/power_ring) +"uCO" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"uCz" = ( -/obj/structure/sink{ - pixel_y = 23 +/area/fiorina/station/power_ring) +"uCX" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/item/paper_bin{ - pixel_x = -11; - pixel_y = -5 +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/park) +"uDX" = ( +/obj/structure/prop/structure_lattice{ + health = 300 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/obj/structure/prop/structure_lattice{ + pixel_y = 10 }, -/area/fiorina/station/medbay) -"uCD" = ( /turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/aux_engi) +"uEh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/guestpass{ + dir = 4; + reason = "Visitor" }, -/area/fiorina/station/research_cells) -"uCW" = ( -/obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/station/chapel) +/area/fiorina/station/power_ring) "uEj" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"uEm" = ( +"uEy" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ dir = 4; - icon_state = "red" + icon_state = "cell_stripe" }, -/area/fiorina/station/security) -"uEN" = ( -/obj/structure/machinery/landinglight/ds2/delaytwo, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/tumor/servers) +"uEM" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "xtracks" }, -/area/fiorina/lz/near_lzII) -"uFc" = ( -/obj/structure/closet/secure_closet/security, -/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/disco) -"uFh" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" +/area/fiorina/station/chapel) +"uEY" = ( +/obj/structure/machinery/power/smes/buildable{ + capacity = 1e+006; + dir = 1 }, -/area/fiorina/station/lowsec) -"uFE" = ( -/obj/item/stack/sandbags_empty/half, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/flight_deck) -"uFM" = ( -/obj/structure/surface/table/reinforced/prison{ - dir = 4; - flipped = 1 +/area/fiorina/tumor/aux_engi) +"uFd" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/obj/structure/barricade/wooden{ + dir = 8 }, -/area/fiorina/station/medbay) -"uFX" = ( /turf/open/floor/prison{ - dir = 6; - icon_state = "darkpurple2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"uGb" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +/area/fiorina/station/telecomm/lz1_cargo) +"uFg" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "birthday" }, -/obj/effect/spawner/random/sentry/midchance, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"uGq" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryomid" +/area/fiorina/station/power_ring) +"uFs" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" }, -/obj/structure/machinery/light/double/blue, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) +"uFC" = ( +/obj/structure/barricade/metal/wired, /turf/open/floor/prison{ - icon_state = "whitegreen" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) "uGu" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "3" @@ -33930,14 +34017,24 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"uGD" = ( -/obj/item/tool/kitchen/knife, -/obj/structure/bed/roller, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"uGM" = ( -/turf/open/floor/prison, -/area/fiorina/station/park) +"uGI" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzI) +"uGL" = ( +/obj/item/trash/used_stasis_bag{ + desc = "Wow, instant sand. They really have everything in space."; + name = "Insta-Sand! bag" + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "uGT" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, @@ -33945,73 +34042,40 @@ "uGY" = ( /turf/closed/wall/prison, /area/fiorina/station/security) -"uHL" = ( -/obj/item/stool{ - pixel_x = -4; - pixel_y = 23 +"uHl" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/plating/prison, +/area/fiorina/station/civres_blue) +"uIg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 6 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/lowsec) -"uHX" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ +/area/fiorina/maintenance) +"uIB" = ( +/obj/structure/bed/chair{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"uIa" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/spawner/random/tool, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"uIb" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"uIl" = ( -/obj/structure/machinery/cryo_cell, -/obj/structure/pipes/standard/cap/hidden, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"uIu" = ( -/obj/item/storage/toolbox/electrical, -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"uIA" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, +"uIL" = ( /obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10 + pixel_y = -1 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"uIG" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 +/obj/structure/bed/chair{ + dir = 1; + layer = 2.8 }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/turf/open/floor/prison, -/area/fiorina/tumor/civres) +/area/fiorina/station/disco) "uIS" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, @@ -34024,49 +34088,93 @@ }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"uJj" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"uJk" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +"uJi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, /turf/open/floor/prison{ icon_state = "yellowfull" }, +/area/fiorina/station/disco) +"uJp" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, /area/fiorina/station/lowsec) -"uJM" = ( +"uJG" = ( +/obj/item/ammo_casing{ + icon_state = "casing_10_1" + }, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/maintenance) -"uJX" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/station/park) -"uKh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/secure_data{ - dir = 8 +/area/fiorina/station/medbay) +"uJQ" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"uJR" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "ppflowers_2" + }, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, +/area/fiorina/station/central_ring) +"uKb" = ( +/obj/item/stack/tile/plasteel, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/station/flight_deck) "uKx" = ( /turf/closed/shuttle/ert, /area/fiorina/lz/near_lzI) -"uLd" = ( -/obj/structure/foamed_metal, +"uKE" = ( +/obj/item/clipboard, /turf/open/floor/prison, -/area/fiorina/station/civres_blue) +/area/fiorina/station/park) +"uKK" = ( +/obj/structure/bed/roller, +/obj/item/bedsheet/green, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"uKX" = ( +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security/wardens) +"uLf" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) +"uLj" = ( +/obj/effect/decal/cleanable/blood/gibs/robot/limb, +/turf/open/floor/prison{ + dir = 5; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"uLq" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/telecomm/lz1_tram) "uLr" = ( /obj/vehicle/powerloader, /obj/structure/platform{ @@ -34077,28 +34185,36 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"uLH" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) "uLJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"uLX" = ( -/obj/structure/machinery/computer/arcade, +"uLM" = ( +/obj/item/clothing/mask/cigarette/cigar/cohiba, +/obj/structure/surface/table/woodentable/fancy, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/station/medbay) +/area/fiorina/station/chapel) +"uLV" = ( +/obj/item/bedsheet, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/lowsec) +"uMc" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/prison, +/area/fiorina/station/security) +"uMm" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) "uMq" = ( /obj/structure/machinery/light/small{ dir = 4; @@ -34111,56 +34227,108 @@ "uMw" = ( /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"uMH" = ( -/obj/item/ammo_magazine/smg/mp5, +"uMN" = ( +/obj/item/trash/semki, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"uNM" = ( -/turf/closed/wall/prison, -/area/fiorina/tumor/aux_engi) -"uNR" = ( -/obj/item/stack/cable_coil, +/area/fiorina/station/power_ring) +"uMT" = ( /turf/open/floor/prison{ - icon_state = "darkpurple2" + icon_state = "cell_stripe" + }, +/area/fiorina/station/medbay) +"uMZ" = ( +/obj/structure/disposalpipe/segment{ + color = "#c4c4c4"; + dir = 4; + layer = 6; + name = "overhead pipe"; + pixel_y = 20 + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, +/turf/open/floor/prison, /area/fiorina/tumor/servers) -"uNX" = ( -/obj/effect/landmark/xeno_spawn, +"uNm" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/random/gun/rifle/highchance, +/turf/open/floor/prison, +/area/fiorina/station/security) +"uNp" = ( +/obj/structure/monorail{ + name = "launch track" + }, /turf/open/floor/prison{ - icon_state = "darkbrowncorners2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"uOb" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/fiorina/station/transit_hub) +"uNs" = ( +/obj/structure/machinery/landinglight/ds1, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) +"uNG" = ( +/obj/structure/machinery/power/apc{ + dir = 1 }, -/obj/item/stack/cable_coil, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"uOR" = ( -/obj/structure/platform_decoration{ - dir = 4 +/area/fiorina/lz/near_lzII) +"uNI" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"uNM" = ( +/turf/closed/wall/prison, +/area/fiorina/tumor/aux_engi) +"uOu" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) +"uOx" = ( +/obj/effect/decal/hefa_cult_decals/d32{ + icon_state = "bee" }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"uPg" = ( -/obj/item/circuitboard/mecha/gygax/targeting, -/obj/structure/surface/rack, +/area/fiorina/tumor/servers) +"uOC" = ( +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" + }, +/area/fiorina/tumor/servers) +"uOM" = ( +/obj/structure/curtain, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"uPz" = ( -/obj/structure/closet/firecloset/full, +/area/fiorina/station/power_ring) +"uOP" = ( +/obj/item/newspaper, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"uPi" = ( +/obj/item/device/binoculars, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/tumor/fiberbush) +"uPl" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowcorners2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "uPA" = ( /obj/structure/platform{ dir = 1 @@ -34173,15 +34341,18 @@ }, /turf/open/gm/river/desert/deep, /area/fiorina/lz/near_lzII) -"uPD" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 +"uPX" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "green" }, +/area/fiorina/tumor/civres) +"uQk" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/fiberbush) "uQE" = ( /obj/item/stack/tile/plasteel{ pixel_x = 3; @@ -34189,70 +34360,49 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"uQF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, +"uQJ" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" + dir = 4; + icon_state = "blue" }, -/area/fiorina/station/medbay) -"uRe" = ( -/obj/effect/landmark/survivor_spawner, +/area/fiorina/tumor/servers) +"uQT" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 6; + icon_state = "whitegreen" }, -/area/fiorina/station/disco) -"uRu" = ( -/turf/open/floor/prison{ +/area/fiorina/tumor/ice_lab) +"uRv" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "yellow" + pixel_x = 10; + pixel_y = -3 }, +/turf/open/floor/plating/prison, /area/fiorina/station/central_ring) -"uRK" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/park) -"uRO" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "green" - }, -/area/fiorina/station/chapel) -"uRX" = ( -/obj/item/tool/shovel/spade, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"uRY" = ( -/obj/item/ammo_magazine/rifle/mar40, +"uRF" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "yellow" + icon_state = "whitegreencorner" }, -/area/fiorina/station/lowsec) -"uSb" = ( -/obj/structure/barricade/wooden{ +/area/fiorina/station/medbay) +"uRI" = ( +/turf/open/floor/prison{ dir = 4; - pixel_y = 4 + icon_state = "darkbrowncorners2" }, +/area/fiorina/maintenance) +"uRT" = ( +/obj/item/device/flashlight, /turf/open/floor/prison{ dir = 10; - icon_state = "damaged1" - }, -/area/fiorina/station/central_ring) -"uSo" = ( -/obj/item/poster, -/turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreenfull" }, +/area/fiorina/tumor/ice_lab) +"uRZ" = ( +/obj/item/trash/barcardine, +/turf/open/floor/prison, /area/fiorina/station/security) "uSA" = ( /turf/open/floor/plating/plating_catwalk/prison, @@ -34263,87 +34413,133 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/lz/near_lzII) -"uST" = ( +"uSU" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"uSX" = ( +/obj/item/tool/kitchen/utensil/pknife, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"uSY" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/vehicle/powerloader/ft, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"uTb" = ( /obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"uTr" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/turf/open/floor/prison{ dir = 8; - pixel_x = -10; - pixel_y = -3 + icon_state = "whitegreen" }, +/area/fiorina/tumor/ice_lab) +"uTs" = ( +/obj/item/stack/rods, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/civres) -"uSY" = ( -/obj/structure/platform{ - dir = 8 +/area/fiorina/tumor/aux_engi) +"uTt" = ( +/obj/item/device/flashlight/flare, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellowcorners2" }, -/obj/structure/platform{ - dir = 4 +/area/fiorina/station/telecomm/lz1_cargo) +"uTw" = ( +/obj/item/weapon/gun/rifle/mar40, +/turf/open/floor/prison{ + icon_state = "bluefull" }, -/obj/vehicle/powerloader/ft, -/turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"uTi" = ( +"uTA" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/prison{ dir = 8; - icon_state = "darkyellowcorners2" + icon_state = "blue" }, -/area/fiorina/station/telecomm/lz1_cargo) -"uTk" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/prison, /area/fiorina/station/power_ring) -"uTp" = ( -/obj/structure/bed/chair, +"uTR" = ( +/obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"uTS" = ( -/obj/item/stock_parts/micro_laser/ultra, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"uTX" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" +/area/fiorina/tumor/aux_engi) +"uVk" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_v" }, -/area/fiorina/tumor/servers) -"uUT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/card/id/gold{ - pixel_x = 2; - pixel_y = 4 +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "darkyellow2" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/telecomm/lz1_cargo) "uVn" = ( /turf/closed/shuttle/ert{ icon_state = "stan_inner_w_1" }, /area/fiorina/tumor/ship) -"uVo" = ( -/obj/structure/machinery/landinglight/ds2/delaythree{ - dir = 4 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"uVv" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) "uVD" = ( /turf/open/floor/corsat{ icon_state = "squares" }, /area/fiorina/station/medbay) -"uVQ" = ( -/obj/item/device/flashlight/lamp/tripod, +"uVH" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_v" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"uVL" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 3 + }, /turf/open/floor/prison, -/area/fiorina/station/disco) +/area/fiorina/station/power_ring) +"uVO" = ( +/obj/structure/prop/souto_land/pole{ + dir = 1 + }, +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 24 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "uVX" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4; @@ -34357,20 +34553,34 @@ /obj/item/trash/candy, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"uWg" = ( -/obj/effect/decal/cleanable/blood, +"uWe" = ( +/obj/structure/bed/chair{ + dir = 4 + }, /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/tumor/aux_engi) -"uWs" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 +/area/fiorina/station/botany) +"uWA" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"uWO" = ( +/obj/structure/platform_decoration, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/station/park) "uWQ" = ( /obj/structure/platform{ dir = 8 @@ -34381,42 +34591,6 @@ }, /turf/open/gm/river/desert/deep, /area/fiorina/lz/near_lzII) -"uWS" = ( -/obj/item/ammo_casing{ - icon_state = "casing_8" - }, -/obj/structure/surface/table/reinforced/prison{ - dir = 4; - flipped = 1 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"uXa" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"uXc" = ( -/obj/effect/decal/medical_decals{ - icon_state = "triagedecalbottom" - }, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"uXm" = ( -/obj/item/inflatable/door, -/obj/item/inflatable/door, -/obj/item/inflatable/door, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) "uXn" = ( /obj/structure/flora/bush/ausbushes/ausbush{ desc = "Fiberbush(tm) infestations have been the leading cause in asbestos related deaths in spacecraft for 3 years in a row now."; @@ -34428,12 +34602,6 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"uXu" = ( -/obj/item/stock_parts/matter_bin/super, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) "uXw" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/skills, @@ -34448,58 +34616,71 @@ "uXD" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/tumor/ship) -"uXM" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +"uXK" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison{ + icon_state = "bluefull" }, +/area/fiorina/station/power_ring) +"uXP" = ( +/obj/item/reagent_container/food/drinks/bottle/pwine, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) -"uXW" = ( -/obj/structure/bed/chair/office/light{ - dir = 8 +/area/fiorina/tumor/civres) +"uXY" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_y = 32 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "kitchen" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/civres) +"uYi" = ( +/turf/open/floor/prison{ + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"uYo" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) "uYx" = ( /obj/structure/prop/resin_prop{ icon_state = "coolanttank" }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"uYR" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"uYS" = ( +/obj/structure/prop/invuln/minecart_tracks{ + dir = 1 }, -/area/fiorina/station/security/wardens) -"uZe" = ( -/obj/item/stack/sheet/wood, -/turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"uZt" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 7; + pixel_y = 6 }, -/area/fiorina/station/research_cells) -"uZn" = ( -/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrown2" }, -/area/fiorina/station/security/wardens) -"uZr" = ( -/obj/structure/prop/resin_prop{ - icon_state = "sheater0" +/area/fiorina/station/park) +"uZu" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkbrown2" }, /area/fiorina/tumor/aux_engi) "uZA" = ( @@ -34507,235 +34688,188 @@ icon_state = "stan2" }, /area/fiorina/tumor/ship) -"uZD" = ( -/obj/structure/disposalpipe/segment{ - icon_state = "delivery_outlet"; - layer = 6; - name = "overhead ducting"; - pixel_y = 33 - }, +"uZP" = ( +/obj/effect/spawner/random/gun/rifle/lowchance, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/tumor/civres) -"uZM" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/telecomm/lz1_cargo) "uZX" = ( /obj/structure/curtain, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"vaj" = ( -/obj/structure/machinery/door/airlock/prison_hatch/autoname, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"vaO" = ( -/obj/structure/window/reinforced, -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/attachment, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"vbd" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/washing_machine{ - pixel_y = 15 - }, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"vbe" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +"uZZ" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 }, +/obj/item/device/flashlight/flare, /turf/open/floor/prison{ dir = 8; - icon_state = "whitegreen" + icon_state = "darkyellow2" }, -/area/fiorina/station/central_ring) -"vbl" = ( +/area/fiorina/station/telecomm/lz1_cargo) +"vao" = ( +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"vaC" = ( /obj/structure/closet/bombcloset, -/obj/effect/landmark/objective_landmark/medium, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/stack/sheet/mineral/plastic, +/obj/item/stack/sheet/mineral/plastic, +/obj/item/stack/sheet/mineral/plastic, /turf/open/floor/prison{ icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"vbn" = ( -/obj/item/ammo_box/magazine/M16, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"vbt" = ( -/obj/structure/surface/table/reinforced/prison{ - dir = 8; - flipped = 1 - }, -/obj/item/storage/box/ids, -/obj/item/reagent_container/food/drinks/cans/souto/grape{ - pixel_x = 14; - pixel_y = 7 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"vbF" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) "vbG" = ( /obj/structure/prop/structure_lattice{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"vbY" = ( -/obj/item/ammo_casing{ - dir = 6; - icon_state = "casing_5" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) +"vbV" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "vcf" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" }, /area/fiorina/oob) -"vco" = ( +"vci" = ( +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - dir = 5; - icon_state = "darkpurple2" + icon_state = "floor_plate" }, -/area/fiorina/tumor/servers) -"vcr" = ( -/obj/structure/platform{ - dir = 4 +/area/fiorina/station/medbay) +"vcq" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/prison{ + dir = 8; + icon_state = "blue_plate" }, -/obj/structure/prop/almayer/computers/mission_planning_system{ - density = 0; - desc = "Its a telephone, and a computer. Woah."; - name = "\improper funny telephone booth"; - pixel_x = 2; - pixel_y = 21 +/area/fiorina/station/botany) +"vcu" = ( +/obj/structure/platform_decoration{ + dir = 1 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/disco) -"vcy" = ( -/obj/structure/platform_decoration{ - dir = 8 +"vcv" = ( +/obj/item/tool/screwdriver, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "vcC" = ( /obj/item/stack/rods, /turf/open/space, /area/fiorina/oob) -"vdG" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/regular, +"vcN" = ( +/obj/structure/largecrate/random/case, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/medbay) -"vdI" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" +/area/fiorina/station/park) +"vdn" = ( +/obj/item/ammo_casing{ + icon_state = "cartridge_2" }, -/obj/structure/platform{ - dir = 4 +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/transit_hub) -"vdZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 4 +/area/fiorina/station/medbay) +"vds" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" }, -/obj/item/frame/firstaid_arm_assembly, -/obj/item/stack/nanopaste{ - pixel_x = 11; - pixel_y = 6 +/area/fiorina/station/lowsec) +"vdH" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security/wardens) -"vea" = ( -/obj/effect/decal{ - icon = 'icons/obj/items/policetape.dmi'; - icon_state = "engineering_h"; - layer = 2.5; - pixel_y = -11 + icon_state = "blue_plate" }, +/area/fiorina/station/botany) +"vdJ" = ( +/obj/effect/spawner/random/gun/smg, /turf/open/floor/prison{ dir = 8; - icon_state = "darkyellow2" + icon_state = "green" }, -/area/fiorina/station/flight_deck) -"vee" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 +/area/fiorina/tumor/civres) +"vdN" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, -/obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/station/telecomm/lz1_cargo) +"vdW" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" }, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"vei" = ( +/area/fiorina/station/disco) +"vel" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/prison{ - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/civres) "vem" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_1" }, /area/fiorina/lz/near_lzI) -"ven" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryomid" +"vev" = ( +/obj/structure/monorail{ + name = "launch track" }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/turf/closed/shuttle/ert{ + icon_state = "rightengine_1"; + layer = 3; + opacity = 0 }, -/area/fiorina/station/medbay) -"veB" = ( -/obj/structure/machinery/light/double/blue, +/area/fiorina/oob) +"veJ" = ( +/obj/item/clothing/head/helmet/marine/specialist/hefa, +/turf/open/floor/prison, +/area/fiorina/station/park) +"veP" = ( +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - icon_state = "yellow" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/lowsec) -"veM" = ( -/obj/item/stock_parts/micro_laser/ultra, +/area/fiorina/tumor/aux_engi) +"veR" = ( +/obj/structure/inflatable, /turf/open/floor/prison{ - icon_state = "darkpurple2" + dir = 10; + icon_state = "whitegreen" }, -/area/fiorina/tumor/servers) +/area/fiorina/station/medbay) +"veW" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut/alt, +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) "vfz" = ( /obj/item/storage/box/donkpockets, /obj/structure/surface/table/reinforced/prison, @@ -34745,86 +34879,121 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"vfJ" = ( -/obj/structure/bed/sofa/south/grey/left, +"vfL" = ( +/obj/item/storage/box/flashbangs, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "vfM" = ( /turf/closed/shuttle/ert{ icon_state = "stan27" }, /area/fiorina/station/power_ring) -"vfQ" = ( -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/park) -"vfR" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" +"vfO" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "floor_marked" }, -/obj/structure/platform{ - dir = 8 +/area/fiorina/station/lowsec) +"vgi" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"vgP" = ( -/obj/structure/largecrate/random, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"vgS" = ( -/obj/item/stack/sheet/metal, +/area/fiorina/station/civres_blue) +"vgw" = ( +/obj/item/storage/toolbox/antag, /turf/open/floor/prison{ + dir = 8; + icon_state = "green" + }, +/area/fiorina/tumor/civres) +"vgC" = ( +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "whitepurple" + pixel_y = 21 }, -/area/fiorina/station/research_cells) -"vha" = ( -/obj/structure/closet/crate/miningcar{ - name = "\improper materials storage bin" +/turf/open/floor/prison{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"vgL" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/ammo_magazine/shotgun/buckshot, +/obj/item/clothing/under/marine/ua_riot, +/obj/item/storage/pill_bottle/alkysine, +/obj/item/clothing/suit/storage/marine/veteran/ua_riot, +/turf/open/floor/prison{ + icon_state = "redfull" }, -/obj/item/reagent_container/food/snacks/meat, +/area/fiorina/station/security) +"vhd" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger, /turf/open/floor/prison{ - icon_state = "greenblue" + icon_state = "darkredfull2" }, -/area/fiorina/station/botany) -"vhe" = ( -/obj/structure/closet/wardrobe/orange, -/obj/item/clothing/under/color/orange, +/area/fiorina/lz/near_lzI) +"vhk" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) +"vhy" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/telecomm/lz1_cargo) "vhB" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) -"vhC" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "greenblue" - }, -/area/fiorina/station/botany) "vhI" = ( /turf/open/gm/river{ color = "#990000"; name = "pool" }, /area/fiorina/station/park) -"viH" = ( -/obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, +"viL" = ( +/obj/item/stock_parts/micro_laser/ultra, +/turf/open/floor/prison, /area/fiorina/tumor/servers) -"viV" = ( -/obj/structure/monorail{ - dir = 5; - name = "launch track" +"viX" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/fiorina/oob) +"vja" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "vjl" = ( /obj/structure/closet/crate/trashcart, /obj/effect/spawner/random/tool, @@ -34836,28 +35005,10 @@ icon_state = "leftengine_1" }, /area/fiorina/station/power_ring) -"vjz" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) "vjG" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"vjH" = ( -/obj/structure/machinery/computer/communications{ - dir = 4; - pixel_y = 5 - }, -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/tumor/servers) "vjR" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/prison, @@ -34874,67 +35025,67 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"vky" = ( -/turf/open/floor/prison{ +"vki" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/iv_drip{ + pixel_y = 19 + }, +/obj/item/bedsheet/green, +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "blue" + pixel_x = 10; + pixel_y = 13 }, -/area/fiorina/station/civres_blue) -"vkC" = ( -/obj/structure/inflatable/popped/door, /turf/open/floor/prison{ + dir = 4; icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"vkM" = ( -/obj/item/reagent_container/food/drinks/bottle/pwine, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"vkZ" = ( -/obj/structure/platform{ - dir = 8 +"vkt" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"vli" = ( -/obj/structure/bed/chair/comfy, +/obj/structure/platform, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"vlK" = ( +/obj/structure/surface/rack, /turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/disco) -"vlm" = ( -/obj/structure/machinery/power/apc{ - dir = 4 + dir = 9; + icon_state = "whitegreen" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"vlt" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, +/area/fiorina/station/medbay) +"vlN" = ( +/obj/structure/surface/rack, +/obj/item/frame/table/almayer, +/obj/item/frame/table/almayer, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"vlT" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/tumor/civres) +"vlO" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 10; - icon_state = "darkyellow2" + dir = 4; + icon_state = "cell_stripe" }, -/area/fiorina/station/telecomm/lz1_tram) -"vlX" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 +/area/fiorina/station/central_ring) +"vlS" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + pixel_y = 9 }, -/obj/item/clothing/gloves/combat, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/prison{ +/obj/structure/machinery/light/double/blue{ dir = 1; - icon_state = "whitepurple" + pixel_y = 21 }, -/area/fiorina/station/research_cells) +/turf/open/floor/prison, +/area/fiorina/station/security) +"vlU" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "vmj" = ( /obj/effect/landmark/nightmare{ insert_tag = "podholder" @@ -34943,53 +35094,83 @@ icon_state = "leftengine_1" }, /area/fiorina/station/medbay) -"vmr" = ( -/obj/item/device/flashlight/lamp/tripod, +"vmt" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/telecomm/lz1_tram) +"vmL" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/station/medbay) -"vmH" = ( -/obj/item/tool/mop, +/area/fiorina/station/telecomm/lz1_cargo) +"vmT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"vmW" = ( -/obj/structure/reagent_dispensers/water_cooler{ - density = 0; - pixel_x = -8; - pixel_y = 16 +/area/fiorina/tumor/aux_engi) +"vnl" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/barricade/wooden{ + dir = 4 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 10; + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/telecomm/lz1_cargo) "vnr" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/telecomm/lz1_cargo) -"voa" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_tram) -"vok" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 8 +"vnA" = ( +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 2 }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 10 +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 5 }, -/obj/item/phone{ - pixel_x = 9; - pixel_y = -10 +/obj/item/tool/warning_cone{ + pixel_x = -4; + pixel_y = 8 }, +/obj/structure/surface/rack, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/security) +/area/fiorina/maintenance) +"vnG" = ( +/turf/open/floor/prison, +/area/fiorina/maintenance) +"vnM" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 6; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) +"voh" = ( +/obj/item/tool/warning_cone, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) +"voi" = ( +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/station/park) "voq" = ( /obj/structure/machinery/computer/secure_data{ dir = 1 @@ -34997,95 +35178,80 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"voS" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"vpk" = ( -/obj/item/trash/used_stasis_bag{ - desc = "Wow, instant sand. They really have everything in space."; - name = "Insta-Sand! bag" +"vov" = ( +/obj/structure/platform_decoration{ + dir = 8 }, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"vpB" = ( -/obj/effect/alien/weeds/node, +/area/fiorina/station/transit_hub) +"voI" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"vpJ" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" + icon_state = "bluefull" }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"vqb" = ( -/obj/structure/platform, +/area/fiorina/station/power_ring) +"voK" = ( /obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison, -/area/fiorina/station/botany) -"vqg" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - icon_state = "whitegreen" + icon_state = "p_stair_sn_full_cap" }, -/area/fiorina/tumor/ice_lab) -"vqi" = ( /obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) +"voO" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "yellow" }, /area/fiorina/station/lowsec) -"vqM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/snacks/tomatosoup, +"voP" = ( +/obj/structure/dropship_equipment/medevac_system, /turf/open/floor/prison{ - icon_state = "blue" + dir = 10; + icon_state = "floor_marked" }, /area/fiorina/station/power_ring) -"vqZ" = ( -/obj/structure/machinery/vending/snack/packaged, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +"voV" = ( +/obj/item/ammo_casing{ + icon_state = "casing_6_1" }, -/area/fiorina/tumor/aux_engi) -"vrc" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"vrf" = ( +/area/fiorina/station/lowsec) +"vpN" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" + }, +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzII) +"vql" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/storage/donut_box{ - pixel_y = 6 +/obj/effect/spawner/random/tool, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"vro" = ( -/obj/item/device/flashlight/lamp/tripod, +/area/fiorina/station/transit_hub) +"vqs" = ( +/obj/item/paper/prison_station/inmate_handbook, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkredfull2" }, -/area/fiorina/station/medbay) +/area/fiorina/station/research_cells) +"vqW" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "vrp" = ( /obj/structure/ice/thin/indestructible{ icon_state = "Corner" @@ -35093,170 +35259,173 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/station/research_cells) -"vrw" = ( -/obj/structure/machinery/vending/snack/packaged, +"vrA" = ( +/obj/structure/machinery/landinglight/ds1/delaythree{ + dir = 8 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/park) +/area/fiorina/lz/near_lzI) "vrF" = ( /obj/item/toy/crayon/green, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"vrM" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/item/book/manual/security_space_law, -/obj/effect/landmark/objective_landmark/close, +"vrH" = ( +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/security) -"vrN" = ( -/obj/structure/monorail{ - name = "launch track" +/area/fiorina/station/research_cells) +"vrO" = ( +/obj/structure/closet/secure_closet/engineering_materials, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - indestructible = 1; - name = "launch bay door" +/area/fiorina/tumor/aux_engi) +"vrR" = ( +/obj/structure/platform_decoration, +/obj/structure/barricade/handrail/type_b{ + dir = 4; + layer = 3.5 }, -/turf/open/floor/plating/prison, -/area/fiorina/oob) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/disco) +"vrS" = ( +/obj/item/reagent_container/food/snacks/donkpocket, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/transit_hub) "vrT" = ( /obj/structure/platform{ dir = 1 }, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) -"vrX" = ( -/obj/item/newspaper, +"vsr" = ( +/obj/structure/barricade/handrail, /turf/open/floor/prison{ - icon_state = "whitepurplecorner" + dir = 9; + icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"vsc" = ( -/turf/open/floor/prison{ - icon_state = "floorscorched1" - }, -/area/fiorina/station/civres_blue) -"vsg" = ( -/obj/structure/closet/emcloset, -/obj/effect/landmark/objective_landmark/far, -/turf/open/floor/prison{ - dir = 10; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"vsq" = ( -/obj/effect/decal/cleanable/blood, +"vsL" = ( +/obj/structure/prop/dam/crane, /turf/open/floor/prison{ dir = 8; - icon_state = "darkyellowcorners2" + icon_state = "floor_marked" }, -/area/fiorina/station/telecomm/lz1_cargo) -"vsz" = ( -/obj/structure/machinery/light/double/blue, +/area/fiorina/tumor/servers) +"vsM" = ( +/obj/structure/bed{ + icon_state = "abed" + }, +/obj/item/ammo_magazine/smg/mp5, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/station/medbay) +/area/fiorina/station/research_cells) "vsT" = ( /obj/structure/cable/heavyduty{ icon_state = "1-8" }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"vtf" = ( -/obj/structure/machinery/vending/cigarette/colony, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +"vtc" = ( +/obj/structure/toilet{ + dir = 4 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/civres_blue) +"vtk" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/item/ammo_casing/shell{ + icon_state = "shell_9_1" + }, +/obj/structure/barricade/metal{ + health = 250; + icon_state = "metal_1" + }, +/turf/open/floor/prison, +/area/fiorina/station/park) "vtl" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/wood, /area/fiorina/station/park) -"vtn" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" +"vtr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/glass/beaker{ + pixel_x = -5; + pixel_y = 15 }, -/area/fiorina/station/medbay) -"vtG" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +/obj/item/reagent_container/glass/beaker{ + pixel_x = 5; + pixel_y = 2 }, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"vtJ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 +/area/fiorina/tumor/ice_lab) +"vts" = ( +/obj/effect/landmark/corpsespawner/engineer, +/obj/effect/decal/cleanable/blood, +/turf/open/auto_turf/sand/layer1, +/area/fiorina/tumor/civres) +"vtX" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/telecomm/lz1_cargo) -"vub" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 +/area/fiorina/station/disco) +"vuK" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/prison, +/area/fiorina/station/security) +"vuS" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"vuT" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "bright_clean2" }, -/area/fiorina/station/civres_blue) -"vuc" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +/area/fiorina/station/power_ring) +"vuV" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) -"vuE" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/landinglight/ds2/delayone, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"vuW" = ( -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = -9; - pixel_y = 8 - }, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 11; - pixel_y = 8 - }, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_x = 1; - pixel_y = 8 +/area/fiorina/station/power_ring) +"vuX" = ( +/obj/structure/platform_decoration{ + dir = 4 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"vvk" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) +/area/fiorina/station/park) "vvp" = ( /obj/item/tool/candle{ pixel_x = 5; @@ -35274,121 +35443,129 @@ /turf/open/floor/corsat{ icon_state = "squares" }, -/area/fiorina/station/telecomm/lz1_cargo) -"vvX" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" +/area/fiorina/station/telecomm/lz1_cargo) +"vvT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + desc = "So uh yeah, about that cat..."; + icon_state = "mwbloodyo"; + pixel_y = 6 }, -/area/fiorina/station/disco) -"vwc" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" + dir = 10; + icon_state = "kitchen" }, -/area/fiorina/station/park) +/area/fiorina/station/civres_blue) "vwt" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) +"vwx" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"vwD" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/servers) "vwM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ density = 0 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"vxp" = ( +"vwN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/microwave{ + pixel_y = 6 + }, /turf/open/floor/prison{ - icon_state = "yellow" + dir = 1; + icon_state = "blue_plate" }, -/area/fiorina/station/disco) -"vxr" = ( -/obj/item/newspaper, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"vxs" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan_inner_w_2" +/area/fiorina/station/botany) +"vwX" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"vxm" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/tumor/ship) -"vxV" = ( /turf/open/floor/prison{ + dir = 4; icon_state = "greenblue" }, /area/fiorina/station/botany) -"vyu" = ( -/obj/item/clothing/suit/storage/hazardvest, -/turf/open/floor/wood, -/area/fiorina/station/civres_blue) -"vyz" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/goggles/lowchance, +"vxs" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_inner_w_2" + }, +/area/fiorina/tumor/ship) +"vxu" = ( +/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkbrown2" }, /area/fiorina/station/park) -"vyA" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/prop/souto_land/pole{ - dir = 1 +"vxz" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + indestructible = 1; + name = "launch bay door" }, -/obj/structure/prop/souto_land/pole{ +/turf/open/floor/prison{ dir = 8; - pixel_y = 24 + icon_state = "cell_stripe" }, +/area/fiorina/oob) +"vxI" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/prison{ - icon_state = "darkbrown2" + icon_state = "darkbrownfull2" }, /area/fiorina/station/park) -"vyF" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"vyu" = ( +/obj/item/clothing/suit/storage/hazardvest, +/turf/open/floor/wood, +/area/fiorina/station/civres_blue) +"vyv" = ( +/obj/structure/platform_decoration{ + dir = 1 }, +/obj/structure/inflatable/popped, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) -"vyU" = ( -/obj/effect/decal/cleanable/blood, +/area/fiorina/station/medbay) +"vyw" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" + dir = 9; + icon_state = "darkyellow2" }, /area/fiorina/station/telecomm/lz1_cargo) -"vyX" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" +"vyK" = ( +/obj/structure/barricade/sandbags{ + dir = 1; + icon_state = "sandbag_0" }, -/area/fiorina/station/botany) -"vza" = ( -/obj/effect/decal/cleanable/blood/gibs, -/obj/effect/spawner/random/gun/rifle, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/telecomm/lz1_cargo) "vzh" = ( /obj/structure/foamed_metal, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"vzk" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) "vzn" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -35400,6 +35577,14 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"vzp" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "vzB" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ indestructible = 1; @@ -35407,48 +35592,60 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"vzT" = ( +/obj/item/frame/toolbox_tiles_sensor, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "vzU" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_3"; opacity = 0 }, /area/fiorina/tumor/ship) -"vzZ" = ( -/obj/item/device/flashlight/lamp/tripod, +"vAU" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/obj/structure/barricade/wooden, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" + icon_state = "sterile_white" }, -/area/fiorina/station/flight_deck) -"vAi" = ( -/obj/item/stack/sandbags_empty/half, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"vAZ" = ( -/obj/item/stack/sheet/metal, +/area/fiorina/station/research_cells) +"vAX" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"vBc" = ( -/obj/structure/surface/table/reinforced/prison{ dir = 8; - flipped = 1 + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"vBa" = ( +/obj/structure/machinery/shower{ + dir = 4 }, -/obj/item/device/flashlight/lamp, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "kitchen" }, /area/fiorina/station/research_cells) -"vBO" = ( -/obj/effect/decal/cleanable/blood{ - layer = 3 +"vBF" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/medbay) +"vBH" = ( +/obj/item/storage/firstaid/regular, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "vBP" = ( /obj/structure/platform/kutjevo/smooth{ dir = 4 @@ -35456,74 +35653,81 @@ /obj/structure/lattice, /turf/open/space/basic, /area/fiorina/oob) -"vBQ" = ( -/obj/structure/platform{ - dir = 1 - }, +"vBX" = ( /turf/open/floor/prison, -/area/fiorina/station/medbay) -"vBV" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/transit_hub) +"vBZ" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/medbay) -"vBY" = ( -/obj/item/stack/sheet/metal, +/obj/structure/platform, +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 + }, +/turf/open/floor/plating/prison, +/area/fiorina/lz/near_lzI) +"vCl" = ( +/obj/item/tool/shovel/spade, /turf/open/floor/prison{ dir = 1; - icon_state = "blue" + icon_state = "blue_plate" }, -/area/fiorina/station/civres_blue) -"vCv" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 +/area/fiorina/station/botany) +"vCm" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"vCT" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +/area/fiorina/station/botany) +"vCu" = ( +/obj/item/storage/bible/hefa, +/turf/open/floor/prison{ + dir = 1; + icon_state = "green" + }, +/area/fiorina/station/chapel) +"vCL" = ( +/obj/structure/prop/almayer/computers/mission_planning_system{ + density = 0; + desc = "Its a telephone, and a computer. Woah."; + name = "\improper funny telephone booth"; + pixel_x = 2; + pixel_y = 21 }, /turf/open/floor/prison{ dir = 10; - icon_state = "whitepurple" + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) -"vDc" = ( -/obj/structure/bed/sofa/south/grey/left, -/obj/item/reagent_container/food/snacks/sandwich{ - pixel_y = 2 +/area/fiorina/station/medbay) +"vCQ" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 7; + pixel_y = 6 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) -"vDj" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/sink{ dir = 4; - pixel_x = 11 + icon_state = "blue" }, -/obj/item/clothing/gloves/latex, -/turf/open/floor/prison{ - icon_state = "redfull" +/area/fiorina/station/chapel) +"vDf" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/medbay) -"vDx" = ( -/obj/item/clothing/shoes/marine/upp_knife, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"vDK" = ( -/obj/item/stack/sheet/metal/medium_stack, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/transit_hub) +"vDL" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/central_ring) "vDO" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 @@ -35542,32 +35746,21 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"vED" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"vEF" = ( -/obj/item/circuitboard/robot_module/janitor, -/turf/open/floor/prison, -/area/fiorina/station/disco) "vEK" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/power_ring) -"vEX" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 +"vFc" = ( +/obj/item/tool/warning_cone, +/obj/structure/barricade/metal{ + dir = 8; + health = 150; + icon_state = "metal_2" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/disco) +/area/fiorina/station/park) "vFi" = ( /obj/structure/window_frame/prison, /obj/item/shard{ @@ -35597,71 +35790,55 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"vFF" = ( -/obj/item/trash/candy, +"vFA" = ( +/obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "darkpurple2" + }, +/area/fiorina/tumor/servers) +"vFS" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" }, /area/fiorina/tumor/ice_lab) -"vFQ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" +"vFV" = ( +/obj/structure/inflatable, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" }, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/tumor/civres) +/area/fiorina/station/lowsec) "vFY" = ( /obj/item/reagent_container/glass/bucket, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"vGe" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/security) -"vGv" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 - }, -/obj/structure/largecrate/random, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"vGO" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/disco) -"vGV" = ( -/obj/item/shard{ - icon_state = "large" +"vGM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, +/obj/item/reagent_container/food/snacks/eat_bar, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ dir = 4; - icon_state = "greenfull" - }, -/area/fiorina/station/transit_hub) -"vHG" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"vHK" = ( -/obj/structure/barricade/wooden{ - dir = 8 + icon_state = "darkyellowfull2" }, +/area/fiorina/station/flight_deck) +"vHo" = ( /turf/open/floor/prison{ - icon_state = "darkbrown2" + dir = 5; + icon_state = "blue" }, -/area/fiorina/station/park) -"vHR" = ( -/obj/item/tool/screwdriver, +/area/fiorina/tumor/servers) +"vHD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/trash/cigbutt, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "bluefull" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/power_ring) "vHU" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/paper_bin{ @@ -35670,23 +35847,26 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"vIF" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/microwave{ - icon_state = "mwo"; - pixel_y = 6 +"vHX" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4; + layer = 3.5 + }, +/obj/structure/disposalpipe/segment{ + icon_state = "delivery_outlet"; + layer = 6; + name = "overhead ducting"; + pixel_y = 33 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"vII" = ( +/area/fiorina/tumor/ice_lab) +"vIG" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" + icon_state = "platingdmg2" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/security) "vJh" = ( /obj/effect/spawner/random/sentry/midchance, /turf/open/floor/plating/prison, @@ -35697,23 +35877,22 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/transit_hub) -"vJp" = ( -/obj/item/ammo_magazine/smg/mp5, -/obj/item/ammo_magazine/smg/mp5, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"vJq" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreencorner" +"vJo" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 }, -/area/fiorina/tumor/ice_lab) -"vJD" = ( /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/medbay) +"vJL" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/telecomm/lz1_tram) "vJN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/toolbox/electrical{ @@ -35722,46 +35901,47 @@ /obj/item/storage/toolbox/mechanical, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"vKj" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 +"vKz" = ( +/obj/item/stack/sheet/metal{ + amount = 5 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "darkyellow2" }, -/area/fiorina/station/security) +/area/fiorina/lz/near_lzI) "vKP" = ( /obj/structure/surface/rack, -/obj/item/weapon/katana, +/obj/item/weapon/sword/katana, /turf/open/floor/wood, /area/fiorina/station/security/wardens) +"vLe" = ( +/obj/structure/closet/toolcloset, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) "vLH" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/wood, /area/fiorina/station/park) -"vLV" = ( -/obj/item/inflatable, -/obj/structure/surface/table/reinforced/prison, +"vLO" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/chapel) -"vMb" = ( -/obj/structure/machinery/photocopier{ - pixel_y = 4 - }, +/area/fiorina/station/central_ring) +"vLX" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/security) -"vMh" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" + dir = 9; + icon_state = "greenfull" }, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) +/area/fiorina/tumor/civres) "vMk" = ( /obj/structure/machinery/vending/snack/packaged, /turf/open/organic/grass{ @@ -35769,96 +35949,60 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) +"vMs" = ( +/obj/structure/machinery/vending/hydroseeds, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" + }, +/area/fiorina/station/botany) "vMK" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/power_ring) -"vMQ" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "green" - }, -/area/fiorina/station/chapel) -"vMS" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"vMN" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/station/power_ring) -"vMX" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, -/area/fiorina/station/central_ring) -"vNq" = ( -/turf/closed/wall/r_wall/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"vNr" = ( -/obj/structure/prop/souto_land/streamer{ - dir = 8; - pixel_y = 24 - }, -/obj/structure/bed/chair{ - dir = 1 + dir = 5; + icon_state = "darkbrown2" }, -/turf/open/floor/prison, /area/fiorina/station/park) -"vNt" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +"vMT" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "green" + dir = 4; + icon_state = "darkyellowfull2" }, -/area/fiorina/station/chapel) -"vNx" = ( +/area/fiorina/station/flight_deck) +"vNd" = ( /obj/structure/machinery/light/double/blue{ dir = 1; pixel_y = 21 }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) -"vNF" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "greencorner" - }, -/area/fiorina/station/chapel) -"vNY" = ( -/obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"vOj" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison, -/area/fiorina/station/security) -"vOp" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 +/obj/item/toy/beach_ball, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, +/area/fiorina/station/disco) +"vNq" = ( +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/telecomm/lz1_cargo) +"vOm" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "cell_stripe" }, -/area/fiorina/station/park) -"vOz" = ( -/obj/effect/decal/cleanable/blood/oil, +/area/fiorina/station/botany) +"vOD" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison, -/area/fiorina/station/flight_deck) +/area/fiorina/lz/near_lzI) +"vOO" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "green" + }, +/area/fiorina/station/chapel) "vOP" = ( /obj/structure/disposalpipe/segment{ color = "#c4c4c4"; @@ -35869,222 +36013,263 @@ }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/tumor/servers) -"vPa" = ( -/obj/item/tool/soap, -/turf/open/floor/prison{ - icon_state = "kitchen" +"vOZ" = ( +/obj/structure/largecrate/supply/supplies/metal, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"vPF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/toy/prize/honk{ + anchored = 1; + layer = 2.9; + pixel_x = -1; + pixel_y = 13 }, -/area/fiorina/station/lowsec) -"vPk" = ( -/obj/structure/window/framed/prison, +/obj/structure/barricade/handrail/type_b, /turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"vPA" = ( -/obj/structure/machinery/landinglight/ds2/delayone, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/flight_deck) "vPM" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform_decoration/kutjevo{ + dir = 8 }, -/area/fiorina/station/central_ring) +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) "vPR" = ( /turf/closed/shuttle/ert{ icon_state = "stan1" }, /area/fiorina/tumor/ship) -"vQr" = ( -/obj/structure/barricade/sandbags{ +"vQi" = ( +/obj/item/clothing/gloves/botanic_leather, +/turf/open/floor/prison{ dir = 4; - icon_state = "sandbag_0"; - pixel_y = 2 - }, -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 + icon_state = "blue_plate" }, +/area/fiorina/station/botany) +"vQC" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/storage/pill_bottle/kelotane/skillless, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"vQN" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/area/fiorina/station/park) +"vQJ" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ + density = 0; + pixel_y = 16 }, -/obj/structure/platform, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"vRj" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + dir = 1; + icon_state = "darkbrown2" }, -/area/fiorina/station/research_cells) +/area/fiorina/maintenance) +"vRk" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/prison{ + dir = 9; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"vRu" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/prison{ + dir = 6; + icon_state = "whitepurple" + }, +/area/fiorina/oob) "vRA" = ( /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) -"vSk" = ( +"vRF" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/cups{ - pixel_x = -3; - pixel_y = 6 +/obj/item/pamphlet/skill/powerloader, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/obj/item/storage/box/cups, +/area/fiorina/station/medbay) +"vRH" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, +/area/fiorina/tumor/ice_lab) +"vRP" = ( +/obj/item/trash/cigbutt/cigarbutt, +/turf/open/floor/prison, /area/fiorina/station/power_ring) -"vTl" = ( -/obj/item/stack/rods, +"vSC" = ( +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -5; + pixel_y = -6 + }, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/disco) +/area/fiorina/station/civres_blue) +"vSW" = ( +/obj/structure/closet/crate/internals, +/obj/item/tool/crew_monitor, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"vTq" = ( +/obj/structure/prop/resin_prop, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) "vTv" = ( /turf/closed/shuttle/elevator{ dir = 5 }, /area/fiorina/station/civres_blue) -"vTB" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 20 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 +"vTA" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkyellow2" }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"vTT" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 20 +/area/fiorina/station/flight_deck) +"vTI" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/tumor/servers) -"vUa" = ( -/obj/structure/inflatable, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/transit_hub) +"vTL" = ( +/obj/item/trash/hotdog, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"vTM" = ( +/obj/item/storage/donut_box{ + pixel_y = 6 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"vTR" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) "vUf" = ( /obj/structure/platform, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"vUn" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +"vUl" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 15 }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/botany) +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) "vUv" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced, /obj/item/reagent_container/food/snacks/donut/normal, /turf/open/floor/plating/prison, /area/fiorina/station/security) -"vUE" = ( -/obj/structure/machinery/computer/prisoner, +"vUF" = ( +/obj/item/tool/screwdriver, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 10; + icon_state = "green" }, -/area/fiorina/station/security) +/area/fiorina/tumor/civres) +"vUP" = ( +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) +"vUZ" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "vVi" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"vVu" = ( -/obj/structure/surface/rack, -/obj/item/ammo_box/magazine/nailgun, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"vVJ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +"vVx" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/obj/structure/platform/stair_cut, +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) +"vVN" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/fiorina/station/transit_hub) -"vVR" = ( -/obj/structure/extinguisher_cabinet, -/turf/closed/wall/prison, -/area/fiorina/station/central_ring) +/turf/open/floor/plating/prison, +/area/fiorina/station/flight_deck) "vWe" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/prison, /area/fiorina/station/medbay) -"vWs" = ( -/obj/structure/machinery/light/double/blue, +"vWj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper, /turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/station/power_ring) -"vWE" = ( -/obj/structure/platform_decoration{ - dir = 8 + dir = 1; + icon_state = "darkpurple2" }, +/area/fiorina/tumor/servers) +"vWL" = ( +/obj/item/stock_parts/matter_bin/super, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"vWI" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + icon_state = "darkpurple2" }, -/turf/open/floor/prison{ - icon_state = "yellowfull" +/area/fiorina/tumor/servers) +"vXk" = ( +/obj/structure/machinery/light/double/blue{ + pixel_y = -1 }, -/area/fiorina/station/disco) -"vXi" = ( -/obj/item/storage/briefcase, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 4; + icon_state = "blue_plate" }, +/area/fiorina/station/botany) +"vXl" = ( +/obj/structure/surface/rack, +/obj/item/folder/black, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, /area/fiorina/station/medbay) -"vXr" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/station/civres_blue) -"vXB" = ( -/obj/item/shard{ - icon_state = "large" - }, +"vXy" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/medbay) -"vXS" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" + dir = 6; + icon_state = "green" }, -/turf/open/floor/wood, -/area/fiorina/station/civres_blue) +/area/fiorina/tumor/civres) "vXT" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, @@ -36095,84 +36280,35 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"vYA" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" - }, -/area/fiorina/station/disco) -"vYE" = ( -/obj/structure/flora/bush/ausbushes/grassybush{ - icon_state = "lavendergrass_1" - }, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) -"vYL" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"vYM" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/drinks/cans/aspen, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/lz/near_lzI) -"vYP" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/machinery/shower{ - dir = 1; - pixel_y = -1 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/fiorina/station/research_cells) -"vZc" = ( -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 20 - }, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, +"vYX" = ( +/obj/item/roller, /turf/open/floor/prison, -/area/fiorina/tumor/servers) -"vZx" = ( -/obj/item/trash/cigbutt, +/area/fiorina/station/lowsec) +"vYY" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + layer = 3.5; + pixel_y = 6 + }, /turf/open/floor/prison{ dir = 4; - icon_state = "blue" + icon_state = "greenfull" }, -/area/fiorina/station/power_ring) -"vZz" = ( +/area/fiorina/station/transit_hub) +"vZs" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) +/area/fiorina/tumor/servers) "vZD" = ( /obj/item/storage/box/donkpockets, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"vZU" = ( -/obj/item/paper/crumpled, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) +"vZL" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) "vZV" = ( /turf/closed/wall/strata_ice/jungle{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -36182,24 +36318,10 @@ "vZX" = ( /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"war" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"waz" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/disco) +"wam" = ( +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) "waN" = ( /obj/structure/platform{ dir = 1 @@ -36212,23 +36334,16 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"waP" = ( -/obj/structure/largecrate/random/case, -/obj/structure/machinery/light/double/blue, +"waQ" = ( /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 10; + icon_state = "darkyellow2" }, -/area/fiorina/station/park) +/area/fiorina/station/power_ring) "waU" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"wbn" = ( -/obj/structure/monorail{ - name = "launch track" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/aux_engi) "wbp" = ( /obj/item/inflatable, /turf/open/organic/grass{ @@ -36236,21 +36351,14 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"wby" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 +"wbr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" }, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/medbay) "wbB" = ( /obj/structure/computerframe, /obj/structure/machinery/light/double/blue{ @@ -36270,12 +36378,39 @@ "wbI" = ( /turf/open/floor/wood, /area/fiorina/station/park) -"wcm" = ( -/obj/structure/bed/chair, +"wbL" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/item/prop/almayer/comp_open{ + pixel_y = 6 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"wbP" = ( +/obj/item/storage/toolbox, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"wbW" = ( +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"wcB" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/gun/pistol/midchance, /turf/open/floor/prison{ - icon_state = "greenblue" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/servers) +"wcC" = ( +/obj/structure/closet/basketball, +/obj/item/storage/pill_bottle/bicaridine/skillless, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) "wcP" = ( /obj/effect/landmark/queen_spawn, /turf/open/floor/plating/prison, @@ -36284,99 +36419,81 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"wcX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/hypospray, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +"wdl" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 4 }, -/area/fiorina/station/botany) -"wdA" = ( -/obj/item/trash/used_stasis_bag, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzI) -"wdX" = ( -/obj/structure/prop/almayer/computers/mapping_computer, +/area/fiorina/station/disco) +"wdo" = ( +/obj/structure/closet, /turf/open/floor/prison{ - icon_state = "darkredfull2" + dir = 4; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) +"wdL" = ( +/obj/structure/barricade/wooden{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"wef" = ( -/turf/open/floor/plating/prison, -/area/fiorina/station/research_cells) -"wek" = ( -/obj/effect/landmark/monkey_spawn, +"wdU" = ( +/obj/structure/foamed_metal, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/civres_blue) -"wen" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; - name = "\improper arcade tickets"; - pixel_x = -7; - pixel_y = 7 - }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"wew" = ( -/obj/item/stack/sheet/metal/medium_stack, -/obj/structure/surface/rack, +"wef" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/research_cells) +"wet" = ( +/obj/item/stack/sandbags/large_stack, /turf/open/floor/prison{ - dir = 5; + dir = 1; icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) -"weH" = ( -/obj/structure/barricade/handrail/type_b{ - dir = 8 - }, -/obj/structure/bed/chair/office/dark{ +/area/fiorina/station/telecomm/lz1_cargo) +"weB" = ( +/obj/structure/machinery/light/double/blue{ dir = 4; - layer = 3.25 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + pixel_x = 10; + pixel_y = 13 }, -/area/fiorina/tumor/ice_lab) -"weK" = ( -/obj/structure/platform_decoration{ - dir = 1 +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/transit_hub) +"weE" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrowncorners2" + icon_state = "panelscorched" }, -/area/fiorina/station/park) -"weN" = ( -/obj/structure/largecrate/random/case, +/area/fiorina/oob) +"weM" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "yellow" }, -/area/fiorina/tumor/aux_engi) -"weQ" = ( -/obj/structure/stairs/perspective{ +/area/fiorina/station/lowsec) +"weV" = ( +/obj/structure/sink{ dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/prison{ - icon_state = "floor_plate" + pixel_x = -12; + pixel_y = 2 }, -/area/fiorina/station/security) -"weS" = ( -/obj/structure/machinery/processor, -/obj/effect/decal/cleanable/blood{ - pixel_y = 20 +/obj/structure/mirror{ + pixel_x = -29 }, /turf/open/floor/prison{ - icon_state = "blue_plate" + icon_state = "sterile_white" }, -/area/fiorina/station/botany) +/area/fiorina/station/civres_blue) "weX" = ( /obj/structure/barricade/metal{ health = 250; @@ -36384,30 +36501,51 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"wfi" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "green" +"wfc" = ( +/obj/structure/machinery/disposal, +/obj/item/tool/kitchen/rollingpin{ + pixel_y = 8 }, -/area/fiorina/station/chapel) -"wfp" = ( -/obj/structure/machinery/landinglight/ds1/delaythree{ - dir = 8 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ + dir = 10; + icon_state = "kitchen" + }, +/area/fiorina/station/civres_blue) +"wfo" = ( +/obj/structure/coatrack, +/obj/item/clothing/head/bowlerhat{ + pixel_y = 15 + }, +/obj/structure/machinery/light/double/blue{ dir = 4; - icon_state = "darkyellowfull2" + pixel_x = 10; + pixel_y = -3 }, -/area/fiorina/lz/near_lzI) -"wfy" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper_bin, -/obj/item/tool/stamp, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" }, /area/fiorina/tumor/civres) +"wfu" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"wfw" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "damaged3" + }, +/area/fiorina/station/central_ring) "wfV" = ( /obj/effect/landmark/monkey_spawn, /turf/open/organic/grass{ @@ -36425,114 +36563,137 @@ }, /turf/open/space, /area/fiorina/oob) -"wgH" = ( +"wgq" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 4; + icon_state = "greenfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/civres) +"wgs" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/head/beret/eng{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/book/manual/engineering_guide{ + pixel_x = -4 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/fiorina/tumor/civres) +"wgO" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/park) "whf" = ( /turf/closed/shuttle/elevator{ dir = 4 }, /area/fiorina/station/civres_blue) -"whp" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"whu" = ( -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/tumor/civres) -"whL" = ( +"whl" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) -"whR" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"wir" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 30 - }, +"whr" = ( +/obj/structure/machinery/disposal, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"wiQ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/radio{ - pixel_x = -6; - pixel_y = 16 + dir = 10; + icon_state = "kitchen" }, -/obj/item/device/radio{ - pixel_x = 6; - pixel_y = 7 +/area/fiorina/station/civres_blue) +"whu" = ( +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/tumor/civres) +"wis" = ( +/obj/structure/platform_decoration{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"wjk" = ( +/area/fiorina/station/disco) +"wiR" = ( +/obj/structure/surface/rack, +/obj/item/key, +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ - dir = 5; - icon_state = "blue" - }, -/area/fiorina/station/chapel) -"wjx" = ( -/obj/structure/barricade/deployable{ - dir = 1 + dir = 10; + icon_state = "whitegreen" }, +/area/fiorina/station/medbay) +"wjC" = ( +/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + dir = 9; + icon_state = "darkbrown2" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/aux_engi) "wjH" = ( /obj/item/stack/barbed_wire, /turf/open/floor/plating/prison, /area/fiorina/station/lowsec) +"wjO" = ( +/obj/structure/bed/chair, +/obj/effect/decal/cleanable/blood, +/obj/effect/landmark/corpsespawner/prison_security, +/turf/open/floor/prison, +/area/fiorina/station/park) +"wjT" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_7" + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/power_ring) "wkd" = ( /obj/structure/machinery/status_display, /turf/closed/wall/prison, /area/fiorina/station/medbay) -"wkp" = ( -/obj/structure/machinery/iv_drip, +"wkg" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/down, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) -"wkD" = ( -/obj/structure/largecrate/random/case/double, +"wky" = ( +/obj/structure/tunnel/maint_tunnel, /turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"wkZ" = ( +/area/fiorina/tumor/aux_engi) +"wkA" = ( /turf/open/floor/prison{ dir = 8; icon_state = "cell_stripe" }, -/area/fiorina/station/disco) -"wlp" = ( -/obj/item/reagent_container/food/snacks/donkpocket, +/area/fiorina/station/power_ring) +"wkL" = ( +/obj/structure/bed/chair/comfy, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 6; + icon_state = "darkyellow2" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/flight_deck) +"wln" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/tumor/ice_lab) +"wlv" = ( +/obj/item/trash/barcardine, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "wly" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/lz/near_lzII) -"wlz" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/civres) "wlG" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, @@ -36542,33 +36703,29 @@ /obj/item/bedsheet/blue, /turf/open/floor/almayer, /area/fiorina/tumor/ship) -"wlR" = ( -/obj/item/bodybag, -/obj/item/bodybag{ - pixel_y = 2 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/medbay) "wmd" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/tumor/fiberbush) -"wmp" = ( -/obj/structure/closet/secure_closet/freezer/fridge, +"wmm" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" + icon_state = "blue" }, -/area/fiorina/station/civres_blue) -"wmG" = ( -/obj/structure/inflatable, -/obj/structure/barricade/handrail/type_b, +/area/fiorina/station/power_ring) +"wmx" = ( +/obj/item/stack/folding_barricade, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 8; + icon_state = "red" }, -/area/fiorina/station/medbay) +/area/fiorina/station/security) +"wnh" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "wnq" = ( /obj/item/tool/match, /turf/open/floor/plating/plating_catwalk/prison, @@ -36579,68 +36736,78 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"wnz" = ( +"wnD" = ( /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) -"wnB" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" +/area/fiorina/tumor/fiberbush) +"wnM" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = -3 }, -/area/fiorina/station/central_ring) -"wnW" = ( -/obj/structure/toilet{ - pixel_y = 4 +/obj/item/storage/toolbox/mechanical{ + pixel_y = 6 }, -/obj/item/prop/helmetgarb/gunoil{ - pixel_x = 2; - pixel_y = 25 +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison{ + icon_state = "darkbrown2" + }, +/area/fiorina/maintenance) +"woh" = ( +/obj/structure/platform{ + dir = 1 }, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 1; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"wot" = ( -/obj/item/weapon/baseballbat/metal, +"wol" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/shard{ + icon_state = "medium"; + name = "ice shard" + }, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/chapel) -"woI" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/landmark/objective_landmark/close, +/area/fiorina/tumor/ice_lab) +"wou" = ( +/obj/structure/machinery/light/double/blue, /turf/open/floor/prison{ dir = 10; - icon_state = "kitchen" + icon_state = "whitegreenfull" }, -/area/fiorina/station/civres_blue) -"wpf" = ( -/obj/structure/bed/chair/comfy, +/area/fiorina/tumor/ice_lab) +"wow" = ( +/obj/structure/closet/crate/medical, +/obj/effect/spawner/random/toolbox, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/flight_deck) -"wpp" = ( -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkyellow2" +/area/fiorina/station/medbay) +"wps" = ( +/obj/structure/bed/sofa/south/grey/left, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/power_ring) -"wpu" = ( -/obj/item/tool/soap, -/obj/structure/machinery/shower{ - dir = 8 +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, +/area/fiorina/station/transit_hub) +"wpy" = ( /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 1; + icon_state = "greencorner" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/chapel) "wpD" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 @@ -36664,64 +36831,117 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"wqx" = ( -/obj/item/tool/wrench, +"wqs" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/poster, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/power_ring) -"wqM" = ( -/obj/structure/platform, -/obj/structure/closet/radiation, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"wrQ" = ( +/area/fiorina/station/research_cells) +"wqz" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 + }, +/obj/item/clothing/gloves/combat, /turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurplecorner" + dir = 9; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) +"wqY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, /area/fiorina/station/research_cells) "wrR" = ( /turf/closed/wall/prison, /area/fiorina/station/botany) -"wsy" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - indestructible = 1; - name = "launch bay door" +"wrT" = ( +/obj/item/shard{ + icon_state = "large" }, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"wsw" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "darkpurplefull2" }, -/area/fiorina/oob) -"wsN" = ( -/obj/item/tool/surgery/cautery, +/area/fiorina/station/research_cells) +"wsz" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "yellow" + icon_state = "darkbrown2" + }, +/area/fiorina/tumor/aux_engi) +"wsM" = ( +/obj/structure/barricade/handrail/type_b{ + layer = 3.4 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/area/fiorina/station/lowsec) -"wsY" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/pizzabox/margherita, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"wtx" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/reagent_dispensers/water_cooler{ - pixel_y = 11 +/area/fiorina/tumor/ice_lab) +"wsX" = ( +/obj/item/trash/snack_bowl, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) +"wtm" = ( +/obj/structure/monorail{ + name = "launch track" + }, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 + }, +/turf/open/floor/plating/prison, +/area/fiorina/oob) +"wty" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 4 }, +/obj/item/weapon/classic_baton, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "redfull" + }, +/area/fiorina/station/security) +"wua" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) +"wun" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "whitegreencorner" + }, +/area/fiorina/tumor/ice_lab) +"wuz" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/research_cells) -"wul" = ( -/obj/item/bedsheet/green, -/obj/structure/bed, -/obj/item/toy/farwadoll, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) "wuA" = ( @@ -36744,67 +36964,35 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"wuP" = ( -/obj/structure/machinery/power/apc, +"wuN" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) -"wuT" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 + icon_state = "darkbrownfull2" }, +/area/fiorina/tumor/aux_engi) +"wuW" = ( +/obj/item/tool/warning_cone, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"wvf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - pixel_y = 9 - }, -/obj/item/ammo_magazine/rifle/m16{ - current_rounds = 0 - }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"wvu" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) +/area/fiorina/station/disco) "wvH" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison/chapel_carpet{ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"wvS" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, +"wvL" = ( +/obj/item/tool/wrench, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"wvU" = ( +/obj/structure/largecrate/supply/explosives/mines, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/telecomm/lz1_cargo) "wvY" = ( /obj/item/reagent_container/food/snacks/eat_bar, /obj/structure/machinery/light/double/blue{ @@ -36812,49 +37000,33 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"wwr" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/cameras{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"wwH" = ( -/obj/item/tool/wirecutters, +"wwa" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "floorscorched1" }, -/area/fiorina/station/lowsec) -"wwR" = ( -/obj/structure/largecrate/random/case, -/obj/item/storage/toolbox/emergency{ - pixel_y = 4 +/area/fiorina/tumor/civres) +"wwo" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food{ + desc = "Prison meal vendor, containing preprepared meals fit for the dregs of society."; + name = "\improper Fiorina Engineering Canteen Vendor" }, /turf/open/floor/prison{ - dir = 9; - icon_state = "whitepurple" + icon_state = "bluefull" }, -/area/fiorina/station/research_cells) -"wwZ" = ( -/obj/structure/bed/sofa/south/grey/right, +/area/fiorina/station/power_ring) +"wxl" = ( +/obj/structure/machinery/recharge_station, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "darkbrown2" }, -/area/fiorina/station/civres_blue) -"wxj" = ( -/obj/item/newspaper, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"wxo" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/landmark/objective_landmark/close, +/area/fiorina/maintenance) +"wxW" = ( +/obj/structure/prop/almayer/computers/mapping_computer, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "darkredfull2" }, -/area/fiorina/station/botany) +/area/fiorina/station/research_cells) "wxX" = ( /obj/structure/machinery/computer/cameras{ dir = 8; @@ -36863,6 +37035,12 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/security/wardens) +"wxY" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/servers) "wxZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/window/reinforced{ @@ -36874,18 +37052,44 @@ /obj/structure/machinery/computer/cameras, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) +"wyd" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/botany) "wyl" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"wyP" = ( -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"wyK" = ( +/obj/structure/prop/structure_lattice{ + dir = 4; + health = 300 }, -/turf/open/floor/prison, -/area/fiorina/station/park) +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/oob) +"wyQ" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/prison{ + icon_state = "yellowfull" + }, +/area/fiorina/station/lowsec) "wyT" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, @@ -36896,108 +37100,99 @@ name = "astroturf" }, /area/fiorina/station/research_cells) -"wzE" = ( -/turf/closed/wall/r_wall/prison_unmeltable, -/area/fiorina/station/lowsec) -"wzS" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_y = 6 +"wzd" = ( +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, /turf/open/floor/prison, /area/fiorina/station/security) -"wAa" = ( -/obj/structure/machinery/vending/snack/packaged, +"wzg" = ( +/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"wAj" = ( -/obj/structure/machinery/shower{ - pixel_y = 13 +/area/fiorina/station/flight_deck) +"wzE" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/lowsec) +"wzH" = ( +/turf/open/floor/prison{ + dir = 5; + icon_state = "blue" }, -/obj/structure/machinery/shower{ - dir = 4 +/area/fiorina/station/chapel) +"wzK" = ( +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/item/prop/almayer/flight_recorder, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"wzT" = ( +/obj/structure/platform{ + dir = 8 }, -/area/fiorina/station/lowsec) -"wAl" = ( -/obj/structure/machinery/space_heater, -/turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" +/obj/structure/platform, +/obj/structure/platform_decoration{ + dir = 10 }, -/area/fiorina/tumor/civres) +/obj/structure/reagent_dispensers/fueltank{ + layer = 2.6 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "wAn" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"wAr" = ( +"wAt" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/phone{ - pixel_y = -4 - }, -/obj/item/phone{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/tool/pen, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" + }, +/area/fiorina/lz/near_lzI) +"wAQ" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 }, -/area/fiorina/station/security) -"wAv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "whitegreen" }, -/area/fiorina/station/power_ring) -"wAD" = ( -/obj/item/shard{ - icon_state = "large" +/area/fiorina/tumor/ice_lab) +"wBx" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "A ticket to Souto Man's raffle!"; + name = "\improper Souto Raffle Ticket"; + pixel_x = 6; + pixel_y = 7 }, -/turf/open/floor/prison, -/area/fiorina/station/disco) -"wAM" = ( -/obj/structure/tunnel/maint_tunnel, -/turf/open/floor/plating/prison, -/area/fiorina/station/civres_blue) -"wAR" = ( -/obj/structure/filingcabinet, -/obj/structure/filingcabinet{ - pixel_x = 16 +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkbrown2" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"wAT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt{ - pixel_y = 8 +/area/fiorina/station/park) +"wBB" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/obj/item/trash/cigbutt, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"wBr" = ( -/obj/structure/bed/chair{ - dir = 1; - layer = 2.7 + icon_state = "yellow" }, +/area/fiorina/station/disco) +"wBE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/aspen, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "darkyellow2" }, -/area/fiorina/station/lowsec) +/area/fiorina/lz/near_lzI) "wBK" = ( /obj/item/stack/tile/plasteel, /turf/open/floor/plating/prison, @@ -37006,65 +37201,76 @@ /obj/structure/largecrate/supply/supplies, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"wCA" = ( -/obj/item/reagent_container/glass/bucket/janibucket, +"wCI" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkbrowncorners2" }, -/area/fiorina/station/civres_blue) -"wCV" = ( -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/suit/storage/hazardvest, -/obj/structure/surface/rack, +/area/fiorina/station/park) +"wCJ" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"wDF" = ( -/obj/structure/bed/chair{ - dir = 1 + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/medbay) +"wDe" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "greenblue" }, -/area/fiorina/station/power_ring) -"wDV" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/area/fiorina/station/botany) +"wDw" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryomid" }, +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellow2" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/flight_deck) -"wEa" = ( -/obj/item/stack/rods, +/area/fiorina/station/medbay) +"wDz" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/prison, +/area/fiorina/station/security) +"wDJ" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"wEn" = ( -/obj/structure/barricade/handrail/type_b{ +/area/fiorina/tumor/fiberbush) +"wDK" = ( +/obj/structure/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/curtain/shower, +/obj/structure/window{ dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "sterile_white" }, -/area/fiorina/station/flight_deck) -"wEQ" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/area/fiorina/station/medbay) +"wED" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + dir = 4; + icon_state = "blue" }, -/area/fiorina/station/disco) -"wER" = ( +/area/fiorina/station/civres_blue) +"wEE" = ( +/obj/item/tool/crowbar/red, /turf/open/floor/prison{ - icon_state = "panelscorched" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/oob) +/area/fiorina/station/medbay) "wEX" = ( /obj/structure/machinery/light/double/blue{ dir = 8; @@ -37075,90 +37281,73 @@ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"wEY" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/chapel) -"wFk" = ( -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 4 +"wFd" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + dir = 1; + icon_state = "darkpurple2" }, -/area/fiorina/lz/near_lzI) -"wFo" = ( +/area/fiorina/tumor/servers) +"wFp" = ( +/obj/item/stack/cable_coil/pink, /turf/open/floor/prison{ - icon_state = "floorscorched1" + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/station/medbay) +"wFB" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, -/area/fiorina/tumor/civres) -"wFD" = ( -/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) -"wFE" = ( -/obj/structure/bed/chair{ - dir = 1 +/area/fiorina/station/lowsec) +"wFM" = ( +/obj/structure/machinery/power/apc{ + dir = 8 }, -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 6; - pixel_y = -7 +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" }, -/obj/structure/prop/souto_land/streamer{ - pixel_y = 24 +/area/fiorina/station/telecomm/lz1_cargo) +"wFS" = ( +/turf/open/floor/prison{ + icon_state = "floorscorched1" }, -/turf/open/floor/prison, -/area/fiorina/station/park) +/area/fiorina/station/chapel) "wFU" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"wGa" = ( -/obj/structure/window/reinforced{ - dir = 1; - layer = 3 - }, -/obj/structure/largecrate/random/mini/med{ - pixel_x = -6; - pixel_y = -3 - }, -/turf/open/floor/prison, -/area/fiorina/station/central_ring) -"wGe" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +"wGb" = ( +/obj/item/ammo_casing{ + icon_state = "casing_1" }, /turf/open/floor/prison{ - icon_state = "yellowfull" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/central_ring) "wGf" = ( /obj/item/stack/rods, /turf/open/floor/wood, /area/fiorina/station/park) -"wGm" = ( +"wGA" = ( /obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - icon_state = "darkyellow2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"wGD" = ( -/obj/structure/bed/chair{ - dir = 8 + dir = 8; + pixel_x = -10; + pixel_y = 13 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/power_ring) "wGM" = ( /obj/item/device/taperecorder{ pixel_x = 1; @@ -37167,6 +37356,18 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/wood, /area/fiorina/station/chapel) +"wGX" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_h"; + layer = 2.5; + pixel_y = -11 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/telecomm/lz1_cargo) "wHl" = ( /obj/structure/platform_decoration{ dir = 8 @@ -37177,40 +37378,67 @@ /obj/effect/landmark/static_comms/net_two, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) +"wHr" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/station/security) "wHw" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/plating/prison, /area/fiorina/station/security/wardens) -"wHx" = ( -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" +"wHC" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/fiorina/lz/near_lzI) -"wHE" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/storage/pill_bottle/inaprovaline/skillless, -/obj/effect/landmark/objective_landmark/close, +/obj/item/clothing/gloves/botanic_leather, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "floor_plate" + }, +/area/fiorina/station/botany) +"wId" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/prison, +/area/fiorina/station/central_ring) +"wIk" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4 }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"wIp" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/turf/open/floor/prison, /area/fiorina/tumor/aux_engi) -"wHX" = ( -/obj/item/tool/lighter/random, +"wIx" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ - dir = 10; - icon_state = "kitchen" - }, -/area/fiorina/tumor/civres) -"wII" = ( -/obj/structure/toilet{ - dir = 8; - pixel_y = 8 + dir = 4; + icon_state = "red" }, +/area/fiorina/station/security) +"wIy" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, -/area/fiorina/station/lowsec) +/area/fiorina/tumor/servers) +"wIG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform_decoration/kutjevo, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/fiorina/oob) "wIJ" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -37225,34 +37453,18 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"wJa" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"wIL" = ( +/obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/chapel) "wJd" = ( /obj/structure/barricade/handrail, /turf/open/organic/grass{ name = "astroturf" }, /area/fiorina/station/research_cells) -"wJf" = ( -/obj/structure/machinery/landinglight/ds1/delaythree, -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/lz/near_lzI) -"wJt" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) "wJw" = ( /obj/structure/closet/crate/trashcart, /obj/item/weapon/gun/rifle/m16, @@ -37262,153 +37474,113 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"wJJ" = ( -/obj/structure/closet/bodybag, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) -"wJX" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/fiorina/oob) "wKb" = ( /obj/effect/spawner/random/gun/rifle/midchance, /turf/open/floor/wood, /area/fiorina/station/park) -"wKn" = ( -/obj/structure/barricade/metal/wired{ - health = 120; - icon_state = "metal_2" +"wKl" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, +/area/fiorina/station/civres_blue) +"wKm" = ( +/obj/item/stack/sheet/cardboard, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/disco) +"wKx" = ( +/obj/structure/machinery/landinglight/ds1{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/fiorina/lz/near_lzI) "wKE" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"wKF" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical/green, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +"wKR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/book/manual/surgery, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/maintenance) -"wLf" = ( -/obj/structure/machinery/deployable/barrier, /turf/open/floor/prison{ icon_state = "redfull" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "wLA" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/security) -"wLI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/ammo_box/magazine/misc/flares, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/servers) -"wLJ" = ( -/obj/structure/prop/souto_land/pole{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"wLN" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/skills{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"wLP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clipboard, -/turf/open/floor/prison{ - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"wLX" = ( -/obj/item/stack/cable_coil, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, +"wLS" = ( +/obj/item/tool/wrench, /turf/open/floor/prison{ - dir = 1; + dir = 8; icon_state = "darkpurple2" }, /area/fiorina/tumor/servers) -"wMi" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ - req_one_access = null +"wLT" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 }, -/turf/open/floor/plating/prison, -/area/fiorina/station/chapel) -"wMz" = ( -/obj/structure/machinery/faxmachine, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/fiorina/station/security/wardens) -"wMG" = ( -/obj/item/stack/rods, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 }, -/area/fiorina/station/medbay) -"wMI" = ( -/obj/item/storage/box/gloves, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"wMP" = ( -/obj/item/stool, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "bluefull" +/area/fiorina/tumor/civres) +"wMe" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/blood/empty{ + pixel_x = -7; + pixel_y = 4 }, -/area/fiorina/station/civres_blue) -"wMQ" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/item/reagent_container/food/condiment/enzyme, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/item/reagent_container/blood/BMinus{ + pixel_x = 7; + pixel_y = 4 }, -/area/fiorina/station/power_ring) -"wMR" = ( -/obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/lz/near_lzII) -"wMS" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +/area/fiorina/station/telecomm/lz1_cargo) +"wMh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer3/laptop/secure_data, +/turf/open/floor/prison, +/area/fiorina/tumor/servers) +"wMi" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/chapel) +"wMv" = ( +/obj/item/shard{ + icon_state = "medium" }, -/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - dir = 6; - icon_state = "whitepurple" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) +/area/fiorina/station/chapel) +"wMz" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/fiorina/station/security/wardens) +"wMA" = ( +/obj/item/disk/botany, +/turf/open/floor/prison{ + dir = 4; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) "wNi" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/prison, @@ -37422,142 +37594,122 @@ icon_state = "doubleside" }, /area/fiorina/station/chapel) -"wNw" = ( +"wNB" = ( +/obj/structure/closet/firecloset/full, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - dir = 9; - icon_state = "darkpurple2" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/tumor/servers) -"wOc" = ( -/obj/structure/platform, -/obj/structure/platform{ +/area/fiorina/station/medbay) +"wND" = ( +/obj/structure/bed/chair/comfy{ dir = 8 }, -/obj/structure/platform_decoration{ - dir = 10 - }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "blue" }, -/area/fiorina/station/power_ring) -"wOD" = ( +/area/fiorina/station/civres_blue) +"wNG" = ( /turf/open/floor/prison{ - dir = 8; - icon_state = "floor_marked" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/servers) -"wOM" = ( -/obj/item/tool/kitchen/knife, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"wOR" = ( +/area/fiorina/station/security) +"wNM" = ( +/obj/item/tool/weldingtool, /turf/open/floor/prison{ - dir = 10; - icon_state = "greenblue" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) -"wOS" = ( +/area/fiorina/station/civres_blue) +"wNX" = ( /turf/open/floor/prison{ - icon_state = "redcorner" + dir = 8; + icon_state = "green" }, -/area/fiorina/station/security) -"wOT" = ( -/obj/effect/decal/cleanable/blood/splatter, +/area/fiorina/station/chapel) +"wOG" = ( +/obj/structure/largecrate/random, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/disco) "wPz" = ( /turf/closed/shuttle/elevator, /area/fiorina/station/telecomm/lz1_cargo) -"wPF" = ( -/obj/item/trash/semki, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/power_ring) -"wPL" = ( -/obj/structure/platform_decoration, +"wQb" = ( /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"wQh" = ( -/obj/structure/prop/almayer/computers/sensor_computer1{ - name = "computer" - }, -/obj/structure/machinery/light/double/blue{ dir = 1; - pixel_y = 21 + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) +"wQg" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/door/window/eastright{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "darkredfull2" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"wQn" = ( -/obj/effect/landmark/static_comms/net_one, +/area/fiorina/station/security) +"wQD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/weapon/gun/energy/taser, /turf/open/floor/prison{ - dir = 10; icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"wQs" = ( -/obj/effect/landmark/survivor_spawner, -/turf/open/floor/prison, -/area/fiorina/station/park) +/area/fiorina/station/security) "wQN" = ( /obj/structure/machinery/floodlight/landing/floor, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) +"wQR" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "wQT" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"wRg" = ( -/obj/item/stack/sheet/metal, -/obj/structure/cable/heavyduty{ - icon_state = "1-2" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/servers) -"wRh" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitegreen" +"wQW" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/station/medbay) -"wRn" = ( -/obj/structure/machinery/light/double/blue, /turf/open/floor/prison, /area/fiorina/station/park) -"wRo" = ( -/obj/structure/barricade/wooden{ - dir = 1 - }, +"wQY" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor/prison{ dir = 10; icon_state = "whitegreenfull" }, -/area/fiorina/station/medbay) -"wRv" = ( -/obj/structure/bed/chair, -/turf/open/floor/prison{ - icon_state = "darkpurple2" +/area/fiorina/tumor/ice_lab) +"wRg" = ( +/obj/item/stack/sheet/metal, +/obj/structure/cable/heavyduty{ + icon_state = "1-2" }, +/turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"wRG" = ( -/obj/structure/platform{ - dir = 8 - }, +"wRz" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ dir = 8; - icon_state = "blue" + icon_state = "cell_stripe" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/central_ring) "wRP" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -37565,130 +37717,119 @@ }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"wRW" = ( -/obj/structure/prop/resin_prop{ - dir = 1; - icon_state = "chair"; - pixel_y = 6 - }, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"wRZ" = ( +"wSb" = ( +/obj/structure/machinery/gibber, /turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/power_ring) +"wSc" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; dir = 1; - icon_state = "blue_plate" + health = 25000; + pixel_y = 19 + }, +/obj/item/stack/sheet/wood, +/obj/structure/machinery/computer/cameras/wooden_tv{ + desc = "Somehow, it still functions."; + layer = 3.1; + name = "discarded camera console"; + pixel_x = -6; + pixel_y = 5 }, -/area/fiorina/station/botany) -"wSe" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + icon_state = "floor_plate" }, /area/fiorina/tumor/servers) "wSm" = ( /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"wTo" = ( -/obj/structure/platform{ - dir = 4 +"wSo" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/item/stool, /turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/civres_blue) -"wTy" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" + dir = 4; + icon_state = "darkbrown2" }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"wTz" = ( -/obj/structure/machinery/vending/security, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/area/fiorina/station/park) +"wSt" = ( +/obj/structure/monorail{ + dir = 9; + name = "launch track" }, -/area/fiorina/station/security) -"wTO" = ( -/obj/structure/bed{ - icon_state = "abed" +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"wSC" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/glass/bottle/spaceacillin{ + pixel_x = -6; + pixel_y = 4 }, -/obj/item/reagent_container/food/drinks/flask/marine, +/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitepurple" + icon_state = "darkredfull2" }, /area/fiorina/station/research_cells) -"wTV" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +"wSD" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"wSN" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "darkredfull2" }, /area/fiorina/station/research_cells) -"wUA" = ( +"wSU" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/aux_engi) -"wUN" = ( -/obj/item/reagent_container/food/drinks/cans/sodawater, +/area/fiorina/station/transit_hub) +"wSX" = ( +/obj/vehicle/train/cargo/trolley, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/station/central_ring) -"wVu" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/area/fiorina/station/transit_hub) +"wTC" = ( /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 5; + icon_state = "darkyellow2" }, -/area/fiorina/tumor/aux_engi) -"wVI" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 +/area/fiorina/station/telecomm/lz1_cargo) +"wTW" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/plating/prison, +/area/fiorina/station/disco) +"wUs" = ( +/turf/open/floor/prison{ + icon_state = "floorscorched1" }, -/obj/effect/landmark/objective_landmark/science, +/area/fiorina/station/civres_blue) +"wUz" = ( +/obj/item/frame/toolbox_tiles, /turf/open/floor/prison{ - dir = 10; + dir = 9; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"wVK" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"wVL" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = -3 +"wVc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = 11; + pixel_y = 14 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/tumor/fiberbush) "wWs" = ( /turf/open/floor/greengrid, /area/fiorina/station/security) -"wWF" = ( -/obj/item/frame/rack, -/turf/open/floor/plating/prison, -/area/fiorina/station/disco) -"wWT" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/central_ring) "wWW" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 @@ -37698,271 +37839,286 @@ }, /turf/open/floor/almayer_hull, /area/fiorina/station/medbay) -"wXf" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" +"wXe" = ( +/obj/structure/machinery/computer/cameras{ + dir = 1 }, -/area/fiorina/station/flight_deck) -"wXP" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/paper, /turf/open/floor/prison{ - icon_state = "darkpurple2" + icon_state = "redfull" }, -/area/fiorina/tumor/servers) -"wYx" = ( -/obj/item/storage/box/flashbangs, -/obj/structure/surface/table/reinforced/prison, +/area/fiorina/station/security) +"wXy" = ( +/obj/structure/largecrate/random, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 + }, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"wXN" = ( +/obj/structure/machinery/cryo_cell, +/obj/structure/pipes/standard/cap/hidden, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "sterile_white" }, /area/fiorina/station/medbay) -"wYE" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/fiorina/lz/near_lzII) -"wYG" = ( -/obj/structure/barricade/wooden{ - dir = 1 +"wXQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" + icon_state = "floor_plate" }, -/area/fiorina/station/telecomm/lz1_cargo) -"wZn" = ( -/obj/structure/closet/secure_closet/guncabinet{ - req_access = null +/area/fiorina/station/lowsec) +"wYq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/chem_dispenser/soda, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/item/clothing/under/marine/ua_riot, -/obj/item/clothing/suit/storage/marine/veteran/ua_riot, -/obj/item/prop/helmetgarb/riot_shield, +/area/fiorina/station/power_ring) +"wYP" = ( +/obj/structure/platform, +/obj/item/clothing/gloves/botanic_leather, /turf/open/floor/prison{ - icon_state = "redfull" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"wZo" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/area/fiorina/station/botany) +"wYT" = ( +/obj/structure/surface/rack, +/obj/item/tank/emergency_oxygen/engi, +/turf/open/floor/prison{ + dir = 6; + icon_state = "blue" }, +/area/fiorina/station/power_ring) +"wZt" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 8; + icon_state = "floor_marked" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/research_cells) "wZv" = ( /obj/item/stack/sheet/metal, /turf/open/floor/wood, /area/fiorina/station/park) -"wZE" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) +"wZH" = ( +/obj/structure/filingcabinet, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "wZN" = ( /obj/item/reagent_container/food/drinks/bottle/melonliquor, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"xaK" = ( -/obj/structure/barricade/handrail/type_b, +"xak" = ( +/obj/structure/closet/emcloset, +/obj/item/storage/pill_bottle/kelotane/skillless, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) -"xaS" = ( -/obj/structure/prop/almayer/computers/sensor_computer1, +/area/fiorina/tumor/ice_lab) +"xat" = ( +/obj/item/stool, /turf/open/floor/prison{ - icon_state = "darkpurplefull2" + icon_state = "bluefull" }, -/area/fiorina/tumor/servers) -"xbq" = ( -/obj/item/stack/sheet/metal/medium_stack, -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/civres_blue) +"xaO" = ( +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/prison{ - dir = 8; - icon_state = "blue" + icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) -"xbu" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/toy/prize/honk{ - anchored = 1; - layer = 2.9; - pixel_x = -1; - pixel_y = 13 +/area/fiorina/station/medbay) +"xbc" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "cell_stripe" + }, +/area/fiorina/station/central_ring) +"xbm" = ( +/obj/structure/machinery/line_nexter{ + id = "line2"; + pixel_x = -2 }, /obj/structure/barricade/handrail/type_b, +/turf/open/floor/prison, +/area/fiorina/station/disco) +"xbo" = ( +/obj/structure/barricade/sandbags{ + dir = 8; + icon_state = "sandbag_0"; + pixel_y = 2 + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 5; + icon_state = "yellow" + }, +/area/fiorina/station/disco) +"xbp" = ( +/obj/item/card/id/silver/clearance_badge/cl{ + desc = "Wow sorry, didn't mean to drop that in front of you, it's real, btw."; + name = "certified powerloader operator card"; + registered_name = "John Forklift" }, -/area/fiorina/station/flight_deck) -"xbB" = ( /turf/open/floor/prison{ - icon_state = "darkyellow2" + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) +"xbr" = ( +/obj/structure/machinery/power/apc{ + dir = 4 }, -/area/fiorina/station/flight_deck) -"xbQ" = ( /turf/open/floor/prison{ - icon_state = "panelscorched" + dir = 1; + icon_state = "green" }, -/area/fiorina/station/civres_blue) -"xca" = ( +/area/fiorina/station/transit_hub) +"xbE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/floor/prison{ - icon_state = "platingdmg2" + icon_state = "yellowfull" }, -/area/fiorina/station/security) -"xcf" = ( -/obj/item/reagent_container/food/snacks/donkpocket, +/area/fiorina/station/disco) +"xbM" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) +/area/fiorina/station/lowsec) "xck" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/park) -"xcJ" = ( -/obj/structure/platform, +"xcz" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"xcS" = ( /obj/structure/platform{ - dir = 4 + dir = 8 }, -/obj/structure/platform_decoration{ - dir = 6 +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, /area/fiorina/station/power_ring) -"xdy" = ( -/turf/open/floor/prison{ - icon_state = "darkredfull2" +"xdb" = ( +/obj/structure/closet/bodybag, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/prison, +/area/fiorina/station/lowsec) +"xdt" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 }, +/turf/open/space/basic, /area/fiorina/oob) "xdE" = ( /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz1_tram) -"xec" = ( +"xdL" = ( +/obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ - icon_state = "kitchen" + icon_state = "floor_plate" }, -/area/fiorina/station/research_cells) -"xed" = ( -/obj/structure/window/reinforced{ - dir = 4 +/area/fiorina/tumor/servers) +"xdT" = ( +/obj/item/trash/cigbutt, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/window/reinforced{ - dir = 8 +/area/fiorina/station/power_ring) +"xdZ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/secure_data, -/turf/open/floor/prison, -/area/fiorina/station/security) -"xeh" = ( -/obj/structure/surface/rack, -/obj/item/tool/extinguisher, -/obj/item/tool/crowbar{ - pixel_x = 5; - pixel_y = -5 +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/item/tool/crowbar, +/area/fiorina/station/lowsec) +"xei" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" + }, +/area/fiorina/station/central_ring) +"xel" = ( +/obj/effect/landmark/survivor_spawner, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/lowsec) "xew" = ( /turf/closed/shuttle/ert{ icon_state = "stan_leftengine" }, /area/fiorina/lz/near_lzI) -"xeD" = ( -/obj/item/clothing/gloves/botanic_leather, -/turf/open/floor/prison{ - dir = 4; - icon_state = "blue_plate" - }, -/area/fiorina/station/botany) "xeO" = ( /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"xfd" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_ew_full_cap" - }, -/obj/structure/platform/stair_cut, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) -"xfq" = ( -/obj/effect/alien/weeds/node, -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"xfw" = ( -/obj/effect/landmark/objective_landmark/science, +"xeX" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "darkpurple2" + icon_state = "platingdmg1" }, /area/fiorina/tumor/servers) -"xfA" = ( -/obj/structure/bed/chair{ +"xfb" = ( +/obj/item/inflatable, +/obj/item/inflatable, +/obj/item/inflatable, +/obj/item/inflatable, +/obj/item/inflatable, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"xfh" = ( +/obj/structure/barricade/wooden{ dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"xfG" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + dir = 1; + icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"xfR" = ( +"xgb" = ( /obj/effect/landmark/corpsespawner/ua_riot/burst, /turf/open/floor/prison{ - dir = 1; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) -"xfV" = ( -/obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 1; - icon_state = "blue_plate" + icon_state = "floor_plate" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/civres) "xgn" = ( /obj/structure/machinery/optable, /turf/open/floor/corsat{ icon_state = "squares" }, /area/fiorina/station/medbay) -"xgr" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) "xgx" = ( /obj/structure/machinery/defenses/tesla_coil{ faction_group = list("USCM") @@ -37971,23 +38127,54 @@ name = "astroturf" }, /area/fiorina/station/park) +"xgC" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/fiorina/station/disco) "xgF" = ( /obj/structure/machinery/light/double/blue, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"xhc" = ( +"xgH" = ( +/obj/item/toy/handcard/uno_reverse_blue, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/transit_hub) -"xii" = ( -/obj/structure/tunnel, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" +/area/fiorina/station/research_cells) +"xgU" = ( +/obj/item/circuitboard/machine/rdserver, +/turf/open/floor/prison{ + icon_state = "floorscorched1" }, -/area/fiorina/tumor/fiberbush) +/area/fiorina/tumor/servers) +"xhL" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaltopleft" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"xhM" = ( +/obj/structure/curtain/red, +/turf/open/floor/prison{ + icon_state = "sterile_white" + }, +/area/fiorina/station/civres_blue) +"xia" = ( +/obj/item/ammo_magazine/smg/mp5, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) "xiF" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/light/double/blue{ @@ -37996,6 +38183,18 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/security) +"xiL" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "blue_plate" + }, +/area/fiorina/station/botany) +"xiO" = ( +/obj/structure/machinery/vending/cigarette/free, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) "xja" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ req_one_access = null @@ -38006,84 +38205,63 @@ /obj/structure/computerframe, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"xjv" = ( +"xjM" = ( /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/station/power_ring) -"xjw" = ( -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 8 + dir = 8; + icon_state = "redcorner" }, +/area/fiorina/station/security) +"xkm" = ( +/obj/effect/landmark/static_comms/net_two, /turf/open/floor/prison{ - dir = 4; - icon_state = "darkyellowfull2" + icon_state = "bluefull" }, -/area/fiorina/lz/near_lzI) -"xjK" = ( -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/power_ring) +"xkq" = ( +/obj/structure/platform, +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/tumor/ice_lab) -"xjW" = ( -/obj/item/device/flashlight/flare, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" +/obj/structure/platform_decoration{ + dir = 6 }, -/area/fiorina/station/telecomm/lz1_cargo) -"xkj" = ( -/obj/effect/landmark/objective_landmark/science, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/power_ring) "xkv" = ( /turf/closed/wall/prison, /area/fiorina/station/telecomm/lz1_tram) -"xkC" = ( -/obj/structure/barricade/metal/wired{ - dir = 4 - }, -/obj/structure/machinery/m56d_hmg/mg_turret/dropship{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "cell_stripe" - }, -/area/fiorina/station/central_ring) -"xkG" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 +"xlb" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"xkP" = ( -/obj/item/tool/mop, +/area/fiorina/station/civres_blue) +"xlk" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryomid" + }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/park) +/area/fiorina/station/medbay) "xlp" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, /turf/open/floor/wood, /area/fiorina/station/research_cells) -"xlq" = ( -/obj/structure/largecrate/supply, +"xlx" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/tomatosoup, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "blue" }, -/area/fiorina/station/lowsec) +/area/fiorina/station/power_ring) "xlZ" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/box/pillbottles, @@ -38094,167 +38272,58 @@ icon_state = "stan27" }, /area/fiorina/oob) -"xmg" = ( -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) "xmj" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, /turf/open/floor/carpet, /area/fiorina/station/security/wardens) -"xmH" = ( +"xmC" = ( +/obj/item/device/flashlight/flare/on, /turf/open/floor/prison{ dir = 1; - icon_state = "green" - }, -/area/fiorina/tumor/aux_engi) -"xmM" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 + icon_state = "whitegreen" }, +/area/fiorina/tumor/ice_lab) +"xmV" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ + dir = 10; icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzI) -"xmX" = ( -/obj/structure/cargo_container/grant/right{ - health = 5000; - unacidable = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/telecomm/lz1_tram) "xna" = ( /obj/item/stack/tile/plasteel, /turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"xng" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkyellow2" - }, -/area/fiorina/station/flight_deck) "xno" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"xnp" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/power_ring) -"xnq" = ( -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"xns" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"xnA" = ( -/obj/structure/curtain/red, -/turf/open/floor/prison{ - icon_state = "sterile_white" - }, -/area/fiorina/station/civres_blue) -"xnE" = ( -/obj/structure/largecrate/random/case/small, -/obj/item/key/cargo_train, -/turf/open/floor/prison, -/area/fiorina/tumor/aux_engi) -"xnK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/recharger, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"xnM" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/prison, -/area/fiorina/tumor/ice_lab) -"xnN" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"xnR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/box/cups, -/obj/item/reagent_container/food/drinks/coffee{ - name = "\improper paper cup"; - pixel_x = 8; - pixel_y = 16 +"xnt" = ( +/obj/structure/closet{ + density = 0; + pixel_y = 18 }, -/turf/open/floor/prison, -/area/fiorina/station/security) -"xnS" = ( +/obj/item/clothing/gloves/combat, /turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" + dir = 1; + icon_state = "whitepurple" }, -/area/fiorina/station/park) +/area/fiorina/station/research_cells) "xnU" = ( /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"xnW" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/prison, -/area/fiorina/station/flight_deck) -"xog" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno/limb, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreencorner" - }, -/area/fiorina/station/medbay) "xoi" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"xoB" = ( -/obj/item/trash/chunk, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"xoF" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "blue" - }, -/area/fiorina/station/power_ring) -"xoI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/computer/objective, +"xow" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 4; + icon_state = "green" }, -/area/fiorina/station/park) +/area/fiorina/station/chapel) "xoK" = ( /obj/structure/closet, /obj/item/handcuffs, @@ -38262,138 +38331,147 @@ /obj/item/weapon/chainofcommand, /turf/open/floor/wood, /area/fiorina/station/security/wardens) -"xoQ" = ( -/obj/structure/machinery/light/double/blue, +"xoR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/atmos_alert, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "bluefull" }, -/area/fiorina/tumor/civres) -"xpB" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/power_ring) +"xpj" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + icon_state = "lavendergrass_4" }, -/area/fiorina/station/medbay) -"xqf" = ( -/obj/structure/closet/bombcloset, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/stack/sheet/mineral/plastic, -/obj/item/stack/sheet/mineral/plastic, -/obj/item/stack/sheet/mineral/plastic, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" +/turf/open/organic/grass{ + desc = "It'll get in your shoes no matter what you do."; + name = "astroturf" }, -/area/fiorina/tumor/aux_engi) -"xqh" = ( -/obj/item/ammo_casing{ - icon_state = "cartridge_2" +/area/fiorina/station/central_ring) +"xpw" = ( +/obj/structure/machinery/power/apc{ + dir = 8 }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"xpx" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"xpM" = ( +/obj/structure/platform, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/central_ring) -"xqj" = ( -/obj/structure/bed{ - icon_state = "abed" +/area/fiorina/station/power_ring) +"xpO" = ( +/obj/structure/machinery/power/terminal{ + dir = 1 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitepurple" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/research_cells) -"xqD" = ( -/obj/item/explosive/grenade/high_explosive/frag, -/turf/open/floor/prison, -/area/fiorina/station/security) -"xqG" = ( -/obj/item/stack/rods, +/area/fiorina/tumor/aux_engi) +"xqP" = ( +/obj/structure/surface/rack, +/obj/item/tool/plantspray/weeds, /turf/open/floor/prison{ dir = 4; - icon_state = "greencorner" + icon_state = "blue_plate" }, -/area/fiorina/station/chapel) -"xri" = ( +/area/fiorina/station/botany) +"xqY" = ( +/obj/effect/spawner/random/tool, /turf/open/floor/prison{ - dir = 4; - icon_state = "yellow" + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/tumor/ice_lab) +"xrd" = ( +/obj/structure/machinery/computer3/server/rack, +/obj/structure/barricade/handrail/type_b{ + dir = 4 }, -/area/fiorina/station/lowsec) -"xrn" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/gun/pistol/lowchance, /turf/open/floor/prison, -/area/fiorina/station/power_ring) -"xrs" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/device/flashlight/lamp/candelabra{ - layer = 3.2; - pixel_x = 1; - pixel_y = 13 +/area/fiorina/tumor/servers) +"xro" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/skills{ + dir = 4 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" + icon_state = "bluefull" }, -/area/fiorina/station/transit_hub) -"xrG" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap" +/area/fiorina/station/power_ring) +"xrz" = ( +/obj/item/clothing/head/cmcap, +/turf/open/floor/prison{ + icon_state = "green" }, -/obj/structure/platform/stair_cut/alt, -/turf/open/floor/plating/prison, -/area/fiorina/station/disco) +/area/fiorina/station/transit_hub) "xrH" = ( /obj/structure/machinery/landinglight/ds2{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"xrJ" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/aux_engi) -"xrT" = ( -/obj/structure/inflatable, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"xrZ" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 }, -/area/fiorina/tumor/ship) -"xrU" = ( -/obj/structure/machinery/vending/cigarette, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"xsa" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/area/fiorina/station/civres_blue) +"xsh" = ( +/obj/structure/bed/roller, +/obj/structure/machinery/iv_drip{ + pixel_y = 19 }, +/obj/item/bedsheet/green, /turf/open/floor/prison{ - dir = 8; - icon_state = "redcorner" - }, -/area/fiorina/station/power_ring) -"xsg" = ( -/obj/item/trash/pistachios, -/obj/structure/machinery/light/double/blue{ dir = 4; - pixel_x = 10; - pixel_y = -3 + icon_state = "whitegreen" }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) "xst" = ( /obj/structure/platform, /turf/open/floor/prison/chapel_carpet, /area/fiorina/station/chapel) +"xsC" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"xsS" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"xsX" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) +"xtd" = ( +/obj/structure/largecrate/random/case/small, +/obj/item/key/cargo_train, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "xte" = ( /obj/structure/platform_decoration, /turf/open/floor/plating/plating_catwalk/prison, /area/fiorina/station/telecomm/lz1_tram) +"xtm" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/fiorina/tumor/aux_engi) "xtP" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -38403,73 +38481,35 @@ icon_state = "hr_kutjevo"; name = "solar lattice" }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/turf/open/space, -/area/fiorina/oob) -"xub" = ( -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/park) -"xup" = ( -/obj/structure/largecrate/supply/generator, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"xuw" = ( -/obj/item/stool, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" - }, -/area/fiorina/station/research_cells) -"xuH" = ( -/obj/item/ammo_casing{ - icon_state = "casing_7_1" - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/fiorina/oob) +"xuQ" = ( +/obj/effect/decal/medical_decals{ + icon_state = "docstripingdir" }, -/area/fiorina/station/medbay) -"xvs" = ( -/obj/item/stack/rods, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" }, -/area/fiorina/station/research_cells) -"xvt" = ( -/obj/effect/landmark/corpsespawner/ua_riot, -/turf/open/floor/prison{ - dir = 8; - icon_state = "whitegreen" - }, /area/fiorina/station/medbay) +"xvv" = ( +/turf/open/floor/prison, +/area/fiorina/station/botany) "xvB" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/access{ name = "greenhouse airlock" }, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) -"xvD" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/snacks/ricepudding, +"xvC" = ( +/obj/structure/bed/chair, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurple2" }, /area/fiorina/tumor/servers) -"xvH" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/security) "xvI" = ( /obj/structure/disposalpipe/segment{ icon_state = "delivery_outlet"; @@ -38480,24 +38520,14 @@ /obj/item/trash/eat, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"xvR" = ( -/obj/item/stack/sheet/metal, +"xwo" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/sprays, /turf/open/floor/prison{ dir = 9; icon_state = "greenfull" }, -/area/fiorina/tumor/civres) -"xwi" = ( -/obj/item/explosive/grenade/phosphorus, -/obj/item/explosive/grenade/phosphorus, -/obj/item/explosive/grenade/phosphorus, -/obj/structure/surface/rack, -/obj/item/explosive/grenade/phosphorus, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) +/area/fiorina/station/botany) "xwt" = ( /obj/structure/bed/chair/comfy, /turf/open/organic/grass{ @@ -38505,49 +38535,12 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"xwy" = ( -/obj/structure/closet/firecloset, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison, -/area/fiorina/station/medbay) -"xwA" = ( -/obj/item/ammo_casing{ - icon_state = "casing_6_1" - }, -/obj/item/weapon/gun/smg/mp5, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) "xwC" = ( /turf/closed/wall/mineral/bone_resin, /area/fiorina/tumor/fiberbush) -"xwD" = ( -/obj/item/tool/weldingtool, -/turf/open/floor/prison, -/area/fiorina/station/civres_blue) -"xxd" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" - }, -/area/fiorina/maintenance) -"xxh" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkbrown2" - }, -/area/fiorina/tumor/aux_engi) "xxD" = ( /turf/open/floor/wood, /area/fiorina/station/civres_blue) -"xxE" = ( -/obj/item/stack/rods/plasteel, -/turf/open/floor/prison{ - icon_state = "damaged3" - }, -/area/fiorina/station/security) "xxP" = ( /obj/structure/flora/bush/ausbushes/grassybush{ icon_state = "lavendergrass_2" @@ -38557,65 +38550,37 @@ name = "astroturf" }, /area/fiorina/station/civres_blue) +"xxU" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) "xxX" = ( /obj/effect/decal/cleanable/blood/splatter{ icon_state = "gib4" }, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"xyf" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, -/turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"xyy" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ - dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/space, -/area/fiorina/oob) -"xyK" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ +"xyq" = ( +/obj/structure/bed/chair{ dir = 8 }, -/turf/open/floor/prison, -/area/fiorina/station/power_ring) -"xyR" = ( -/obj/structure/bedsheetbin, -/turf/open/floor/prison{ - dir = 8; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"xzb" = ( -/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + dir = 4; + icon_state = "blue_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/botany) +"xyw" = ( +/obj/structure/machinery/computer/arcade, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "xzj" = ( /turf/open/floor/carpet, /area/fiorina/tumor/civres) -"xzr" = ( -/obj/item/prop/helmetgarb/gunoil, -/turf/open/floor/prison, -/area/fiorina/maintenance) "xzs" = ( /obj/structure/machinery/space_heater, /turf/open/organic/grass{ @@ -38623,40 +38588,33 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"xzI" = ( -/obj/item/tool/warning_cone, -/obj/structure/barricade/metal{ - dir = 8; - health = 150; - icon_state = "metal_2" - }, -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"xzW" = ( -/obj/structure/closet/wardrobe/orange, -/obj/item/explosive/mine/pmc, -/obj/effect/spawner/random/gun/smg, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/prison{ - icon_state = "yellowfull" - }, -/area/fiorina/station/lowsec) -"xAi" = ( -/obj/structure/machinery/vending/sovietsoda, +"xzN" = ( /turf/open/floor/prison{ dir = 9; - icon_state = "greenfull" + icon_state = "blue" }, -/area/fiorina/station/botany) +/area/fiorina/station/chapel) "xAl" = ( /obj/structure/cargo_container/grant/right{ desc = "A huge industrial shipping container. You're not sure how it got here." }, /turf/open/space, /area/fiorina/oob) +"xAo" = ( +/obj/item/trash/cigbutt/bcigbutt, +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) +"xAq" = ( +/obj/effect/spawner/random/tool, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/research_cells) "xAs" = ( /obj/item/device/reagent_scanner, /turf/open/organic/grass{ @@ -38664,26 +38622,23 @@ name = "astroturf" }, /area/fiorina/tumor/fiberbush) -"xAw" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "sterile_white" - }, -/area/fiorina/station/lowsec) -"xAR" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 +"xAY" = ( +/obj/effect/landmark{ + icon_state = "hive_spawn"; + name = "xeno_hive_spawn" }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 +/obj/effect/landmark/ert_spawns/groundside_xeno, +/turf/open/floor/prison{ + dir = 1; + icon_state = "whitegreencorner" }, +/area/fiorina/tumor/ice_lab) +"xBc" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitepurple" }, -/area/fiorina/station/park) +/area/fiorina/station/research_cells) "xBl" = ( /obj/structure/surface/table/woodentable, /obj/item/circuitboard/apc, @@ -38698,103 +38653,73 @@ }, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) -"xBv" = ( -/obj/structure/bed/roller, -/obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/floor/prison, -/area/fiorina/station/lowsec) -"xBI" = ( -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/fiorina/lz/near_lzII) -"xBK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_29"; - pixel_x = 1; - pixel_y = 10 +"xBu" = ( +/obj/structure/platform_decoration{ + dir = 8 }, +/obj/effect/spawner/random/tool, /turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"xBR" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "redfull" +/area/fiorina/station/power_ring) +"xBN" = ( +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = 1; + pixel_y = -1 }, -/area/fiorina/station/security/wardens) -"xBT" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkpurplefull2" }, -/area/fiorina/station/security/wardens) +/area/fiorina/station/research_cells) "xCa" = ( /obj/item/toy/crayon/rainbow, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"xCm" = ( -/obj/structure/barricade/sandbags{ - icon_state = "sandbag_0"; - pixel_y = -14 - }, +"xCg" = ( +/obj/item/stack/sheet/metal, /turf/open/floor/prison{ dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"xCo" = ( -/obj/structure/prop/structure_lattice{ - dir = 4; - health = 300 - }, -/obj/structure/prop/structure_lattice{ - dir = 4; - layer = 3.1; - pixel_y = 10 + icon_state = "sterile_white" }, -/obj/structure/disposalpipe/segment{ - color = "#c4c4c4"; - dir = 4; - layer = 6; - name = "overhead pipe"; - pixel_y = 20 +/area/fiorina/station/research_cells) +"xCh" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) -"xCs" = ( -/obj/effect/decal/medical_decals{ - icon_state = "cryocell1decal" + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/research_cells) +"xCp" = ( +/obj/structure/inflatable/popped, /turf/open/floor/prison{ icon_state = "whitegreen" }, /area/fiorina/station/medbay) -"xCy" = ( -/obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/fiorina/station/research_cells) -"xCW" = ( -/obj/structure/grille, +"xCr" = ( +/obj/structure/curtain/shower, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "kitchen" }, -/area/fiorina/station/research_cells) -"xDe" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison{ - icon_state = "green" +/area/fiorina/tumor/civres) +"xCv" = ( +/obj/structure/platform{ + dir = 4 }, -/area/fiorina/station/chapel) -"xDg" = ( -/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison, /area/fiorina/station/medbay) +"xCV" = ( +/obj/item/reagent_container/food/drinks/bottle/orangejuice, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"xDk" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "blue" + }, +/area/fiorina/station/civres_blue) "xDq" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" @@ -38804,120 +38729,135 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) -"xDz" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 +"xEi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 }, -/turf/open/floor/prison, -/area/fiorina/station/botany) -"xDQ" = ( /turf/open/floor/prison{ - icon_state = "cell_stripe" + icon_state = "floor_plate" }, -/area/fiorina/station/security) -"xEa" = ( -/obj/structure/closet/secure_closet/security_empty, -/obj/item/clothing/accessory/storage/holster, -/obj/structure/window/reinforced{ - dir = 4 +/area/fiorina/station/power_ring) +"xEy" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, /turf/open/floor/prison{ - icon_state = "redfull" - }, -/area/fiorina/station/security) -"xEE" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - indestructible = 1 - }, -/obj/item/clothing/head/that{ - anchored = 1; - indestructible = 1; - pixel_y = 7 + icon_state = "floor_plate" }, -/turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"xFe" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/obj/structure/barricade/handrail/type_b{ - layer = 3.4 +"xEH" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreen" }, -/turf/open/floor/plating/prison, /area/fiorina/station/medbay) +"xEW" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) +"xEX" = ( +/obj/effect/spawner/random/gun/rifle, +/turf/open/floor/prison{ + dir = 10; + icon_state = "darkyellow2" + }, +/area/fiorina/lz/near_lzI) "xFf" = ( /obj/structure/largecrate/random, /turf/open/floor/corsat{ icon_state = "plate" }, /area/fiorina/tumor/aux_engi) -"xFx" = ( +"xFg" = ( +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/fiorina/station/central_ring) +"xFJ" = ( +/obj/item/tool/soap, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/fiorina/station/lowsec) +"xFL" = ( +/obj/effect/decal{ + icon = 'icons/obj/items/policetape.dmi'; + icon_state = "engineering_v" + }, /turf/open/floor/prison{ dir = 10; - icon_state = "green" + icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"xFB" = ( -/obj/structure/platform, -/turf/open/floor/prison, -/area/fiorina/station/botany) +/area/fiorina/station/telecomm/lz1_cargo) "xFP" = ( /turf/closed/shuttle/ert{ icon_state = "stan_rightengine" }, /area/fiorina/lz/near_lzI) -"xGt" = ( -/obj/structure/window/framed/prison/reinforced, -/turf/open/floor/plating/prison, -/area/fiorina/station/security) -"xGY" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 +"xGc" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, /turf/open/floor/prison{ - dir = 10; - icon_state = "bright_clean_marked" + icon_state = "bluefull" + }, +/area/fiorina/station/civres_blue) +"xGd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/cigarette/weed{ + icon_state = "ucigoff" }, -/area/fiorina/station/medbay) -"xHV" = ( -/turf/closed/wall/mineral/bone_resin, -/area/fiorina/tumor/civres) -"xHY" = ( -/obj/effect/landmark/xeno_spawn, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/aux_engi) -"xIb" = ( -/obj/structure/platform{ - dir = 8; - layer = 2.5 +/area/fiorina/station/lowsec) +"xGi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" }, -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" }, +/area/fiorina/tumor/civres) +"xGl" = ( +/obj/structure/barricade/wooden, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/ice_lab) -"xIg" = ( -/obj/structure/largecrate/supply/medicine/medivend, +/area/fiorina/station/power_ring) +"xGr" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/prison{ + dir = 8; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) +"xGt" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"xGD" = ( +/obj/structure/machinery/deployable/barrier, +/obj/structure/machinery/light/double/blue, +/turf/open/floor/prison, +/area/fiorina/station/security) +"xHi" = ( +/obj/item/trash/candle, /turf/open/floor/prison{ dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/telecomm/lz1_cargo) +"xHV" = ( +/turf/closed/wall/mineral/bone_resin, +/area/fiorina/tumor/civres) "xIh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/light/double/blue{ @@ -38927,73 +38867,121 @@ }, /turf/open/floor/wood, /area/fiorina/station/park) -"xIo" = ( +"xIq" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" + icon_state = "floor_plate" }, -/area/fiorina/station/park) +/area/fiorina/station/disco) "xIx" = ( /obj/structure/largecrate/random, /turf/open/floor/plating/prison, /area/fiorina/station/chapel) -"xJg" = ( -/obj/structure/platform{ - dir = 4; - layer = 2 - }, -/obj/structure/machinery/door/airlock/prison_hatch/autoname{ - dir = 1 - }, +"xJn" = ( +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkredfull2" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/disco) "xJw" = ( /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/civres_blue) -"xKf" = ( +"xJQ" = ( /obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - dir = 4; - icon_state = "blue" + dir = 9; + icon_state = "yellow" }, -/area/fiorina/station/civres_blue) +/area/fiorina/station/lowsec) "xKj" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) +"xKA" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"xKE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/taperecorder{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/lowsec) +"xKP" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/prison{ + icon_state = "darkpurplefull2" + }, +/area/fiorina/station/research_cells) "xKX" = ( /turf/open/floor/plating/prison, /area/fiorina/station/disco) -"xLa" = ( +"xLd" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, /turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" + icon_state = "redfull" }, -/area/fiorina/oob) +/area/fiorina/station/security) +"xLf" = ( +/obj/effect/decal/cleanable/blood/splatter{ + icon_state = "gibmid1" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) "xLi" = ( /turf/closed/wall/prison, -/area/fiorina/tumor/ice_lab) -"xLI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/radio{ - pixel_y = 8 +/area/fiorina/tumor/ice_lab) +"xLj" = ( +/obj/item/reagent_container/food/drinks/bottle/patron, +/turf/open/floor/prison, +/area/fiorina/station/civres_blue) +"xLn" = ( +/obj/structure/window/reinforced{ + dir = 1 }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) +"xLx" = ( +/obj/item/bedsheet, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/power_ring) -"xLP" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/area/fiorina/station/lowsec) +"xLD" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, /turf/open/floor/prison{ - icon_state = "whitegreen" + icon_state = "bluefull" }, -/area/fiorina/tumor/ice_lab) +/area/fiorina/station/power_ring) "xLQ" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, @@ -39003,41 +38991,17 @@ /obj/effect/spawner/random/toolbox, /turf/open/floor/plating/prison, /area/fiorina/station/medbay) -"xMg" = ( -/turf/open/floor/prison{ - dir = 9; - icon_state = "whitegreen" - }, -/area/fiorina/tumor/ice_lab) -"xMs" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/machinery/faxmachine, -/turf/open/floor/prison{ - icon_state = "bluefull" - }, -/area/fiorina/station/power_ring) -"xMN" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" - }, -/area/fiorina/station/botany) -"xMR" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "whitepurple" - }, -/area/fiorina/station/research_cells) -"xMT" = ( -/obj/structure/bed/chair{ - dir = 4 - }, +"xMp" = ( +/obj/item/trash/c_tube, /turf/open/floor/prison{ - icon_state = "bluecorner" + dir = 10; + icon_state = "whitegreenfull" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/medbay) +"xMO" = ( +/obj/item/stack/sandbags_empty/half, +/turf/open/floor/prison, +/area/fiorina/station/flight_deck) "xMW" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -39052,14 +39016,13 @@ }, /turf/open/space, /area/fiorina/oob) -"xNf" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/card/id/guest, -/obj/effect/landmark/objective_landmark/close, +"xMX" = ( +/obj/structure/inflatable/door, /turf/open/floor/prison{ - icon_state = "redfull" + dir = 8; + icon_state = "whitegreen" }, -/area/fiorina/station/security) +/area/fiorina/station/medbay) "xNg" = ( /obj/effect/decal/hefa_cult_decals/d32{ icon_state = "2" @@ -39072,22 +39035,63 @@ /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall/prison, /area/fiorina/station/security) -"xNQ" = ( +"xNn" = ( /obj/structure/stairs/perspective{ - dir = 8; icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform{ - dir = 4 + dir = 8 }, +/turf/open/floor/plating/prison, +/area/fiorina/station/transit_hub) +"xNw" = ( +/obj/item/fuelCell, /turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) +"xNG" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"xNJ" = ( +/obj/structure/barricade/handrail/type_b{ + dir = 1 + }, +/obj/item/frame/rack, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, /area/fiorina/station/disco) -"xOa" = ( -/obj/structure/bookcase/manuals/engineering, +"xNU" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "darkyellow2" + }, +/area/fiorina/station/flight_deck) +"xOm" = ( +/obj/structure/bed/chair{ + dir = 8 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) +/area/fiorina/station/power_ring) +"xOs" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "whitegreenfull" + }, +/area/fiorina/station/medbay) "xOE" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 @@ -39096,217 +39100,149 @@ icon_state = "plate" }, /area/fiorina/tumor/ship) -"xOI" = ( -/obj/structure/machinery/vending/coffee, +"xOU" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/flight_deck) -"xOQ" = ( -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + dir = 8; + icon_state = "darkyellow2" }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzII) -"xOV" = ( -/obj/structure/machinery/gibber, +/area/fiorina/station/telecomm/lz1_cargo) +"xPk" = ( /turf/open/floor/prison{ dir = 8; - icon_state = "blue_plate" + icon_state = "greencorner" }, -/area/fiorina/station/botany) +/area/fiorina/tumor/civres) "xPG" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/plating/prison, /area/fiorina/maintenance) -"xPO" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) -"xPX" = ( -/obj/structure/machinery/disposal, +"xQx" = ( /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/transit_hub) -"xQb" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/glass/beaker{ - pixel_x = -5; - pixel_y = 15 - }, -/obj/item/reagent_container/glass/beaker{ - pixel_x = 5; - pixel_y = 2 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/tumor/ice_lab) -"xQs" = ( -/obj/item/reagent_container/food/drinks/coffee{ - name = "\improper paper cup" +/area/fiorina/station/security/wardens) +"xQC" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" +/obj/structure/lattice, +/turf/open/space/basic, +/area/fiorina/oob) +"xRl" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/central_ring) -"xQC" = ( -/obj/structure/window/framed/prison/reinforced/hull, -/turf/open/floor/plating/prison, -/area/fiorina/station/central_ring) -"xQE" = ( -/obj/structure/closet/bodybag, -/obj/effect/decal/cleanable/blood/gibs/up, /turf/open/floor/prison, -/area/fiorina/station/lowsec) -"xRg" = ( -/obj/item/trash/popcorn, +/area/fiorina/station/telecomm/lz1_cargo) +"xRo" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"xRw" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ - dir = 8; + dir = 1; icon_state = "blue" }, /area/fiorina/station/power_ring) -"xRh" = ( +"xRI" = ( /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreen" + dir = 4; + icon_state = "yellow" }, -/area/fiorina/tumor/ice_lab) -"xSd" = ( -/turf/open/floor/prison{ - dir = 5; - icon_state = "blue" +/area/fiorina/station/lowsec) +"xRY" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/area/fiorina/station/civres_blue) -"xSg" = ( -/obj/structure/flora/pottedplant/random, +/obj/item/card/id/visa, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "whitepurple" }, -/area/fiorina/tumor/civres) -"xSB" = ( -/obj/effect/spawner/random/toolbox, -/obj/structure/surface/rack, -/obj/item/device/flashlight, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/area/fiorina/station/research_cells) +"xSz" = ( +/obj/structure/barricade/metal/wired{ + dir = 8 }, -/area/fiorina/station/transit_hub) -"xTa" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"xSM" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" }, /turf/open/floor/prison{ - dir = 4; - icon_state = "greenblue" + dir = 1; + icon_state = "whitegreen" }, -/area/fiorina/station/botany) -"xTe" = ( -/obj/structure/machinery/recharge_station, +/area/fiorina/station/central_ring) +"xTf" = ( +/obj/item/tool/kitchen/utensil/pspoon, /turf/open/floor/prison{ - dir = 9; + dir = 4; icon_state = "blue" }, /area/fiorina/station/power_ring) -"xTi" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/prop/souto_land/pole{ - dir = 1 - }, -/obj/structure/prop/souto_land/pole{ - dir = 8; - pixel_y = 24 +"xTD" = ( +/obj/structure/inflatable/popped/door, +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" }, /turf/open/floor/prison{ dir = 4; - icon_state = "darkbrown2" - }, -/area/fiorina/station/park) -"xTy" = ( -/obj/structure/barricade/deployable{ - dir = 4 + icon_state = "whitegreen" }, +/area/fiorina/station/medbay) +"xTW" = ( +/obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/security) +/area/fiorina/lz/near_lzII) "xUi" = ( /obj/structure/surface/rack, /obj/item/device/camera, /turf/open/floor/carpet, /area/fiorina/station/civres_blue) +"xUn" = ( +/obj/structure/machinery/door/poddoor/almayer{ + density = 0; + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/medbay) "xUo" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"xUq" = ( -/obj/item/stack/barbed_wire, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" - }, -/area/fiorina/station/medbay) -"xUt" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/civres_blue) -"xUz" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "bluecorner" - }, -/area/fiorina/station/power_ring) -"xVh" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/prison, -/area/fiorina/station/transit_hub) -"xVm" = ( -/obj/effect/landmark/objective_landmark/close, +"xUr" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/station/security) -"xVv" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +/area/fiorina/station/park) +"xVw" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/effect/landmark/objective_landmark/medium, /turf/open/floor/prison{ - dir = 6; + dir = 1; icon_state = "whitepurple" }, /area/fiorina/station/research_cells) -"xVD" = ( -/obj/structure/prop/resin_prop{ - icon_state = "rack" - }, +"xVJ" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical/green, /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "darkbrownfull2" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/maintenance) "xVK" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -39318,118 +39254,138 @@ name = "astroturf" }, /area/fiorina/station/park) -"xVP" = ( -/turf/open/floor/prison{ - dir = 1; - icon_state = "darkyellowcorners2" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"xVR" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/sink{ - pixel_y = 32 - }, -/obj/item/tool/kitchen/knife/butcher, +"xVW" = ( /turf/open/floor/prison{ - icon_state = "kitchen" + dir = 9; + icon_state = "darkbrown2" }, -/area/fiorina/station/power_ring) +/area/fiorina/station/park) "xWc" = ( /obj/item/clothing/shoes/dress, /turf/open/space, /area/fiorina/oob) -"xWp" = ( -/obj/effect/landmark/xeno_spawn, +"xWE" = ( +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = -11 + }, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "bluefull" }, -/area/fiorina/tumor/ice_lab) -"xWH" = ( -/obj/structure/machinery/computer/emails{ - dir = 1; - pixel_y = 4 +/area/fiorina/station/civres_blue) +"xWG" = ( +/obj/item/weapon/twohanded/spear, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" }, +/area/fiorina/station/research_cells) +"xWV" = ( /obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/phone{ + pixel_y = -4 + }, +/obj/item/phone{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/tool/pen, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"xXh" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" }, /area/fiorina/station/medbay) -"xWN" = ( -/obj/structure/bed/sofa/south/grey/left, +"xXl" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/station/central_ring) +"xXt" = ( +/obj/structure/machinery/vending/snack, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) +"xXY" = ( +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/prison{ icon_state = "floor_plate" }, +/area/fiorina/station/flight_deck) +"xYe" = ( +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/plating/prison, /area/fiorina/station/civres_blue) -"xXw" = ( -/obj/item/device/flashlight/lamp/tripod, -/turf/open/organic/grass{ - desc = "It'll get in your shoes no matter what you do."; - name = "astroturf" - }, -/area/fiorina/station/central_ring) "xYg" = ( /obj/docking_port/stationary/marine_dropship/lz2, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzII) -"xYA" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "blue_plate" +"xYo" = ( +/obj/structure/machinery/power/apc{ + dir = 8 }, -/area/fiorina/station/botany) -"xYB" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/reagent_container/food/condiment/saltshaker{ - pixel_x = -5; - pixel_y = -6 +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, -/obj/item/reagent_container/food/condiment/peppermill{ - pixel_x = -5; - pixel_y = -11 +/area/fiorina/tumor/aux_engi) +"xYJ" = ( +/obj/structure/bed{ + icon_state = "abed" }, -/obj/item/reagent_container/food/snacks/doughslice, /turf/open/floor/prison{ dir = 4; - icon_state = "darkyellowfull2" - }, -/area/fiorina/station/flight_deck) -"xYY" = ( -/obj/item/stool, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 + icon_state = "whitepurple" }, +/area/fiorina/station/research_cells) +"xYN" = ( +/obj/item/device/t_scanner, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" }, /area/fiorina/station/civres_blue) -"xZb" = ( -/obj/item/stack/rods, -/turf/open/floor/prison, -/area/fiorina/station/park) -"xZk" = ( -/obj/item/ammo_casing{ - dir = 8; - icon_state = "cartridge_2" +"xYR" = ( +/obj/item/paper_bin{ + pixel_x = 5; + pixel_y = 22 }, /turf/open/floor/prison{ dir = 8; - icon_state = "darkyellowcorners2" + icon_state = "blue" }, -/area/fiorina/station/telecomm/lz1_cargo) -"xZo" = ( -/obj/item/prop/helmetgarb/spacejam_tickets{ - desc = "A ticket to Souto Man's raffle!"; - name = "\improper Souto Raffle Ticket"; - pixel_x = 7; - pixel_y = 6 +/area/fiorina/station/civres_blue) +"xZx" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/stamp, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" }, +/area/fiorina/tumor/civres) +"xZA" = ( /turf/open/floor/prison{ - icon_state = "blue" + dir = 4; + icon_state = "darkyellow2" }, -/area/fiorina/station/chapel) +/area/fiorina/station/telecomm/lz1_tram) "xZD" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/cameras{ @@ -39439,35 +39395,77 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) +"xZI" = ( +/obj/structure/prop/structure_lattice{ + dir = 4 + }, +/obj/structure/prop/structure_lattice{ + dir = 4; + layer = 3.1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security/wardens) +"xZM" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + dir = 8; + icon_state = "green" + }, +/area/fiorina/tumor/civres) +"xZN" = ( +/obj/item/clothing/under/shorts/green, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/central_ring) "xZR" = ( /obj/structure/machinery/door/airlock/prison_hatch/autoname{ dir = 1 }, /turf/open/floor/plating/prison, /area/fiorina/tumor/ice_lab) -"yaz" = ( -/obj/structure/platform, -/obj/structure/closet/firecloset/full, -/obj/item/paper/prison_station/inmate_handbook, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"yaC" = ( -/obj/structure/machinery/vending/cigarette/free, +"xZU" = ( +/obj/structure/closet/crate/miningcar{ + name = "\improper materials storage bin" + }, /turf/open/floor/prison{ - icon_state = "darkbrownfull2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/tumor/aux_engi) -"yaJ" = ( -/obj/structure/machinery/vending/sovietsoda, -/turf/open/floor/plating/prison, -/area/fiorina/station/medbay) -"yaU" = ( -/obj/effect/landmark/monkey_spawn, +/area/fiorina/station/botany) +"xZV" = ( +/obj/item/trash/semki, /turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/fiorina/station/telecomm/lz1_cargo) +"yar" = ( +/obj/structure/machinery/vending/cola, +/obj/structure/prop/souto_land/streamer{ dir = 1; + pixel_y = 24 + }, +/turf/open/floor/prison{ + dir = 8; icon_state = "darkbrown2" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/station/park) +"yat" = ( +/obj/item/inflatable/door, +/obj/item/inflatable/door, +/obj/item/inflatable/door, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) +"yaJ" = ( +/obj/structure/machinery/vending/sovietsoda, +/turf/open/floor/plating/prison, +/area/fiorina/station/medbay) "yaY" = ( /obj/item/stack/sheet/metal, /turf/open/space, @@ -39492,58 +39490,37 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"ybs" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/station/central_ring) -"ybR" = ( -/obj/item/stack/sheet/metal{ - amount = 5 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"ybx" = ( +/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, -/area/fiorina/station/telecomm/lz1_cargo) +/turf/open/floor/prison, +/area/fiorina/station/botany) "ybU" = ( /obj/structure/prop/resin_prop{ icon_state = "sheater0" }, /turf/open/floor/plating/prison, /area/fiorina/station/park) -"ybY" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"ycd" = ( -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/fiorina/maintenance) -"ycg" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/vials/random, +"ycf" = ( +/obj/structure/closet/secure_closet/security_empty, /turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" + icon_state = "redfull" }, -/area/fiorina/station/medbay) -"ycj" = ( -/obj/structure/platform{ - dir = 1 +/area/fiorina/station/security) +"ycw" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = -3 }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) -"ycn" = ( /turf/open/floor/prison{ - dir = 1; - icon_state = "darkbrowncorners2" + dir = 9; + icon_state = "greenfull" }, -/area/fiorina/tumor/aux_engi) +/area/fiorina/tumor/civres) "ycC" = ( /turf/open/floor/plating/prison, /area/fiorina/station/chapel) @@ -39551,72 +39528,91 @@ /obj/item/storage/pouch/radio, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"ycN" = ( -/obj/item/tool/wrench, +"ycT" = ( +/obj/structure/machinery/space_heater, /turf/open/floor/prison{ - icon_state = "bluefull" + icon_state = "floor_plate" + }, +/area/fiorina/tumor/fiberbush) +"ydb" = ( +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = -3 }, -/area/fiorina/station/power_ring) -"ycX" = ( /turf/open/floor/prison, -/area/fiorina/station/telecomm/lz1_cargo) -"ydk" = ( -/obj/effect/decal/cleanable/blood/drip, +/area/fiorina/station/civres_blue) +"ydd" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ - icon_state = "floorscorched1" + icon_state = "darkbrown2" }, -/area/fiorina/station/chapel) -"ydX" = ( +/area/fiorina/station/park) +"ydK" = ( /turf/open/floor/prison{ - dir = 9; - icon_state = "darkyellow2" + dir = 4; + icon_state = "blue" + }, +/area/fiorina/station/power_ring) +"ydQ" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/area/fiorina/station/telecomm/lz1_tram) -"ydY" = ( -/obj/structure/surface/rack, /turf/open/floor/prison{ - dir = 6; - icon_state = "darkbrown2" + icon_state = "whitegreen" + }, +/area/fiorina/tumor/ice_lab) +"yet" = ( +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" }, /area/fiorina/maintenance) -"yft" = ( -/obj/item/clothing/under/color/orange, +"yeA" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/floor/prison, -/area/fiorina/station/security) -"yfB" = ( -/obj/effect/decal/medical_decals{ - icon_state = "docdecal1" +/area/fiorina/station/medbay) +"yeX" = ( +/obj/structure/bed/sofa/vert/grey/top, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) +"yfp" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut/alt, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, -/obj/item/stack/cable_coil/blue, /turf/open/floor/prison{ dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, -/area/fiorina/station/medbay) -"yfC" = ( -/obj/structure/machinery/landinglight/ds2/delaythree{ - dir = 8 +/area/fiorina/station/disco) +"yfA" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, /turf/open/floor/prison{ - icon_state = "floor_plate" + dir = 1; + icon_state = "darkyellow2" }, -/area/fiorina/lz/near_lzII) +/area/fiorina/station/telecomm/lz1_cargo) "yfE" = ( /obj/structure/disposalpipe/junction{ dir = 4 }, /turf/open/floor/plating/prison, /area/fiorina/station/power_ring) -"yfH" = ( -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = -3 - }, +"yfK" = ( /turf/open/floor/prison{ - icon_state = "sterile_white" + dir = 1; + icon_state = "cell_stripe" }, -/area/fiorina/station/civres_blue) +/area/fiorina/maintenance) "yge" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -39630,10 +39626,31 @@ name = "astroturf" }, /area/fiorina/station/park) -"ygv" = ( -/obj/structure/machinery/light/double/blue, -/turf/open/floor/prison, -/area/fiorina/station/medbay) +"ygk" = ( +/obj/item/ammo_magazine/rifle/m16{ + current_rounds = 0 + }, +/turf/open/floor/prison{ + icon_state = "yellowcorner" + }, +/area/fiorina/station/lowsec) +"ygr" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"ygs" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/plating/prison, +/area/fiorina/tumor/ice_lab) "ygw" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer{ @@ -39648,61 +39665,44 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) -"ygH" = ( -/obj/item/ammo_casing{ - icon_state = "casing_1" - }, +"yhs" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/regular, +/obj/item/storage/pill_bottle/dexalin/skillless, /turf/open/floor/prison{ - dir = 10; - icon_state = "sterile_white" + icon_state = "floor_plate" }, /area/fiorina/station/medbay) -"ygS" = ( -/obj/structure/largecrate/random/secure, -/obj/structure/machinery/light/double/blue{ - pixel_y = -1 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "yellow" - }, -/area/fiorina/station/disco) "yhu" = ( /obj/structure/window/framed/prison, /turf/open/floor/plating/prison, /area/fiorina/tumor/aux_engi) -"yhE" = ( -/obj/structure/machinery/vending/hydroseeds, +"yhJ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/item/prop/helmetgarb/spacejam_tickets{ + desc = "Low security prisoners would smuggle in arcade tickets after visitations. The tickets act as a stand in for paper currency in the prison economy, they're backed by the cigarette standard, since one ticket nets one cigarette at the prize booth. The cigarettes also get smuggled back in."; + name = "\improper arcade tickets"; + pixel_x = 1; + pixel_y = -1 + }, /turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" + dir = 6; + icon_state = "whitepurple" }, -/area/fiorina/station/botany) +/area/fiorina/station/research_cells) "yhR" = ( /obj/structure/sign/prop3{ desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, /turf/closed/wall/r_wall/prison_unmeltable, /area/fiorina/station/medbay) -"yhT" = ( -/obj/structure/largecrate/supply/ammo, -/obj/item/storage/fancy/crayons, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/fiorina/station/telecomm/lz1_cargo) -"yil" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/iv_drip{ - pixel_y = 19 - }, -/obj/item/bedsheet/green, -/turf/open/floor/prison{ - dir = 4; - icon_state = "whitegreen" - }, -/area/fiorina/station/medbay) +"yif" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "yio" = ( /turf/closed/shuttle/ert, /area/fiorina/tumor/aux_engi) @@ -39712,45 +39712,37 @@ }, /turf/open/floor/plating/prison, /area/fiorina/tumor/civres) -"yiD" = ( -/obj/structure/machinery/vending/cigarette/colony, +"yiL" = ( +/obj/item/trash/cigbutt/bcigbutt, /turf/open/floor/prison{ icon_state = "darkredfull2" }, -/area/fiorina/lz/near_lzI) -"yiG" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, +/area/fiorina/station/security) +"yiR" = ( /turf/open/floor/prison{ - icon_state = "floor_plate" + icon_state = "panelscorched" }, -/area/fiorina/station/disco) -"yjs" = ( -/obj/item/reagent_container/food/snacks/eat_bar, -/turf/open/floor/prison{ - dir = 10; - icon_state = "whitegreenfull" +/area/fiorina/station/civres_blue) +"yiT" = ( +/obj/structure/barricade/sandbags{ + icon_state = "sandbag_0"; + pixel_y = -14 }, -/area/fiorina/station/medbay) -"yjO" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, /turf/open/floor/prison{ + dir = 10; icon_state = "floor_plate" }, -/area/fiorina/tumor/civres) -"yke" = ( -/obj/effect/spawner/random/tool, -/turf/open/floor/prison{ - icon_state = "darkpurplefull2" - }, -/area/fiorina/station/research_cells) -"ykI" = ( -/obj/structure/largecrate/random/barrel/green, +/area/fiorina/lz/near_lzI) +"yjW" = ( +/obj/effect/landmark/corpsespawner/ua_riot, /turf/open/floor/prison{ icon_state = "floor_plate" }, -/area/fiorina/station/medbay) +/area/fiorina/station/security) +"ykw" = ( +/obj/structure/inflatable/popped, +/turf/open/floor/prison, +/area/fiorina/station/transit_hub) "ykO" = ( /obj/structure/ice/thin/indestructible{ icon_state = "Corner" @@ -39758,34 +39750,42 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"ykT" = ( -/turf/open/floor/prison{ - dir = 8; - icon_state = "darkpurple2" - }, -/area/fiorina/tumor/servers) "ykX" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_1" }, /turf/open/floor/plating/prison, /area/fiorina/station/telecomm/lz2_maint) -"ylf" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/floor/prison{ - icon_state = "floor_plate" +"yli" = ( +/obj/structure/sign/prop3{ + desc = "Enlist in the Penal Battalions today! The USCM 3rd Fleet features a subset of UA sanctioned penal battalions, drawing from inmate popualtions across the colonies. Mostly New Argentina though." }, -/area/fiorina/tumor/fiberbush) -"yls" = ( -/obj/structure/monorail{ - name = "launch track" +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/central_ring) +"ylr" = ( +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 }, -/turf/open/floor/plating/prison, -/area/fiorina/lz/near_lzI) +/turf/open/floor/prison{ + dir = 4; + icon_state = "whitepurple" + }, +/area/fiorina/station/research_cells) "ylu" = ( /obj/item/tool/wrench, /turf/open/floor/plating/prison, /area/fiorina/lz/near_lzI) +"ylW" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryomid" + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "sterile_white" + }, +/area/fiorina/station/medbay) (1,1,1) = {" bQM @@ -41587,12 +41587,12 @@ xHV xHV xHV xHV -ejk -hDx -hDx -hDx -hDx -hDx +lIt +swj +swj +swj +swj +swj sUl qPb qPb @@ -41793,18 +41793,18 @@ xHV xHV dXG dIo -hDx +swj dXG -diP -qmd -xFx -diP -kDO -diP -qty -diP -qty -oOK +gPo +vgw +eWr +gPo +oeT +gPo +eYz +gPo +eYz +iad sUl kVg kbT @@ -42005,18 +42005,18 @@ xHV dXG dXG dIo -hDx +swj dXG -bjx +cFT dXG -oVC -lhQ -kDO -lhQ -qty -lhQ -gcr -lhQ +vXy +uPX +oeT +uPX +eYz +uPX +qny +uPX aEi pRH qPb @@ -42217,18 +42217,18 @@ dIo dIo dXG dIo -wJa +cKb dXG -lhQ +uPX dXG -vAZ -hDx -ejk -hDx -hDx -hDx -hDx -rUL +eRl +swj +lIt +swj +swj +swj +swj +qMs sUl kbT rNc @@ -42429,16 +42429,16 @@ dXG dIo dXG dIo -hDx -hDx +swj +swj qXM -qty -hDx +eYz +swj naW sLx xHV clu -hDx +swj xHV xHV dHd @@ -42448,9 +42448,9 @@ kow tfP tfP tfP -dwk -lso -lso +rXt +wnD +wnD gmT jyM jjM @@ -42460,7 +42460,7 @@ kbT kbT kbT qPb -jTe +uyN tfP xwC xwC @@ -42636,22 +42636,22 @@ xHV xHV xHV xHV -rsz -rsz +nsD +nsD dIo dIo dIo -mtm -hDx +jsp +swj dXG -qty -hDx +eYz +swj naW xHV -omF -lKd -lKd -lKd +xCr +jQy +jQy +jQy xHV naW bQM @@ -42660,9 +42660,9 @@ bQM bQM tfP tfP -pri -lso -lso +ycT +wnD +wnD enH gmT enH @@ -42853,17 +42853,17 @@ dXG clu dXG dXG -hDx -hDx +swj +swj dXG -qty +eYz xHV naW xHV naW -uZD -lKd -wHX +sfn +jQy +bMz naW xHV xHV @@ -42873,8 +42873,8 @@ kPz kPz tfP tfP -tHh -olm +eyi +uPi qPb qPb qPb @@ -42896,11 +42896,11 @@ xwC jhG nTq gUj -xrT +tbd uXD -fSY +mYG uXD -xrT +tbd jhG kIo msn @@ -43066,18 +43066,18 @@ clu dXG dXG uVZ -hDx +swj dXG -qty +eYz xHV xHV -siR -omF -lKd +mlU +xCr +jQy lLe -lKd -lKd -pCN +jQy +jQy +dyY xHV bQM bQM @@ -43107,18 +43107,18 @@ xwC xwC xwC xwC -eOo -xrT +gBx +tbd kNN -fSY +mYG uXD -xrT -eOo +tbd +gBx cTr kbT kbT kbT -eOo +gBx xwC xwC xwC @@ -43269,7 +43269,7 @@ xHV xHV xHV xHV -hDx +swj dXG dXG dXG @@ -43278,16 +43278,16 @@ dIo dIo dIo dXG -hDx +swj lLe -qty +eYz xHV xHV naW naW -lKd +jQy lLe -lKd +jQy naW xHV xHV @@ -43318,12 +43318,12 @@ xwC qPb dnK qPb -lso -lso +wnD +wnD hLM -gdn +uQk tfP -gdn +uQk hLM pBq kbT @@ -43482,25 +43482,25 @@ xHV xHV xHV xHV -qty +eYz clu clu dIo xHV xHV -diP -qty -diP -qty +gPo +eYz +gPo +eYz dXG -hDx +swj dXG -pVw -pVw -lKd -lKd -lKd -pRn +bFL +bFL +jQy +jQy +jQy +ihn xHV xHV xHV @@ -43526,19 +43526,19 @@ qPb kbT kbT qPb -tQn -lso -lso -lso +ieJ +wnD +wnD +wnD qPb qPb kbT kbT kbT -lso -lso +wnD +wnD kbT -lso +wnD kbT kbT kbT @@ -43692,25 +43692,25 @@ xHV xHV xHV dIo -hDx -hDx +swj +swj dXG clu dXG dIo xHV -qty -lhQ -qty -lhQ -qty -qty -hDx +eYz +uPX +eYz +uPX +eYz +eYz +swj dXG -lKd -lKd -lKd -lKd +jQy +jQy +jQy +jQy xHV xHV xHV @@ -43735,13 +43735,13 @@ xwC gwH gwH qPb -lso +wnD kbT kbT -tQn -lso -lso -lso +ieJ +wnD +wnD +wnD qPb qPb qPb @@ -43904,20 +43904,20 @@ xHV xHV xHV dIo -qty -qty -qty +eYz +eYz +eYz dIo dXG -rsz -hDx +nsD +swj whu whu whu -hDx -qty -qty -xSg +swj +eYz +eYz +qss naW naW naW @@ -44116,26 +44116,26 @@ xHV xHV xHV dIo -wJa -hDx -hDx +cKb +swj +swj pwL oKq -hDx -diP -qty -diP -qty -diP -qty -qty -hDx +swj +gPo +eYz +gPo +eYz +gPo +eYz +eYz +swj naW xHV xHV -lKd -coh -nvz +jQy +ifc +oyo xHV xHV bQM @@ -44165,19 +44165,19 @@ kbT ogM kbT kbT -lso +wnD qPb qPb -lso +wnD kbT kbT -lso -lso +wnD +wnD kbT wbp qPb qPb -eOo +gBx kbT kbT kbT @@ -44324,30 +44324,30 @@ xHV xHV dXG xHV -qty +eYz xHV xHV dIo -qty -qty -qty +eYz +eYz +eYz dXG dXG -hDx -lhQ -qty -lhQ -qty -lhQ +swj +uPX +eYz +uPX +eYz +uPX dXG -qty -hDx +eYz +swj xHV xHV xHV -pRn -lKd -lKd +ihn +jQy +jQy naW naW xHV @@ -44371,20 +44371,20 @@ bQM xwC xwC xwC -gzz +wDJ qPb kbT ogM kbT kbT -lso +wnD qPb qPb -lso -eOo +wnD +gBx xwC xwC -lso +wnD xwC qPb qPb @@ -44409,9 +44409,9 @@ lHx lHx jlk jlk -sAv -sJT -sAv +tDC +hvL +tDC jlk baC baC @@ -44535,33 +44535,33 @@ xHV xHV xHV lLe -hDx -qty +swj +eYz xHV xHV dIo -hDx -hDx -hDx +swj +swj +swj dXG dXG dXG -hDx +swj xHV dIo xHV -hDx +swj dXG -qty +eYz xHV naW naW naW -ecF +uXY jSD -lKd -fDo -pCN +jQy +rjy +dyY xHV xHV kPz @@ -44586,8 +44586,8 @@ xwC xwC uXn qPb -tQn -lso +ieJ +wnD kbT kbT qPb @@ -44599,7 +44599,7 @@ xwC xwC xwC xwt -jOt +wVc qPb wfV qPb @@ -44616,14 +44616,14 @@ jlk jlk vZV vZV -syF -kZQ -nyy +mkI +lCl +uTR jlk jlk -qDG -sJT -qDG +hAI +hvL +hAI jlk jlk rZP @@ -44745,16 +44745,16 @@ tYw tYw tYw dIo -qty -qty -qty +eYz +eYz +eYz dXG -qty -qty -hDx -qty -qty -qty +eYz +eYz +swj +eYz +eYz +eYz dXG dXG xHV @@ -44762,16 +44762,16 @@ xHV xHV xHV xHV -hDx -qty -qty +swj +eYz +eYz xHV naW -mAG -omF -lKd +lWn +xCr +jQy jSD -gkd +sdE naW xHV xHV @@ -44782,12 +44782,12 @@ bQM tfP tfP tfP -eOo +gBx qPb qPb qPb qPb -eOo +gBx gwH gwH xwC @@ -44800,8 +44800,8 @@ gwH gwH xwC qPb -lso -lso +wnD +wnD kbT qPb xwC @@ -44811,33 +44811,33 @@ tfP tfP tfP xwt -mtr +lrI qPb -eOo +gBx kbT kbT -lso -lso -lso -lso -jTe +wnD +wnD +wnD +wnD +uyN xwC -fVA -gUf -gHb +cJY +qxP +uDX jlk vZV jmp -aKW +svP cyb -qDG +hAI jlk -uZr -aKW -sJT -aKW -qDG -sAv +lLS +svP +hvL +svP +hAI +tDC lHx bQM bQM @@ -44957,16 +44957,16 @@ tYw xHV xHV dIo -wJa +cKb lLe dXG -qty +eYz lLe dXG dXG -hDx -hDx -hDx +swj +swj +swj xHV xHV xHV @@ -44974,17 +44974,17 @@ xHV xHV xHV xHV -hDx +swj dXG -qty +eYz xHV naW naW naW -uZD -lKd -lKd -wAl +sfn +jQy +jQy +lFV xHV kPz kPz @@ -45025,31 +45025,31 @@ tfP xwt xwC qPb -lso -lso +wnD +wnD qPb qPb -lso +wnD kbT kbT kbT -tQn -sVP -gCX -bZF +ieJ +uzG +nMm +sia rGq -hjP -euT +taj +lzq rGq fAt -hjP +taj knh -sJT -sJT -sJT -wgH -sJT -sJT +hvL +hvL +hvL +uzi +hvL +hvL lHx bQM bQM @@ -45169,10 +45169,10 @@ tYw xHV xHV dIo -mLB -hDx +rAU +swj dXG -qty +eYz dXG dXG dXG @@ -45188,14 +45188,14 @@ xHV doD doD doD -qty +eYz xHV naW -mAG -omF -lKd -lKd -lKd +lWn +xCr +jQy +jQy +jQy xHV naW bQM @@ -45236,32 +45236,32 @@ gwH tfP dwQ dwQ -lso +wnD dwQ dwQ -lso +wnD dwQ dwQ kbT dwQ dwQ ogM -sVP +uzG lyf -aKW +svP rOI -hjP -hjP -hjP -hjP -hjP +taj +taj +taj +taj +taj knh -aKW -aKW -sJT -aKW -qDG -pxu +svP +svP +hvL +svP +hAI +myK lHx bQM bQM @@ -45382,32 +45382,32 @@ xHV xHV dIo dIo -mLB -hDx -qty -hDx -hDx +rAU +swj +eYz +swj +swj dXG -xvR -qty -qty +oev +eYz +eYz dIo -rsz +nsD qgB qoG dIo dXG dXG dXG -qty +eYz ame -hDx +swj naW naW xHV -hDx +swj dXG -hDx +swj xHV dHd kow @@ -45418,15 +45418,15 @@ gwH tfP gwH gwH -eOo +gBx qPb rNc qPb qPb -eOo +gBx qPb qPb -eOo +gBx gwH tfP kow @@ -45446,34 +45446,34 @@ ycK qPb qPb qPb -lso -lso +wnD +wnD qPb -lso -lso -lso +wnD +wnD +wnD uXn -lso -lso -lso -lso +wnD +wnD +wnD +wnD ogM -sVP -gCX +uzG +nMm uNM -hjP +taj rGq -mbc -aFn +lSb +vbV jlk -hjP +taj knh rGq -aKW -sJT -aKW -hjP -oVn +svP +hvL +svP +taj +nvK rZP bQM baC @@ -45599,37 +45599,37 @@ dIo dIo xHV xHV -hDx +swj dXG -hDx -hDx +swj +swj dIo dIo xHV avY dIo dXG -rsz +nsD dXG -diP -xFx -hDx -sRg -hDx -hDx -hDx -hDx -hDx -hDx +gPo +eWr +swj +ftb +swj +swj +swj +swj +swj +swj sUl qPb dnK dnK qPb gwH -eOo +gBx gwH -eOo +gBx xzs qPb qPb @@ -45658,10 +45658,10 @@ qPb fpB kbT kbT -lso -kIF -lso -lso +wnD +lZo +wnD +wnD xwC xwC xwC @@ -45670,8 +45670,8 @@ ogM ogM ogM xwC -sVP -gCX +uzG +nMm uNM yhu yhu @@ -45681,10 +45681,10 @@ uNM jlk jlk rZP -xVD -sJT -aKW -hjP +ble +hvL +svP +taj dpH jlk baC @@ -45812,10 +45812,10 @@ xHV xHV xHV dIo -qty -qty -qty -rsz +eYz +eYz +eYz +nsD xHV xHV xHV @@ -45823,16 +45823,16 @@ xHV dXG dXG dXG -bjx -tQq -xFx -diP -qty -diP -qty -diP -qty -diP +cFT +xPk +eWr +gPo +eYz +gPo +eYz +gPo +eYz +gPo sUl qPb qPb @@ -45844,7 +45844,7 @@ qPb qPb qPb qPb -xii +tsH kbT qPb qPb @@ -45878,26 +45878,26 @@ xwC xwC xwC xwC -lso -lso -lso +wnD +wnD +wnD ogM -sVP -piL -peY -peY -peY -peY -peY -peY +uzG +dMt +wsz +wsz +wsz +wsz +wsz +wsz jlk jlk rZP -xVD -sJT -aKW -hjP -hlq +ble +hvL +svP +taj +hNU jlk baC baC @@ -46024,9 +46024,9 @@ xHV xHV xHV dIo -hDx -hDx -hDx +swj +swj +swj dXG xHV xHV @@ -46035,16 +46035,16 @@ xHV xHV xHV xHV -lhQ -fpp -oVC -lhQ -qty -lhQ -qty -lhQ -qty -lhQ +uPX +ntc +vXy +uPX +eYz +uPX +eYz +uPX +eYz +uPX sUl qPb qPb @@ -46094,21 +46094,21 @@ kbT kbT kbT ogM -jVH -bEn +oHm +mLY qbd -bEn -bEn -bEn -bEn -bEn -ycn -gCX +mLY +mLY +mLY +mLY +mLY +bZD +nMm rZP -xVD -sJT -aKW -hjP +ble +hvL +svP +taj dxE jlk baC @@ -46219,9 +46219,9 @@ xHV xHV xHV dXG -pty -hDx -pty +xGi +swj +xGi xHV xHV xHV @@ -46238,7 +46238,7 @@ xHV dIo dXG qXM -hDx +swj xHV gCE xHV @@ -46247,16 +46247,16 @@ xHV xHV xHV xHV -bby +sIC dXG qXM -hDx -qty -qty -qty -hDx -hDx -hDx +swj +eYz +eYz +eYz +swj +swj +swj sUl qPb cwB @@ -46299,27 +46299,27 @@ xwC xwC xwC xwC -jTe +uyN qPb qPb kbT kbT qPb jCA -aKW +svP fpn fpn -aKW +svP fpn fpn -aKW +svP lyf -sVP -stX +uzG +ddY rZP jlk -sJT -aKW +hvL +svP bfF rGq rZP @@ -46430,10 +46430,10 @@ xHV xHV xHV xHV -rsz -fBP -hDx -fBP +nsD +rqC +swj +rqC xHV xHV xHV @@ -46450,25 +46450,25 @@ xHV dIo dXG dXG -hDx +swj xHV xHV xHV xHV xHV dXG -hDx -hDx -bby +swj +swj +sIC dXG dXG -hDx -qty +swj +eYz xHV xHV xHV xHV -hDx +swj dHd kow kow @@ -46476,8 +46476,8 @@ kow tfP tfP tfP -ylf -ylf +sig +sig qPb qPb qPb @@ -46486,7 +46486,7 @@ qPb qPb xzs gwH -eOo +gBx tfP tfP kow @@ -46512,7 +46512,7 @@ xwC qPb qPb qPb -lso +wnD qPb kbT kbT @@ -46525,13 +46525,13 @@ jlk jlk jlk jlk -aKW -sVP -gCX +svP +uzG +nMm rZP jlk jlk -aKW +svP bfF rGq rZP @@ -46638,14 +46638,14 @@ xHV xHV xHV xHV -qty -qty -qty -qty -hDx -pty -hDx -fBP +eYz +eYz +eYz +eYz +swj +xGi +swj +rqC xHV xHV xHV @@ -46659,10 +46659,10 @@ dIo dIo dIo dIo -hDx +swj dXG -qty -hDx +eYz +swj xHV xHV xHV @@ -46674,9 +46674,9 @@ dXG dXG dXG dXG -hDx -qty -lsf +swj +eYz +stC xHV xHV xHV @@ -46689,13 +46689,13 @@ bQM tfP tfP kPY -cnU +jkw rNc qPb qPb qPb qPb -eOo +gBx gwH gwH gwH @@ -46722,11 +46722,11 @@ gwH xwC qPb qPb -lso +wnD kbT kbT kbT -lso +wnD kbT gwH gwH @@ -46737,13 +46737,13 @@ rZP rZP jlk jlk -bMd -hIo -iDE +mJc +jFz +aik rZP jlk jlk -aKW +svP bfF rGq lHx @@ -46849,46 +46849,46 @@ jXz xHV xHV xHV -qty -hDx -hDx -hDx -qty +eYz +swj +swj +swj +eYz dXG -fBP +rqC dXG -fBP -rsz -hDx -hDx +rqC +nsD +swj +swj nIc cmP dIo xHV xHV xHV -hDx -hDx -hDx -hDx -hDx +swj +swj +swj +swj +swj dXG dXG -hDx +swj xHV xHV xHV xHV dXG dXG -hDx -bby -bby -hDx +swj +sIC +sIC +swj dXG -hDx -qty -qty +swj +eYz +eYz xHV xHV xHV @@ -46901,7 +46901,7 @@ bQM bQM tfP kPY -ylf +sig xzs qPb qPb @@ -46933,12 +46933,12 @@ qPb gwH gwH qPb -lso +wnD kbT kbT kbT kbT -lmV +qJr qPb gwH gwH @@ -46949,9 +46949,9 @@ xKj jlk jlk jlk -aKW -sVP -gCX +svP +uzG +nMm rZP jlk jlk @@ -47052,56 +47052,56 @@ agi aWV agi jXz -ezr -gks +tbG +ach jXz -vjH -ezr +peA +tbG jXz -kPe +cPs xHV xHV -nIn -hDx -hDx -hDx -qty +pXt +swj +swj +swj +eYz dXG -fBP +rqC dXG dXG dXG dXG vwt -xCo +bxE yis dIo -hDx -hDx -hDx -qty -qty +swj +swj +swj +eYz +eYz dXG -qty -qty -qty -qty +eYz +eYz +eYz +eYz dXG xHV xHV xHV -rsz +nsD dXG dXG dXG xHV -rsz +nsD xHV -rsz -hDx -qty -qty -qty +nsD +swj +eYz +eYz +eYz xHV xHV xHV @@ -47114,12 +47114,12 @@ xHV tfP tfP kPY -bxW -gFe -gFe -gFe -gFe -bxW +mnr +hSG +hSG +hSG +hSG +mnr uNM uNM rZP @@ -47143,8 +47143,8 @@ kPY kbT kbT kbT -lso -lso +wnD +wnD kbT kbT kbT @@ -47159,11 +47159,11 @@ xKj jlk xKj rGq -jhi +kXs rGq -aKW -sVP -stX +svP +uzG +ddY rZP jlk jlk @@ -47264,33 +47264,33 @@ agi agi agi jXz -eOH -gks +oiF +ach jXz -hng -jnr +dyh +gve jXz -kPe +cPs xHV xHV -qty -hDx -hDx -hDx -qty +eYz +swj +swj +swj +eYz dXG lLe dXG dXG dXG dXG -hDx +swj lbt dXG -rsz +nsD dXG dXG -qty +eYz dXG qXM dXG @@ -47299,10 +47299,10 @@ dXG dXG dXG lLe -qty -hDx +eYz +swj xHV -hDx +swj dXG lLe dXG @@ -47310,11 +47310,11 @@ clu dXG clu dXG -hDx -xvR -qty -qty -hCT +swj +oev +eYz +eYz +rki xHV xHV pqC @@ -47327,36 +47327,36 @@ dIo uNM uNM uNM -sJT -sJT -sJT -sJT +hvL +hvL +hvL +hvL uNM uNM uNM uNM -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -rth -hjP -mrn -qzy -qzy -qzy -qzy -mrn +taj +taj +taj +taj +taj +taj +taj +taj +pLj +taj +iQJ +tZk +tZk +tZk +tZk +iQJ uNM -lmV +qJr kbT -lmV +qJr kbT -lso +wnD kbT kbT qPb @@ -47373,12 +47373,12 @@ xKj rGq rGq bDU -aKW -yaU -gCX +svP +mYy +nMm rZP jlk -jhi +kXs rGq osX rGq @@ -47477,24 +47477,24 @@ agi agi jXz jXz -gKu +jPY jXz -gKu +jPY jXz jXz -fGb +jHz xHV xHV -qty -qty -qty -qty +eYz +eYz +eYz +eYz dXG -hDx -fBP -hDx -fBP -rsz +swj +rqC +swj +rqC +nsD dXG dXG lbt @@ -47504,30 +47504,30 @@ dXG dXG dXG dXG -mLB -hDx -qty -hDx +rAU +swj +eYz +swj dXG eHD dXG dXG dXG -qty -bby +eYz +sIC qXM dXG dXG xHV dXG xHV -rsz -hDx -qty -qty -qty -hDx -hCT +nsD +swj +eYz +eYz +eYz +swj +rki xHV naW naW @@ -47539,15 +47539,15 @@ xHV jlk uNM uNM -sVP +uzG rGq rOI -piL -peY -peY -ppO -peY -gUf +dMt +wsz +wsz +iRn +wsz +qxP rGq rGq rGq @@ -47557,12 +47557,12 @@ rZP xKj xKj xKj -aKW -aKW -aKW -aKW -aKW -aKW +svP +svP +svP +svP +svP +svP jlk tfP kbT @@ -47585,9 +47585,9 @@ xKj rGq rGq rGq -aKW -sVP -gCX +svP +uzG +nMm jlk jlk rGq @@ -47681,31 +47681,31 @@ agi aWV agi agi -lwK +lvD agi agi agi agi mjx -eda -eQR -efz -eQR -efz -eQR -eda -eQR -efz +dDT +pjg +gir +pjg +gir +pjg +dDT +pjg +gir dXG -hDx -hDx -hDx +swj +swj +swj dXG xHV -hDx -fBP -hDx -fBP +swj +rqC +swj +rqC dXG wKE dXG @@ -47714,33 +47714,33 @@ dXG dXG dXG dXG -hDx -mLB +swj +rAU dIo -fBP -fBP +rqC +rqC dIo dIo dIo obI -wlz +dxP dXG -qty +eYz dXG dXG -bby -hDx -rsz +sIC +swj +nsD dXG dXG dXG -hDx -qty -qty -qty -hDx -hDx -hDx +swj +eYz +eYz +eYz +swj +swj +swj xHV xHV xHV @@ -47751,30 +47751,30 @@ xHV jlk uNM uNM -sVP +uzG fpn fpn -hjP +taj fpn -hjP +taj fpn fpn -gCX -gHb +nMm +uDX rGq rGq -aKW -aKW -aKW -jEf +svP +svP +svP +jWg jlk -jEf -aKW -aKW -aKW -aKW -gHb -aKW +jWg +svP +svP +svP +svP +uDX +svP jlk jlk jlk @@ -47797,9 +47797,9 @@ xKj rGq rGq gJu -joy -fBg -gCX +heA +tmI +nMm rGq knh rGq @@ -47893,21 +47893,21 @@ agi agi agi agi -cBU -wNw -ykT -uhd +rbv +aeb +otg +dLL hoZ mjx -efz -fLq -efz -fLq -efz -fLq -efz -fLq -efz +gir +mDn +gir +mDn +gir +mDn +gir +mDn +gir dXG dXG dXG @@ -47915,9 +47915,9 @@ dXG xHV xHV xHV -fBP -hDx -fBP +rqC +swj +rqC dXG dXG dXG @@ -47927,34 +47927,34 @@ lLe dXG dXG dXG -qty -fBP -fBP -aae +eYz +rqC +rqC +iYJ dIo -aat -fBP +kKt +rqC dCu -qty +eYz dXG dXG dXG dXG -bby +sIC dIo dIo -rsz +nsD dIo dIo -hDx -qty -qty -qty -diP -qty -diP -nsg -xFx +swj +eYz +eYz +eYz +gPo +eYz +gPo +byJ +eWr xHV dIo naW @@ -47963,32 +47963,32 @@ xHV jlk uNM uNM -jVH -bEn -gPO -bEn -bEn -bEn -bEn -ycn -gCX -aKW -aKW -aKW -aKW -aKW -aKW -jEf -jEf -jDj -awF -xHY -awF -sJT -aKW -aKW -aKW -aKW +oHm +mLY +arG +mLY +mLY +mLY +mLY +bZD +nMm +svP +svP +svP +svP +svP +svP +jWg +jWg +dZj +tcB +xtm +tcB +hvL +svP +svP +svP +svP jlk rGq rGq @@ -48009,15 +48009,15 @@ rGq rGq rGq jFl -aKW -xgr -gCX +svP +fAr +nMm rGq knh -hjP +taj pWO tuk -olB +wky jlk baC baC @@ -48105,74 +48105,74 @@ agi agi agi hoZ -dpE -uTX -dPC -nBV -lwK -fGb -ege +igc +jnU +nUS +oiV +lvD +jHz +gNJ mjx mjx -ege +gNJ mjx mjx -ege +gNJ mjx mjx -mLB -hDx -hDx -hDx +rAU +swj +swj +swj xHV xHV xHV -jDX -hDx -fBP -rsz -hDx -hDx -xCo +hgh +swj +rqC +nsD +swj +swj +bxE dXG dXG dXG dXG -qty +eYz lLe -fBP -vIF -pyW +rqC +nKo +jri dIo -tML -iQu +fCF +wfo dIo -hDx -qty +swj +eYz dXG -hDx -hDx +swj +swj xHV dIo -iHn -fqZ -hoY +vzT +rPd +vlN dIo -qWB -qty -qty -qty -lhQ -qty -lhQ -tzj -lvs -hDx +iNk +eYz +eYz +eYz +uPX +eYz +uPX +sze +lgH +swj dIo naW xHV xHV -geU +iaE amF amF amF @@ -48181,26 +48181,26 @@ amF amF amF amF -geU -sVP -gCX -gHb -aKW -gHb -aKW -aKW -gHb -jEf +iaE +uzG +nMm +uDX +svP +uDX +svP +svP +uDX +jWg jlk -jDj -qnq -peY -qQf -sJT -gHb -aKW -gHb -aKW +dZj +wjC +wsz +tzW +hvL +uDX +svP +uDX +svP rGq rGq rGq @@ -48216,15 +48216,15 @@ rZP jlk jlk rGq -kgP +nYE rGq rGq rGq gJu -joy -fBg -gCX -aKW +heA +tmI +nMm +svP knh rGq hlT @@ -48317,40 +48317,40 @@ agi agi agi hoZ -cBU -vco -wVK -uFX -lwK +rbv +jCe +hrw +ddN +lvD mjx -efz -eQR -efz -eQR -efz -eQR -efz -eQR -efz +gir +pjg +gir +pjg +gir +pjg +gir +pjg +gir doD doD doD xHV xHV -fBP -fBP -fBP -hDx -fBP -hDx +rqC +rqC +rqC +swj +rqC +swj xHV xHV nIc dXG -rsz +nsD dXG dXG -qty +eYz nib dIo dIo @@ -48359,32 +48359,32 @@ dIo dIo dIo dIo -cua -qty +bbU +eYz dXG -hDx +swj xHV xHV dIo -xfA -fBP -uIu +ojW +rqC +eGO dIo dIo dIo dIo dIo dIo -hDx -hDx -lhQ -oVC -nsg -nsg -nsg -xFx -xHV -geU +swj +swj +uPX +vXy +byJ +byJ +byJ +eWr +xHV +iaE amF fjX jXZ @@ -48393,28 +48393,28 @@ jXZ jXZ lZf amF -geU -sVP -gCX -sJT -sJT -sJT -sJT -sJT -sJT -jDj -jDj -jDj -fBg -ePx -lYc -sJT -sJT -sJT -aKW -aKW +iaE +uzG +nMm +hvL +hvL +hvL +hvL +hvL +hvL +dZj +dZj +dZj +tmI +pnx +mSZ +hvL +hvL +hvL +svP +svP rGq -hjP +taj rGq rGq knh @@ -48422,21 +48422,21 @@ bfF rGq rGq rGq -aKW +svP jlk rZP daK rGq rGq -aKW +svP rGq rGq rGq wcP -aKW -sVP -gCX -aKW +svP +uzG +nMm +svP jlk jlk rZP @@ -48529,30 +48529,30 @@ agi agi agi hoZ -lwK -lwK -lwK -dCl -lwK +lvD +lvD +lvD +dSM +lvD mjx -egY -fLq -efz -fLq -efz -fLq -kur -fLq -efz +qph +mDn +gir +mDn +gir +mDn +iZm +mDn +gir hoZ -fGb -hDx +jHz +swj xHV xHV -hDx -hDx -hDx -hDx +swj +swj +swj +swj xHV xHV xHV @@ -48562,25 +48562,25 @@ cmP dIo dXG dXG -qty -qty +eYz +eYz dCu -fBP -eaL +rqC +wgs dIo -gol -fBP +tle +rqC dCu -qty +eYz dXG dXG dXG dXG dXG dXG -fBP -aZU -hDx +rqC +hbn +swj dIo xHV xHV @@ -48588,14 +48588,14 @@ xHV xHV dIo dIo -hSF -qty -qty -hDx +qoc +eYz +eYz +swj whu -tLT -lvs -xoQ +srt +lgH +pIw amF amF hiO @@ -48606,25 +48606,25 @@ kZS hiO amF amF -vNx -piL -peY -peY -peY -peY -peY -peY -peY -peY -peY -oiR -hjP -gCX -peY -gUf -sJT -aKW -aKW +uZu +dMt +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +tnw +taj +nMm +wsz +qxP +hvL +svP +svP rGq rGq rGq @@ -48634,21 +48634,21 @@ bfF rGq rGq rGq -aKW +svP rZP rZP rGq rGq rGq -aKW -aKW +svP +svP fpn fpn -mcG -aKW -sVP -gCX -aKW +ace +svP +uzG +nMm +svP jlk jlk rZP @@ -48739,32 +48739,32 @@ agi agi agi agi -gEF +nub pCX -lwK -wNw -ykT -uhd -lwK +lvD +aeb +otg +dLL +lvD jXz jXz -gEF +nub gLv jXz -gKu +jPY jXz jXz -liX +aDc hoZ -njx -fGb -bby +lLQ +jHz +sIC xHV -fBP -hDx -fBP -fBP -fBP +rqC +swj +rqC +rqC +rqC xHV xHV xHV @@ -48772,27 +48772,27 @@ xHV nIc yis dIo -fuF +ody dXG dXG dXG dIo -fBP -gaZ +rqC +uWA dIo -mAB -hLt +bbp +iQj dIo -mii -hDx -qty +kVW +swj +eYz dXG -hDx +swj xHV dIo -uPg -ctJ -hDx +qBS +sHL +swj dIo dXG dXG @@ -48800,14 +48800,14 @@ xHV xHV xHV dIo -hSF -diP -xFx -hDx -hDx -nEs -oVC -hDx +qoc +gPo +eWr +swj +swj +ifm +vXy +swj pyK sXi pyK @@ -48818,25 +48818,25 @@ rGq pyK sXi pyK -sVP -hjP +uzG +taj fpn fpn -hjP +taj fpn fpn -hjP +taj fpn fpn -hjP -qUp -hjP -gCX -ruE -gCX -sJT -aKW -aKW +taj +ajZ +taj +nMm +nOy +nMm +hvL +svP +svP rGq rGq jlk @@ -48846,21 +48846,21 @@ vsT rGq rGq rGq -aKW -mhW -yaC +svP +hlk +xiO rGq bDU rGq -peY -peY -peY -peY -qzW -nqs -crH -gCX -aKW +wsz +wsz +wsz +wsz +cBG +sVW +hgD +nMm +svP okT jlk rZP @@ -48953,28 +48953,28 @@ aWV hoZ hoZ hoZ -dBY -uTX -dPC -nBV -lwK -fGb +kCS +jnU +nUS +oiV +lvD +jHz erl hoZ hoZ jXz -gks +ach agi jXz agi -njx -njx -fGb -hDx +lLQ +lLQ +jHz +swj xHV -fBP -hDx -fBP +rqC +swj +rqC dIo dIo dIo @@ -48984,10 +48984,10 @@ xHV nIc dIo dIo -hSF +qoc dXG dXG -wlz +dxP dIo dIo dIo @@ -48995,16 +48995,16 @@ dIo dIo dIo dIo -xEE +cbE dXG -qty +eYz dXG -hDx +swj xHV dIo -mLB -hgz -yjO +rAU +tCv +teI dIo xHV mfe @@ -49012,14 +49012,14 @@ xHV xHV xHV dIo -hSF -qty -qty -fpp -fpp -oVC -qty -qty +qoc +eYz +eYz +ntc +ntc +vXy +eYz +eYz sXi fpn sXi @@ -49030,25 +49030,25 @@ rGq sXi fpn sXi -sVP -hxC -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -sVP -hjP -gCX -bEn -lwG -sJT -aKW -aKW +uzG +ugk +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +uzG +taj +nMm +mLY +aJv +hvL +svP +svP rGq rGq knh @@ -49059,20 +49059,20 @@ oDe rGq rGq rGq -aKW -sJT +svP +hvL rGq rGq rGq -bEn -bEn -bEn -bEn -ftY -nIq -uNX -lwG -aKW +mLY +mLY +mLY +mLY +oIE +uaM +hzL +aJv +svP rGq jlk rZP @@ -49163,14 +49163,14 @@ bQM bQM aWV cVQ -gEF +nub hoZ -lwK -vco -wVK -uFX -lwK -fGb +lvD +jCe +hrw +ddN +lvD +jHz hoZ hoZ agi @@ -49179,14 +49179,14 @@ agi agi agi agi -njx -njx -fGb -fGb -fGb -fBP -hDx -fBP +lLQ +lLQ +jHz +jHz +jHz +rqC +swj +rqC dIo tYw tYw @@ -49196,9 +49196,9 @@ xHV qgi xHV xHV -gGG +fBr dXG -qty +eYz dXG xHV xHV @@ -49209,10 +49209,10 @@ dXG dXG dXG egL -qty +eYz qXM dXG -hDx +swj dIo dIo dXG @@ -49224,14 +49224,14 @@ xHV xHV dIo dIo -hSF -diP -xFx -igA -nsg -xFx -qty -qty +qoc +gPo +eWr +vdJ +byJ +eWr +eYz +eYz sXi fpn sXi @@ -49242,26 +49242,26 @@ rGq sXi fpn sXi -sVP -gCX -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -fBg -ePx -lYc -sJT -sJT -sJT -aKW +uzG +nMm +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +tmI +pnx +mSZ +hvL +hvL +hvL +svP rGq -hjP +taj boe jlk rGq @@ -49271,20 +49271,20 @@ rGq rGq rGq rGq -aKW -sJT +svP +hvL rGq rGq rGq -aKW +svP rZP -aKW -aKW -ezb -xgr -lYc -aKW -aKW +svP +svP +jtM +fAr +mSZ +svP +svP rGq jlk rZP @@ -49377,11 +49377,11 @@ aWV pCX hoZ hoZ -dCl -lwK -dQA -lwK -lwK +dSM +lvD +hbt +lvD +lvD hoZ hoZ hoZ @@ -49392,13 +49392,13 @@ gQK agi aWV aWV -fGb +jHz hoZ hoZ hoZ -fBP -hDx -fBP +rqC +swj +rqC dIo tYw tYw @@ -49408,42 +49408,42 @@ xHV qgi xHV xHV -gGG +fBr dXG -qty +eYz dXG -hDx +swj xHV -hDx -qty -qty -qty -qty +swj +eYz +eYz +eYz +eYz dXG dXG dXG dXG -qty -hDx +eYz +swj dXG -hDx -qty -mLB +swj +eYz +rAU dIo dIo dIo dIo dIo dIo -hDx -rMg -qty -qty -hDx +swj +dUf +eYz +eYz +swj whu -tQq -xFx -hDx +xPk +eWr +swj sXi sXi sXi @@ -49454,24 +49454,24 @@ rGq sXi sXi sXi -sVP -gCX -gHb -aKW -gHb -aKW -aKW -gHb -aKW -gHb -sJT -xgr -gjX -uZM -sJT -gHb -aKW -gHb +uzG +nMm +uDX +svP +uDX +svP +svP +uDX +svP +uDX +hvL +fAr +rsU +lIA +hvL +uDX +svP +uDX rGq rGq jlk @@ -49482,20 +49482,20 @@ knh knh jlk jlk -aKW -aKW -sJT +svP +svP +hvL rGq rGq rGq -jmy +htD rZP jDR rGq -aKW -sVP -gCX -aKW +svP +uzG +nMm +svP rGq rGq rGq @@ -49587,13 +49587,13 @@ bQM bQM aWV hoZ -gEF +nub hoZ -lwK -wNw -ykT -uhd -lwK +lvD +aeb +otg +dLL +lvD jXz oED hoZ @@ -49603,14 +49603,14 @@ agi gQK agi agi -njx -fGb +lLQ +jHz hoZ pCX hoZ -fBP -dsv -fBP +rqC +bdE +rqC dIo dIo dIo @@ -49623,39 +49623,39 @@ xHV xHV dXG dXG -qty +eYz dXG -qty +eYz dXG dXG lLe dXG dXG -muB -qty -qty -qty -qty +vLX +eYz +eYz +eYz +eYz dXG dXG dXG -qty -hDx -vFQ -hDx +eYz +swj +qdC +swj whu -hDx +swj whu -hDx -rMg -hDx -diP -tIK -hDx -hDx -hDx -lvs -xoQ +swj +dUf +swj +gPo +vUF +swj +swj +swj +lgH +pIw amF amF hiO @@ -49666,23 +49666,23 @@ nPA hiO amF amF -vNx -gCX -aKW -xrJ -aKW -aKW -aKW -aKW -aKW -aKW -sJT -fBg -ePx -lYc -sJT -aKW -aKW +uZu +nMm +svP +fAS +svP +svP +svP +svP +svP +svP +hvL +tmI +pnx +mSZ +hvL +svP +svP rGq rGq jlk @@ -49692,22 +49692,22 @@ jlk bfF rGq rGq -jEG +mMk rZP rZP -qNm -myg -aKW -aKW -gvT -eev +msF +sMX +svP +svP +dZo +dae rZP rGq rGq -aKW -sVP -gCX -aKW +svP +uzG +nMm +svP rGq oyd rGq @@ -49801,31 +49801,31 @@ aWV cVQ hoZ pCX -lwK -uTX -dPC -nBV -lwK +lvD +jnU +nUS +oiV +lvD jXz hoZ -fGb -gEF +jHz +nub gVx hro jor jXz hoZ -njx -fGb +lLQ +jHz oED hoZ hoZ -fBP -hDx -fBP -fBP -fBP -fBP +rqC +swj +rqC +rqC +rqC +rqC pqC bQM bQM @@ -49833,8 +49833,8 @@ bQM pqC xHV xHV -hDx -hDx +swj +swj dXG dXG dXG @@ -49846,29 +49846,29 @@ dXG dXG dXG xHV -qty -qty -diP -qty -diP -qty -diP -qty -diP -qty -diP -qty -diP -qty -diP -hcb -lvs -diP -foZ -xFx -rNF -hDx -taX +eYz +eYz +gPo +eYz +gPo +eYz +gPo +eYz +gPo +eYz +gPo +eYz +gPo +eYz +gPo +bhW +lgH +gPo +cPC +eWr +oJY +swj +wLT amF aXn jXZ @@ -49877,22 +49877,22 @@ jXZ jXZ qCW amF -geU -jVH -lwG -aKW -aKW -oem -aKW -aKW -aKW -aKW -gHb -sJT -sVP -hjP -gCX -sJT +iaE +oHm +aJv +svP +svP +dVR +svP +svP +svP +svP +uDX +hvL +uzG +taj +nMm +hvL uNM yhu uNM @@ -49900,11 +49900,11 @@ jlk jlk jlk jlk -uwI +uEY kpp rGq rGq -nUF +snW rZP rZP rZP @@ -49917,8 +49917,8 @@ rZP rGq rGq rGq -sVP -gCX +uzG +nMm rGq lzJ lzJ @@ -50011,33 +50011,33 @@ agi agi aWV hoZ -gEF +nub hoZ -lwK -vco -wVK -uFX -lwK -gEF -fGb -fGb +lvD +jCe +hrw +ddN +lvD +nub +jHz +jHz jXz hhL hro jqs -gEF +nub hoZ -njx -fGb -fGb -fGb -fGb -fBP -hDx -hDx -hDx -hDx -fBP +lLQ +jHz +jHz +jHz +jHz +rqC +swj +swj +swj +swj +rqC pqC bQM bQM @@ -50045,42 +50045,42 @@ bQM pqC xHV xHV -hDx +swj dXG -hDx -xkG -hDx -hDx -jcg -fBP -fBP -hDx -hDx -xHV -xHV -xHV -qty -lhQ -qty -lhQ -qty -lhQ -qty -lhQ -qty -lhQ -qty -lhQ -qty -lhQ -tzj -lvs -lhQ -aUM -lsl -xFx +swj +xEy +swj +swj +xgb +rqC +rqC +swj +swj +xHV +xHV +xHV +eYz +uPX +eYz +uPX +eYz +uPX +eYz +uPX +eYz +uPX +eYz +uPX +eYz +uPX +sze +lgH +uPX +gLV +enx +eWr apw -taX +wLT amF amF amF @@ -50089,34 +50089,34 @@ amF amF amF amF -geU +iaE jlk jlk jlk -aKW -aKW -aKW -aKW -nRI -aKW +svP +svP +svP +svP +bcz +svP jlk -sJT -sVP -hjP -gCX -sJT +hvL +uzG +taj +nMm +hvL yhu -jlJ +tMS jlk jlk jlk jlk jlk -uwI +uEY vsT rGq rGq -amj +uha rZP jlk jlk @@ -50134,7 +50134,7 @@ jlk ctc lzJ lzJ -uGM +oPU lzJ lzJ hUi @@ -50225,14 +50225,14 @@ aWV jXz jXz hoZ -lwK -lwK -lwK -lwK -lwK +lvD +lvD +lvD +lvD +lvD jXz jXz -fGb +jHz agi gQK agi @@ -50245,11 +50245,11 @@ aWV aWV aWV aWV -fBP -fBP -ngk -hDx -fBP +rqC +rqC +wgq +swj +rqC pqC bQM bQM @@ -50263,34 +50263,34 @@ dIo dIo dIo dIo -mLB -qty -qty -mLB -bby +rAU +eYz +eYz +rAU +sIC xHV xHV xHV xHV xHV -fGY +tiY dXG -qty -hDx -vFQ -hDx +eYz +swj +qdC +swj whu -hDx +swj whu -hDx -rMg -hDx -lhQ -oVC -dKN -hDx -jUy -hDq +swj +dUf +swj +uPX +vXy +udj +swj +cRx +vts apw apw amF @@ -50305,18 +50305,18 @@ amF rZP rZP rZP -gHb -qGX -qGX +uDX +oTy +oTy rZP rZP jlk jlk -sJT -sVP -hjP -gCX -sJT +hvL +uzG +taj +nMm +hvL uNM jlk jlk @@ -50328,7 +50328,7 @@ rZP jDR rGq rGq -pry +ugm jlk jlk jlk @@ -50340,13 +50340,13 @@ rGq rGq rGq rGq -jhi +kXs jlk jlk jlk lzJ lzJ -uGM +oPU lzJ lzJ lzJ @@ -50436,14 +50436,14 @@ rmu aWV vOP aWV -fGb -fGb -fGb -ipy -iSG -ipy -fGb -fGb +jHz +jHz +jHz +oxv +wxY +oxv +jHz +jHz hoZ hoZ mJq @@ -50458,10 +50458,10 @@ pab pnS aWV agi -hDx -fBP -hDx -fBP +swj +rqC +swj +rqC tYw xHV xHV @@ -50475,34 +50475,34 @@ dIo dIo dIo dIo -hDx -fBP -fBP -hDx +swj +rqC +rqC +swj xHV xHV xHV xHV xHV xHV -hDx -tZS -qUx -mLB +swj +odC +iGw +rAU dIo dIo dIo kUj kUj kUj -hDx -rMg -qty -qty -hDx +swj +dUf +eYz +eYz +swj whu -hDx -qWO +swj +orV mZo apw amF @@ -50516,19 +50516,19 @@ amF amF amF rZP -qzS -hjP -hjP -hjP -bHY +afW +taj +taj +taj +lhJ jlk rZP jlk -rhK -sVP -hjP -gCX -vqZ +kZl +uzG +taj +nMm +dkz jlk jlk jlk @@ -50552,7 +50552,7 @@ rGq oyd rGq rGq -jhi +kXs jlk jlk jlk @@ -50563,7 +50563,7 @@ fyO lzJ lzJ lzJ -cdD +tkj irB irB baC @@ -50641,15 +50641,15 @@ agi agi aWV jXz -njx -rpe -njx -tYx +lLQ +hWv +lLQ +jHC jXz pPG jXz hoZ -fGb +jHz hoZ gFg hoZ @@ -50659,38 +50659,38 @@ hoZ hoZ hoZ hoZ -gEF -jEl -efz -gEF -efz -jEl -gEF -efz -efz -gEF +nub +qxy +gir +nub +gir +qxy +nub +gir +gir +nub pCX -hDx -fBP -vAZ -fBP -hDx -diX +swj +rqC +eRl +rqC +swj +gyA xHV xHV xHV -rsz -hDx -hDx +nsD +swj +swj dIo -hDx -uST -hDx +swj +tMU +swj tYw xHV -qty -qty -hDx +eYz +eYz +swj xHV xHV xHV @@ -50699,24 +50699,24 @@ xHV xHV dIo dIo -jit -wFo +dOk +wwa dIo -xOa -xOa -hDx -hDx +krb +krb +swj +swj kUj kUj xHV -lhQ -oVC -gWT -fpp -bln -oVC +uPX +vXy +kzs +ntc +tKN +vXy apw -taX +wLT amF amF amF @@ -50725,26 +50725,26 @@ amF amF amF amF -geU +iaE jlk mHR -oBd -xnE -hjP -hjP -bBX +olk +xtd +taj +taj +pdP jlk rZP jlk -rhK -sVP -hjP -gCX -sVM +kZl +uzG +taj +nMm +aHJ jlk jlk -iqt -iqt +xNw +xNw jlk jlk umy @@ -50771,11 +50771,11 @@ jlk lzJ lzJ lzJ -xAR +eVK lzJ lzJ lzJ -cdD +tkj lzJ irB irB @@ -50852,14 +50852,14 @@ agi agi aWV jXz -njx -njx -njx -njx -njx -lwK -vTB -lwK +lLQ +lLQ +lLQ +lLQ +lLQ +lvD +efI +lvD hoZ hoZ hoZ @@ -50882,26 +50882,26 @@ hoZ pCX hoZ hoZ -gEF -fBP -hDx -fBP -hDx -jje -hDx -rsz -rsz -hDx +nub +rqC +swj +rqC +swj +sPJ +swj +nsD +nsD +swj qXM -hDx -sFI +swj +iwZ lLe -qty -qty +eYz +eYz fJj -hDx -fBP -fBP +swj +rqC +rqC qXM xHV xHV @@ -50910,25 +50910,25 @@ tYw tYw tYw dIo -pcD -fBP -fBP -fBP -qty -fBP -fBP -fBP -qty +tss +rqC +rqC +rqC +eYz +rqC +rqC +rqC +eYz kUj kUj -qty -muB -nsg -nsg -iKf +eYz +vLX +byJ +byJ +xZM apw -hDx -taX +swj +wLT amF fjX jXZ @@ -50937,27 +50937,27 @@ jXZ jXZ lZf amF -geU +iaE xFf rZP rZP -qGX -qGX -qGX +oTy +oTy +oTy rZP rZP rZP jlk jlk -sVP -hjP -gCX -sJT -jhi -rLb -hjP -hjP -hjP +uzG +taj +nMm +hvL +kXs +gQL +taj +taj +taj knh rGq rGq @@ -50988,7 +50988,7 @@ irB uYx lzJ lzJ -ajK +oer plu lzJ irB @@ -51063,15 +51063,15 @@ bQM agi agi rmu -cBY -njx -njx -njx -njx -njx -lwK -vTT -lwK +qGy +lLQ +lLQ +lLQ +lLQ +lLQ +lvD +bez +lvD hoZ hoZ gGx @@ -51095,26 +51095,26 @@ hoZ hoZ hoZ hoZ -hGZ -hDx -fBP +loj +swj +rqC jRk -nnx -hDx -hDx -vAZ +fcg +swj +swj +eRl dXG lLe dXG qXM dXG -qty -qty +eYz +eYz dXG -hDx -qty -qty -hDx +swj +eYz +eYz +swj xHV xHV tYw @@ -51122,24 +51122,24 @@ tYw tYw tYw dIo -qnK +rNV xzj kdK xzj -fBP +rqC xzj xzj xzj -fBP +rqC xHV kUj -lhQ -oVC -hDx -hDx -hDx -lvs -xoQ +uPX +vXy +swj +swj +swj +lgH +pIw amF amF hiO @@ -51153,24 +51153,24 @@ amF bDx jlk jlk -hjP -hjP -hjP -bBX +taj +taj +taj +pdP rZP kbb rZP jlk jlk -whp -gCX -sJT -aKW -aKW -aKW -aKW -aKW -bMd +stf +nMm +hvL +svP +svP +svP +svP +svP +mJc rGq rGq rGq @@ -51200,7 +51200,7 @@ irB irB lzJ lzJ -ajK +oer lzJ lzJ lzJ @@ -51275,15 +51275,15 @@ bQM agi agi rmu -njx -njx -njx -njx -njx -njx -lwK -vZc -lwK +lLQ +lLQ +lLQ +lLQ +lLQ +lLQ +lvD +uMZ +lvD hoZ hoZ fqF @@ -51307,51 +51307,51 @@ hoZ hoZ hoZ pCX -fBP -hDx -fBP -fBP -fBP -fBP -sIQ +rqC +swj +rqC +rqC +rqC +rqC +gxR dXG -hDx +swj dXG -rsz +nsD dIo -moJ -qty -moJ +eWA +eYz +eWA dIo -hDx -fBP -fBP -hDx -uIG +swj +rqC +rqC +swj +guU xHV tYw tYw tYw tYw dIo -wfy +xZx xzj xzj xzj -fBP +rqC xzj xzj xzj xHV xHV kUj -qty -qty -hDx +eYz +eYz +swj whu -nEs -oVC -hDx +ifm +vXy +swj pyK sXi pyK @@ -51362,27 +51362,27 @@ rGq pyK sXi pyK -ncn -gUf -sJT -sJT -sJT -pOm +kCH +qxP +hvL +hvL +hvL +veP fmY -aao -sJT +xYo +hvL jlk jlk jlk -hjP -gCX -sJT -sJT -sJT -iAL -sJT -aKW -bMd +taj +nMm +hvL +hvL +hvL +uxd +hvL +svP +mJc rGq bDU rGq @@ -51393,30 +51393,30 @@ rZP rZP jlk jlk -uvi -uGM -uGM -jUI +rur +oPU +oPU +voi fjr jgu jgu jgu irB -ajK +oer lzJ lzJ -uGM +oPU mCA irB irB irB irB -cdD +tkj lzJ lzJ lzJ fyO -uGM +oPU irB irB irB @@ -51487,17 +51487,17 @@ agi agi agi rmu -cEf -njx -njx -njx -njx -hwE +mVO +lLQ +lLQ +lLQ +lLQ +odl jXz pPG jXz -fGb -fGb +jHz +jHz hoZ vjT gFg @@ -51520,25 +51520,25 @@ hoZ hoZ hoZ lLe -hDx -hDx -hDx -hDx -hDx -fBP +swj +swj +swj +swj +swj +rqC xHV -rsz +nsD xHV xHV dIo -moJ -qty -moJ +eWA +eYz +eWA dIo -wJa -qty -qty -xoQ +cKb +eYz +eYz +pIw tYw tYw tYw @@ -51546,24 +51546,24 @@ tYw tYw tYw dIo -rdX +cTx xzj xzj xzj -fBP +rqC xzj xzj dXG xHV xHV dIo -lhQ -oVC -fpp -fpp -oVC -qty -qty +uPX +vXy +ntc +ntc +vXy +eYz +eYz sXi fpn sXi @@ -51574,26 +51574,26 @@ rGq sXi fpn sXi -sVP -piL -peY -cJa -peY +uzG +dMt +wsz +uMm +wsz ddM iQK ddM -peY -peY -bST -peY -hjP -piL -peY -peY -peY -gUf -sJT -aKW +wsz +wsz +ruu +wsz +taj +dMt +wsz +wsz +wsz +qxP +hvL +svP jlk jlk jlk @@ -51605,17 +51605,17 @@ dxE rZP jlk jlk -tdo -uGM -uGM -jUI -iZA +vxI +oPU +oPU +voi +bBB jgu jgu jgu -nsn -ajK -uGM +pvz +oer +oPU lzJ lzJ irB @@ -51623,9 +51623,9 @@ irB irB irB irB -cdD -ajK -iSh +tkj +oer +pIA lzJ lzJ lzJ @@ -51634,7 +51634,7 @@ irB irB irB irB -iAO +gOd wbI itN baC @@ -51699,9 +51699,9 @@ agi agi aWV jXz -lwK -lwK -lwK +lvD +lvD +lvD jXz aWV aWV @@ -51719,63 +51719,63 @@ hoZ hoZ hoZ hoZ -gEF -jEl -efz -gEF -jEl -efz -gEF -jEl -efz -gEF +nub +qxy +gir +nub +qxy +gir +nub +qxy +gir +nub agi hoZ dXG -fon -hDx -hDx -hDx -hDx -fBP +jEz +swj +swj +swj +swj +rqC dIo tYw xHV xHV dIo -moJ -oGm -moJ +eWA +ycw +eWA dIo -iPZ -fBP -fBP -hDx +bnM +rqC +rqC +swj tYw -gto -qNS +vel +lAQ tYw tYw tYw dIo -pcD -fBP -fBP -fBP -qty +tss +rqC +rqC +rqC +eYz xHV -fBP +rqC xHV xHV xHV -hDx -qty -qty -nsg -nsg -xFx -qty -qty +swj +eYz +eYz +byJ +byJ +eWr +eYz +eYz sXi fpn sXi @@ -51786,30 +51786,30 @@ rGq sXi fpn sXi -sVP -hxC -bEn -kCg -bEn -ajh -ihC -hxC -bEn -bEn -aQM -bEn -bEn -bEn -bEn -ycn -aKW -gCX -sJT -aKW -dro +uzG +ugk +mLY +inO +mLY +mEY +nWh +ugk +mLY +mLY +oGg +mLY +mLY +mLY +mLY +bZD +svP +nMm +hvL +svP +iXV jlk jlk -jhi +kXs rGq rGq rGq @@ -51817,16 +51817,16 @@ rGq rZP jlk jlk -lrC -uGM -uGM -xub -xub -xub +xUr +oPU +oPU +wgO +wgO +wgO vhB -xub -cdD -ajK +wgO +tkj +oer lzJ lzJ irB @@ -51835,18 +51835,18 @@ irB irB irB irB -cdD -ajK +tkj +oer irB irB lzJ lzJ -uGM +oPU irB irB irB -nfI -vHK +hub +uiD wbI itN baC @@ -51911,9 +51911,9 @@ agi agi sSY ruJ -ocS -psO -qew +lZs +evd +rWQ ruJ sSY aWV @@ -51945,11 +51945,11 @@ agi agi xHV xHV -fBP -fBP -fBP -fBP -fBP +rqC +rqC +rqC +rqC +rqC dIo xHV xHV @@ -51959,14 +51959,14 @@ dIo dIo dIo dIo -cDj -rIX -rIX -gma -gma -gma -gma -cDj +rqG +kLz +kLz +bNE +bNE +bNE +bNE +rqG xJw xJw rja @@ -51979,15 +51979,15 @@ egv egv egv egv -gma +bNE apf -lhQ -oVC -hDx -vkM -tQq -xFx -hDx +uPX +vXy +swj +uXP +xPk +eWr +swj sXi sXi sXi @@ -51998,27 +51998,27 @@ rGq sXi sXi sXi -jVH -lwG +oHm +aJv jlk jlk -mWi -sVP -hjP -gCX -sJT +gmN +uzG +taj +nMm +hvL jlk jlk jlk -pOm -sJT -sJT -sVP -hjP -gCX -sJT -aKW -tMP +veP +hvL +hvL +uzG +taj +nMm +hvL +svP +yif jlk jlk aHg @@ -52029,17 +52029,17 @@ cye jlk jlk jlk -lrC -uGM -uGM -xub -xub -xub +xUr +oPU +oPU +wgO +wgO +wgO vhB -xub -cdD -ajK -uGM +wgO +tkj +oer +oPU lzJ irB irB @@ -52047,18 +52047,18 @@ irB irB irB irB -cdD -ajK -uGM -uGM -uGM -uGM -uGM -uGM -uGM -uGM -cdD -iAO +tkj +oer +oPU +oPU +oPU +oPU +oPU +oPU +oPU +oPU +tkj +gOd qkg itN baC @@ -52123,25 +52123,25 @@ agi agi aWV jXz -lwK -lwK -lwK +lvD +lvD +lvD jXz jXz jXz jXz -uwP -uwP -dmu +kME +kME +imN jXz -lwK -njx +lvD +lLQ hoZ hoZ hoZ hoZ -fGb -fGb +jHz +jHz hoZ aWV aWV @@ -52157,48 +52157,48 @@ agi agi xJw xJw -eWu +gAh apf apf bvY apf -eWu +gAh egv -cDj -gma -gma -gma -gma -bfZ -bfZ -bfZ -bfZ -gma -gma -nAr -gbD -rVZ -nAr -cDj +rqG +bNE +bNE +bNE +bNE +pQs +pQs +pQs +pQs +bNE +bNE +raL +rty +iXJ +raL +rqG xJw rja -vub +uvZ apf apf -vub +uvZ egv egv egv egv egv -gma +bNE xna -qty -qty -hDx -hDx -hDx -lvs +eYz +eYz +swj +swj +swj +lgH rZP amF amF @@ -52215,25 +52215,25 @@ jlk jlk jlk jlk -sVP -hjP -gCX -eyM +uzG +taj +nMm +cHK jlk jlk jlk jlk -jXB -sJT -sVP -hjP -gCX -sJT +aKN +hvL +uzG +taj +nMm +hvL jlk jlk jlk jlk -jhi +kXs rGq rGq rGq @@ -52241,36 +52241,36 @@ rGq jlk jlk jlk -tdo -uGM -uGM -jUI -waP +vxI +oPU +oPU +voi +vcN jgu jgu jgu -rxh -ajK -uGM -rON -uGM -qDy +bxm +oer +oPU +vQC +oPU +jls irB irB irB irB -cdD -teH -oAV -oAV -tsQ -uGM -uGM -uGM -lRI -uGM -cdD -ajK +tkj +uWO +gSX +gSX +oTT +oPU +oPU +oPU +gAn +oPU +tkj +oer jFO itN itN @@ -52334,85 +52334,85 @@ agi agi agi aWV -cxl -cOq -njx -njx -lwK -njx -njx -njx -lwK -dfz -njx -njx -lwK -njx +rqY +hFC +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +fuw +lLQ +lLQ +lvD +lLQ hoZ hoZ hoZ hoZ hoZ -fGb -fGb +jHz +jHz agi agi agi agi hoZ -fGb -eEo +jHz +qFs agi agi agi aWV aWV xJw -eWu -dUs -iOt -iOt -uAv +gAh +oEi +kyF +kyF +xDk apf -gma -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -qPT -ddE -qwJ -eTn -mbN +bNE +bNE +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +rKA +qCk +cvd +rRz +cjG xJw rja -gma -xbQ +bNE +yiR xna -gma +bNE egv egv egv egv apf apf -vsc -tZS -oVC -fpp -fpp -fpp -oVC +wUs +odC +vXy +ntc +ntc +ntc +vXy rZP -geU +iaE amF aXn jXZ @@ -52421,68 +52421,68 @@ jXZ jXZ qCW amF -geU +iaE lev jlk jlk -mpO -evc -sVP -hjP -gCX +oOp +xpO +uzG +taj +nMm jlk jlk jlk jlk jlk jlk -sJT -sVP -hjP -oYX -sJT +hvL +uzG +taj +khd +hvL jlk jlk jlk rZP -ofo -aKW +mWO +svP rGq rGq rGq jlk jlk rZP -sRk -uGM -uGM -jUI +lwA +oPU +oPU +voi xck jgu oCe jgu -cdD -ajK -uGM -pWH -uGM -tdZ -oPC +tkj +oer +oPU +uKE +oPU +rsg +kDa irB jgu jgu -rZh -dMc +cPL +uCX jgu jgu -dxd -xub -qyB -oAV -oAV -tsQ -cdD -ajK +hcY +wgO +gqM +gSX +gSX +oTT +tkj +oer vLH itN aju @@ -52546,34 +52546,34 @@ agi agi agi aWV -cBB -njx -njx -njx -lwK -njx -njx -njx -lwK -njx -njx -njx -lwK -ykT -uhd -agi -gEF +rRg +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +otg +dLL +agi +nub hoZ hoZ -fGb -fGb +jHz +jHz agi agi agi agi agi -fGb -eEo +jHz +qFs agi jXz jXz @@ -52581,48 +52581,48 @@ aWV aWV xJw xJw -tik +nhM mMH aBs -gFG -bfZ +cOj +pQs apf -bfZ -bfZ -bfZ -bfZ -gEe -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -nAr -mXY -qJJ -nAr -gma +pQs +pQs +pQs +pQs +xLj +pQs +pQs +pQs +pQs +pQs +pQs +pQs +raL +wND +imp +raL +bNE rja rja -gma +bNE apf apf -vsc -vub +wUs +uvZ egv -vub +uvZ apf -xbQ +yiR apf -gma -qty -qty +bNE +eYz +eYz tYw -hDx -hDx -hDx +swj +swj +swj uNM uNM uNM @@ -52636,74 +52636,74 @@ amF uNM uNM uNM -hjP -mpO -evc -kKZ -hjP -gCX +taj +oOp +xpO +hBf +taj +nMm jlk jlk jlk jlk jlk jlk -wVu -hIo +wuN +jFz jlk -iDE -wVu +aik +wuN jlk jlk jlk rZP -aBk -aKW +uci +svP rGq rGq rGq -ivM -nhi +bjR +mvY glG -jUI -uGM -uGM -jUI +voi +oPU +oPU +voi oPZ jgu oCe jgu -cdD -ajK -uGM -tdZ -oPC -war +tkj +oer +oPU +rsg +kDa +sTU jgu kXD jgu qOW -lDe -ofF +mWs +dCK chT jgu -rZh -qPC -dMc +cPL +sTm +uCX jgu jgu -dxd -cdD -ajK -hhy -vwc -vwc -vwc -fuA +hcY +tkj +oer +xVW +oyT +oyT +oyT +uaL qNv -iVt +sUt jgu -hMg +veJ irB baC baC @@ -52758,21 +52758,21 @@ agi agi agi aWV -jJh -njx -njx -njx -lwK -njx -njx -njx -lwK -njx -njx -njx -lwK -njx -nBV +oLK +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +lLQ +oiV jXz hoZ hoZ @@ -52785,7 +52785,7 @@ agi agi hoZ hoZ -eEo +qFs egv xJw xJw @@ -52793,110 +52793,110 @@ xJw xJw xJw rja -tik +nhM dGx kLI -gFG -bfZ -bfZ -mJe -bfZ -bfZ -bfZ -bfZ -bfZ -eWu -bfZ -bfZ -bfZ -eWu -bfZ -bfZ -bfZ -bfZ -bfZ -gma +cOj +pQs +pQs +qGP +pQs +pQs +pQs +pQs +pQs +gAh +pQs +pQs +pQs +gAh +pQs +pQs +pQs +pQs +pQs +bNE apf apf -xbQ -gma +yiR +bNE apf apf apf apf apf apf -gma -gma +bNE +bNE apf -diP +gPo qXM -mLB +rAU tYw tYw dXG uNM -avf +qjR uNM -pYh -elY -hjP +eUo +wXy +taj uNM -hjP -elY -pYh +taj +wXy +eUo uNM uNM uNM -hjP -xqf -sJT -sVP -hjP -uWg -sJT +taj +vaC +hvL +uzG +taj +hpn +hvL jlk jlk jlk jlk -aKW -sJT -sVP -sVi -gCX -sJT -aKW +svP +hvL +uzG +wIp +nMm +hvL +svP jlk jlk rZP -wHE -aKW +mJg +svP rGq rGq rGq -aKW -shC +svP +nTV glG -jUI -uGM -uGM -jUI -nGI +voi +oPU +oPU +voi +ktq jgu jgu jgu -rxh -ajK -uGM -btz +bxm +oer +oPU +uLf jgu kXD jgu wbI wbI wbI -cdD -ajK +tkj +oer wbI eVf wnu @@ -52904,16 +52904,16 @@ wnu dqE tNV kXD -dxd -cdD -ajK +hcY +tkj +oer lzJ -mEc -bDN -bDN -bDN +mtG +tiZ +tiZ +tiZ qNv -xZb +cbA jgu irB irB @@ -52970,21 +52970,21 @@ agi agi agi aWV -cxl -njx -njx -njx -lwK -njx -njx -njx -lwK -njx -njx -njx -lwK -wVK -uFX +rqY +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +lLQ +lLQ +lLQ +lvD +hrw +ddN jXz agi agi @@ -52996,8 +52996,8 @@ hoZ agi agi hoZ -fGb -fGb +jHz +jHz egv xJw xJw @@ -53005,119 +53005,119 @@ xJw xJw xJw rja -xSd -vky -vky -dOs +lge +sWe +sWe +lRr apf -bfZ -bfZ -bfZ -bfZ -bfZ -gma -iht -gma -gma -gma -iht -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -vsc +pQs +pQs +pQs +pQs +pQs +bNE +aPO +bNE +bNE +bNE +aPO +bNE +pQs +pQs +pQs +pQs +pQs +pQs +wUs hSH apf -vsc -hyz +wUs +unA apf apf apf -gma -gma +bNE +bNE apf egv egv -xmH -rQF -fyA -hjP -hjP -hjP -hjP -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -sJT -foV -hjP -hjP -sJT -iAL -sVP -jah -gCX -sJT +nwT +pLS +fTd +taj +taj +taj +taj +svP +svP +svP +svP +svP +svP +svP +svP +svP +hvL +bUt +taj +taj +hvL +uxd +uzG +cDb +nMm +hvL jlk jlk jlk -aKW -aKW -sJT -sVP -sVi -gCX -sJT -aKW +svP +svP +hvL +uzG +wIp +nMm +hvL +svP jlk jlk jlk -jhi +kXs rGq rGq rGq rGq -aKW -sCB +svP +siE glG -lrC -uGM -uGM -xub -xub -xub +xUr +oPU +oPU +wgO +wgO +wgO vhB -xub -cdD -ajK -tdZ -war +wgO +tkj +oer +rsg +sTU kXD oRR dLq -hhy -vwc -vwc -oTU -mkB -vwc -vwc -aNn +xVW +oyT +oyT +oWw +exI +oyT +oyT +ijt wbI wbI lzJ kXD -dxd -cdD +hcY +tkj lzJ irB lzJ @@ -53183,24 +53183,24 @@ agi agi aWV aWV -rCO -iJE -qit +cYV +fUz +edu aWV jXz jXz jXz aWV -rCO -iJE -dEI +cYV +fUz +mIf jXz -ykT -uhd +otg +dLL jXz agi agi -fGb +jHz hoZ hoZ idi @@ -53208,25 +53208,25 @@ hoZ agi agi hoZ -fGb -fGb +jHz +jHz rja rja rja rja rja rja -cDj -bfZ -bfZ +rqG +pQs +pQs apf -bfZ -bfZ -gma -gma -gma -gma -gma +pQs +pQs +bNE +bNE +bNE +bNE +bNE rja rja rja @@ -53234,15 +53234,15 @@ rja rja rja rja -cDj -gma -bfZ -bfZ -bfZ -bfZ -bfZ -hOW -hyz +rqG +bNE +pQs +pQs +pQs +pQs +pQs +qwK +unA rja rja xJw @@ -53253,43 +53253,43 @@ apf egv egv egv -tbC -wUA -fmU -hjP -hjP -hjP -aKW -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT -sJT +cYI +tpF +gFW +taj +taj +taj +svP +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL +hvL uNM -hIo -sVi -iDE +jFz +wIp +aik uNM -whL -nSa -tqM -aKW -aKW -sJT -sVP -sVi -gCX -sJT -aKW +whl +vmT +fxL +svP +svP +hvL +uzG +wIp +nMm +hvL +svP jlk jlk jlk @@ -53301,36 +53301,36 @@ rGq jlk jlk rZP -pmM -cFn -uGM -xub -xub -xub +aIB +bFC +oPU +wgO +wgO +wgO vhB -xub -cdD -ajK -btz +wgO +tkj +oer +uLf jgu jgu wbI wbI -cdD -oGT -bDN -twd -bDN -bDN -gqH -ajK +tkj +gZM +tiZ +oJd +tiZ +tiZ +wCI +oer wbI wbI wbI kXD -dxd -iFj -bDN +hcY +mPX +tiZ irB irB wbI @@ -53395,30 +53395,30 @@ aWV aWV jXz jXz -cQG -njx -qkk +eim +lLQ +orB jXz -olT -olT -olT +pgx +pgx +pgx jXz -cQG -njx -qkk +eim +lLQ +orB gKi -njx -nBV +lLQ +oiV jXz agi agi agi -fGb +jHz hoZ -ied -kdG -kdG -lEI +jNw +rqA +rqA +skG hoZ cto hoZ @@ -53428,12 +53428,12 @@ rja rja rja rja -xWN -bfZ -bfZ -bfZ -bfZ -gma +fLX +pQs +pQs +pQs +pQs +bNE rja rja vVi @@ -53448,15 +53448,15 @@ xUi rja rja rja -iht -gma -bfZ -bfZ -bfZ -bfZ +aPO +bNE +pQs +pQs +pQs +pQs apf -gma -cDj +bNE +rqG rja xJw xJw @@ -53468,11 +53468,11 @@ egv jlk jlk jlk -aKW -hjP -hjP -aKW -sJT +svP +taj +taj +svP +hvL uNM sgw vFi @@ -53486,26 +53486,26 @@ sgw vFi yhu uNM -sJT -sVP -hjP -uWg -sJT -sJT -sJT -sJT -sJT -sJT -sJT +hvL +uzG +taj +hpn +hvL +hvL +hvL +hvL +hvL +hvL +hvL jlk jlk -gCX -sJT -aKW +nMm +hvL +svP jlk jlk jlk -jhi +kXs rGq rGq rGq @@ -53516,31 +53516,31 @@ jlk irB irB irB -sRk -nGI +lwA +ktq jgu jgu jgu -rxh -teH -war +bxm +uWO +sTU kXD wbI jcv djf -cdD -ajK -sel -qjc -qjc -pAO -hoN -bWE +tkj +oer +hPi +jUG +jUG +oKf +lxT +alP wbI jcv wbI kXD -vOp +oCn wHl wbI irB @@ -53605,53 +53605,53 @@ agi agi aWV aWV -cvf -cvf -lwK -njx -nBV -cvf -fGb -pkp -fGb -cvf -lwK -njx -nBV +pbv +pbv +lvD +lLQ +oiV +pbv +jHz +rWt +jHz +pbv +lvD +lLQ +oiV gKi -wVK -uFX +hrw +ddN jXz agi agi agi agi hoZ -iMm +iuN krn kJS -lMM +mcH hoZ -fGb -fGb +jHz +jHz egv xJw xJw xJw xJw rja -wwZ -bfZ -bfZ -iJJ -bfZ -mbN +wKl +pQs +pQs +xCV +pQs +cjG rja -gRV -bMr -bMr -bMr -bMr +wfc +jYK +jYK +jYK +jYK mDz toE mDz @@ -53662,16 +53662,16 @@ eTC rja rja rja -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -gma -gma -mbN +bNE +pQs +pQs +pQs +pQs +pQs +pQs +bNE +bNE +cjG rja xJw xJw @@ -53680,41 +53680,41 @@ egv jlk bQM lHx -ezz -cyL -ubk -hAY -sJT -ncn -peY -peY -peY -peY -peY -peY -peY -peY -peY -peY -peY -hwn -xxh -eUk -hjP -piL -cJa -peY -peY -peY -peY +dRs +jrN +ltA +riP +hvL +kCH +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +nwv +nVR +sUV +taj +dMt +uMm +wsz +wsz +wsz +wsz jlk jlk jlk jlk -gCX -sJT -aKW -aKW +nMm +hvL +svP +svP jlk jlk rGq @@ -53728,35 +53728,35 @@ jlk irB itN irB -lrC +xUr xck jgu itN jgu -cdD -jqg +tkj +bcT jgu jgu jBQ bvK dLq -cdD -ajK +tkj +oer pGK jfd hRX mjB -cdD -ajK +tkj +oer jBQ oRR dLq jgu jgu -dxd +hcY wbI -cdD -ajK +tkj +oer lzJ wbI irB @@ -53817,19 +53817,19 @@ agi aWV aWV jXz -cvf -cvf -lwK +pbv +pbv +lvD hoZ -lwK -cvf -cQX -fGb -lwK -cvf -lwK -lwK -lwK +lvD +pbv +vwD +jHz +lvD +pbv +lvD +lvD +lvD gKi gKi gKi @@ -53839,13 +53839,13 @@ agi agi agi hoZ -iMm +iuN ksV kNW -lMM +mcH hoZ -fGb -fGb +jHz +jHz rja xJw xJw @@ -53853,17 +53853,17 @@ xJw xJw rja rja -gma -gma -bfZ -bfZ -gma +bNE +bNE +pQs +pQs +bNE rja rja -tqN -jre -woI -bMr +kAc +mIQ +hDb +jYK xxD xxD xxD @@ -53875,15 +53875,15 @@ xxD hHq rja rja -gma -bfZ -bfZ -bfZ -dUs -iOt -iOt -uAv -gma +bNE +pQs +pQs +pQs +oEi +kyF +kyF +xDk +bNE rja rja rja @@ -53892,45 +53892,45 @@ egv bQM bQM lHx -jay -hjP +qjh +taj dlA -aKW -sJT -sVP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -bMd -hjP -hjP -hjP -hjP -hjP -whp -hjP -hjP +svP +hvL +uzG +taj +taj +taj +taj +taj +taj +taj +taj +taj +taj +taj +mJc +taj +taj +taj +taj +taj +stf +taj +taj jlk jlk jlk jlk jlk jlk -sJT -aKW -aKW +hvL +svP +svP rGq knh -sJT -aKW +hvL +svP rGq rGq jlk @@ -53945,30 +53945,30 @@ irB jgu itN jgu -cdD -iDo +tkj +sRE jgu anu wbI rBz wbI -cdD -ajK +tkj +oer pGK hRX pzh sQL -vbY -ajK +nez +oer wbI rBz wbI qkg jgu -snq +sBf wbI -cdD -ajK +tkj +oer wbI vtl irB @@ -54029,48 +54029,48 @@ agi jXz jXz jXz -ykT -njx -njx -ykT -ykT -ykT +otg +lLQ +lLQ +otg +otg +otg gzb -ykT -ykT -ykT +otg +otg +otg wRg -ykT -ykT -ykT +otg +otg +otg gzb wRg gzb -ykT -ykT -ykT -ykT +otg +otg +otg +otg hoZ -iWy -kty -kOb -iaO -fGb -fGb -gma -blb -bfZ +vHo +lIj +uQJ +uOC +jHz +jHz +bNE +ydb +pQs xJw egv egv egv rja rja -gma -bfZ -bfZ -bfZ -gma +bNE +pQs +pQs +pQs +bNE rja vVi vVi @@ -54088,16 +54088,16 @@ xxD xxD rja rja -gma -bfZ -bfZ -tik +bNE +pQs +pQs +nhM mMH aBs -gFG -gma -gma -mbN +cOj +bNE +bNE +cjG rja xJw egv @@ -54106,30 +54106,30 @@ bQM rZP lHx rZP -hjP -aKW -ryx -sVP -hjP -hxC -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -aQM -poo -bEn -bEn -bEn -bEn -ycn -hxC -rYJ +taj +svP +ftU +uzG +taj +ugk +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +oGg +lFD +mLY +mLY +mLY +mLY +bZD +ugk +adE rZP rZP rZP @@ -54137,12 +54137,12 @@ rZP jlk jlk jlk -aKW +svP rGq rGq knh -sJT -aKW +hvL +svP rGq rGq jlk @@ -54157,30 +54157,30 @@ irB jgu jgu jgu -cdD -weK -gSG -vwc -vwc -vwc -vwc -oTU -ajK +tkj +osv +iyk +oyT +oyT +oyT +oyT +oWw +oer pGK mxs vhI fgM -cdD -ixb -vwc -vwc -vwc -cpS -omw -kGh -vwc -oTU -ajK +tkj +lzP +oyT +oyT +oyT +eNn +uqj +bFi +oyT +oWw +oer fyO oyC wbI @@ -54231,34 +54231,34 @@ cAW agi agi aPD -bpC -bIX -fGb -fGb -fGb +tpE +rUf +jHz +jHz +jHz hoZ hoZ hoZ mjx -njx -njx -fGb -fGb -fGb -qqX -fGb -njx -njx -njx -fGb -fGb -fGb -fGb -fGb -fGb -fGb -fGb -fGb +lLQ +lLQ +jHz +jHz +jHz +haJ +jHz +lLQ +lLQ +lLQ +jHz +jHz +jHz +jHz +jHz +jHz +jHz +jHz +jHz hoZ hoZ pCX @@ -54266,33 +54266,33 @@ hoZ hoZ hoZ hoZ -ngq -ied -iOt -iOt -uAv -bfZ +qSm +jNw +kyF +kyF +xDk +pQs rja egv -bfZ -bfZ +pQs +pQs egv ccH -gma -eWu -bfZ -bfZ -bfZ -bfZ -gma -gma -gma -gma -gma +bNE +gAh +pQs +pQs +pQs +pQs +bNE +bNE +bNE +bNE +bNE rja kze rja -wAa +lzE rja rja tDQ @@ -54301,15 +54301,15 @@ xxD xxD rja rja -cDj -bfZ -tik +rqG +pQs +nhM dGx kLI -gFG -bfZ -bfZ -gma +cOj +pQs +pQs +bNE rja xJw egv @@ -54318,20 +54318,20 @@ bQM bQM bQM lHx -aKW -aKW -sJT -kKZ -hjP -gCX -sJT -sJT -sJT -sJT -sJT -ngG -vbl -pER +svP +svP +hvL +hBf +taj +nMm +hvL +hvL +hvL +hvL +hvL +gsU +iON +vrO jlk jlk jlk @@ -54339,8 +54339,8 @@ jlk jlk jlk jlk -sVP -gCX +uzG +nMm jlk jlk jlk @@ -54349,12 +54349,12 @@ jlk jlk jlk jlk -aKW +svP rGq rGq knh -sJT -aKW +hvL +svP rGq rGq rGq @@ -54368,31 +54368,31 @@ irB irB itN itN -uGM -cdD -qNW -xTi -bDN -bDN -bDN -bDN -gqH -tQJ +oPU +tkj +fdR +spA +tiZ +tiZ +tiZ +tiZ +wCI +lAn dqa sbf vhI sQL -mRz -mEc -bDN -bDN -bDN -hqF -hmd -itC -bDN -bDN -xIo +oWG +mtG +tiZ +tiZ +tiZ +uVO +tXD +wSo +tiZ +tiZ +qhk wbI wbI wbI @@ -54443,8 +54443,8 @@ cAW agi agi aPD -bpC -bJz +tpE +gXF bPK clN clN @@ -54452,76 +54452,76 @@ clN clN clN crM -csH -cxd -wVK -wVK -wVK -wVK -wVK -lwK -njx -lwK -wVK -wVK -wVK -wVK -wVK -lwK -wVK -wVK -wVK -fGb +uYS +mlu +hrw +hrw +hrw +hrw +hrw +lvD +lLQ +lvD +hrw +hrw +hrw +hrw +hrw +lvD +hrw +hrw +hrw +jHz hoZ hoZ -wVK -wVK -wVK -wVK -fGb -tik +hrw +hrw +hrw +hrw +jHz +nhM mQG oEs -gFG -gma -gma +cOj +bNE +bNE apf -gma -gma +bNE +bNE lag -gma -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ +bNE +bNE +pQs +pQs +pQs +pQs +pQs +pQs +pQs apf gHy -bfZ -hyz -gma -gma -bfZ -cMJ +pQs +unA +bNE +bNE +pQs +ioE rja jta jta rja -xnA +xhM rja rja rja -gma -xSd -vky -vky -dOs -gma -gma -gma +bNE +lge +sWe +sWe +lRr +bNE +bNE +bNE rja xJw egv @@ -54532,17 +54532,17 @@ bQM rZP lHx rZP -sJT -sVP -hjP -gCX -sJT -qGX -qGX -qGX -qGX -qGX -qGX +hvL +uzG +taj +nMm +hvL +oTy +oTy +oTy +oTy +oTy +oTy jlk jlk jlk @@ -54551,15 +54551,15 @@ jlk jlk jlk jlk -hIo -iDE +jFz +aik jlk jlk jlk jlk jlk jlk -aKW +svP rGq rGq rGq @@ -54580,22 +54580,22 @@ irB irB itN itN -uGM -cdD -iDo +oPU +tkj +sRE jgu anu wbI jcv wbI -cdD -ajK +tkj +oer pGK uxN gTc sQL -tov -ajK +nWk +oer wbI jcv wbI @@ -54655,8 +54655,8 @@ cAW agi agi aPD -bpG -bJz +uOx +gXF bQh hoZ hoZ @@ -54664,73 +54664,73 @@ hoZ hoZ jXz jXz -dBC -naj +jcG +hsl jXz -olT -olT -olT +pgx +pgx +pgx jXz -tdb -fGb -naj +wFd +jHz +hsl aWV -olT -olT -olT +pgx +pgx +pgx aWV -tdb +wFd hoZ hoZ hoZ hoZ -fGb +jHz hoZ hoZ -fGb -fGb -fGb -gma -tik +jHz +jHz +jHz +bNE +nhM npx oTz -gFG -gma -gma -gma +cOj +bNE +bNE +bNE apf -gma +bNE lag apf apf -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -gma -eWu +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +bNE +gAh rja rja rja rja -nYw -nYw -lmX +hKN +hKN +weV rja -qjg -bfZ +paF +pQs apf -imH -gma +aHH +bNE rja vVi vVi @@ -54744,45 +54744,45 @@ bQM bQM bQM lHx -sJT -sVP -hjP -gCX -sJT -sJT -pGg -pGg -pGg -sJT -sJT -pGg -pGg +hvL +uzG +taj +nMm +hvL +hvL +bHR +bHR +bHR +hvL +hvL +bHR +bHR jlk jlk jlk jlk -aKW -bVh -sVP -gCX -aKW -aKW +svP +ing +uzG +nMm +svP +svP jlk jlk -aKW -aKW -aKW -aKW -aKW +svP +svP +svP +svP +svP dYI yio yio hyT -wbn +sfI ubN -wbn -wbn -ujJ +sfI +sfI +bPT qCa jlk irB @@ -54791,23 +54791,23 @@ irB irB itN itN -tgv -uGM -cdD -jqg +sIz +oPU +tkj +bcT jgu jgu jBQ nAf dLq -cdD -ajK +tkj +oer pGK hRX sbf sQL -cdD -ajK +tkj +oer jBQ oRR dLq @@ -54868,78 +54868,78 @@ aWV aWV aWV aPD -bKM +caA bQh hoZ hoZ -cqU +lun jXz jXz -ieW -fGb -nBV -nyl -wNw -rKS -uhd -chS -uTX -fGb -nBV -nyl -wNw -ykT -uhd -chS -uTX +xrd +jHz +oiV +nmh +aeb +wLS +dLL +cRK +jnU +jHz +oiV +nmh +aeb +otg +dLL +cRK +jnU hoZ -ghU -eEo -eEo +vZs +qFs +qFs hoZ -fGb -eEo -eEo +jHz +qFs +qFs jXz jXz -bfZ -xSd -vky -vky -dOs -bfZ +pQs +lge +sWe +sWe +lRr +pQs rja egv -bfZ -bfZ +pQs +pQs egv egv -gma -rKZ -bfZ -bfZ -eWu -gma -gma -gma -gma -bfZ -bfZ -vsc -bfZ +bNE +dbi +pQs +pQs +gAh +bNE +bNE +bNE +bNE +pQs +pQs +wUs +pQs gHy -bfZ -gma -gma -gma +pQs +bNE +bNE +bNE rja rja -qPG -yfH -ujC +scH +hyo +laX rja -qIZ -oKa +irQ +lyY apf iTm apf @@ -54956,36 +54956,36 @@ bQM bQM bQM lHx -weN -sVP -hjP -piL -peY -peY -peY -peY -peY -xxh -peY -peY -peY -peY -peY -peY -peY -peY -peY -eUk -gCX -aKW -aKW -aKW -aKW -aKW -fQx -aKW +qzM +uzG +taj +dMt +wsz +wsz +wsz +wsz +wsz +nVR +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +wsz +sUV +nMm +svP +svP +svP +svP +svP +hSA +svP rGq -aKW +svP nLV wIJ iyS @@ -54994,7 +54994,7 @@ rGq rGq uyM rGq -bka +dga lde jlk uGT @@ -55003,23 +55003,23 @@ uGT itN itN itN -xoI -uGM -cdD -qyi -gng +kMC +oPU +tkj +eEX +aBD kXD wbI rBz wbI -uds -ajK -iEi -qPC -qPC -dMc -cdD -ajK +qUC +oer +sSM +sTm +sTm +uCX +tkj +oer wbI rBz wbI @@ -55080,32 +55080,32 @@ aPD aPD aPD aPD -fGb +jHz bQh hoZ hoZ hoZ jXz -ulW -fWS -fGb -nBV -lwK -uTX -njx -nBV -lwK -uTX -fGb -uNR -lwK -uTX -njx -nBV -lwK -uTX -fGB -eEo +maY +fUC +jHz +oiV +lvD +jnU +lLQ +oiV +lvD +jnU +jHz +nkM +lvD +jnU +lLQ +oiV +lvD +jnU +eSH +qFs agi agi agi @@ -55114,47 +55114,47 @@ aWV agi agi aWV -bfZ -bfZ -gma -gma -bfZ -bfZ +pQs +pQs +bNE +bNE +pQs +pQs xJw egv egv egv rja -cDj -bfZ -bfZ -bfZ -cDj +rqG +pQs +pQs +pQs +rqG rja vVi vVi vVi rja -gma -gma -bfZ -fIj -bfZ -bfZ -bfZ -bfZ -bfZ -gma +bNE +bNE +pQs +kds +pQs +pQs +pQs +pQs +pQs +bNE rja rja rja rja rja -gma -imH +bNE +aHH iTm iTm -ibb +lRW vVi toE mDz @@ -55168,70 +55168,70 @@ bQM bQM bQM lHx -sJT -sVP -hjP -whp -hjP -hjP -hjP -hjP -hjP -hjP -nCa -hjP -hjP -hjP -hjP -whp -hjP -hjP -ruE -hjP -gCX -aKW -aKW +hvL +uzG +taj +stf +taj +taj +taj +taj +taj +taj +jjH +taj +taj +taj +taj +stf +taj +taj +nOy +taj +nMm +svP +svP rGq -aKW -hjP -hjP -hjP -aKW -aKW +svP +taj +taj +taj +svP +svP bAc hgS hgS lvy eTb -wbn -wbn -wbn -rOo -wRW +sfI +sfI +sfI +dNx +siK jlk -pmM -gmv -xub -nGz -xub -lJm -xub -uGM -cdD -ajK -btz +aIB +bSS +wgO +dDn +wgO +slc +wgO +oPU +tkj +oer +uLf kXD wbI wbI wbI -cdD -mkB -vwc -vwc -dFE -vwc -oTU -ajK +tkj +exI +oyT +oyT +nOi +oyT +oWw +oer wbI wbI tNV @@ -55287,35 +55287,35 @@ bTo pcu pcu agi -aCi -aVT -bac -bdS -bry +hCp +wSc +gvZ +ivD +lkM hoZ bQh hoZ -fGb +jHz jXz aWV jXz -mlM -fGb -nBV -nyl -vco -wVK -cfz -chS -uTX -fGb -nBV -nyl -vco -wVK -uFX -chS -uTX +eEJ +jHz +oiV +nmh +jCe +hrw +cnH +cRK +jnU +jHz +oiV +nmh +jCe +hrw +ddN +cRK +jnU agi aWV aWV @@ -55328,8 +55328,8 @@ egv egv egv egv -gma -gma +bNE +bNE apf xJw xJw @@ -55337,34 +55337,34 @@ xJw xJw xJw rja -xWN -bfZ -bfZ -gma +fLX +pQs +pQs +bNE rja rja -iCP +bya xxD vkh rja vVi rja -gma -bfZ -gma -gma +bNE +pQs +bNE +bNE apf -bfZ -bfZ -oeZ -gma -gma -jfN -gma -gma -bfZ +pQs +pQs +qfg +bNE +bNE +dfh +bNE +bNE +pQs apf -bfZ +pQs kzz rja rja @@ -55380,70 +55380,70 @@ xJw bQM bQM rZP -lOo -sVP -hjP -hxC -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -bEn -kxM -bEn -bEn -bEn -lwG +lvf +uzG +taj +ugk +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +mLY +tHw +mLY +mLY +mLY +aJv rGq uNM uNM -aKW -hjP -aKW +svP +taj +svP fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -tEj +kIg fpn -aKW +svP fpn -aKW +svP fpn vwM vhB -xub +wgO vhB -xub +wgO vhB -xub +wgO vhB -uGM -dGc -ajK -vfQ +oPU +gyt +oer +ckZ kXD aBJ wKb wbI -iFj -bDN -bDN -gqH -mEc -bDN -bDN -xIo +mPX +tiZ +tiZ +wCI +mtG +tiZ +tiZ +qhk wbI wZv lzJ @@ -55507,27 +55507,27 @@ aPD hoZ bQh hoZ -fGb +jHz jXz aWV jXz jXz -dBC -naj +jcG +hsl jXz -ond -ond -ond +kPf +kPf +kPf jXz -tdb -fGb -naj +wFd +jHz +hsl aWV -ond -ond -ond +kPf +kPf +kPf aWV -tdb +wFd agi aWV aWV @@ -55541,21 +55541,21 @@ egv egv egv apf -gma -gma +bNE +bNE rja xJw xJw xJw xJw rja -wwZ -bfZ -bfZ -gma +wKl +pQs +pQs +bNE rja -wmp -bMr +sGC +jYK xxD xxD sII @@ -55565,19 +55565,19 @@ vVi kze vVi rja -cDj -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -gma +rqG +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +pQs +bNE vVi xxD xxD @@ -55586,17 +55586,17 @@ vyu xxD xxD xxD -bMr -jre +jYK +mIQ wFU bQM bQM rZP -dbX -sVP -hjP -gCX -hJc +sGx +uzG +taj +nMm +gxQ rZP lHx lHx @@ -55608,42 +55608,42 @@ lHx jlk jlk jlk -sJT -uxa -saI -sJT -kPi -sJT +hvL +gbV +uTs +hvL +ufN +hvL jlk uNM ubN -hjP +taj ubN fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -tHr +mGX fpn -aKW +svP fpn vwM vhB -xub +wgO vhB -xub +wgO vhB -xub +wgO vhB -uGM -cdD -ajK -vfQ +oPU +tkj +oer +ckZ kXD kIe tas @@ -55651,8 +55651,8 @@ tas tTA wbI wbI -cdD -kmE +tkj +ydd wbI wbI wbI @@ -55716,30 +55716,30 @@ aWV aWV aWV aPD -bNN +iGx bQh hoZ -fGb +jHz jXz aWV jXz -ieW -fGb -nBV -nyl -wNw -ykT -uhd -chS -uTX -fGb -nBV -nyl -wNw -ykT -uhd -chS -uTX +xrd +jHz +oiV +nmh +aeb +otg +dLL +cRK +jnU +jHz +oiV +nmh +aeb +otg +dLL +cRK +jnU agi aWV aWV @@ -55752,22 +55752,22 @@ egv apf apf lag -gma -gma +bNE +bNE apf -gma +bNE egv egv rja rja ccH -cDj -bfZ -bfZ -mbN +rqG +pQs +pQs +cjG rja -jOr -bMr +hzi +jYK xxD xxD xxD @@ -55775,21 +55775,21 @@ leF xxD xxD xxD -ntg +dsW rja rja -gma -bfZ -bfZ -dUs -iOt -iOt -uAv -bfZ -bfZ -bfZ -bfZ -bfZ +bNE +pQs +pQs +oEi +kyF +kyF +xDk +pQs +pQs +pQs +pQs +pQs tob xxD xxD @@ -55798,17 +55798,17 @@ xxD xxD xxD xxD -bMr -tqN +jYK +kAc wFU bQM bQM lHx -qCs -sVP -hjP -gCX -sJT +jkj +uzG +taj +nMm +hvL lHx bQM bQM @@ -55828,43 +55828,43 @@ rGq jlk jlk uNM -kTK -aKW -pBg +iFC +svP +cBm fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn -aKW +svP fpn vwM vhB -xub +wgO vhB -xub +wgO vhB -xub +wgO vhB -uGM -cdD -ajK -vfQ +oPU +tkj +oer +ckZ jgu jgu -sel -qjc -pAO +hPi +jUG +oKf jgu wuC -bod -wLJ +roi +tMb xIh itN wbI @@ -55927,31 +55927,31 @@ agi agi agi aPD -bAb -fGb +gkE +jHz bQh hoZ -cmm +teu jXz aWV -llG -fWS -fGb -nBV -lwK -uTX -njx -nBV -lwK -uTX -fGb -nBV -lwK -uTX -njx -nBV -fSl -uTX +cje +fUC +jHz +oiV +lvD +jnU +lLQ +oiV +lvD +jnU +jHz +oiV +lvD +jnU +lLQ +oiV +qJR +jnU agi aWV aWV @@ -55966,20 +55966,20 @@ apf lag egv apf -gma -gma +bNE +bNE egv egv -cMJ -qSv -cDj -bfZ -bfZ -bfZ -gma +ioE +fCw +rqG +pQs +pQs +pQs +bNE rja -sCj -bMr +lMq +jYK xxD xxD xxD @@ -55990,18 +55990,18 @@ xxD xxD jta vVi -gma -bfZ -bfZ -tik +bNE +pQs +pQs +nhM mMH aBs -gFG -eWu -bfZ -eWu -bfZ -gma +cOj +gAh +pQs +gAh +pQs +bNE rja rja rja @@ -56010,17 +56010,17 @@ rja tDQ xxD xxD -bMr -woI +jYK +hDb wFU bQM bQM lHx -sJT -sVP -hjP -gCX -sJT +hvL +uzG +taj +nMm +hvL lHx bQM bQM @@ -56034,49 +56034,49 @@ jlk jlk sgw sgw -jFN +bvr rGq sgw sgw jlk uNM ubN -aKW +svP ubN -tEj -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP -hjP +kIg +taj +taj +taj +taj +taj +taj +taj +taj +taj +taj +taj +taj rZP -xub -xub -xub -xub -xub -xub -xub -gte -cdD -ajK -kEp -uRK -uRK -sHb -xub -btz +wgO +wgO +wgO +wgO +wgO +wgO +wgO +dmT +tkj +oer +ove +dJe +dJe +vuX +wgO +uLf jgu jgu -sel -aiK +hPi +gtf jgu itN jBQ @@ -56139,31 +56139,31 @@ agi agi agi aPD -bDC -fGb +eYs +jHz bQk hoZ hoZ jXz aWV jXz -mlM -fGb -nBV -nyl -vco -xfw -quy -chS -uTX -qqX -nBV -nyl -vco -rHd -uFX -chS -uTX +eEJ +jHz +oiV +nmh +jCe +dXi +hPL +cRK +jnU +haJ +oiV +nmh +jCe +mpN +ddN +cRK +jnU agi aWV aWV @@ -56177,18 +56177,18 @@ apf egv egv egv -gma -gma -gma -bfZ -eWu -gma -bfZ -bfZ -bfZ -bfZ -bfZ -gma +bNE +bNE +bNE +pQs +gAh +bNE +pQs +pQs +pQs +pQs +pQs +bNE rja rja vVi @@ -56203,36 +56203,36 @@ xxD jta rja rja -gma -bfZ -tik +bNE +pQs +nhM dGx kLI -gFG -dUs -iOt -iOt -uAv -bfZ -gma +cOj +oEi +kyF +kyF +xDk +pQs +bNE rja -rvu -lmX -xnA +hSk +weV +xhM xxD xxD xxD -bMr -vXr +jYK +whr xJw bQM bQM lHx -sJT -sVP -hjP -gCX -sJT +hvL +uzG +taj +nMm +hvL lHx bQM bQM @@ -56252,44 +56252,44 @@ fmg jlk jlk uNM -aJf -aKW -oWV -hjP -thi -thi -thi -thi -hjP +fhB +svP +oIz +taj +qAQ +qAQ +qAQ +qAQ +taj ohY eTb -gAa +icT eTb -bBX +pdP amF rZP rZP -xnS -xnS -xnS -xnS -xkP -lIx -xub -uGM -iFj -xIo -uGM -uGM -uGM -lRI -uGM -kEp -hOR -hOR -aMZ -knv -hOR +lgx +lgx +lgx +lgx +mLL +cOC +wgO +oPU +mPX +qhk +oPU +oPU +oPU +gAn +oPU +ove +dbr +dbr +vMN +fGi +dbr itN wbI qJL @@ -56351,31 +56351,31 @@ agi agi agi aPD -bHI +auj hoZ bQh hoZ -fGb +jHz hoZ jXz jXz jXz -dBC -naj +jcG +hsl jXz -kcw -pxa -kcw +kue +xgU +kue jXz -tdb -fGb -naj +wFd +jHz +hsl aWV -kcw -kcw -kcw +kue +kue +kue aWV -wLX +iIZ agi agi dxS @@ -56389,23 +56389,23 @@ egv egv eXp eXp -gma -gma -gma -gma -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -cDj +bNE +bNE +bNE +bNE +bNE +pQs +pQs +pQs +pQs +pQs +pQs +pQs +rqG rja -gma -bfZ -gma +bNE +pQs +bNE rja vVi rja @@ -56415,18 +56415,18 @@ xxD xxD soN rja -gma -bfZ -xSd -vky -vky -dOs -tik +bNE +pQs +lge +sWe +sWe +lRr +nhM mMH aBs -gFG -bfZ -gma +cOj +pQs +bNE rja rja rja @@ -56440,11 +56440,11 @@ xJw xJw xJw xJw -jiW -jiW -jiW -jiW -jiW +guz +guz +guz +guz +guz cEw cEw cEw @@ -56454,13 +56454,13 @@ cEw cEw cEw cEw -jiW -jiW -bIg +guz +guz +brY okv -jiW -bIg -jiW +guz +brY +guz aTo aTo rZP @@ -56481,26 +56481,26 @@ rZP rZP rZP rZP -biH -biH -biH -biH +juX +juX +juX +juX itN itN itN itN -bLz -xnS +dGA +lgx vhB vhB -xnS +lgx vhB vhB -xnS +lgx vhB vhB -xnS -xnS +lgx +lgx vhB itN itN @@ -56567,28 +56567,28 @@ hoZ hoZ bUw hoZ -fGb +jHz hoZ jXz jXz -ieW -njx -lwK -ykT -ykT -ykT -ykT -ykT -lwK -njx -lwK -ykT -ykT -ykT -ykT -ykT -lwK -uTX +xrd +lLQ +lvD +otg +otg +otg +otg +otg +lvD +lLQ +lvD +otg +otg +otg +otg +otg +lvD +jnU agi agi agi @@ -56599,49 +56599,49 @@ qlf egv egv eXp -erB -roC -sLT -gma -eWu -gma -gma -bfZ -bfZ -bfZ -bfZ -eGV -bfZ -bfZ -bfZ -gma -bfZ -bfZ -bfZ -gma -gma +jnm +kiR +wNM +bNE +gAh +bNE +bNE +pQs +pQs +pQs +pQs +sAp +pQs +pQs +pQs +bNE +pQs +pQs +pQs +bNE +bNE vVi bQy rja -xnA +xhM rja rja rja -qIZ -mKt -dUs -iOt -iOt -uAv -tik +irQ +wbP +oEi +kyF +kyF +xDk +nhM dGx kLI -gFG -bfZ -bfZ -gma -gma -gma +cOj +pQs +pQs +bNE +bNE +bNE nip apf apf @@ -56652,81 +56652,81 @@ ojv apf apf nip -jiW -ktD -joz -joz -jiW +guz +jhp +wSU +wSU +guz bnA -wMI -fXv -fXv -xSB +mTl +vBX +vBX +frM bnA -joz -joz -lhj -jiW -aqJ -dfV -dfV -dfV +wSU +wSU +nJq +guz +iiw +awL +awL +awL xDq naf naf cqz ggd -ssD -bVO -ssD -dfV -cyd -cyd -cyd -cyd -dfV -kzO -dfV -dfV -dfV -dfV -dfV -kzO -dfV -cyd -cyd -cyd -cyd -dfV -ssD -iSi -ssD -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -ssD -iSi -ssD -iSi -hbC -hbC -iSi -hbC -hbC -hbC -hbC -cbb +tsc +hQk +tsc +awL +uNp +uNp +uNp +uNp +awL +tcW +awL +awL +awL +awL +awL +tcW +awL +uNp +uNp +uNp +uNp +awL +tsc +bEk +tsc +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +tsc +bEk +tsc +bEk +ogf +ogf +bEk +ogf +ogf +ogf +ogf +mRM bQM bQM bQM @@ -56779,29 +56779,29 @@ hoZ bNP hoZ hoZ -fGb +jHz hoZ jXz -xaS -fWS -fGb -njx -fGb -fGb -fGb -fGb -fGb -njx -tZN -uTS -fGb -fIv -fGb -fGb -fGb -njx -uTX -fGb +ddU +fUC +jHz +lLQ +jHz +jHz +jHz +jHz +jHz +lLQ +qpX +viL +jHz +tQk +jHz +jHz +jHz +lLQ +jnU +jHz agi agi bGY @@ -56811,49 +56811,49 @@ aVU bel hTs eXp -gma -bfZ +bNE +pQs apf -lDm -bfZ -bfZ -eaZ -bfZ -bfZ -gma -gma -gma -gma -bfZ -bfZ -bfZ -oeZ -bfZ -bfZ -bfZ -gma +wdU +pQs +pQs +gnQ +pQs +pQs +bNE +bNE +bNE +bNE +pQs +pQs +pQs +qfg +pQs +pQs +pQs +bNE rja rja rja -nYw -nYw -ajX +hKN +hKN +fZT rja -gma -bfZ -tik +bNE +pQs +nhM mMH aBs -gFG -xSd -vky -vky -dOs -hOW -bfZ +cOj +lge +sWe +sWe +lRr +qwK +pQs tpY -bfZ -gma +pQs +bNE nip apf apf @@ -56864,22 +56864,22 @@ apf apf apf nip -jiW -joz -fXv -joz -jiW +guz +wSU +vBX +wSU +guz uLJ -fzs -fXv -hgC -fXv +sUc +vBX +kxU +vBX wAn -joz -joz -lhj -jiW -rol +wSU +wSU +nJq +guz +gcx okv okv okv @@ -56938,7 +56938,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -56988,32 +56988,32 @@ agi agi agi hoZ -fGb +jHz hoZ hoZ hoZ hoZ jXz jXz -mlM -njx -lwK +eEJ +lLQ +lvD agi agi agi agi agi -lwK -njx -lwK -wVK -wVK -wVK -wVK -wVK -lwK -fpi -fGb +lvD +lLQ +lvD +hrw +hrw +hrw +hrw +hrw +lvD +nzw +jHz agi agi whf @@ -57023,134 +57023,134 @@ rBs nxl whf apf -gma -gGu +bNE +oDh vzh -lDm -uLd -xwD -bfZ -gGu -gma +wdU +pma +oJm +pQs +oDh +bNE rja rja rja rja -gma -eWu -bfZ -bfZ -bfZ -fIj -bfZ -eWu -cDj +bNE +gAh +pQs +pQs +pQs +kds +pQs +gAh +rqG rja rja -qPG -ujC +scH +laX rja rja -gma -bfZ -tik +bNE +pQs +nhM dGx kLI -gFG -eWu -bfZ -eWu -bfZ -bfZ -bfZ -bfZ -vsc -gma +cOj +gAh +pQs +gAh +pQs +pQs +pQs +pQs +wUs +bNE rja rja -eWu -eWu +gAh +gAh rja rja -eWu -eWu +gAh +gAh rja rja -jiW -joz -joz -joz -jiW +guz +wSU +wSU +wSU +guz uXw -fXv -akw -fXv -fXv +vBX +qqQ +vBX +vBX bnA -joz -joz -lhj -jiW -rol +wSU +wSU +nJq +guz +gcx okv -aqJ -dfV +iiw +awL iBP vcf vcf lku mzT -ssD -ciX -ssD -dfV -cyd -cyd -cyd -cyd -dfV -mZV -dfV -dfV -dfV -dfV -dfV -mZV -dfV -cyd -cyd -cyd -cyd -dfV -ssD -iSi -ssD -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -kOM -ssD -iSi -ssD -iSi -hbC -hbC -iSi -hbC -hbC -hbC -hbC -ogo +tsc +wtm +tsc +awL +uNp +uNp +uNp +uNp +awL +exW +awL +awL +awL +awL +awL +exW +awL +uNp +uNp +uNp +uNp +awL +tsc +bEk +tsc +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +hmS +tsc +bEk +tsc +bEk +ogf +ogf +bEk +ogf +ogf +ogf +ogf +fWI bQM bQM bQM @@ -57208,26 +57208,26 @@ hoZ jXz jXz jXz -njx -njx +lLQ +lLQ jXz agi agi -ond +kPf jXz -uTX -fGb +jnU +jHz agi aWV -olT -lwK -mVg +pgx +lvD +mgO aWV hoZ -uTX -fGb -nBV -lwK +jnU +jHz +oiV +lvD oKV rBs aVU @@ -57235,48 +57235,48 @@ bOK rBs khu apf -bfZ +pQs apf -uLd -uLd -bfZ -uLd -bfZ -oeZ -mbN +pma +pma +pQs +pma +pQs +qfg +cjG rja -jdo -pTA +pKf +vtc rja -cDj -gma -bfZ -bfZ -bfZ -bfZ -bfZ -bfZ -dAA -hyX +rqG +bNE +pQs +pQs +pQs +pQs +pQs +pQs +mTs +nYB rja rja rja rja -cDj -bfZ -bfZ -xSd -vky -vky -dOs -bfZ +rqG +pQs +pQs +lge +sWe +sWe +lRr +pQs apf -vsc +wUs apf -bfZ +pQs apf -bfZ -gma +pQs +bNE rja rja rja @@ -57289,28 +57289,28 @@ rja rja rja bnA -mfK -jiW -jiW -iYI +tXt +guz +guz +cYe bnA -mfK -pJa -fXv -jiW +tXt +rnl +vBX +guz bnA -qNw -joz -lhj -jiW -rol +vDf +wSU +nJq +guz +gcx pLQ -rol -jiW -jiW -jiW -jiW -ayA +gcx +guz +guz +guz +guz +gTW cEw cEw cEw @@ -57329,26 +57329,26 @@ tRH tRH tRH tRH -biH -biH -biH -biH +juX +juX +juX +juX itN itN itN itN -sqB -gyU +iVo +nkF vhB vhB -gyU +nkF vhB vhB -gyU +nkF vhB vhB -gyU -gyU +nkF +nkF vhB itN itN @@ -57410,36 +57410,36 @@ agi agi agi agi -fGb -fGb -fGb -ghU -fGb +jHz +jHz +jHz +vZs +jHz hoZ hoZ hoZ -fGb +jHz moW -njx -njx -nyl -agi -ykT -uhd -chS -uTX -fGb -agi -nyl -wNw -ykT -ifq -chS +lLQ +lLQ +nmh +agi +otg +dLL +cRK +jnU +jHz +agi +nmh +aeb +otg +njN +cRK rPZ -uTX -fGb -nBV -lwK +jnU +jHz +oiV +lvD aVU aVU aVU @@ -57448,46 +57448,46 @@ aVU gec apf nre -bfZ -bfZ -uLd -bfZ -bfZ -bfZ -bfZ -gma +pQs +pQs +pma +pQs +pQs +pQs +pQs +bNE rja -lAv -nYw +lYj +hKN rja rja rja -gma -hgr -gma -gma -bfZ -bfZ -bfZ -bfZ -nAr -gbD -iGL -nAr -bfZ -bfZ -bfZ -bfZ -bfZ -gma -gma -wZo -gma -gma +bNE +tmL +bNE +bNE +pQs +pQs +pQs +pQs +raL +rty +kwZ +raL +pQs +pQs +pQs +pQs +pQs +bNE +bNE +nOg +bNE +bNE apf -bfZ -bfZ -hOW +pQs +pQs +qwK apf rja rja @@ -57501,72 +57501,72 @@ rja rja rja bnA -vUa -ifs -nuE -vUa +iKF +ykw +alC +iKF bnA jbU xZD bnA bgc bnA -joz -vrc -lhj -jiW -rol +wSU +kok +nJq +guz +gcx okv -rol -jiW -joz +gcx +guz +wSU uSA uSA -aHx +pRp bnA -dnx -jiW -ioP +wps +guz +jHp wrR -iyu -oqn -oqn -cRS +mpE +vOm +vOm +psx ipd -npp -lfJ -coT -kul -kul -hja -hyR -hGC -iyq -gyU -gyU -gyU -xub -xub -xub -xub -hhy -aNn -uGM -uGM -gUO -uGM -uGM -uGM -uGM -uGM -hhy -aNn -uGM -uGM -uGM -wyP -uGM -uGM +soj +iTJ +kbo +tSm +tSm +iTs +bqC +art +fvr +nkF +nkF +nkF +wgO +wgO +wgO +wgO +xVW +ijt +oPU +oPU +mpb +oPU +oPU +oPU +oPU +oPU +xVW +ijt +oPU +oPU +oPU +wQW +oPU +oPU itN itN itN @@ -57625,33 +57625,33 @@ agi hoZ vjT gFg -ipy -fGb +oxv +jHz hoZ hoZ hoZ -fGb +jHz hoZ -njx -njx -lwK -uTX -njx -qIO -lwK -uTX -ugC -nBV -lwK -uTX +lLQ +lLQ +lvD +jnU +lLQ +fKn +lvD +jnU +lDU +oiV +lvD +jnU hoZ -nBV -fNp +oiV +kHI hoZ -uTX -fGb -nBV -lwK +jnU +jHz +oiV +lvD aVU aVU imz @@ -57659,18 +57659,18 @@ aVU aVU khu tfX -gFc -gFc -bfZ -bfZ -eWu -gGu -bfZ -bfZ -gma +vuS +vuS +pQs +pQs +gAh +oDh +pQs +pQs +bNE rja rja -xnA +xhM rja jta rja @@ -57678,101 +57678,101 @@ vVi vVi vVi rja -gma -dAA -bfZ -bfZ -qPT -ddE -qwJ -eTn -bfZ -bfZ -bfZ -gma -gma +bNE +mTs +pQs +pQs +rKA +qCk +cvd +rRz +pQs +pQs +pQs +bNE +bNE bis bis bis bis bis -muO +dBy mNh ycC -vYL -gXt -muO +idb +eQQ +dBy bis bis bis bis bis bis -pxR -fcX -bEO -kEE +jsf +heo +rJF +akp xvB -jiW -kpm -fXv -eAy -jiW -kpm -fXv -eAy -jiW +guz +aAA +vBX +fXI +guz +aAA +vBX +fXI +guz xvB -kpm -eZm -tMn -jiW -rol +aAA +xNn +eBr +guz +gcx pLQ -rol -jiW -joz -ndt -pLh -nyo +gcx +guz +wSU +yeX +pen +byT bnA -vjz -jiW -vjz +mSo +guz +mSo wrR -jGA -jGA -jGA -xFB +xvv +xvv +xvv +rLA ipd -npp -cLR -wRZ -wRZ -wRZ -pDg -wRZ -vxV -xub +soj +rKy +xiL +xiL +xiL +iQz +xiL +rft +wgO vhB vhB -xub +wgO vhB vhB -xub +wgO vhB -cdD -ajK +tkj +oer jgu jgu -uGM -uGM +oPU +oPU fZD wbI wbI agG -xzI -tVB +vFc +htO nKX wbI wbI @@ -57781,7 +57781,7 @@ wbI wbI wbI wbI -uGM +oPU jgu jgu itN @@ -57838,32 +57838,32 @@ hoZ gFg hoZ gFg -gEF +nub gzb gzb gzb -gEF +nub hoZ -njx -njx -nyl -vco -wVK -uFX -rMt -uTX -fGb -uXu -lwK -vco -pxa -uFX -chS +lLQ +lLQ +nmh +jCe +hrw +ddN +qAk +jnU +jHz +vWL +lvD +jCe +xgU +ddN +cRK hoZ -uTX -fGb -nBV -lwK +jnU +jHz +oiV +lvD rBs rBs aVU @@ -57871,36 +57871,36 @@ aVU vDR sUY apf -bfZ +pQs umZ -orG -bfZ -gFc -bfZ -bfZ -eGV -bfZ -gma +jIz +pQs +vuS +pQs +pQs +sAp +pQs +bNE vVi xxD -vXS +pVc xxD -vXr -upF -ejp -kdw +whr +dwJ +gnL +vvT rja -qwh -bfZ -gma -gma -nAr -mXY -qJJ -nAr -gma -gma -gma +dhL +pQs +bNE +bNE +raL +wND +imp +raL +bNE +bNE +bNE bis bis bis @@ -57910,81 +57910,81 @@ bis bis wGM ycC -gXt +eQQ ycC mNh dDU -olC +rkv bis bis bis -uCW -vmH -bEO -bEO -bEO -kEE +tEA +bQL +rJF +rJF +rJF +akp okv -jiW -kpm -fXv -eAy -jiW -kpm -fXv -eAy -jiW +guz +aAA +vBX +fXI +guz +aAA +vBX +fXI +guz okv -kpm -fUF +aAA +ojk uSA -jiW -rol +guz +gcx okv -rol -jiW -joz +gcx +guz +wSU uSA uSA -xVh -kLT -qxB -fXv -jiW +giw +noz +nSh +vBX +guz eMG -jGA -jGA -jGA -xFB +xvv +xvv +xvv +rLA ipd -xMN -cLR -wRZ -dMv -qfU -mXe -oJO -bcg -dFw -xub -xub -xub -xub -xub -xub -iNw -cdD -ajK +spb +rKy +xiL +mAt +nMp +jFh +vxm +heT +aZW +wgO +wgO +wgO +wgO +wgO +wgO +bRs +tkj +oer kXD -lsr +fnY vhB -kBV +bED wbI qUo fAv vtl -cdD -lCZ +tkj +oLF ivz jot fAv @@ -57993,8 +57993,8 @@ bNT jot fAv vtl -uGM -wRn +oPU +lgS jgu itN itN @@ -58050,30 +58050,30 @@ hoZ vjT gFg vjT -fGb +jHz lrA lrA lrA -fGb +jHz hoZ -njx -njx +lLQ +lLQ jXz -ond -ond -ond +kPf +kPf +kPf jXz -uTX -fGb -nBV -fGB -kXw -fNp -fNp +jnU +jHz +oiV +eSH +eEx +kHI +kHI aWV -fGb -uTX -fGb +jHz +jnU +jHz mbC dxS whf @@ -58082,37 +58082,37 @@ sdY rBs qLI gec -lDm -rEm +wdU +uHl nWC -sUq -eWu -lDm -eWu -gma -gFc -bfZ -bfZ +dtR +gAh +wdU +gAh +bNE +vuS +pQs +pQs tob xxD xxD xxD -bMr -bMr -iRe -aJK +jYK +jYK +fbF +bFg rja -qIZ -gma -dUs -iOt -iOt -iOt -iOt -iOt -iOt -iOt -uAv +irQ +bNE +oEi +kyF +kyF +kyF +kyF +kyF +kyF +kyF +xDk bis bis tpt @@ -58125,78 +58125,78 @@ ycC lqq ycC lqq -cmW +pJP ycC ycC -oys -ruv -ruv -ruv -tjQ -tJe -bEO -kEE +anW +wNX +wNX +wNX +ort +htX +rJF +akp okv -jiW -kpm -muZ -eAy -jiW -kpm -vxr -eAy -jiW +guz +aAA +ppQ +fXI +guz +aAA +iHu +fXI +guz okv -kpm -fUF +aAA +ojk uSA -jiW -rol +guz +gcx pLQ -rol -jiW -joz -fXv -fXv -fXv +gcx +guz +wSU +vBX +vBX +vBX uSA -ena -fXv -jiW +kfY +vBX +guz bPG -jGA -jGA -jGA -xFB +xvv +xvv +xvv +rLA ipd -xMN -cLR -tII -vxV +spb +rKy +gIs +rft wrR ipd ipd nvD -dxd +hcY vhB vhB -xub +wgO vhB vhB -xub +wgO vhB -cdD -ajK +tkj +oer kXD -tjo +cRg vhB -uGM +oPU aRT kjT qun oyC -cdD -ajK +tkj +oer aRT kjT qun @@ -58205,8 +58205,8 @@ qaO azs auQ oyC -uGM -uGM +oPU +oPU jgu jgu jgu @@ -58262,31 +58262,31 @@ hoZ gGx hoZ hoZ -fGb +jHz lrA agi lrA -fGb +jHz hoZ -njx -njx -nyl -wNw -ykT -uhd -chS -uTX -fGb -veM -lwK -wNw -esF -uhd -chS -fGb -uTX -fGb -eWu +lLQ +lLQ +nmh +aeb +otg +dLL +cRK +jnU +jHz +bRQ +lvD +aeb +aOm +dLL +cRK +jHz +jnU +jHz +gAh eXp vTv heO @@ -58295,16 +58295,16 @@ aVU bel bIZ eXp -lDm -gma -wEa -lDm -gma -njq -gma -bfZ -bfZ -gma +wdU +bNE +vgi +wdU +bNE +mMi +bNE +pQs +pQs +bNE rja rja mfR @@ -58314,17 +58314,17 @@ xxD xxD xxD vVi -dUs -iOt -hJw -gma -gma -gma -gma -gma -gma -gma -gFG +oEi +kyF +hoo +bNE +bNE +bNE +bNE +bNE +bNE +bNE +cOj bis bis sfs @@ -58336,79 +58336,79 @@ pYc lqq lqq geL -bEO +rJF ycC -uRO -ydk -ruv -bEO -bEO +bPQ +rHh +wNX +rJF +rJF ycC -bEO -kEE -bEO -kEE +rJF +akp +rJF +akp okv -jiW -kpm -ndt -pLh +guz +aAA +yeX +pen ofw -jNA -bzL -eAy -jiW +ppS +hGn +fXI +guz okv -kpm -fUF -joz -jiW -rol +aAA +ojk +wSU +guz +gcx aVd -rol -jiW -joz -fXv -fXv -fXv +gcx +guz +wSU +vBX +vBX +vBX uSA -ena -fXv -jiW +kfY +vBX +guz bPG -jGA -jGA -jGA -xFB +xvv +xvv +xvv +rLA ipd -cyO -cLR -wRZ -jya -kul -hja -hyR -hGC -sHb -xub -xub -iNw -xub -xub -xub -xub -cdD -ajK +kdq +rKy +xiL +mdS +tSm +iTs +bqC +art +vuX +wgO +wgO +bRs +wgO +wgO +wgO +wgO +tkj +oer jgu -vrw -uGM -uGM +qcX +oPU +oPU bNT kjT qun oRR -bAU -ajK +lEL +oer aRT kjT qun @@ -58417,10 +58417,10 @@ wbI cCt wbI wbI -uGM -uGM -jUI -bsF +oPU +oPU +voi +cEY jgu itN itN @@ -58474,31 +58474,31 @@ hoZ fqF hoZ hoZ -fGb +jHz lrA agi lrA -fGb +jHz hoZ -njx -njx -lwK -uTX -njx -nBV -lwK -uTX -fGb -nBV +lLQ +lLQ +lvD +jnU +lLQ +oiV +lvD +jnU +jHz +oiV hoZ hoZ -njx -nBV -fSl -fGb -uTX -fGb -eWu +lLQ +oiV +qJR +jHz +jnU +jHz +gAh nga eXp eXp @@ -58507,17 +58507,17 @@ apf apf apf eXp -gma -gma -gma +bNE +bNE +bNE rja -aVJ +oOw ccH -gma -eWu -bfZ -bfZ -cDj +bNE +gAh +pQs +pQs +rqG rja rja toE @@ -58526,17 +58526,17 @@ hqc xxD xxD tob -obT -gma -gma -gma -gma -gma -gma -gma -gma -gma -qam +wQb +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +umg bis bis tPz @@ -58550,77 +58550,77 @@ lqq ycC lqq sBA -jLF -rrP -vMQ -vMQ -vMQ -vNF -bEO -kEE -vLV +kzB +pBe +xow +xow +xow +wpy +rJF +akp +qif bis bnA -tGi -joz -joz -joz -hUf -joz -joz -joz -feY +wQR +wSU +wSU +wSU +hjR +wSU +wSU +wSU +tSY bnA -qNw -fUF -joz -jiW -rol +vDf +ojk +wSU +guz +gcx okv -rol -jiW -joz +gcx +guz +wSU uSA uSA -pCS -tYr -rAk -fXv -jiW +qLv +gyy +dpn +vBX +guz bPG -jGA -jGA -jGA -xFB +xvv +xvv +xvv +rLA ipd -yhE -rkr -qfU -djd -wRZ -pDg -wRZ -vxV -xub +vMs +sFd +nMp +rdo +xiL +iQz +xiL +rft +wgO hCc vhB -xub +wgO vhB vhB -lJm +slc vhB -dGc -ajK +gyt +oer kXD -nej +bmw vhB -uGM +oPU bNT kjT aPd vtl -cdD -nbU +tkj +bdb lls kjT qun @@ -58629,10 +58629,10 @@ bNT jot fAv vtl -uGM -uGM -uGM -jUI +oPU +oPU +oPU +voi jgu jgu jgu @@ -58686,30 +58686,30 @@ hoZ vjT gFg vjT -fGb +jHz lrA lrA lrA -fGb +jHz hoZ -tXQ -njx -nyl -vco -wVK -uFX -rRb -uTX -fGb -nBV +xeX +lLQ +nmh +jCe +hrw +ddN +dRk +jnU +jHz +oiV hoZ -tXQ -smX -uFX -chS +xeX +ihv +ddN +cRK agi -uTX -fGb +jnU +jHz egv nga nga @@ -58721,16 +58721,16 @@ nga nga apf apf -cMJ +ioE rja rja -xUt -gma -gma -bfZ -bfZ -wxj -gma +jzN +bNE +bNE +pQs +pQs +mCH +bNE vVi fyy toE @@ -58738,17 +58738,17 @@ toE pxk bJb rja -obT -jxY -vky -vky -vky -rKX -vky -vky -aMq -gma -gFG +wQb +qpk +sWe +sWe +sWe +mGf +sWe +sWe +sms +bNE +cOj bis bis nHm @@ -58763,76 +58763,76 @@ wMi wMi bis bis -bEO -bEO -bEO +rJF +rJF +rJF uXB -uRO -bEO -uyr -vLV +bPQ +rJF +vOO +qif bis bnA -tGi -joz -joz -joz -fXv -joz -joz -joz -feY +wQR +wSU +wSU +wSU +vBX +wSU +wSU +wSU +tSY bnA -qNw -fUF -xcf -jiW -rol +vDf +ojk +cQe +guz +gcx okv -rol -jiW -joz -ndt -pLh -nyo +gcx +guz +wSU +yeX +pen +byT bnA -ioP -mBm -ioP +jHp +myH +jHp wrR -vUn -tcJ -tcJ -lUg +tkP +pYL +pYL +jHD wrR wrR wrR wrR -cLR -dMv -mXe -oJO -bcg -dFw -xub -wvS -xub -xub -xub -xub -xub -cdD -ajK +rKy +mAt +jFh +vxm +heT +aZW +wgO +lAN +wgO +wgO +wgO +wgO +wgO +tkj +oer kXD -vyz +sBY itd -uGM +oPU bNT azs bJp oyC -hln -dfu +utL +uZt pIt azs auQ @@ -58841,12 +58841,12 @@ bNT azs auQ oyC -uGM -uGM -uGM -uGM -jUI -bsF +oPU +oPU +oPU +oPU +voi +cEY jgu itN itN @@ -58898,30 +58898,30 @@ hoZ gFg iKg gFg -gEF +nub gzb gzb gzb -gEF +nub hoZ -njx -njx +lLQ +lLQ jXz -kcw -kcw -kcw +kue +kue +kue jXz -gFK -fGb -nBV -fGB -fNp -rLC -kcw +tbm +jHz +oiV +eSH +kHI +mUK +kue aWV agi -vco -wVK +jCe +hrw qdJ apf kOB @@ -58937,12 +58937,12 @@ eXp eXp eXp rja -gma -eWu -bfZ -bfZ -bfZ -gma +bNE +gAh +pQs +pQs +pQs +bNE vVi sha pNj @@ -58950,17 +58950,17 @@ tDB rja rja rja -obT -gFG -gma -gma -gma -gma -gma -gma -obT -gma -gFG +wQb +cOj +bNE +bNE +bNE +bNE +bNE +bNE +wQb +bNE +cOj bis ycC fAZ @@ -58975,76 +58975,76 @@ clP clP bis bis -bEO -sVN +rJF +mnJ ycC -bEO -uRO -bEO -kEE -bEO -kEE +rJF +bPQ +rJF +akp +rJF +akp xvB -jiW -kpm -ndt -pLh -qkf -jNA -bzL -eAy -jiW +guz +aAA +yeX +pen +vYY +ppS +hGn +fXI +guz xvB -kpm -fUF -joz -jiW -rol +aAA +ojk +wSU +guz +gcx okv -rol -jiW -bLd +gcx +guz +eQY vJn vJn -bLg +asE bnA -hmr -jiW -vjz +kzL +guz +mSo wrR -gnm -guG -guG -guG -guG -cyO +uia +teq +teq +teq +teq +kdq ipd -flq -cLR -vxV -gyi -gyi -vyX +lzB +rKy +rft +iOX +iOX +eyO itN itN itN itN jgu -xub -xub -xub -cdD -ajK +wgO +wgO +wgO +tkj +oer jgu jgu -uGM -uGM +oPU +oPU agv rPI qJf gfL -lty -iIX +eRq +tai doq wbI tmx @@ -59053,12 +59053,12 @@ wbI wbI weX wbI -uGM -uGM -uGM -lRI -uGM -bcs +oPU +oPU +oPU +gAn +oPU +pAr jgu jgu jgu @@ -59110,34 +59110,34 @@ hoZ vjT gFg vjT -fGb +jHz hoZ hoZ hoZ hoZ hoZ -njx -tXQ +lLQ +xeX hoZ -ykT -ykT -ykT -ykT -lwK -fGb -lwK -ykT -ykT -ykT -ykT +otg +otg +otg +otg +lvD +jHz +lvD +otg +otg +otg +otg aWV jXz -fGb -fGb +jHz +jHz qdJ apf ybg -hIR +muD gyB kOB kOB @@ -59147,34 +59147,34 @@ kOB eXp eXp eXp -eWu +gAh rja -gma -gma -bfZ -bfZ -bfZ -gma +bNE +bNE +pQs +pQs +pQs +bNE rja vVi rja rja rja -dUs -iOt -hJw -gFG -gma -nAr -gbD -rVZ -nAr -gma -obT -gma -vsc +oEi +kyF +hoo +cOj +bNE +raL +rty +iXJ +raL +bNE +wQb +bNE +wUs ycC -bEO +rJF ycC lqq lqq @@ -59189,33 +59189,33 @@ tPz bis bis dje -bEO -bEO -uRO -hCS -kEE -bEO -kEE +rJF +rJF +bPQ +qJP +akp +rJF +akp okv -jiW -kpm -fXv -eAy -jiW -kpm -muZ -eAy -jiW +guz +aAA +vBX +fXI +guz +aAA +ppQ +fXI +guz okv -kpm -fUF +aAA +ojk uSA -jiW -rol +guz +gcx okv -rol -jiW -emU +gcx +guz +jYn wrR ipd ipd @@ -59224,55 +59224,55 @@ wrR wrR wrR wrR -guG -guG -guG -guG -guG -xAi +teq +teq +teq +teq +teq +orC ipd -iBi -cLR -vxV -gyi -gyi -aIK +xZU +rKy +rft +iOX +iOX +xqP tRH bQM bQM itN -ujO -uGM -uGM -xub -cdD -mkB -dkC -vwc -vwc -vwc -aDl -hhg -dFE -tQi -oTU -mAg -iKG -uGM -vNr -uGM -fdK -uGM -miB -uGM -gUO -uGM -uGM -uGM -uGM -uGM -jUI -dkP +cIQ +oPU +oPU +wgO +tkj +exI +hHr +oyT +oyT +oyT +yar +wBx +nOi +txY +oWw +mdG +wjO +oPU +eFR +oPU +ccY +oPU +sBj +oPU +mpb +oPU +oPU +oPU +oPU +oPU +voi +cUA jgu itN bQM @@ -59313,39 +59313,39 @@ bQM bQM agi agi -fGb -fGb -fGb +jHz +jHz +jHz aPD hoZ hoZ hoZ -fGb +jHz itv -fGb +jHz hoZ hoZ hoZ hoZ hoZ -njx -tXQ -fGb -fGb -fGb -fGb -fGb -uTX -fGb +lLQ +xeX +jHz +jHz +jHz +jHz +jHz +jnU +jHz hoZ -fGb -fGb -fGb -fGb -fGb -fGb -fGb -fGb +jHz +jHz +jHz +jHz +jHz +jHz +jHz +jHz egv nga kOB @@ -59359,33 +59359,33 @@ qdJ rja rja rja -eWu -dUs -pbZ -iOt -iOt -xbq -iOt -iOt -iOt -iOt -iOt -kUI -iOt -hJw -gma -gma -gFG -gma -qPT -ddE -qwJ -eTn -gma -obT -gma -gFG -gXt +gAh +oEi +qug +kyF +kyF +gZG +kyF +kyF +kyF +kyF +kyF +thI +kyF +hoo +bNE +bNE +cOj +bNE +rKA +qCk +cvd +rRz +bNE +wQb +bNE +cOj +eQQ mNh lqq mxR @@ -59403,88 +59403,88 @@ dje ycC hNY ycC -uRO -bEO -kEE -bEO -wfi +bPQ +rJF +akp +rJF +bDX okv -jiW -kpm -fXv -lFC -jiW -kpm -fXv -eAy -jiW +guz +aAA +vBX +xrz +guz +aAA +vBX +fXI +guz okv -kpm -fUF +aAA +ojk uSA -jiW -rol +guz +gcx okv -rol -jiW -nyo -vPk -ohI -lfJ -tQs -kul -kul -kul -kul -kul -kul -kul -kul -wOR -yhE +gcx +guz +byT +pVD +mKx +iTJ +rwQ +tSm +tSm +tSm +tSm +tSm +tSm +tSm +tSm +plh +vMs ipd -kGu -cLR -vxV -gyi -gyi -evH +xwo +rKy +rft +iOX +iOX +hil tRH bQM bQM itN -dMO -uGM -uGM -xub -iFj -bDN -bDN -eQv -bDN -bDN -cie -bDN -bDN -qWw -hue -gKt -eoR -uGM -wFE -uGM -uGM -uJX -qUe -uGM -uGM -uGM -uGM -uGM -uGM -uGM -dAk -lrC +qeR +oPU +oPU +wgO +mPX +tiZ +tiZ +kJd +tiZ +tiZ +gkC +tiZ +tiZ +hHC +hgP +ecD +exa +oPU +dkl +oPU +oPU +qVW +vtk +oPU +oPU +oPU +oPU +oPU +oPU +oPU +tmX +xUr jgu itN bQM @@ -59525,80 +59525,80 @@ bQM bQM agi agi -fGb +jHz aWV agi agi hoZ hoZ -fGb +jHz hoZ hoZ hoZ -fGb +jHz hoZ agi agi aWV agi jXz -wVK -wVK -wVK -wVK -lwK +hrw +hrw +hrw +hrw +lvD hoZ -fGb -nBV -lwK -wVK -wVK -wVK -wVK -lwK -fGb -fGb +jHz +oiV +lvD +hrw +hrw +hrw +hrw +lvD +jHz +jHz egv nga apf kOB kOB qdJ -qtq +ekF apf -gRy -nAr -dUs -iOt -iOt -iOt -hJw -gma +fZe +raL +oEi +kyF +kyF +kyF +hoo +bNE apf -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gFG -gma -nAr -mXY -qJJ -nAr -gma -obT -gFG +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +cOj +bNE +raL +wND +imp +raL +bNE +wQb +cOj dWB -bEO -gXt +rJF +eQQ ycC lqq geL @@ -59615,72 +59615,72 @@ gPS dyB mNh dDU -uRO +bPQ ycC -kEE -bEO -kEE +akp +rJF +akp okv -jiW -kpm -ndt -pLh -qkf -jNA -bzL -eAy -jiW +guz +aAA +yeX +pen +vYY +ppS +hGn +fXI +guz okv -kpm -vdI -ivL -jiW -rol +aAA +aje +vTI +guz +gcx okv -rol -kGq -emU -vPk -ohI -ebm -qfU -qfU -qfU -fbL -qfU -qfU -qfU -qfU -djd -vxV -wcX +gcx +ffA +jYn +pVD +mKx +iBM +nMp +nMp +nMp +iHW +nMp +nMp +nMp +nMp +rdo +rft +aId ipd -wxo -cLR -vxV -gyi -gyi -gyi +cSh +rKy +rft +iOX +iOX +iOX tRH tRH bQM itN jgu -wGD -xub -xub +bGA +wgO +wgO wbI wbI wbI fZD -uGM -uGM +oPU +oPU hbo jJS occ qBB -ilb -vyA +vxu +onb rwu wbI uep @@ -59688,13 +59688,13 @@ wbI icS lFc rAK -uGM -uGM -jXv -uGM +oPU +oPU +aBZ +oPU vhB vhB -uGM +oPU jgu jgu jgu @@ -59737,8 +59737,8 @@ bQM bQM agi aWV -adk -alJ +tYg +clv dxS agi hoZ @@ -59746,8 +59746,8 @@ hoZ hoZ hoZ hoZ -nBV -fGb +oiV +jHz kAO agi agi @@ -59758,19 +59758,19 @@ aWV jXz jXz jXz -gEF +nub hoZ -fGb +jHz hoZ -gEF +nub jXz jXz jXz cvL -lwK +lvD hoZ -fGb -hvh +jHz +jsU apf kOB kOB @@ -59778,37 +59778,37 @@ kOB qdJ apf iTm -sVa -iOt -hJw -gma -gma -gma -gma +jWE +kyF +hoo +bNE +bNE +bNE +bNE apf -jxY -vky -vky -vky -vky -vky -vky -vky -vky -vky -vky -vky -vky -dOs +qpk +sWe +sWe +sWe +sWe +sWe +sWe +sWe +sWe +sWe +sWe +sWe +sWe +lRr rja rja rja rja rja rja -obT -gma -gFG +wQb +bNE +cOj bis ycC nzI @@ -59827,72 +59827,72 @@ clP dje ddG ddG -mWV -bEO -xDe +uEM +rJF +eqS bis bis bnA -qNw -joz -joz -joz -fXv -joz -joz -joz -feY +vDf +wSU +wSU +wSU +vBX +wSU +wSU +wSU +tSY bnA -qNw -vrc -lhj -jiW -rol +vDf +kok +nJq +guz +gcx okv -rol -wlp -emU +gcx +vrS +jYn wrR wrR -tWo -wRZ -gyi -nnX -dyd -dyd -vqb -kCG -wRZ -cLR -wcm -kWD +tql +xiL +iOX +pGy +eYN +eYN +ybx +jqM +xiL +rKy +fzp +aTO ipd -tyO -cLR -vxV -oex -gyi -dXH -dXH +tWh +rKy +rft +tYQ +iOX +uWe +uWe gEx bQM uGT -xub -uGM -uGM -xub +wgO +oPU +oPU +wgO bNT yge kvh wbI -uGM -uGM +oPU +oPU bNT jot nec vtl -cdD -ajK +tkj +oer bNT jot pIs @@ -59900,11 +59900,11 @@ kDN pIs fAv wbI -gUO -uGM +mpb +oPU jgu jgu -cHD +nUe cDl itN itN @@ -59949,17 +59949,17 @@ bQM agi agi aWV -aji -aqS +bPy +jyY dxS dxS hoZ bmV hoZ -uTX +jnU hoZ -nBV -fGb +oiV +jHz hoZ agi agi @@ -59967,46 +59967,46 @@ agi agi jXz jXz -uBS -uBS -lwK -lwK -tgc -lwK -lwK -wLI -kUr -jnO -dxg -bzC -lwK +oXk +oXk +lvD +lvD +pKu +lvD +lvD +bXe +iDO +oYW +qjb +qov +lvD hoZ pCX -gma +bNE iPx apf gNY egv qdJ -gRy +fZe iTm iTm -hvh -gma -gma -jxY -vky -vky -xKf -dOs +jsU +bNE +bNE +qpk +sWe +sWe +wED +lRr eXp -bFt -dCo -nAr -nAr -nAr -gma -bFt +xat +cBJ +raL +raL +raL +bNE +xat eXp dTx eXp @@ -60015,12 +60015,12 @@ eXp rja ubc gVs -hQH -hQH +lex +lex rja -obT +wQb kMq -gFG +cOj bis bis hPY @@ -60037,74 +60037,74 @@ kNs lqq agT eFD -uRO -bEO +bPQ +rJF hNY -bEO -kEE -bEO -bEO +rJF +akp +rJF +rJF bnA -iKj -joz -joz -joz -fXv -fJx -joz -joz -fXv +fLY +wSU +wSU +wSU +vBX +bnh +wSU +wSU +vBX bnA -fXv -joz -lhj -jiW -rol +vBX +wSU +nJq +guz +gcx okv -rol -kGq -emU +gcx +ffA +jYn wrR -jeD -pan -jjS -qqa -hyG -nYk -nQN -oCI -tUe -xYA -cLR -vxV -rEe +nhX +anT +vcq +kle +wHC +kat +jVM +omN +nrd +vAX +rKy +rft +jgL ipd -cyO -cLR -vxV -gyi -kWj -iWg -iWg +kdq +rKy +rft +iOX +aTY +rcc +rcc gEx bQM uGT -lmy -gbU -lQf +sFo +hnK +oqG jgu bNT azs auQ wbI -uGM -uGM +oPU +oPU wbI pKJ qun oyC -knu -fFC +hsf +sUe wbI ukr fOg @@ -60112,13 +60112,13 @@ fOg fOg rGK wbI -uGM -uGM +oPU +oPU eLu -vVu -cEl -cEl -ycd +dFK +kTs +kTs +yet eLu twb twb @@ -60161,17 +60161,17 @@ bQM agi aWV aak -akE -arS -aCV +pnh +pKO +gpY dxS hoZ hoZ -fGb +jHz hoZ hoZ hoZ -fGb +jHz hoZ agi agi @@ -60179,46 +60179,46 @@ agi agi aWV jXz -eTh -njx -lwK -wVK -lwK -njx -lwK -wOD -wOD -lwK -wOD -lPq -fGb +lBS +lLQ +lvD +hrw +lvD +lLQ +lvD +otK +otK +lvD +otK +vsL +jHz hoZ hoZ -gma +bNE nga esS apf egv qdJ -nAr -obT +raL +wQb apf -jxY -vky -xKf -dOs +qpk +sWe +wED +lRr rja rja rja rja eXp -xYY -gma -nAr -nAr -nAr -gma -wMP +mdD +bNE +raL +raL +raL +bNE +aqw eXp pTR apf @@ -60230,9 +60230,9 @@ apf apf apf rja -obT +wQb kMq -qam +umg bis bis bis @@ -60249,55 +60249,55 @@ clP dbq bis bis -hxU -bEO -uRO -bEO -kEE +wMv +rJF +bPQ +rJF +akp dje -bEO +rJF bnA -jiW -kpm -ndt -pLh +guz +aAA +yeX +pen ofw -jNA -bzL -eAy -jiW -fXv -fXv -vrc -lGm -jiW -rol +ppS +hGn +fXI +guz +vBX +vBX +kok +bem +guz +gcx okv -rol -jiW -nyo +gcx +guz +byT wrR -weS -mQe -xYA -nBK +nzf +dpZ +vAX +hWz bSM bSM bSM bSM -qVF -foL -cLR -vxV -iBi +vCm +pAl +rKy +rft +xZU ipd -xAi -cLR -vxV -gyi -iWg -eWO -iWg +orC +rKy +rft +iOX +rcc +bma +rcc gEx bQM uGT @@ -60309,14 +60309,14 @@ wbI mtj wbI wbI -xnS -xnS +lgx +lgx bNT kjT dqG nFB -sNT -ajK +rNK +oer vLH nCX dQW @@ -60324,13 +60324,13 @@ nCX nCX rwj wbI -uGM -uGM +oPU +oPU eLu -nJQ -cEl -cEl -clG +bSq +kTs +kTs +vnG eLu twb twb @@ -60374,15 +60374,15 @@ agi agi aWV agi -awh -aIZ +tqx +qvN dxS -fGb +jHz hoZ -fGb +jHz hoZ hoZ -nBV +oiV hoZ hoZ agi @@ -60391,32 +60391,32 @@ agi agi aWV jXz -lwK -lwK -wNw -njx -uhd -lwK -viH -wOD -wOD -lwK -wOD -wOD -fGb -fGb -fGb +lvD +lvD +aeb +lLQ +dLL +lvD +fuO +otK +otK +lvD +otK +otK +jHz +jHz +jHz apf uQE -gma +bNE apf rja rja -dUs -hJw -gma -gFG -mFm +oEi +hoo +bNE +cOj +myi rja rja eXp @@ -60424,13 +60424,13 @@ eXp eXp eXp eXp -bFt -gma -nAr -nAr -nAr -dCo -bFt +xat +bNE +raL +raL +raL +cBJ +xat eXp eXp eXp @@ -60442,9 +60442,9 @@ apf apf wvY rja -obT -gma -gFG +wQb +bNE +cOj bis ewE ewE @@ -60463,53 +60463,53 @@ bis bis bis bis -uRO -bEO -kEE -bEO -bEO +bPQ +rJF +akp +rJF +rJF bht hTM okv -pie -eAy -jiW -kpm -muZ -eAy -jiW -fXv -fXv -joz -lGm -tlM -rol +qhZ +fXI +guz +aAA +ppQ +fXI +guz +vBX +vBX +wSU +bem +rdi +gcx tER -rol -jiW -nyo +gcx +guz +byT wrR -gzA -eZL -cjs -mLS -eLO -eLO -eLO -eLO -eew -xYA -cLR -aLj -juE +eQz +ixK +rKG +wyd +oby +oby +oby +oby +ftd +vAX +rKy +oEX +sVZ ipd -yhE -cLR -vxV -gyi -gyi -nLf -nLf +vMs +rKy +rft +iOX +iOX +xyq +xyq gEx bQM bQM @@ -60521,14 +60521,14 @@ itN jgu jgu jgu -rjn -rjn +tkg +tkg jgu noe qun vtl -cdD -ajK +tkj +oer bNT jot kDN @@ -60536,14 +60536,14 @@ kDN kDN fAv vtl -uGM -uGM +oPU +oPU eLu -wKF -cEl -cEl -clG -rfG +xVJ +kTs +kTs +vnG +tUG twb twb kPz @@ -60589,74 +60589,74 @@ azZ lAh aMg dxS -fGb -fGb -fGb -uTX +jHz +jHz +jHz +jnU hoZ -nBV +oiV hoZ hoZ aWV aWV agi -fGb +jHz aWV jXz -lwK -wLP -qLp -fGb -frt -ugH -lwK -wSe -wSe -lwK -wSe -mSN +lvD +qaA +jlb +jHz +ifw +vWj +lvD +aZi +aZi +lvD +aZi +uEy egv -eWu -gma +gAh +bNE apf apf apf uQE apf lag -obT -pmy -gma -gFG -iry +wQb +xYN +bNE +cOj +ssM rja eXp -nAr -gbD -nKq -jIm +raL +rty +cui +mzn eXp -nIf -fiF -nAr -nAr -nAr -tNs -wTo +til +ljx +raL +raL +raL +bpe +snr eXp -nAr -gbD -rVZ -nAr -uHX +raL +rty +iXJ +raL +xlb apf apf apf apf -uHX -obT -gma -gFG +xlb +wQb +bNE +cOj wpD lpr ycC @@ -60670,57 +60670,57 @@ rFu clP fzO clP -nUy -aWD -aGs -bEO -nUy -uRO -bEO -kEE -sJw +eHk +bZn +txb +rJF +eHk +bPQ +rJF +akp +wFS hNY omI -jiW -kpm -fXv -eAy -jiW -kpm -fXv -eAy -jiW -fXv -fXv -joz -lhj -aVh +guz +aAA +vBX +fXI +guz +aAA +vBX +fXI +guz +vBX +vBX +wSU +nJq +rhh kJf okv -rol -jiW -emU +gcx +guz +jYn wrR wrR -haU -aVS -gyi -heu -heu -gyi -gyi -hYT -wRZ -cLR -vxV +iFg +bFJ +iOX +iDK +iDK +iOX +iOX +wMA +xiL +rKy +rft wrR wrR wrR -sAK -vxV -nLf -gyi -wuP +mhS +rft +xyq +iOX +hPq nvD tRH tRH @@ -60732,15 +60732,15 @@ bQM twb lXs hsZ -rxz +pBb jJb cME eLu noe qun oyC -cdD -ajK +tkj +oer bNT azs fOg @@ -60748,15 +60748,15 @@ fOg syU auQ oyC -uGM +oPU vhB ayX -jmV +qbn gfo qPr -ycd -clG -kDW +yet +vnG +kRO twb kPz bQM @@ -60803,72 +60803,72 @@ azZ agi qRg aWV -gEF +nub hoZ hoZ hoZ -gEF +nub agi agi agi hoZ -dfD -fGb +ifL +jHz jXz -lwK -wXP -qOy -xvD -nGX -ukz -lwK -wNw -uhd -njx -wNw -uhd +lvD +eME +wMh +kQG +lEk +wcB +lvD +aeb +dLL +lLQ +aeb +dLL egv -gma -gma +bNE +bNE apf apf apf apf apf lag -obT -gma -gma -gFG -wCA +wQb +bNE +bNE +cOj +seh rja eXp -qPT -ewY -gzF -sjl -mzF -dka -rTL -azN -azN -azN -vpJ -dka -gma -qPT -ddE -qwJ -eTn +rKA +bff +bxg +jlB +xrZ +xGc +uws +uzy +uzy +uzy +iAq +xGc +bNE +rKA +qCk +cvd +rRz rja apf esS apf -wAM +xYe rja -obT -gma -gFG +wQb +bNE +cOj bis xIx ycC @@ -60883,58 +60883,58 @@ wMi wMi bis bis -jLF -nUy -dRm +kzB +eHk +eFq bis -uRO -bEO -kEE -bEO +bPQ +rJF +akp +rJF dje -gZT +lcn okv -aam -fXv -eAy -jiW -kpm -muZ -eAy -iTG -twL -fXv -joz -lhj -aVh +xbr +vBX +fXI +guz +aAA +ppQ +fXI +wSX +iuz +vBX +wSU +nJq +rhh uEj okv -rol -jiW -emU -vPk -ohI -lfJ -kul -oQF -kul -kul -kul -kul -tQs -kul -eVb -jya -kul -kul -kul -elq -jya -kul -kul -kul -kul -idO +gcx +guz +jYn +pVD +mKx +iTJ +tSm +opP +tSm +tSm +tSm +tSm +rwQ +tSm +sjX +mdS +tSm +tSm +tSm +sbW +mdS +tSm +tSm +tSm +tSm +gLK gEx bQM bQM @@ -60944,15 +60944,15 @@ bQM tPN luy doY -rxz +pBb cME jJb eLu tOS qun -joE -cdD -qHK +oyJ +tkj +nju wbI nCX nCX @@ -60960,15 +60960,15 @@ xgx nCX pBT wbI -uGM +oPU vhB ayX -cEl +kTs gfo gfo -ycd -clG -mRk +yet +vnG +vnA twb kPz bQM @@ -61015,30 +61015,30 @@ bQM agi aWV agi -lwK -uTX +lvD +jnU hoZ -nBV -lwK +oiV +lvD agi -gEF -fGb +nub +jHz hoZ hoZ -fGb +jHz hoZ -dfa -nBV -njx -fGb -njx -uTX -lwK -uTX -nBV -njx -uTX -nBV +tfw +oiV +lLQ +jHz +lLQ +jnU +lvD +jnU +oiV +lLQ +jnU +oiV egv apf apf @@ -61048,39 +61048,39 @@ pKY qlf hcv hds -vBY -wek -gma -gFG +wnh +fth +bNE +cOj eXp eXp eXp -nAr -mXY -uAv -qzB -gma -gma -gma -nAr -nAr -nAr -gma -gma -gma -nAr -mXY -qJJ -nAr +raL +wND +xDk +xWE +bNE +bNE +bNE +raL +raL +raL +bNE +bNE +bNE +raL +wND +imp +raL rja rja rja rja rja rja -obT +wQb kMq -gFG +cOj bis ewE ycC @@ -61099,9 +61099,9 @@ bis bis bis bis -uRO -bEO -kEE +bPQ +rJF +akp bis bis bnA @@ -61110,43 +61110,43 @@ cEw bnA bnA bnA -pqq -joz -joz -joz -ptV -fXv -joz -lGm -aVh +vql +wSU +wSU +wSU +oVk +vBX +wSU +bem +rhh jji vjG -rol -jiW -nyo -vPk -ohI -dsQ -qfU -qfU -qfU -qfU -qfU -qfU -qfU -dDS -djd -dMv -qfU -qfU -djd -wRZ -wRZ -dMv -qfU -qfU -djd -vxV +gcx +guz +byT +pVD +mKx +dBt +nMp +nMp +nMp +nMp +nMp +nMp +nMp +mDq +rdo +mAt +nMp +nMp +rdo +xiL +xiL +mAt +nMp +nMp +rdo +rft gEx bQM bQM @@ -61156,15 +61156,15 @@ bQM twb qDn hUO -rxz +pBb cME cME eLu jgu iSu vtl -cdD -ajK +tkj +oer bNT esZ kDN @@ -61172,15 +61172,15 @@ kDN kDN exO wbI -uGM -uGM +oPU +oPU eLu -vVu -cEl -cEl -ycd -xzr -mRk +dFK +kTs +kTs +yet +gSC +vnA twb kPz bQM @@ -61227,138 +61227,138 @@ bQM agi agi agi -lwK -uTX +lvD +jnU pCX -nBV -lwK +oiV +lvD agi -gEF -dfD +nub +ifL hoZ hoZ hoZ -gEF -eQD -nBV -qQO -rVS -njx -uTX -lwK -xfR -nBV -njx -uTX -vzk -gma +nub +qYZ +oiV +neT +xdL +lLQ +jnU +lvD +pPo +oiV +lLQ +jnU +vFA +bNE apf iLJ apf -gma -gma -gma -gma +bNE +bNE +bNE +bNE rja -obT -gma -gma -mOF -iOt -iOt -iOt -iOt -sPC -iZt -cOn -cnn -iOt -hSf -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -iOt -hJw +wQb +bNE +bNE +pQz +kyF +kyF +kyF +kyF +xYR +ceB +frc +nEh +kyF +bpo +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +kyF +hoo kMq -qam +umg bis ewE ycC kCI bis -lOE -mTX -gQx +xzN +bDM +bTc lqq mxR lqq lqq lqq -ahn -mTX -axi +ilM +bDM +pgQ bis bFr -aaj -bEO -kEE -iFD +hIX +rJF +akp +bHt bFr cEw cEw cEw cEw bnA -oKl -joz -joz +aQR +wSU +wSU uSA -joz -ptV -fXv -vrc -lGm -jiW -rol +wSU +oVk +vBX +kok +bem +guz +gcx okv -rol -jiW -nyo +gcx +guz +byT wrR -plr -ilI +vdH +eyv wrR wrR -kbA -gyi -gYA +oJl +iOX +vXk wrR ipd wrR -oJU -vhC -wRZ -gyi -nnX -dyd -dyd -vqb -gyi -wRZ -cLR -vxV +qjX +wDe +xiL +iOX +pGy +eYN +eYN +ybx +iOX +xiL +rKy +rft tRH tRH tRH @@ -61368,15 +61368,15 @@ twb twb nzU lvg -rxz +pBb cME uzw eLu jgu jgu fic -cdD -ajK +tkj +oer bNT azs deB @@ -61384,15 +61384,15 @@ sjR deB auQ wbI -uGM -uGM +oPU +oPU eLu -nBp -cEl -cEl -kPJ -clG -kDW +sIs +kTs +kTs +hgA +vnG +kRO twb kPz bQM @@ -61439,93 +61439,93 @@ bQM aWV fXL fXL -gXH -hAp +sjT +pmv iDq iDq -gXH +sjT fXL agi -fGb +jHz hoZ hoZ hoZ -gEF -eQD -lwK -vco -usq -uFX -lwK -lwK -uTX -wRv -njx -uTX -nBV +nub +qYZ +lvD +jCe +sxk +ddN +lvD +lvD +jnU +xvC +lLQ +jnU +oiV uQE apf apf -gma -eWu +bNE +gAh egv egv rja rja -obT -gma -gma -wEa -gma -gma -gma -gma -gma -qDi -xkj -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma -gma +wQb +bNE +bNE +vgi +bNE +bNE +bNE +bNE +bNE +vSC +eJK +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE +bNE kMq kMq -gma -gma -gma +bNE +bNE +bNE kMq kMq -gma -gFG +bNE +cOj bis kCI ycC bis bis -cGm -kLY -klL +gKG +gjY +lKP lqq lqq lqq epV lqq -hZp -lmr -pIo +oYG +bXh +lpd bis bis -fRG -bEO -xDe +kCj +rJF +eqS bis bFr cEw @@ -61533,48 +61533,48 @@ cEw cEw cEw bnA -xrU +tEX uSA uSA -joz -joz -aVE -fXv -joz -lhj -jiW -rol +wSU +wSU +eys +vBX +wSU +nJq +guz +gcx kEj -rol -jiW -emU -vPk -oWc -ohI +gcx +guz +jYn +pVD +iQH +mKx ipd -rWi -ohI -wRZ -ohI -wRZ -saQ +ncs +mKx +xiL +mKx +xiL +gvr ipd -cLR -vxV -xYA -qqa -uOR -nYk -nQN -oCI -tUe -xYA -cLR -vxV +rKy +rft +vAX +kle +mLm +kat +jVM +omN +nrd +vAX +rKy +rft wrR -gyi -gyi -kCG +iOX +iOX +jqM wrR eLu eLu @@ -61587,8 +61587,8 @@ eLu noe qun msu -qnE -oaI +lte +hdA fbo wbI fZD @@ -61596,14 +61596,14 @@ wbI wbI wbI wbI -uGM -uGM +oPU +oPU eLu -qmS -cEl -cEl -clG -cyu +kon +kTs +kTs +vnG +uIg twb twb kPz @@ -61651,79 +61651,79 @@ bQM agi agi agi -lwK -uTX +lvD +jnU hoZ -nBV -lwK +oiV +lvD agi -fGb -fGb +jHz +jHz hoZ hoZ hoZ jXz -onw -njx -lwK -ykT -lwK -njx -pyv -vco -uFX -agi -vco -uFX +rHV +lLQ +lvD +otg +lvD +lLQ +cNe +jCe +ddN +agi +jCe +ddN apf esS -gma +bNE egv egv egv egv eXp rja -dUs -uAv -vky -rHx -vky -xKf -vky -dUs -iOt -iOt -uAv -vky -xKf -vky -vky -vky -vky -vky -xKf -vky -dUs -iOt -iOt -uAv -vky -vky -xKf -vky -vky -vky -vky -vky -dOs +oEi +xDk +sWe +kzx +sWe +wED +sWe +oEi +kyF +kyF +xDk +sWe +wED +sWe +sWe +sWe +sWe +sWe +wED +sWe +oEi +kyF +kyF +xDk +sWe +sWe +wED +sWe +sWe +sWe +sWe +sWe +lRr bis tgB tgB bis nOz -tvX -rJK +mCp +gTi xst lqq lqq @@ -61731,67 +61731,67 @@ lqq lqq lqq vrT -tvX -rJK +mCp +gTi nOz bis -uRO -uxp -kEE -iFD +bPQ +qGh +akp +bHt bFr cEw cEw cEw cEw bnA -jxN -joz -joz +dCt +wSU +wSU uSA -joz -joz -fXv -vrc -lhj -jiW -rol +wSU +wSU +vBX +kok +nJq +guz +gcx okv -rol -jiW -emU -vPk -ohI -ohI +gcx +guz +jYn +pVD +mKx +mKx ipd -oxN -ohI -wRZ -ohI -wRZ -ozH +drt +mKx +xiL +mKx +xiL +ltz ipd -cLR -vha -xYA -nBK +rKy +iEA +vAX +hWz bSM bSM bSM bSM -qVF -xYA -cLR -vxV +vCm +vAX +rKy +rft wrR -kbA -gyi -cxn +oJl +iOX +tJC wrR -jKm -aGV -ofb -nRf +qzo +neE +iTK +uMc eLu cME cME @@ -61799,23 +61799,23 @@ eLu fOg xVK fZD -cdD -ajK -uGM -uGM -uGM -uGM -uGM -uGM -uGM -gUO +tkj +oer +oPU +oPU +oPU +oPU +oPU +oPU +oPU +mpb vhB ayX -cEl +kTs gfo gfo -cEl -fBp +kTs +kSB twb twb kPz @@ -61863,11 +61863,11 @@ azZ agi agi hoZ -lwK -uTX +lvD +jnU hoZ -nBV -lwK +oiV +lvD hoZ hoZ hsc @@ -61875,13 +61875,13 @@ hoZ bmV aWV jXz -oxg -pyv -lwK -lwK -tjU -lwK -lwK +afX +cNe +lvD +lvD +kvg +lvD +lvD agi agi agi @@ -61889,24 +61889,24 @@ agi agi apf apf -gma +bNE egv egv tel ioM ioM ioM -oAm -vQN +sKu +iXs ioM ioM ioM ioM ioM -oAm -vMh -vMh -vQN +sKu +chx +chx +iXs ioM ioM ioM @@ -61916,17 +61916,17 @@ ioM ioM ioM ioM -oAm -vMh -vMh -vQN +sKu +chx +chx +iXs ioM ioM hVI hVI hVI -hDy -hDy +jMh +jMh hVI hVI hVI @@ -61934,22 +61934,22 @@ nXj nXj sJu lqq -tvX -rJK +mCp +gTi kHf -rlC +tcL nOz pVR nOz -jBS +jeL fKm -tvX -rJK +mCp +gTi lqq wpD -uRO -bEO -kEE +bPQ +rJF +akp bis bFr cEw @@ -61958,52 +61958,52 @@ cEw cEw cEw bnA -nBu -joz -joz -joz -joz -fXv -eZm -tMn -jiW -rol +rPf +wSU +wSU +wSU +wSU +vBX +xNn +eBr +guz +gcx okv -rol -jiW -emU -vPk -ohI -ohI +gcx +guz +jYn +pVD +mKx +mKx ipd -iMM -ohI -xfV -ohI -wRZ -nIo +kFd +mKx +sMY +mKx +xiL +vwN ipd -cLR -vxV -xYA -mLS -eLO -eLO -eLO -eLO -eew -xYA -cLR -jya +rKy +rft +vAX +wyd +oby +oby +oby +oby +ftd +vAX +rKy +mdS aMM -kul -kul -kul +tSm +tSm +tSm aMM -sRV -fnB -fnB -xDQ +gag +ubP +ubP +ejs liA cME cME @@ -62011,23 +62011,23 @@ liA nCX nCX wbI -cdD -ajK -uGM -gUO -uGM -uGM -uGM -uGM -uGM -uGM +tkj +oer +oPU +mpb +oPU +oPU +oPU +oPU +oPU +oPU vhB ayX -cEl +kTs gfo gfo -cEl -mJz +kTs +pYz twb twb kPz @@ -62075,11 +62075,11 @@ azZ agi agi agi -lwK -uTX +lvD +jnU pCX -nBV -lwK +oiV +lvD hoZ hoZ hsc @@ -62088,9 +62088,9 @@ hoZ aWV aWV aWV -eDs -eDs -eDs +wIy +wIy +wIy jXz aWV agi @@ -62101,25 +62101,25 @@ agi agi apf apf -eWu +gAh egv egv tel ioM ioM ioM -mJy -cwO +dOO +oTi ioM hVI hVI -goA -wYx -ryN -jEb -jEb -tur -kiE +slh +vfL +dAg +jbq +jbq +brC +gQz hVI hVI hVI @@ -62127,15 +62127,15 @@ hVI hVI hVI hVI -fPZ -ryN -jEb -jEb -tur -tSn +bLM +dAg +jbq +jbq +brC +uMT sJu -nFI -iPM +vBF +qrn hVI bmE bmE @@ -62146,8 +62146,8 @@ mEO mEO hVI nOz -tvX -rJK +mCp +gTi eTc sfi mWX @@ -62155,67 +62155,67 @@ mWX mWX ifk eTc -tvX -rJK +mCp +gTi nOz bis -uRO -bEO -olC -vNt +bPQ +rJF +rkv +fVs cvn bQM bQM bQM kPz wyT -joz -tBt -jiW -kpm -joz -joz -fXv -fUF -fXv -jiW -rol +wSU +dXK +guz +aAA +wSU +wSU +vBX +ojk +vBX +guz +gcx okv -rol -jiW -emU +gcx +guz +jYn wrR -plr -ilI +vdH +eyv wrR wrR -kbA -gyi -gYA +oJl +iOX +vXk wrR ipd wrR -oJU -vxV -wRZ -gyi -hdv -gyi -xeD -gyi -gyi -wRZ -cLR -dMv +qjX +rft +xiL +iOX +qGf +iOX +vQi +iOX +iOX +xiL +rKy +mAt aMM -qfU -qfU -qfU +nMp +nMp +nMp aMM -sRV -fnB -fnB -fnB +gag +ubP +ubP +ubP phe uJg cME @@ -62223,9 +62223,9 @@ eLu kDN exO wbI -cdD -ajK -uGM +tkj +oer +oPU eLu eLu eLu @@ -62235,10 +62235,10 @@ eLu eLu eLu eLu -jJG -cEl -cEl -wCV +cmE +kTs +kTs +lJI eLu twb twb @@ -62288,26 +62288,26 @@ agi agi agi aWV -eDs -eDs -eDs +wIy +wIy +wIy jXz -gEF -gEF +nub +nub agi agi -fGb -fGb +jHz +jHz jXz -rPh -rPh -rPh -rPh -rPh +pgb +pgb +pgb +pgb +pgb jXz xLi -smq -uPz +sQz +iFz azZ xLi rja @@ -62320,35 +62320,35 @@ ioM ioM ioM ioM -oAm -vQN +sKu +iXs ioM hVI -hBX -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ -hBX +fCr +bLM +bLM +bLM +bLM +bLM +bLM +bLM +fCr hVI hVI hVI hVI hVI -hBX -fPZ -ouS -xUq -fPZ -fPZ -tSn +fCr +bLM +eRZ +trN +bLM +bLM +uMT sJu cyV cyV -iPM +qrn cyV cyV sJu @@ -62358,76 +62358,76 @@ mJk svh hVI bis -tvX -tcO -mTX -mTX -mTX -mTX -mTX -mTX -mTX -hOz -rJK +mCp +iYa +bDM +bDM +bDM +bDM +bDM +bDM +bDM +szs +gTi bis bis -uRO -bEO -bEO -kEE +bPQ +rJF +rJF +akp cvn kPz kPz kPz cEw wyT -joz -eAy -jiW -kpm -joz -joz -fXv -fUF -fXv -jiW -rol +wSU +fXI +guz +aAA +wSU +wSU +vBX +ojk +vBX +guz +gcx okv -rol -jiW -dmH -xDz -wRZ -lfJ -kul -kul -kul -kul -kul -kul -kul -kul -elq -jya -kul -kul -kul -kul -kul -kul -kul -kul -elq -vxV +gcx +guz +bxA +cKU +xiL +iTJ +tSm +tSm +tSm +tSm +tSm +tSm +tSm +tSm +sbW +mdS +tSm +tSm +tSm +tSm +tSm +tSm +tSm +tSm +sbW +rft wrR -gyi -gyi -gyi +iOX +iOX +iOX wrR -fnB -fnB -fnB -ofb +ubP +ubP +ubP +iTK eLu cME cME @@ -62435,17 +62435,17 @@ eLu deB auQ wbI -cdD -ajK -wRn +tkj +oer +lgS eLu eLu eLu -mea -mea +bhf +bhf eLu -mea -mea +bhf +bhf eLu eLu ppI @@ -62499,68 +62499,68 @@ azZ azZ azZ azZ -rPh -rPh -rPh -rPh -rPh -xjK -kRt +pgb +pgb +pgb +pgb +pgb +mvp +cJL azZ xLi ddL ddL xLi -xjK -xjK -xjK -pQh -xjK -jES -xjK -xjK -xjK -azZ -azZ -fPZ -fPZ -fPZ +mvp +mvp +mvp +rYw +mvp +luZ +mvp +mvp +mvp +azZ +azZ +bLM +bLM +bLM mEO -fPZ -vmr +bLM +xsC hVI -jTG -kwK -kye -ryN -tur -fPZ -nHH -mhb -aja -leR -fPZ -fPZ -mFh -mhb -dFG -dla -dla -iRc -nsb -wVL -aja -fPZ -fPZ -bGs -hjr -bdL -dFG +bPV +aJo +ayB +dAg +brC +bLM +aKb +jQs +xEH +iNt +bLM +bLM +ddB +jQs +veR +fYa +fYa +gbv +gBN +jpQ +xEH +bLM +bLM +oQk +hOG +xMX +veR ioM hVI cyV cyV -iPM +qrn cyV mbg ioM @@ -62570,76 +62570,76 @@ mrX mrX pkM bis -wjk -bJF -bJF -bJF -lmr -bEO -nrY -bJF -bJF -bJF -dgF +wzH +tyj +tyj +tyj +bXh +rJF +nTv +tyj +tyj +tyj +dtS bis -sXy -usa -vNF -uqa -kEE +byB +etj +wpy +cCO +akp cvn bQM bQM bQM wyT -joz -ndt -pLh +wSU +yeX +pen ofw -jNA -bzL -mrO -fXv -vdI -ivL -jiW -rol +ppS +hGn +lit +vBX +aje +vTI +guz +gcx okv -rol -jiW -fXv -bYB -wRZ -cLR -wRZ -wRZ -wRZ -uRX -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -wRZ -mOn +gcx +guz +vBX +evT +xiL +rKy +xiL +xiL +xiL +vCl +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +xiL +fXD wrR wrR jRh wrR wrR -lbk -crO -fnB -aGV +rfQ +qMI +ubP +neE eLu eLu eLu @@ -62647,9 +62647,9 @@ eLu sGI szK wbI -iFj -xIo -uGM +mPX +qhk +oPU eLu mTM gyJ @@ -62663,8 +62663,8 @@ gyJ cME cME eLu -jvB -vsg +tHJ +lQJ twb twb twb @@ -62708,73 +62708,73 @@ lAh lAh azZ azZ -sqg -sqg -xRh -hhl -hTt -iHU -iYq -xjK -xMg -sqg -sqg -szQ -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -azZ -azZ -azZ -lle -mhb -mhb +hae +hae +ceJ +mJH +hAX +tsA +oZk +mvp +lkr +hae +hae +ncF +hae +hae +hae +hae +hae +hae +hae +hae +hae +hae +hae +hae +azZ +azZ +azZ +kpe +jQs +jQs mEO -mhb +jQs mEO mEO -fPZ -cwO -mFh -mhb -aja -mJy -qxL -cwO -mFh -mhb -aja -mJy -fPZ -vkC -mFh -mhb -aja -mJy -fPZ -cwO -mFh -vtn -aja -jUB -fPZ -vbF +bLM +oTi +ddB +jQs +xEH +dOO +asI +oTi +ddB +jQs +xEH +dOO +bLM +dVD +ddB +jQs +xEH +dOO +bLM +oTi +ddB +nmK +xEH +xfh +bLM +ftS ioM hVI -iPM -iPM +qrn +qrn hVI -iPM -iPM +qrn +qrn ioM ioM bmE @@ -62786,9 +62786,9 @@ jUs clP oxS eTc -nHG -bEO -rJK +gdQ +rJF +gTi eTc clP oxS @@ -62796,72 +62796,72 @@ iwf bFr cvn cvn -uRO -bEO -kEE +bPQ +rJF +akp cvn bFr cvn cvn cEw -joz -joz -eAy -jiW -kpm -joz -joz -fXv -vrc -lhj -jiW -rol +wSU +wSU +fXI +guz +aAA +wSU +wSU +vBX +kok +nJq +guz +gcx okv -rol -jiW -bLd -gMV -wRZ -rkr -qfU -qfU -qfU -qfU -qfU -qfU -qfU -qfU -djd -dMv -qfU -qfU -qfU -qfU -qfU -qfU -qfU -qfU -djd -vxV +gcx +guz +eQY +sVd +xiL +sFd +nMp +nMp +nMp +nMp +nMp +nMp +nMp +nMp +rdo +mAt +nMp +nMp +nMp +nMp +nMp +nMp +nMp +nMp +rdo +rft wrR -gyi -gyi -gyi +iOX +iOX +iOX wrR -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP fXB -jUI -jUI +voi +voi vhB -uGM -uGM -uGM -uGM -uGM -lzX +oPU +oPU +oPU +oPU +oPU +lRq liA cME cME @@ -62875,10 +62875,10 @@ xno cME cME ayX -hxg -goz -tUr -fAh +qsF +dYV +upf +nWB twb kPz kPz @@ -62919,76 +62919,76 @@ bQM azZ azZ azZ -kbO -kbO -dFk -ezJ -xjK -rPh -ruy -iZn -xjK -tOr -hmk -kbO -mqo -kbO -kbO -kbO -kbO -kbO -fhZ -kbO -tLY -dFk -hmk -kbO -vFF -kbO +eqU +eqU +uAg +kpq +mvp +pgb +dqX +jFD +mvp +cer +pvF +eqU +eHn +eqU +eqU +eqU +eqU +eqU +hmE +eqU +hvp +uAg +pvF +eqU +qSA +eqU azZ azZ azZ -jEb -jEb -jEb -jEb +jbq +jbq +jbq +jbq mEO -ryN -jEb -tur -mJy -fPZ -cwO -ryN -jEb -tur -mJy -fPZ -cwO -ryN -jEb -qBG -mJy -wRo -vbF -ryN -jEb -tur -idT -fPZ -cwO -ryN -jEb -deE -tSn +dAg +jbq +brC +dOO +bLM +oTi +dAg +jbq +brC +dOO +bLM +oTi +dAg +jbq +rcE +dOO +ekz +ftS +dAg +jbq +brC +kQr +bLM +oTi +dAg +jbq +evk +uMT sJu cyV cyV -iPM +qrn cyV cyV -iPM -iPM +qrn +qrn cyV tQB bQM @@ -62998,9 +62998,9 @@ jjW tna umW jjW -tvX -bEO -rJK +mCp +rJF +gTi jjW tna umW @@ -63011,69 +63011,69 @@ cvn iKs iKs iKs -gQh -qwl -ilX -rkQ -xrs -bUy -joz -eAy -jiW -kpm -joz -joz -fXv +kpR +uLM +cxc +ldd +nIb +gSK +wSU +fXI +guz +aAA +wSU +wSU +vBX bnA -lGm -jiW -rue -dfV -efS -jiW -emU +bem +guz +pCH +awL +wSt +guz +jYn wrR -ohI -vxV -wRZ -gyi -nnX -dyd -dyd -vqb -gyi -wRZ -tRt -vxV -eqq -nrI -nnX -dyd -dyd -vqb -kCG -wRZ -cLR -jya +mKx +rft +xiL +iOX +pGy +eYN +eYN +ybx +iOX +xiL +gmx +rft +kgY +mxm +pGy +eYN +eYN +ybx +jqM +xiL +rKy +mdS aMM -kul -kul -kul +tSm +tSm +tSm aMM -sRV -fnB -fnB -fnB +gag +ubP +ubP +ubP fXB -jUI -jUI +voi +voi vhB -uGM -uGM -uGM -uGM -wQs -uGM +oPU +oPU +oPU +oPU +oMu +oPU eLu cME cPq @@ -63087,10 +63087,10 @@ cPq cME cME ayX -hxg +qsF mHC gfo -bNz +ivK twb twb kPz @@ -63133,74 +63133,74 @@ azZ azZ azZ azZ -ghv -ezJ -xjK -hUh -iJC -iZZ -xjK -muT -ezJ +nQE +kpq +mvp +gTN +wln +rot +mvp +xmC +kpq azZ azZ -xjK -xjK -xjK -xjK -xjK -xjK -xjK -xjK -tOr -ezJ -nvZ -xjK -xjK -tuo +mvp +mvp +mvp +mvp +mvp +mvp +mvp +mvp +cer +kpq +jVt +mvp +mvp +erj azZ azZ azZ azZ -jlg -vmr +eLw +xsC hVI -vmr -fPZ -fPZ -ryN -jEb -tur -fPZ -fPZ -fPZ -ryN -jEb -tur -fPZ -fPZ -bGs -kic -jEb -eYi -fPZ -ajN -fPZ -mUk -rfq -tur -fPZ -fPZ -fPZ -dxA +xsC +bLM +bLM +dAg +jbq +brC +bLM +bLM +bLM +dAg +jbq +brC +bLM +bLM +oQk +iKO +jbq +uJQ +bLM +raP +bLM +fqh +aSm +brC +bLM +bLM +bLM +omO sJu cyV cyV -iPM +qrn kvx cyV -iPM -iPM +qrn +qrn cyV tQB bQM @@ -63210,9 +63210,9 @@ jjW tna umW ovM -tvX -bEO -rJK +mCp +rJF +gTi alX tna umW @@ -63220,90 +63220,90 @@ jjW cvn bQM cvn -gpB -bEO -uxp -ruv -ruv -ruv -ruv -eeL -joz -ndt -pLh +vCu +rJF +qGh +wNX +wNX +wNX +wNX +lri +wSU +yeX +pen ofw -jNA -bzL -mrO -feY +ppS +hGn +lit +tSY bnA -lhj -jiW -jiW -jiW -jiW -jiW -emU +nJq +guz +guz +guz +guz +guz +jYn wrR -ohI -vxV -otG -qqa -uOR -nYk -nQN -oCI -tUe -xYA -cLR -vxV -meM -qqa -uOR -nYk -nQN -oCI -tUe -xYA -cLR -dMv +mKx +rft +aYf +kle +mLm +kat +jVM +omN +nrd +vAX +rKy +rft +oeV +kle +mLm +kat +jVM +omN +nrd +vAX +rKy +mAt aMM -qfU -qfU -qfU +nMp +nMp +nMp aMM -sRV -fnB -tZo -fnB +gag +ubP +iwu +ubP fXB -jUI -jUI +voi +voi vhB -xnS -uGM -uGM -uGM -uGM -wRn +lgx +oPU +oPU +oPU +oPU +lgS eLu eLu eLu -mea -mea +bhf +bhf eLu -mea -mea +bhf +bhf eLu eLu cME cME eLu -fWD -uJM +wxl +hZN gfo -goz -opC +dYV +dxv twb kPz bQM @@ -63346,30 +63346,30 @@ azZ azZ azZ azZ -ezJ -rPh -hWB -rPh -rPh -rPh -ghv -ezJ +kpq +pgb +vFS +pgb +pgb +pgb +nQE +kpq azZ xLi xLi xLi -dNF -dNF -jmM +rHX +rHX +esR xLi -idV -xjK -tOr -ezJ -npV -xjK -xjK -tuo +hrA +mvp +cer +kpq +jdn +mvp +mvp +erj azZ azZ azZ @@ -63379,11 +63379,11 @@ aFZ ioM ioM ioM -iCo -iCo -iCo -iCo -iCo +xUn +xUn +xUn +xUn +xUn aFZ aFZ tQB @@ -63393,27 +63393,27 @@ tQB tQB aFZ aFZ -fPZ -fPZ -fPZ +bLM +bLM +bLM hVI hVI hVI hVI hVI -daP -yfB -daP +luf +hDV +luf ioM hVI -iPM -iPM -iPM -iPM -ykI +qrn +qrn +qrn +qrn +hIO hVI -uLX -kZI +fDi +cqX tQB bQM bQM @@ -63422,9 +63422,9 @@ jjW tna umW jjW -tvX -bEO -rJK +mCp +rJF +gTi jjW tna umW @@ -63435,59 +63435,59 @@ cvn iKs iKs iKs -bEO +rJF iKs iKs iKs -joz -joz -joz -eAy -jiW -kpm -joz -joz -fXv +wSU +wSU +wSU +fXI +guz +aAA +wSU +wSU +vBX bnA -mRT -hxk -pip -fXv -pCS -hxk -nLh +mOm +cZP +vov +vBX +qLv +cZP +jRC wrR -plr -vxV -xYA -nBK +vdH +rft +vAX +hWz bSM bSM bSM bSM -kSL -xYA -cLR -vxV -mCG -nBK +wYP +vAX +rKy +rft +lIH +hWz bSM bSM bSM bSM -qVF -xYA -cLR -vxV +vCm +vAX +rKy +rft wrR -kbA -gyi -cxn +oJl +iOX +tJC wrR -fnB -fnB -fnB -vGe +ubP +ubP +ubP +aTx eLu eLu eLu @@ -63512,10 +63512,10 @@ tPN twb twb twb -laG -cEl -cEl -krT +vQJ +kTs +kTs +hej twb kPz kPz @@ -63558,29 +63558,29 @@ azZ azZ azZ azZ -ezJ +kpq azZ azZ azZ azZ azZ -tOr +cer azZ azZ xLi -eXd -dNF -xMg -sqg -xRh -pBn -xjK -xjK -tOr -ezJ -sNd -xjK -ehf +oZf +rHX +lkr +hae +ceJ +sbL +mvp +mvp +cer +kpq +fKP +mvp +vRH azZ azZ azZ @@ -63591,11 +63591,11 @@ aFZ ioM ioM ioM -iPM -idE -idE -idE -qUQ +qrn +byY +byY +byY +eRF aFZ bQM bQM @@ -63610,22 +63610,22 @@ jjs hVI hVI jvm -kqz +tja aif -hvi -kqz -kqz -kqz +xuQ +tja +tja +tja ioM -gSD -dDm -iPM -iPM -iPM -tng +iUc +nEB +qrn +qrn +qrn +bwj hVI -uLX -kZI +fDi +cqX tQB bQM bQM @@ -63634,9 +63634,9 @@ jjW tna umW alX -tvX -bEO -rJK +mCp +rJF +gTi jjW tna umW @@ -63644,62 +63644,62 @@ jjW cvn bQM cvn -uRO -bEO -bEO -vMQ -rrP -vMQ -vMQ -nrR -joz -joz -eAy -jiW -kpm -joz -joz -aiV +bPQ +rJF +rJF +xow +pBe +xow +xow +caC +wSU +wSU +fXI +guz +aAA +wSU +wSU +lNP bnA bnA -vGV -eXU -noY -tVG -xhc +eOI +aqj +fpN +bQj +oxU wrR wrR -ohI -vxV -xYA -mLS -eLO -eLO -eLO -eLO -eew -xYA -cLR -vxV -xOV -mLS -eLO -eLO -eLO -lCE -eew -xYA -cLR -vxV +mKx +rft +vAX +wyd +oby +oby +oby +oby +ftd +vAX +rKy +rft +iiz +wyd +oby +oby +oby +hKP +ftd +vAX +rKy +rft wrR -gyi -gyi -gyi +iOX +iOX +iOX wrR axA -fnB -fnB -fnB +ubP +ubP +ubP eLu iuZ cME @@ -63707,9 +63707,9 @@ nUJ cME cME eLu -jUI -jUI -lrC +voi +voi +xUr itN swg fQV @@ -63724,10 +63724,10 @@ fQV fQV erT twb -bxr +chE kMU gfo -bNz +ivK twb twb kPz @@ -63780,36 +63780,36 @@ phz azZ azZ xLi -mNj -xMg -sqg -xRh -pAe -qTr -xjK -xjK -tOr -ezJ -xjK -xjK -xjK -azZ -azZ -azZ -bQM -pfi -hbC -hbC -ssD -iSi -ssD -oYH -oYH -oYH -oYH -oYH +tYU +lkr +hae +ceJ +bGH +kWS +mvp +mvp +cer +kpq +mvp +mvp +mvp +azZ +azZ +azZ +bQM +dPZ +ogf +ogf +tsc +bEk +tsc +tii +tii +tii +tii +tii bTI -iSi +bEk hEb hzG hzG @@ -63817,26 +63817,26 @@ hay vmj bQM aFZ -fTA -kqz -kqz +cdY +tja +tja hVI iJF -tVt +nuN hVI -mbi -kqz -kqz -bII +nQl +tja +tja +cgx ioM -iPM +qrn cyV ndZ -iPM +qrn cyV cyV -iPM -iPM +qrn +qrn cyV tQB bQM @@ -63846,9 +63846,9 @@ jjW tna umW jjW -tvX -bEO -rJK +mCp +rJF +gTi jjW tna umW @@ -63859,59 +63859,59 @@ cvn iKs iKs iKs -gQh -keV -pYI -oAa -xrs -qbD +kpR +iDQ +sUr +iyY +nIb +lQo cEw wyT wyT wyT -joz -joz -fXv -fXv -jiW -fXv -fXv -fXv -fXv -bcH -guG -wRZ -ohI -vxV -wRZ -gyi -gyi -gyi -kCG -kCG -gyi -wRZ -cLR -vxV -wRZ -gyi -gyi -gyi -gyi -gyi -gyi -wRZ -cLR -vxV +wSU +wSU +vBX +vBX +guz +vBX +vBX +vBX +vBX +bXA +teq +xiL +mKx +rft +xiL +iOX +iOX +iOX +jqM +jqM +iOX +xiL +rKy +rft +xiL +iOX +iOX +iOX +iOX +iOX +iOX +xiL +rKy +rft wrR wrR jRh wrR wrR xiF -fnB -fnB -xDQ +ubP +ubP +ejs liA cME nqL @@ -63919,9 +63919,9 @@ cME cME cME eLu -jUI -jUI -sRk +voi +voi +lwA uGT bTo afk @@ -63936,11 +63936,11 @@ afk afk iWq tPN -uxO -cEl -cEl -dtc -mBy +rMo +kTs +kTs +ape +exy twb kPz bQM @@ -63992,34 +63992,34 @@ kBE azZ azZ xLi -mSY -nee -xjK -ezJ -dsT -mNj -xjK -xjK -tOr -ayv -jES +aJk +muX +mvp +kpq +iOY +tYU +mvp +mvp +cer +gpA +luZ lAh lAh azZ azZ bQM bQM -gEU +bmT bQM bQM -mTy -alu -mTy -kFH -bow -bow -bow -bow +vxz +iSR +vxz +mPe +esw +esw +esw +esw bTI bQM bFA @@ -64029,26 +64029,26 @@ hXZ aLp aLp aFZ -nwh -kqz -kqz +gnG +tja +tja hVI xgn -kqz +tja hVI -bgR -kcn -kqz -kqz +tpZ +xhL +tja +tja sJu -iPM +qrn lwd ndZ -iPM +qrn cyV cyV -iPM -iPM +qrn +qrn cyV aFZ aFZ @@ -64058,9 +64058,9 @@ jUs clP clP eTc -tvX -wEY -rJK +mCp +rJc +gTi eTc clP clP @@ -64068,9 +64068,9 @@ iwf bFr cvn cvn -uRO -oTl -kEE +bPQ +wIL +akp cvn bFr cvn @@ -64081,49 +64081,49 @@ cEw bQM bQM wyT -joz -joz -fXv -otP -jiW -fXv -fXv -fXv -fXv -fXv -guG -wRZ -wRZ -lfJ -kul -kul -kul -kul -kul -kul -kul -kul -elq -jya -kul -kul -kul -hGz -kul -kul -kul -kul -elq -vxV +wSU +wSU +vBX +nJu +guz +vBX +vBX +vBX +vBX +vBX +teq +xiL +xiL +iTJ +tSm +tSm +tSm +tSm +tSm +tSm +tSm +tSm +sbW +mdS +tSm +tSm +tSm +gbF +tSm +tSm +tSm +tSm +sbW +rft wrR qQt cME dkb uGY axA -fnB -fnB -vGe +ubP +ubP +aTx eLu eLu eLu @@ -64148,11 +64148,11 @@ afk afk iWq tPN -cWR +fmE dKX gfo -aXM -bTG +rQu +fzC twb kPz bQM @@ -64204,54 +64204,54 @@ azZ azZ azZ xLi -xjK -lax -nDJ -dsT -dNF -pBn -xjK -xjK -tOr -ezJ -xjK +mvp +ubX +wAQ +iOY +rHX +sbL +mvp +mvp +cer +kpq +mvp jKR lAh azZ azZ bQM bQM -gEU +bmT bQM bQM -wsy -aOh -wsy -hDy -hDy -hDy -qmz -hDy +knY +fvH +knY +jMh +jMh +jMh +cMb +jMh bTI bQM bFA -hpJ +rYY ePq mzS lEp wWW -lBg -hvi -tST -kqz +xXh +xuQ +gjz +tja tEH -kqz -kqz +tja +tja hVI -bjO -bjO -kqz -kqz +qEl +qEl +tja +tja ioM hVI hVI @@ -64266,23 +64266,23 @@ hVI hVI ioM bis -lOE -mTX -mTX -wot -mxn -bEO -tcO -mTX -jDk -mTX -axi +xzN +bDM +bDM +qLa +dZK +rJF +iYa +bDM +opN +bDM +pgQ bis -sXy -ghP -xqG -oTl -kEE +byB +lpH +hUD +wIL +akp cvn kPz kPz @@ -64293,59 +64293,59 @@ kPz kPz kPz wyT -xPX -joz -joz -joz -vVJ -joz -joz -joz -joz -joz -guG -tOo -wRZ -rkr -qfU -xTa -qfU -qfU -qfU -qfU -xTa -djd -wRZ -wRZ -dMv -lWD -qfU -qfU -qfU -qfU -qfU -qfU -qfU -pnv +iSw +wSU +wSU +wSU +weB +wSU +wSU +wSU +wSU +wSU +teq +cdV +xiL +sFd +nMp +oFU +nMp +nMp +nMp +nMp +oFU +rdo +xiL +xiL +mAt +igu +nMp +nMp +nMp +nMp +nMp +nMp +nMp +eSn wrR bcf cME cME uGY -fnB -fnB -fnB -fnB -fnB -clG -clG -clG -qTa -fnB -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP +ubP +vnG +vnG +vnG +fRq +ubP +ubP +ubP +ubP +ubP dCM bTo afk @@ -64360,11 +64360,11 @@ afk afk iWq tPN -jtv -cEl -cEl -lZC -sNu +mKo +kTs +kTs +bYY +dwf twb kPz bQM @@ -64417,35 +64417,35 @@ azZ azZ xLi xLi -eXd -mNj -olG -aoH +oZf +tYU +knW +fop xLi -jmM -xjK -tOr -ezJ -xjK +esR +mvp +cer +kpq +mvp efT lAh azZ azZ bQM bQM -qvn -hbC -hbC -ssD -iSi -ssD -oYH -oYH -oYH -oYH -oYH +qmv +ogf +ogf +tsc +bEk +tsc +tii +tii +tii +tii +tii bTI -iSi +bEk eHC uVX uVX @@ -64453,48 +64453,48 @@ nHZ tHL sTu aFZ -hvi -kqz -kqz +xuQ +tja +tja hVI ieu ieu hVI hVI -bjO -kqz -kqz -iPM -rPQ -dVe -cmg -bzH +qEl +tja +tja +qrn +hGg +tge +pFc +stU ioM -bow +esw ioM hVI -idE -xwy -cRN +byY +nfZ +qmj ioM bis -tvX -nrY -bJF -bJF -oIR -bEO -nrY -bJF -bJF -lmr -rJK +mCp +nTv +tyj +tyj +nvn +rJF +nTv +tyj +tyj +bXh +gTi bis bis -uRO -bEO -bEO -kEE +bPQ +rJF +rJF +akp cvn bQM bQM @@ -64526,10 +64526,10 @@ tRH tRH nqN ceC -nIh -nIh -nIh -fHh +dCn +dCn +dCn +wIk ceC nqN tRH @@ -64544,20 +64544,20 @@ eLu cME cME ggk -jAx -fnB -crO -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB +iTj +ubP +qMI +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP nqN aKA jlH @@ -64572,10 +64572,10 @@ jlH jlH bUB twb -miu +ifP gfo gfo -bNz +ivK twb twb kPz @@ -64634,10 +64634,10 @@ lAh lAh lAh lAh -xjK -xjK -tOr -ezJ +mvp +mvp +cer +kpq xLi xLi azZ @@ -64651,11 +64651,11 @@ aFZ aFZ aFZ aSS -iPM -idE -xDg -idE -iPM +qrn +byY +duW +byY +qrn aFZ bQM bQM @@ -64665,48 +64665,48 @@ bQM bQM bQM aFZ -gkZ -kcn -kqz +mdz +xhL +tja tEH gOJ rQK uVD aif -wlR -mFh -bPk -mhb -mhb -mhb -iti -mhb -mct -aja +eVN +ddB +rie +jQs +jQs +jQs +qhC +jQs +umz +xEH ioM -bfg +dTX mEO mEO mEO ioM nOz -tvX -rJK +mCp +gTi eTc clP -wjk -pat -dgF +wzH +fIL +dtS clP eTc -tvX -rJK +mCp +gTi nOz bis -uRO -bEO -trB -kEE +bPQ +rJF +kKd +akp cvn bQM bQM @@ -64721,14 +64721,14 @@ bQM bQM bQM dCM -qdB -tHs -tHs -tHs -tHs -tHs -tHs -tHs +fDb +ihB +ihB +ihB +ihB +ihB +ihB +ihB dCM bQM kPz @@ -64737,12 +64737,12 @@ bQM kPz bQM dCM -mdn -ftv -tPQ -fnB -xca -sRV +dUu +sNU +dHU +ubP +vIG +gag dCM bQM kPz @@ -64754,22 +64754,22 @@ pJK eLu kNY cME -aJg +itK uGY -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP uGY aWk aWk @@ -64784,10 +64784,10 @@ pRG aWk twb twb -laG -cEl -cEl -ajH +vQJ +kTs +kTs +wnM twb kPz kPz @@ -64845,11 +64845,11 @@ xLi xLi xLi xLi -qVq -sgb -xjK -tOr -ezJ +pSs +mBJ +mvp +cer +kpq lAh lAh lAh @@ -64863,11 +64863,11 @@ aFZ aFZ mIu ioM -iCo -iCo -iCo -iCo -iCo +xUn +xUn +xUn +xUn +xUn aFZ fQV fQV @@ -64877,33 +64877,33 @@ tQB tQB aFZ aFZ -gHF -tHX -tHX +wDw +ylW +ylW tEH gtH uVD ppX hVI -auH -ryN -pNV -sjw -jEb -jEb -pdw -jEb -pNV -cwO +ceq +dAg +iea +mzK +jbq +jbq +qDZ +jbq +iea +oTi ioM -hKW +ihp mEO mEO mEO sJu lqq -tvX -rJK +mCp +gTi jjW nOz dnz @@ -64911,14 +64911,14 @@ kNB bPl nOz jjW -tvX -rJK +mCp +gTi lqq wpD -uRO -uxp -bEO -kEE +bPQ +qGh +rJF +akp bFr bFr kPz @@ -64933,14 +64933,14 @@ kPz kPz kPz dCM -tTu -tHs -fhC -ftv -sRV -aqI -lRH -tHs +bBt +ihB +mWS +sNU +gag +pbX +igV +ihB dCM bQM kPz @@ -64949,12 +64949,12 @@ kPz kPz bQM dCM -sRV -ftv -fnB -iLy -aqI -sRV +gag +sNU +ubP +nyC +pbX +gag dCM bQM kPz @@ -64968,20 +64968,20 @@ cME cME uzw uGY -sRV -cvq +gag +cHl nqN nqN nqN -ksk -sRV -cvq +aME +gag +cHl nqN nqN nqN -ksk -sRV -cvq +aME +gag +cHl uGY vZX vZX @@ -64994,12 +64994,12 @@ oly vZX vZX jwc -lCw -uat -qwU +pEt +cxb +uRI gfo -fhc -ydY +hyc +qwG twb kPz bQM @@ -65049,24 +65049,24 @@ lAh xLi xLi xLi -npV -nvZ +jdn +jVt xLi xLi -nsx -hKJ +sNg +xak xLi xLi xLi xLi -xjK -tOr -ezJ +mvp +cer +kpq xLi -hBI -iMS +cyk +mAS xLi -jpS +sWb azZ tel tel @@ -65075,23 +65075,23 @@ hVI xLS mEO ioM -iPM -fPZ -kqz -fPZ -iPM +qrn +bLM +tja +bLM +qrn tQB pcu pcu pcu tQB -qLz -oPW -roN -iPM -kqz -kqz -kqz +prC +rbp +hyq +qrn +tja +tja +tja hVI tEH tEH @@ -65099,38 +65099,38 @@ hVI hVI tEH hVI -mJy -cwO -wJJ -mhb -mhb -aja -ogr -tkk +dOO +oTi +ikt +jQs +jQs +xEH +wFp +pzE ioM -kwa +pNG mEO mEO -idE +byY ioM nOz -tvX -rJK +mCp +gTi eTc clP -lOE -mTX -axi +xzN +bDM +pgQ clP eTc -tvX -rJK +mCp +gTi nOz bFr -uRO +bPQ iKs iKs -kEE +akp bFr bFr bQM @@ -65145,14 +65145,14 @@ bQM bQM bQM dCM -tTu -tHs -sRV -ftv -sRV -aqI -sRV -tHs +bBt +ihB +gag +sNU +gag +pbX +gag +ihB dCM bQM kPz @@ -65161,12 +65161,12 @@ bQM kPz bQM dCM -sRV -ftv -kzN -tPQ -aqI -hVz +gag +sNU +bSs +dHU +pbX +cDE dCM bQM kPz @@ -65180,20 +65180,20 @@ cME cME cME gIB -sTa -sTa +lld +lld dCM bQM dCM -sTa -sTa -sTa +lld +lld +lld dCM bQM dCM -sTa -sTa -sTa +lld +lld +lld ovr vZX vZX @@ -65206,11 +65206,11 @@ vZX vZX vZX jwc -hxg -cEl +qsF +kTs gfo gfo -bNz +ivK twb twb kPz @@ -65260,111 +65260,111 @@ azZ azZ xLi xLi -sNd -xjK -xjK -xjK -mZG -xjK -xjK -idV -bAS +fKP +mvp +mvp +mvp +oih +mvp +mvp +hrA +wou xLi xLi -aOd -tOr -ezJ -xIb -jMe -tGO +cGa +cer +kpq +fMc +qkt +nEW ddL ejw ejw ejw rBr -evg +cXp hVI xLS mEO sJu -hDy -fPZ -kqz -fPZ -hDy +jMh +bLM +tja +bLM +jMh tQB jlH jlH jlH tQB -iPM -iPM -cHJ -iPM -kqz -imw -kqz -mFh -mhb -mhb -mhb -sRb -mhb -xvt -avX -cwO -mJy -uIl -fbW -xCs -rib -kqz +qrn +qrn +jxm +qrn +tja +bOR +tja +ddB +jQs +jQs +jQs +iWe +jQs +lBR +afq +oTi +dOO +wXN +bJG +eOp +qqW +tja sJu mEO mEO mEO -lyd +vXl ioM bis -cGm -tcO -mTX -mTX -mxn -bEO -tcO -mTX -mTX -mxn -pIo +gKG +iYa +bDM +bDM +dZK +rJF +iYa +bDM +bDM +dZK +lpd bFr bFr -fRG -bEO -bEO -kEE +kCj +rJF +rJF +akp bFr bFr bFr bFr bFr bFr -gdt -gdt -gdt +gBY +gBY +gBY bFr -gdt -gdt -gdt +gBY +gBY +gBY dCM -qdB -tHs -sRV -ftv -sRV -aqI -sRV -tHs +fDb +ihB +gag +sNU +gag +pbX +gag +ihB nqN nqN nqN @@ -65374,10 +65374,10 @@ nqN nqN nqN ceC -nIh -nIh -nIh -kov +dCn +dCn +dCn +llJ ceC nqN nqN @@ -65392,20 +65392,20 @@ cME cME cME gIB -tHs -tHs +ihB +ihB dCM bQM dCM -tHs -tHs -tHs +ihB +ihB +ihB dCM bQM dCM -tHs -tHs -iTw +ihB +ihB +oXb nqN aWk aWk @@ -65418,11 +65418,11 @@ qkN vZX vZX aWk -cEB -jrk -rkb -czj -xxd +nrn +pxL +ddv +vLe +rVp twb kPz kPz @@ -65471,66 +65471,66 @@ azZ azZ azZ xLi -jXO -xjK -xMg -sqg -sqg -sqg -sqg -sqg -sqg -sqg +wQY +mvp +lkr +hae +hae +hae +hae +hae +hae +hae xZR -sqg -sqg -ukI -ezJ -xJg -dNF -cwU +hae +hae +iRI +kpq +oxp +rHX +tvi ddL -xjK -dNF -xjK -jpS +mvp +rHX +mvp +sWb phz hVI qeX mEO hVI -dVK -xpB -kqz -fPZ -idE +rsH +rZI +tja +bLM +byY aFZ tQB tQB tQB aFZ -iPM -fOo -bgb -lXk -kqz -kqz -kqz -mJy -kqz -kqz -kqz -kqz -kqz -kqz -kqz -cwO -mJy -rXz -goh -cwO -tAI -fwR +qrn +kYz +bAE +vci +tja +tja +tja +dOO +tja +tja +tja +tja +tja +tja +tja +oTi +dOO +tsr +pSr +oTi +hiP +tcD aFZ hVI hVI @@ -65538,23 +65538,23 @@ bmE hVI aFZ bFr -wjk -bJF -bJF -bJF -lmr -bEO -nrY -bJF -bJF -bJF -dgF +wzH +tyj +tyj +tyj +bXh +rJF +nTv +tyj +tyj +tyj +dtS bFr bis -lEa -cWG -cWG -eVL +fTn +hXX +hXX +byc bFr bFr bFr @@ -65570,30 +65570,30 @@ iKs iKs uGY uGY -tHs -sRV -ftv -sRV -aqI -sRV -tHs +ihB +gag +sNU +gag +pbX +gag +ihB hVG -fnB -fnB -fnB -fnB -fnB -dme -fnB -dAQ -qms -jLK -the -qms -aDr -fnB -fnB -fnB +ubP +ubP +ubP +ubP +ubP +nEI +ubP +fYo +fou +alY +cqT +fou +aNk +ubP +ubP +ubP uGY gKl cME @@ -65604,20 +65604,20 @@ nNJ kNY rmh ceC -fnB -fnB +ubP +ubP nqN bQM nqN -fnB -fnB -fnB +ubP +ubP +ubP nqN bQM nqN -dnE -fnB -fnB +tEY +ubP +ubP dCM bQM bQM @@ -65683,129 +65683,129 @@ azZ azZ azZ xLi -jYB -xjK -tOr -hmk -kbO -fhZ -kbO -kbO -kbO -kbO +geT +mvp +cer +pvF +eqU +hmE +eqU +eqU +eqU +eqU xZR -kbO -kbO -dFk -ezJ +eqU +eqU +uAg +kpq xLi -kLX -oHn +cZe +bKF ddL -xjK -dNF -xjK +mvp +rHX +mvp wfY -jpS +sWb hVI hVI mEO hVI -iPM -jUz -kqz -fPZ -iPM +qrn +oJN +tja +bLM +qrn hVI -mOC -eCh -oxT +wow +boF +xaO hVI hVI hVI -cLc -mMo -iPM -kqz -iPM -ryN -opy -eSZ -jEb -jEb -pdw -jEb -pNV +lOm +rjP +qrn +tja +qrn +dAg +tlJ +qnb +jbq +jbq +qDZ +jbq +iea mEO -mJy -gMw +dOO +sls lfo -cwO -mJy -cwO +oTi +dOO +oTi hVI -nmx -kkk -mJy -cwO -uQF +nmL +ixn +dOO +oTi +ubA bFr bFr uIS uIS bis -tvX -bEO -rJK +mCp +rJF +gTi bis uIS uIS bis bFr -qZx -tvX -muO -muO -rJK -bEO -mTX -mTX -bEO -muO -muO -rJK -lOE -mTX -mTX -mTX -mTX -axi -tvX +fQA +mCp +dBy +dBy +gTi +rJF +bDM +bDM +rJF +dBy +dBy +gTi +xzN +bDM +bDM +bDM +bDM +pgQ +mCp ggk -tHs -sRV -ftv -sRV -aqI -lYw -tHs +ihB +gag +sNU +gag +pbX +hnM +ihB hVG -fnB -fnB -eUD -fnB -fnB -fnB -wLf +ubP +ubP +rAY +ubP +ubP +ubP +ngn sYP -tHs -nIy -fgB -xxE -tHs -tHs -fnB -fnB +ihB +ktC +kHZ +lRk +ihB +ihB +ubP +ubP uGY cFq xno @@ -65816,20 +65816,20 @@ twb twb twb nqN -fnB -fnB +ubP +ubP nqN bQM nqN -fnB -fnB -fnB +ubP +ubP +ubP nqN bQM nqN -fnB -fnB -fnB +ubP +ubP +ubP dCM bQM bQM @@ -65896,20 +65896,20 @@ azZ azZ xLi xLi -xjK -tOr -ezJ -xjK -xjK -xjK -xjK -xjK -bAS +mvp +cer +kpq +mvp +mvp +mvp +mvp +mvp +wou xLi xLi -aOd -tOr -ezJ +cGa +cer +kpq xLi ddL ddL @@ -65923,101 +65923,101 @@ hVI hVI mEO hVI -gzd -rHj -kqz -fPZ -orx +tAj +dOt +tja +bLM +ckt hVI -gom -fPZ -fPZ -fPZ -fPZ +tMV +bLM +bLM +bLM +bLM hVI hVI hVI -iPM -mky -iPM +qrn +jiA +qrn hVI -vXB -mMf -bNA -hRV -mYu +aqo +sdR +jci +nsm +cGU mEO -mJy -vkC -mJy -aBX -fxz -cwO -mJy -cwO +dOO +dVD +dOO +hhD +kpv +oTi +dOO +oTi hVI -jDL -fPZ -fPZ -fPZ -uXW -xfG +xOs +bLM +bLM +bLM +kYd +bpx hVI -dZt -qZx +pdN +fQA bis wMi wMi wMi bis -gET -snp +tJQ +mnR bis bFr -qZx -tvX +fQA +mCp iKs iKs -xZo -bEO +kvT +rJF iKs iKs -bEO -mEL -muO -muO -muO +rJF +clb +dBy +dBy +dBy iKs iKs iKs dFh -muO -muO +dBy +dBy ggk -tHs -sRV -ftv -sRV -aqI -sRV -tHs +ihB +gag +sNU +gag +pbX +gag +ihB hVG -jJT -fnB -fnB -fnB -vfJ -fnB -wLf +bLE +ubP +ubP +ubP +nDq +ubP +ngn wWs wWs -sRV -dFO +gag +aej wWs wWs -tHs -vDc -xDQ +ihB +qrI +ejs ggk cME cME @@ -66028,20 +66028,20 @@ tPN bQM bQM dCM -tHs -tHs +ihB +ihB dCM bQM dCM -tHs -tHs -tHs +ihB +ihB +ihB dCM bQM dCM -tHs -tHs -tHs +ihB +ihB +ihB dCM bQM bQM @@ -66108,10 +66108,10 @@ azZ azZ xLi xLi -xjK -cjS -ezJ -xjK +mvp +phC +kpq +mvp xLi xLi ddL @@ -66119,15 +66119,15 @@ ddL ddL xLi xLi -xjK -tOr -ezJ -xQb -kyl -xjK -xjK -xjK -xjK +mvp +cer +kpq +vtr +epD +mvp +mvp +mvp +mvp phz phz phz @@ -66135,101 +66135,101 @@ mEO mEO mEO hVI -idE -fPZ -kqz -fPZ -idE +byY +bLM +tja +bLM +byY hVI -qqM -kqz -kqz -kqz -kqz -kqz +jhl +tja +tja +tja +tja +tja aif -kqz -kqz -kqz -cso +tja +tja +tja +yhs hVI -gSN -icK +kYi +aFQ xxX iAA aRt nUb -wOT -cwO -mJy -uIl -qoZ -kHu -mJy -kqz +lzd +oTi +dOO +wXN +oFO +sHM +dOO +tja aif -fPZ -opV -mJy -cwO -tur -pSm +bLM +oga +dOO +oTi +brC +pjE hVI -bEO -bEO -bEO -tvX -muO -rJK -bEO -bEO -kCv -bEO -bEO -bEO -tvX -muO -muO -rJK -bEO -gHP -bJF -bEO -muO -muO -rJK -wjk -bJF -bJF -bJF -bJF -dgF -tvX +rJF +rJF +rJF +mCp +dBy +gTi +rJF +rJF +bQv +rJF +rJF +rJF +mCp +dBy +dBy +gTi +rJF +vCQ +tyj +rJF +dBy +dBy +gTi +wzH +tyj +tyj +tyj +tyj +dtS +mCp ggk -tHs -sRV -ftv -sRV -aqI -fhC -iTw +ihB +gag +sNU +gag +pbX +mWS +oXb ceC xGt xGt ceC -fnB -wFD -fnB -tHs +ubP +iwy +ubP +ihB wWs wWs -sRV -sRV +gag +gag wWs wWs -tHs -egm -xDQ +ihB +ncY +ejs ggk cME cME @@ -66240,20 +66240,20 @@ tPN bQM bQM dCM -oEY -uEm +ldZ +sbF dCM bQM dCM -uEm -uEm -uEm +sbF +sbF +sbF dCM bQM dCM -uEm -uEm -uEm +sbF +sbF +sbF dCM bQM bQM @@ -66319,44 +66319,44 @@ azZ azZ azZ xLi -idV -xjK -tOr -ezJ -bAS +hrA +mvp +cer +kpq +wou xLi -pso -nDW -oAQ -nTD -qVD -shq -jES -tOr -ezJ -xjK -xjK -xjK -jES -xjK -xjK -xjK -xjK +hqG +lQL +qsE +qMi +uky +nmy +luZ +cer +kpq +mvp +mvp +mvp +luZ +mvp +mvp +mvp +mvp phz ecu mEO hVI hVI -hDy -fPZ -kqz -fPZ -hDy +jMh +bLM +tja +bLM +jMh vWe hVI -kqz -fPZ -aac +tja +bLM +sBO hVI hVI hVI @@ -66374,11 +66374,11 @@ azv nUb mEO uza -dnB -jEb -tur -mJy -tkk +ipA +jbq +brC +dOO +pzE hVI hVI hVI @@ -66387,61 +66387,61 @@ tEH tEH hVI hVI -muO -muO -bEO -tvX +dBy +dBy +rJF +mCp iKs -rJK -bEO -lOE -mTX -mTX -mTX -mTX -mxn +gTi +rJF +xzN +bDM +bDM +bDM +bDM +dZK iKs -nrY -dgF -qZx +nTv +dtS +fQA bFr bFr bFr -ocd -tKs -muO -mEL +oLV +nxq +dBy +clb bFr cvn cvn bFr -muO -muO +dBy +dBy uGY -kaC -tHs -tHs -tHs -tHs -tHs -tHs +any +ihB +ihB +ihB +ihB +ihB +ihB buz -gvX -aav +ycf +hek dCM -fnB -fnB -fnB -tHs +ubP +ubP +ubP +ihB wWs wWs -tPQ -fnB +dHU +ubP wWs wWs -tHs -fnB -fnB +ihB +ubP +ubP uGY obz lAV @@ -66452,20 +66452,20 @@ nqN nqN nqN nqN -sRV +gag fCD nqN nqN nqN -ksk -sRV -cvq +aME +gag +cHl nqN nqN nqN -ksk -sRV -cvq +aME +gag +cHl nqN nqN nqN @@ -66530,157 +66530,157 @@ azZ azZ azZ azZ -jpS -xjK -xjK -tOr -ezJ -xjK +sWb +mvp +mvp +cer +kpq +mvp ddL lXO nId ykO pCc -tDY -siz -xjK -tOr -mtk -sqg -sqg -sqg -sqg -sqg -sqg -xRh -xjK +pxW +ioV +mvp +cer +wun +hae +hae +hae +hae +hae +hae +ceJ +mvp phz mEO mEO hVI -vmr -fPZ -vXi -kqz -fPZ -fPZ -fPZ -rbE -kqz -fPZ -aRx -luv -hBX -fPZ -iRc -fPZ -dla -oja -dWx -fPZ -hjr -mhb +xsC +bLM +ioS +tja +bLM +bLM +bLM +jTD +tja +bLM +tGU +rGe +fCr +bLM +gbv +bLM +fYa +voK +koY +bLM +hOG +jQs mEO -mhb -wMG -kdb -ovC -jvG -mhb -mhb -mhb -avX -cwO -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ +jQs +oDV +sBM +bQn +nJT +jQs +jQs +jQs +afq +oTi +bLM +bLM +bLM +bLM +bLM +bLM +bLM sJu -rIo -muO -bEO -tvX +fie +dBy +rJF +mCp iKs -rJK -bEO -tvX +gTi +rJF +mCp iKs iKs -muO -muO +dBy +dBy iKs -nrY -dgF -qZx +nTv +dtS +fQA bFr bFr bQM bFr bis -jiJ -muO -hiG +gXd +dBy +owd cvn bQM bQM cvn -muO -kAt +dBy +aSM uGY uGY uGY uGY uGY nqN -aIf -fOt +ksL +eip gpG -tHs -qIy +ihB +ohx ceC -mAv -fnB -fnB -tHs +cxy +ubP +ubP +ihB wWs wWs -fMk -fnB +xNG +ubP wWs wWs -tHs -fnB -vGe +ihB +ubP +aTx nqN uGY uxv uxv uGY uGY -iSf -cHx -fnB -tdG -fnB -fnB -fnB -jCl -rIW -fnB -crO -fnB -fnB -fnB -fnB -fnB -fnB -crO -fnB -dAQ -fnB +vlS +psm +ubP +nXu +ubP +ubP +ubP +mVY +mqB +ubP +qMI +ubP +ubP +ubP +ubP +ubP +ubP +qMI +ubP +fYo +ubP nqN vZX vZX @@ -66743,104 +66743,104 @@ azZ azZ azZ xLi -jpS -jmM -tOr -ezJ -xjK +sWb +esR +cer +kpq +mvp ddL ntH nMZ oHX pFP -qZa -sjn -xjK -tOr -hmk -kbO -kbO -kbO -kbO -kbO -dFk -ezJ -xjK +iUr +tNf +mvp +cer +pvF +eqU +eqU +eqU +eqU +eqU +uAg +kpq +mvp phz mEO hVI hVI -nqV -kqz -kqz -kqz -kqz -kqz -kqz -kqz -kqz -fPZ -kiE -jOJ -fPZ -kqz -kqz -kqz -pIX -bNf -fPZ -fPZ +suY +tja +tja +tja +tja +tja +tja +tja +tja +bLM +gQz +ntM +bLM +tja +tja +tja +gFp +ikL +bLM +bLM mEO -sjw -jEb +mzK +jbq mEO -jEb -jEb -jEb -oii -jEb -jEb -jEb -pNV -cwO -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ -fPZ +jbq +jbq +jbq +bXc +jbq +jbq +jbq +iea +oTi +bLM +bLM +bLM +bLM +bLM +bLM +bLM sJu -rIo -ekH -bEO -tvX +fie +sWl +rJF +mCp iKs -rJK -bEO -wjk -bJF -bJF -bJF -bJF -bJF -dgF -qZx +gTi +rJF +wzH +tyj +tyj +tyj +tyj +tyj +dtS +fQA bFr bFr bQM bQM bFr rLJ -qXP -muO -tKs +oeY +dBy +nxq bFr cvn cvn bFr -muO -muO +dBy +dBy eLu eLu fdf @@ -66850,49 +66850,49 @@ twb oZy nfA gpG -rUT -tHs +lkP +ihB hVG -jWB -vfJ -bfx -tHs +fZz +nDq +uRZ +ihB wWs wWs -sRV -sRV +gag +gag wWs wWs -tHs -vfJ -wOS -sTa -sTa -sTa -sTa -gJG -oWW -fnB -fnB -fnB -fnB -fnB -fnB -fnB -ftv -aqI +ihB +nDq +rxg +lld +lld +lld +lld +wmx +bCe +ubP +ubP +ubP +ubP +ubP +ubP +ubP +sNU +pbX sYP -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP sYP -fnB -xDQ +ubP +ejs ggk vZX vZX @@ -66955,66 +66955,66 @@ azZ xLi xLi xLi -jpS -xjK -tOr -ezJ -ftq +sWb +mvp +cer +kpq +aUA ddL oIq nOw oXR pHh -qZh -sma -xjK -tOr -ezJ -xjK -xjK -xjK -xjK -xjK -tOr -ezJ -xjK +oEu +cKB +mvp +cer +kpq +mvp +mvp +mvp +mvp +mvp +cer +kpq +mvp hVI hVI hVI -sjx -fPZ -kqz -wLN +gbT +bLM +tja +ctC vWe -sbQ -kqz -fPZ -trH -kqz -fPZ -vsz +gbh +tja +bLM +kZV +tja +bLM +gAC hVI -tOZ -kqz -kqz -kqz -pIX -bNf -dKy +lpw +tja +tja +tja +gFp +ikL +xMp jyP -mJy -lyX +dOO +sDn hVI -vtG -vtG -vtG -qeU +mtP +mtP +mtP +cqP hVI tEH tEH hVI -oxZ -rSM +njY +xCp hVI tEH tEH @@ -67023,20 +67023,20 @@ hVI hVI hVI hVI -bEO -ncP -bEO -wjk -bJF -dgF -bEO -nHb -bEO -bEO -bEO -hmj -muO -muO +rJF +lGL +rJF +wzH +tyj +dtS +rJF +sCe +rJF +rJF +rJF +fmb +dBy +dBy bis bFr bQM @@ -67044,15 +67044,15 @@ bQM bQM bFr bis -jiJ -bMA -lOE -mTX -azI -mTX -mTX -axi -tvX +gXd +qIT +xzN +bDM +hwr +bDM +bDM +pgQ +mCp rHu bnL cME @@ -67062,49 +67062,49 @@ liA nyS scZ ceC -itt -aPF +bQW +fiG ceC -fnB -wFD -fnB -tHs +ubP +iwy +ubP +ihB wWs wWs -sRV -sRV +gag +gag wWs wWs -tHs -wFD -ezT -uEm -uEm -uEm -aQZ -uEm -ajr -fnB -fnB -fnB -fnB -fnB -qhB -rmA -ftv -aqI -fnB -fnB -sRV -sTa -sTa -sTa -sTa -sRV -fnB -fnB -fnB -xDQ +ihB +iwy +xjM +sbF +sbF +sbF +wIx +sbF +qhN +ubP +ubP +ubP +ubP +ubP +daY +hEZ +sNU +pbX +ubP +ubP +gag +lld +lld +lld +lld +gag +ubP +ubP +ubP +ejs ggk vZX vZX @@ -67169,71 +67169,71 @@ xLi phz phz phz -tOr -ezJ -bAS +cer +kpq +wou xLi -nvC -nPO -paQ -pIi -gKL -kWJ -xjK -tOr -vpB -xWp -xfq -sqg -xRh -hYV -tOr -ezJ -bAS +lIl +cEG +mvV +fno +byF +swJ +mvp +cer +ojc +ujo +kii +hae +ceJ +tdr +cer +kpq +wou hVI hVI hVI -gfN -rDm -kqz -cxF -sVD -qfI -kqz -gGp -jOJ -kqz -fPZ -brr -kcO -cqy -fPZ -kqz -fPZ -dla -fzb -mXI -fPZ -mJy -oBP +eUZ +wEE +tja +dTg +vRF +ewI +tja +sYy +ntM +tja +bLM +mRA +lIk +vJo +bLM +tja +bLM +fYa +cbF +eOy +bLM +dOO +uRF aif -fPZ -fPZ -fPZ -kuS +bLM +bLM +bLM +loP hVI -kSP -fPZ +rMq +bLM hVI -mJy -kqz +dOO +tja aif ovJ -fPZ +bLM sJu -hSL -euG -sct +nCt +yeA +olg aFZ cvn bFr @@ -67255,16 +67255,16 @@ twb twb twb twb -eTx -oti -muO -muO +tIn +dwP +dBy +dBy iKs iKs iKs iKs -muO -muO +dBy +dBy rHu xPG cME @@ -67277,46 +67277,46 @@ ceC xGt xGt ceC -fnB -fnB -fnB -tHs -tHs -tHs -tHs -tHs -tHs -tHs -tHs -fnB -nza +ubP +ubP +ubP +ihB +ihB +ihB +ihB +ihB +ihB +ihB +ihB +ubP +xGD nqN dCM dCM dCM nqN -flC -fnB -eVZ -fnB -hoy -fnB +lkQ +ubP +ktv +ubP +hPN +ubP pTj -fnB -ftv -aqI -rmA -fnB -azJ -pPf -grL -grL -apy -azJ -fnB -fnB -fnB -fnB +ubP +sNU +pbX +hEZ +ubP +jtK +gmF +txh +txh +afO +jtK +ubP +ubP +ubP +ubP plK plK wHw @@ -67375,88 +67375,88 @@ azZ azZ azZ xLi -ruy -ruy +dqX +dqX phz phz -csp +fEn kEZ -tOr -ezJ -xjK +cer +kpq +mvp xLi ddL ddL ddL xLi xLi -dMK -xjK -tOr -vqg -xjK -neD +nrU +mvp +cer +cvH +mvp +qrt xLi -fWc -xjK -tOr -ezJ -xjK +ydQ +mvp +cer +kpq +mvp hVI hVI hVI dvq -fPZ -kqz -hBX -rLT -sQK -mFz -kiE -pKd -kqz -fPZ -bET -luv -xnK -wsY -kqz -fPZ -dla -sbY -gRm -fwZ -dwM -cDr +bLM +tja +fCr +hDl +ugq +xLf +gQz +mOf +tja +bLM +scp +rGe +jSU +ajP +tja +bLM +fYa +kCN +oXI +hko +eUN +pae hVI -mRU -shG -fPZ -djA +wKR +nxY +bLM +iSW hVI -ivR +psL ovJ -dvY -kqz -cwO +hWi +tja +oTi hVI -fgb -onz +jBn +rHf hVI -lbu +fIq mEO -gbS +oou aFZ -brI -gAk +wIG +ugv qOk -cZc +tIp lml -hGP -olQ +hVS +lDC qOk -kvm -oTG +nYT +vPM bQM tPN ecL @@ -67467,72 +67467,72 @@ tpf tIU cME eLu -nbo -muO -rJK -wjk -bJF -bJF -bJF -bJF -dgF -tvX +cbd +dBy +gTi +wzH +tyj +tyj +tyj +tyj +dtS +mCp rHu rJu uzw kqC -cCq -dHp -dHp -uFh +rzp +vds +vds +elO abJ -usz -usz +ioc +ioc abJ -fnB -fnB -fnB -eoZ -cHx -fnB -fnB -fnB -fnB -fnB -fnB -fnB -dme +ubP +ubP +ubP +kJU +psm +ubP +ubP +ubP +ubP +ubP +ubP +ubP +nEI dCM bQM kPz bQM dCM -fnB -fnB -fnB -vGe +ubP +ubP +ubP +aTx uGY uGY uGY uGY gIB uGY -flC -fnB -sRV -uEm -uEm -uEm -uEm -sRV -fnB -fnB +lkQ +ubP +gag +sbF +sbF +sbF +sbF +gag +ubP +ubP wxZ qeC bLA -xBT -oyg -xBT +xQx +aEB +xQx plK vZX vZX @@ -67587,59 +67587,59 @@ azZ azZ xLi xLi -jpS +sWb phz ctD phz phz -xjK -tOr -ezJ -xjK -xjK -xjK -xjK -xjK +mvp +cer +kpq +mvp +mvp +mvp +mvp +mvp xLi rfd -xjK -xjK -tOr -vpB -xWp -jPz -kbO -dsT -xjK -tOr -ezJ -xjK -gkt -aDi -nvF -gkt -fPZ -kqz -mYo +mvp +mvp +cer +ojc +ujo +aMu +eqU +iOY +mvp +cer +kpq +mvp +uno +ciA +lsn +uno +bLM +tja +qGO hVI -jDL -xuH -knt -jOJ -ffm -fPZ -jlg -rLT -qfI -fPZ -kqz -cxF -xWH -wmG -iVC -fPZ -mJy -cwO +xOs +nCV +aeF +ntM +uIB +bLM +eLw +hDl +ewI +bLM +tja +dTg +qCE +eYr +lbZ +bLM +dOO +oTi nQq hVI hVI @@ -67648,34 +67648,34 @@ hVI hVI hVI hVI -gUH -mJy -tkk +mrI +dOO +pzE vWe hVI hVI hVI lyJ -ndh +nBt kwT tQB -azy +tqP afk afk afk -chA -uWs +xdt +tzN afk afk afk -wvu +rxL fQV tPN ecL cME cME oOi -pSJ +pJc qws cME eLu @@ -67683,9 +67683,9 @@ eLu eLu eLu twb -mNn -mNn -mNn +eBO +eBO +eBO twb eLu eLu @@ -67693,58 +67693,58 @@ eLu kfW cME kqC -pHu -uGD -sHH -vei +dHD +lkb +upY +fHo vRA -usz -usz +ioc +ioc vRA -fnB -kNP -fnB -fnB -diS -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB +ubP +nXX +ubP +ubP +ejL +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP dCM bQM kPz bQM dCM -qms -fnB -qms -cph +fou +ubP +fou +ePM gIB -ndC -hbq -ejn -oTH +lrV +onh +sQy +adq hjE -fnB -fnB -fnB -sRV -sRV -sRV -sRV -fnB -fnB -fnB +ubP +ubP +ubP +gag +gag +gag +gag +ubP +ubP +ubP kjP -qeh -nRb -sOn -sOn -xBR +otC +dkn +uKX +uKX +rZe plK vZX waU @@ -67799,74 +67799,74 @@ azZ lAh xLi xLi -ruy +dqX phz phz phz xLi azZ -tOr -mtk -sqg -sqg -sqg -sqg -sqg -sqg +cer +wun +hae +hae +hae +hae +hae +hae xZR -sqg -sqg -uqo -ezJ -xjK -xjK -xjK -xjK -xjK -tOr -ezJ -xjK +hae +hae +lcJ +kpq +mvp +mvp +mvp +mvp +mvp +cer +kpq +mvp cyV -fPZ -fPZ +bLM +bLM cyV -fPZ -kqz -fPZ -sbp -fPZ -uWS -uFM -jlg -kqz -fPZ -jaR -ueA -nxH -kqz -kqz -cxF -goA -wmG -iVC -fPZ -mJy -cwO +bLM +tja +bLM +wbr +bLM +kid +ezU +eLw +tja +bLM +boI +vTR +oAf +tja +tja +dTg +slh +eYr +lbZ +bLM +dOO +oTi hVI -rCL -fPZ -fPZ -fPZ +dEj +bLM +bLM +bLM hVI -adH -qSg +khY +oAj hVI -mJy -cwO -tbZ -adH +dOO +oTi +ueI +khY hVI -fUZ +rlP mEO lLE xoi @@ -67883,7 +67883,7 @@ afk tCZ pcu tPN -slM +jSE cME cME tIU @@ -67894,69 +67894,69 @@ liA cME qIq eLu -lcH -cCq -dHp -uFh -lcH +uvF +rzp +vds +elO +uvF wQT eLu cME cME cME oFI -pHu -lMB -sHH -veB +dHD +qRa +upY +voO kqC -kis -uiR +pGS +kgN kqC -rRO -hvG -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -fnB -vGe +sOj +uye +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +ubP +aTx nqN dCM dCM dCM nqN -flC -qms -fnB -nDT +lkQ +fou +ubP +kWv gIB -aVD -dzo -sRV -tHs +mdH +rVV +gag +ihB hsC -fnB -fnB -fnB -sRV -sRV -sRV -sRV -fnB -fnB -fnB +ubP +ubP +ubP +gag +gag +gag +gag +ubP +ubP +ubP lAY -nRb -nRb -sOn -sOn -sOn +dkn +dkn +uKX +uKX +uKX plK vZX vZX @@ -68011,88 +68011,88 @@ azZ lAh xLi xLi -ruy +dqX phz phz -ruy +dqX azZ azZ -tOr -lro -kbO -kbO -kbO -kbO -kbO -kbO +cer +bLO +eqU +eqU +eqU +eqU +eqU +eqU xZR -kbO -kbO -uvy -ezJ -xjK -xjK -xjK -xjK -xjK -tOr -ezJ -xjK +eqU +eqU +xAY +kpq +mvp +mvp +mvp +mvp +mvp +cer +kpq +mvp cyV -fPZ -fPZ +bLM +bLM cyV -fPZ -kqz -cxF -sbQ -sbg -fSI -mIk -fPZ -ygH -kqz -kqz -kqz -kqz -fPZ -fPZ -cxF -goA -wmG -iVC -leq -mJy -cwO +bLM +tja +dTg +gbh +leZ +mAs +teK +bLM +aHK +tja +tja +tja +tja +bLM +bLM +dTg +slh +eYr +lbZ +oeN +dOO +oTi hVI -djA -vDj -fPZ -fPZ +iSW +ptH +bLM +bLM hVI -ivR +psL ovJ -dvY -kqz -cwO -fPZ -fPZ +hWi +tja +oTi +bLM +bLM sJu -rjE -dQp -idE +bxQ +mNB +byY fUX tQB -iKT +mpB afk afk afk -cjA -cpW +eze +bHU afk afk afk -rac +hxG jlH twb twb @@ -68107,68 +68107,68 @@ cME cME cME liA -cFy -mcc -vei +oXg +xbM +fHo xno dTf -lcH +uvF cME ljd cME oFI -pHu -sHH -sHH -hPs +dHD +upY +upY +ger abJ -usz -usz +ioc +ioc abJ -sFf -fnB -fnB -fnB -poD -ubH -ubH -ubH -ubH -ubH -rYC -fnB -wOS -sTa -sTa -sTa -sTa -sTa -oWW -eej -fnB -xnR +aUg +ubP +ubP +ubP +szD +cns +cns +cns +cns +cns +wzd +ubP +rxg +lld +lld +lld +lld +lld +bCe +nWv +ubP +iIE gIB -fnB -juS -fnB -fYB +ubP +gKg +ubP +iPz vUv -fnB -fnB -sRV -sTa -sTa -sTa -sTa -sRV -fnB -fnB +ubP +ubP +gag +lld +lld +lld +lld +gag +ubP +ubP cri hfc -mie -scU -sFn -vdZ +tGY +qBj +cZy +aGF plK wHw plK @@ -68222,89 +68222,89 @@ lAh lAh lAh xLi -jpS +sWb phz phz phz azZ xLi azZ -tOr -ezJ -jES -xjK -xjK -xjK -xjK +cer +kpq +luZ +mvp +mvp +mvp +mvp xLi rfd -xjK -xjK -tOr -vpB -xWp -xfq -sqg -xRh -xjK -tOr -ezJ -xjK +mvp +mvp +cer +ojc +ujo +kii +hae +ceJ +mvp +cer +kpq +mvp cyV -fPZ -fPZ +bLM +bLM cyV -fPZ -kqz -fPZ -wAT -trH -kqz -fPZ -fPZ -tnr -fPZ -fPZ -kqz -kqz -qDH -qDH -syf -syf -aNP -ebc -ven -gnV -uGq +bLM +tja +bLM +oTa +kZV +tja +bLM +bLM +img +bLM +bLM +tja +tja +ueX +ueX +qjM +qjM +tis +eca +xlk +nfu +kpH hVI tEH tEH -ajp -aoa +hzv +nDr hVI tEH tEH hVI -ldT -lAf -fPZ -xns +rqq +hMA +bLM +fgY vWe hVI hVI -anG +erD wyl aFZ -aQB -wJX +xKA +xQC llQ -djU -tqa -keo -mxG +viX +bsk +lSS +lcq llQ -lOB -tqa +jaB +bsk bQM bQM kPz @@ -68319,9 +68319,9 @@ cME cME cME kaO -maE -mcc -dds +qPa +xbM +weM daS cME cME @@ -68329,60 +68329,60 @@ cME cME eLu kqC -pHu -sHH -fxP -iUy +dHD +upY +eNa +efW vRA -usz -usz +ioc +ioc vRA -fnB -fnB -fnB -fnB -hss -tHs -tHs -tHs -tHs -tHs -dIi -fnB -ezT -uEm -uEm -uEm -uEm -uEm -ajr -fnB -fnB -aaW +ubP +ubP +ubP +ubP +qqd +ihB +ihB +ihB +ihB +ihB +unu +ubP +xjM +sbF +sbF +sbF +sbF +sbF +qhN +ubP +ubP +mNc gIB -sRV -vGe +gag +aTx uGY gIB uGY -nEy -fnB -azJ -pPf -grL -grL -apy -azJ -fnB -fnB -fnB +lHE +ubP +jtK +gmF +txh +txh +afO +jtK +ubP +ubP +ubP plK -uZn -nRb -sOn -oli +kyd +dkn +uKX +fuJ plK -uYR +hwS gRT vHU eki @@ -68434,90 +68434,90 @@ azZ azZ lAh xLi -ruy +dqX phz irD phz azZ azZ azZ -tOr -ezJ -xjK +cer +kpq +mvp xLi ddL ddL ddL xLi xLi -dMK -jES -tOr -vqg -uef -neD +nrU +luZ +cer +cvH +rFF +qrt xLi -fWc -xjK -tOr -ezJ -xjK -tef -tpO -nql -gkt -yjs -kqz -cJw -vdG -gzQ -kqz -luv -bcF -fPZ -fPZ -fPZ -kqz -vro -qDH +ydQ +mvp +cer +kpq +mvp +tji +azK +nWx +uno +atw +tja +koH +qTx +gRf +tja +rGe +dCv +bLM +bLM +bLM +tja +ltd +ueX aSS -qmC -uCa -uCa -jgl -mhb -avX -oBP -cnW -mhb -mhb -mhb -kqz -mhb -mhb -mhb -mhb -avX -cwO -fPZ -cqH +gNx +tHF +tHF +gbO +jQs +afq +uRF +qqc +jQs +jQs +jQs +tja +jQs +jQs +jQs +jQs +afq +oTi +bLM +svW hVI hVI hVI -bZC +hSo hVI aFZ -xQC -xQC -eDn -eDn -eDn -eDn -eDn -eDn -xQC -xQC -eDn +sKY +sKY +iYw +iYw +iYw +iYw +iYw +iYw +sKY +sKY +iYw kPz kPz twb @@ -68531,9 +68531,9 @@ cME rJh eLu eLu -pHu -mcc -vei +dHD +xbM +fHo vbG vZD cME @@ -68541,60 +68541,60 @@ cME cME eLu kqC -pHu -sHH -bfb +dHD +upY +skj uGY ceC xGt xGt ceC -fnB -fnB -eoZ -fnB -wTy -tHs -sRV -sRV -sRV -tHs -aQU -vlm -fbs +ubP +ubP +kJU +ubP +ibz +ihB +gag +gag +gag +ihB +dVx +gaQ +spm ceC ceC xNm ceC ceC -evv -fnB -fnB +eyy +ubP +ubP bZY uGY uxv uGY uGY -tHs -tHs -fnB -fnB -sRV -uEm -uEm -uEm -uEm -sRV -fnB -fnB -wzS +ihB +ihB +ubP +ubP +gag +sbF +sbF +sbF +sbF +gag +ubP +ubP +ozC plK -rtM -nRb -sOn -iif -nRb -xBT +kmn +dkn +uKX +nuo +dkn +xQx pSU dKo rJO @@ -68646,167 +68646,167 @@ azZ azZ lAh xLi -ruy +dqX phz phz phz phz -mYx +bMT azZ -tOr -ezJ -bAS +cer +kpq +wou xLi -pso -nTD -pdm -pPQ -qVD -cOy -xjK -tOr -vpB -xWp -jPz -kbO -dsT -xjK -tOr -ezJ -xjK +hqG +qMi +phQ +tiM +uky +bzU +mvp +cer +ojc +ujo +aMu +eqU +iOY +mvp +cer +kpq +mvp hVI rIS hVI dvq -fPZ -kqz -xeh -fPZ -tWe -kqz -qfI -fFU -cqy -fPZ -byr -kqz -kqz -dla -oja -peh -fPZ -bDD -mJy -sjw -jEb -jEb -oxk -jEb -jEb -jEb -hcf -jEb -jEb -kqz -pxI -jEb -tur -fPZ -goA +bLM +tja +tAR +bLM +cvi +tja +ewI +gCH +vJo +bLM +otz +tja +tja +fYa +voK +fQI +bLM +hkM +dOO +mzK +jbq +jbq +xTD +jbq +jbq +jbq +tpz +jbq +jbq +tja +eOM +jbq +brC +bLM +slh hVI -lDC -lDC -ldZ -lDC -mhv -mGe -dGw -vPM -haa -mGe -mGe -vPM -rKO -mGe -mGe -eDn -eDn +bLJ +bLJ +frv +bLJ +ofQ +hCh +suX +nQu +iUB +hCh +hCh +nQu +jcF +hCh +hCh +iYw +iYw cAW bQM bQM bQM twb -ivB +qkn uzw eLu mrk cME jkg -lcH -xlq -mcc -vei +uvF +rVL +xbM +fHo xno cME -lcH +uvF cME cME cME kqC -pHu -sHH -vei +dHD +upY +fHo uGY -tBD -vrM -fGp +jIw +cRl +sQC ceC -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP ceC -jVQ +kVN tpa tpa tpa -jVQ +kVN ceC ceC ceC ceC -eZD -wZn -meF +mXS +mQy +jQS ceC ceC -fkY -rmA +hYx +hEZ pTj -jCl -pDH -dme -fnB -ftv -aqI -fnB -fnB -fnB -sRV -sRV -sRV -sRV -fnB -fnB -fnB -fnB +mVY +uNm +nEI +ubP +sNU +pbX +ubP +ubP +ubP +gag +gag +gag +gag +ubP +ubP +ubP +ubP vFs -sOn -sOn -sOn -aFg -nRb -xBT +uKX +uKX +uKX +lkA +dkn +xQx gPs iMo rJO @@ -68863,88 +68863,88 @@ phz phz phz phz -ruy -xjK -tOr -ezJ -xjK +dqX +mvp +cer +kpq +mvp ddL lXO nId ykO pCc -mQn -siz -xjK -tOr -ezJ -xjK -xjK -xjK -xjK -xjK -tOr -ezJ -bAS +msd +ioV +mvp +cer +kpq +mvp +mvp +mvp +mvp +mvp +cer +kpq +wou hVI hVI hVI -exs -fPZ -kqz -xwi -fPZ -hqZ -kqz -fPZ -sbQ -luv -dBI -rLT -kqz -dqk -pIX -bNf -nBG -fKq -fPZ -mJy -cwO -mJM -fOs +fpq +bLM +tja +sve +bLM +iie +tja +bLM +gbh +rGe +bsR +hDl +tja +mMh +gFp +ikL +fwt +vBH +bLM +dOO +oTi +bNo +aEG hVI hVI hVI hVI -aoa +nDr hVI hVI -aoa +nDr hVI vWe -ruB -ruB -dID +nor +nor +tTI vWe -mFv -gXD -gTw -dGw -vPM -vPM -vPM -vPM -vPM -vPM -vPM -vPM -vPM -vPM -vPM -dGw -eDn -oVk -eDn +eqZ +iVT +fqg +suX +nQu +nQu +nQu +nQu +nQu +nQu +nQu +nQu +nQu +nQu +nQu +suX +iYw +yli +iYw bQM bQM twb @@ -68954,78 +68954,78 @@ eLu cME cME eLu -lcH -pHu -mcc -vei -lcH +uvF +dHD +xbM +fHo +uvF wQT eLu cYP qso -hTr +gsN kqC -pHu -sHH -vei +dHD +upY +fHo hVG -hVm +yiL cZV -oQY +wNG hVG -fnB -fnB -fnB -fnB +ubP +ubP +ubP +ubP ceC -xNf -sRV -sRV -sRV -unc +dZu +gag +gag +gag +lgG ceC -bOh -hUV -rRT -hUV -bFR -sMo -gVA +tCH +ohc +taL +ohc +pjf +mSp +mHY ceC -qnQ +wDz pTj -fnB +ubP pTj -gnj -crO -fnB -ftv -aqI -fnB -fnB -fnB -sRV -sRV -sRV -sRV -fnB -fnB -fnB -fnB +sJB +qMI +ubP +sNU +pbX +ubP +ubP +ubP +gag +gag +gag +gag +ubP +ubP +ubP +ubP vFs -sOn -sOn -sOn -fdS -nRb -xBT +uKX +uKX +uKX +oMf +dkn +xQx bWg tKv wxX rJO plK -keL -keL +xZI +xZI aPH nGy rJO @@ -69076,88 +69076,88 @@ phz phz irD phz -xjK -tOr -ezJ -xjK +mvp +cer +kpq +mvp ddL ntH nUr oHX pFP -rfR -sjn -xjK -tOr -mtk -sqg -sqg -sqg -sqg -sqg -ukI -ezJ -xjK +blA +tNf +mvp +cer +wun +hae +hae +hae +hae +hae +iRI +kpq +mvp hVI hVI hVI -xGY -fPZ -kqz -fPZ -fPZ -fPZ -kqz -fPZ -hBX -gwz -fPZ -vBV -aRB -kqz -dWN -bNf -uxi -fPZ -uvG -mJy -cwO -fPZ -jBK +euz +bLM +tja +bLM +bLM +bLM +tja +bLM +fCr +eCy +bLM +xsX +vdn +tja +rbZ +ikL +kke +bLM +wkg +dOO +oTi +bLM +eSO hVI -sol -fPZ -fPZ -fPZ -fPZ +aXR +bLM +bLM +bLM +bLM hVI -mFh -isJ -pQD -rME -fPZ -fPZ -wGa -dGw -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -vPM -vPM -tvI -tvI -tvI -tvI -vPM -vPM -dGw -eHa -eDn +ddB +wiR +xLn +hYX +bLM +bLM +eHt +suX +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +nQu +nQu +aeI +aeI +aeI +aeI +nQu +nQu +suX +egk +iYw bQM twb uts @@ -69167,9 +69167,9 @@ cME cME cME liA -pHu -mcc -ueF +dHD +xbM +fJV kqC kqC kqC @@ -69177,60 +69177,60 @@ kqC kqC kqC kqC -osO -mfV -odg +oSn +hwN +eJy uGY -toJ -twB -twB +lEF +tsN +tsN ceC -bsq -dzo -dzo -bsq +qbI +rVV +rVV +qbI ceC -vUE -fnB -fnB -fnB -sRV +ihO +ubP +ubP +ubP +gag hVG -yft -eSs -aHY -tXi -huI -lpf -seY +oZi +bcq +vgL +dHb +ezO +xpx +eIB ceC -sns -fnB -jmm -fnB -tPQ +fxi +ubP +pwC +ubP +dHU sYP -xqD -ftv -aqI -fnB -fnB -sRV -sTa -sTa -sTa -sTa -sRV -fnB -fnB -wzS +fGA +sNU +pbX +ubP +ubP +gag +lld +lld +lld +lld +gag +ubP +ubP +ozC plK upX -nRb -sOn -iif -nRb -xBT +dkn +uKX +nuo +dkn +xQx uMw rJO rJO @@ -69283,94 +69283,94 @@ azZ azZ xLi phz -ruy +dqX phz phz phz -jpS -xjK -tOr -ezJ -mrm +sWb +mvp +cer +kpq +ajw ddL oIq nOw oXR pHh -lxk -sma -xjK -tOr -hmk -kbO -kbO -kbO -kbO -kbO -kbO -dsT -xjK +apO +cKB +mvp +cer +pvF +eqU +eqU +eqU +eqU +eqU +eqU +iOY +mvp mEO mEO hVI hVI -hOg -kqz -kqz -kqz -kqz -kqz -kqz -wOT -kqz -bYq -kqz -kqz -kqz -qCw -bNf -ffU -fPZ -fPZ -mJy -cwO -hOg -xIg +gYM +tja +tja +tja +tja +tja +tja +lzd +tja +uJG +tja +tja +tja +caX +ikL +fjo +bLM +bLM +dOO +oTi +gYM +hgc hVI -mMb -dLx -fPZ -fPZ -fPZ -dvY -ryN -gBo -qpw -fPZ -fPZ -fPZ -jEC -dGw -tvI -fHy -tvI -tvI -tvI -tvI -tvI -vPM -vPM -vPM -tvI -tvI -tvI -tvI -tvI -tvI -vPM -deH -eDn -eDn +fMn +kOu +bLM +bLM +bLM +hWi +dAg +nRU +dhZ +bLM +bLM +bLM +stP +suX +aeI +ucN +aeI +aeI +aeI +aeI +aeI +nQu +nQu +nQu +aeI +aeI +aeI +aeI +aeI +aeI +nQu +shH +iYw +iYw twb eLu eLu @@ -69379,19 +69379,19 @@ srI dTf eLu twb -pHu -mcc -vei +dHD +xbM +fHo wzE -bux -bZu +sfu +jyF kqC -bux -bZu +sfu +jyF kqC -usz -usz -usz +ioc +ioc +ioc uGY xGt xGt @@ -69402,47 +69402,47 @@ ceC ceC ceC ceC -jpR -fnB -fnB -fnB -sRV +kOV +ubP +ubP +ubP +gag hVG -vOj -yft -dpI -fGe -suE -aBO -tCu +ljV +oZi +qHX +jbu +cKJ +tir +sCH ceC -wvf -cHx -fnB +kIA +psm +ubP pTj -fnB -dme -fnB -ftv -aqI -fnB -fnB -azJ -pPf -grL -grL -apy -azJ -fnB -fnB -vGe +ubP +nEI +ubP +sNU +pbX +ubP +ubP +jtK +gmF +txh +txh +afO +jtK +ubP +ubP +aTx plK -omi -nRb -sOn -aFg -nRb -xBT +qEk +dkn +uKX +lkA +dkn +xQx uMw rJO rJO @@ -69494,60 +69494,60 @@ azZ azZ xLi xLi -jpS +sWb phz -hWU +jFP phz -jpS +sWb xLi -xjK -tOr -ezJ +mvp +cer +kpq azZ xLi -nvC -nVA -paQ -pIi -gKL -shq -jES -tOr -ezJ -xjK -xjK -xjK -xjK -xjK -xjK -xjK -xjK +lIl +wol +mvV +fno +byF +nmy +luZ +cer +kpq +mvp +mvp +mvp +mvp +mvp +mvp +mvp +mvp mEO mEO mEO hVI -hOg -fPZ -goH -kqz -fPZ -fPZ -fPZ -lvh -fPZ -fPZ -gwz -lCm -fPu -dla -fzb -mYN -fPZ -mFh -xog -oBP -aja -lUp +gYM +bLM +rfe +tja +bLM +bLM +bLM +dCs +bLM +bLM +eCy +cTE +njm +fYa +cbF +nvs +bLM +ddB +rcI +uRF +xEH +cBX hVI mei oZz @@ -69558,74 +69558,74 @@ hVI hVI hVI hVI -fPZ -fPZ -hNi -lDC -ggQ -tvI -tvI -tvI -tvI -eMO -tvI -tvI -vPM -vPM -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -dGw -dhe +bLM +bLM +iUa +bLJ +xXl +aeI +aeI +aeI +aeI +ssc +aeI +aeI +nQu +nQu +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +suX +neY liA -gVR -dMa +yfK +tmo gfo cME wQT eLu kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -isP -fAs +wsX +bjt kqC -avl -ocB +qNF +ctW kqC -cCq -dHp -dHp -dHp -ugU -gNW -gNW -gNW -hKE +rzp +vds +vds +vds +car +gOU +gOU +gOU +vFV xGt -mni -tHs -mni -tHs -sRV -sRV -sRV -tHs +ucu +ihB +ucu +ihB +gag +gag +gag +ihB ceC -ryt -ryt +obh +obh nqN -hSR -tam -ilh +bxc +jbF +bBK ceC uGY uGY @@ -69639,22 +69639,22 @@ uGY uGY uGY uGY -sRV -uEm -uEm -uEm -uEm -sRV -fnB -fnB -fnB +gag +sbF +sbF +sbF +sbF +gag +ubP +ubP +ubP plK -aFg -nRb -sOn -fdS -nRb -xBT +lkA +dkn +uKX +oMf +dkn +xQx uMw rJO rJO @@ -69706,15 +69706,15 @@ azZ azZ xLi xLi -jpS +sWb phz phz phz phz xLi -xjK -tOr -ezJ +mvp +cer +kpq azZ xLi xLi @@ -69723,15 +69723,15 @@ ddL ddL xLi xLi -tmi -tOr -ezJ -xjK -bjy -kky -lvx -jpS -ruy +uRT +cer +kpq +mvp +icg +uTr +myQ +sWb +dqX lAh lAh aFZ @@ -69739,62 +69739,62 @@ aFZ bmE hVI hVI -lxe -ayM -kqz -fPZ -bow +kXm +ipM +tja +bLM +esw aFZ hVI hVI -kqz -kqz +tja +tja hVI hVI hVI yhR -rmI -mhb -avX -kqz -kqz -oBP -uXc -cQn -mhb -mhb -mhb -rAQ -bqy +qiK +jQs +afq +tja +tja +uRF +cZp +aWI +jQs +jQs +jQs +nRT +qNj hVI -kSp -pEe -mFh -aja -fPZ -uxi -qwZ -bWr -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -mGe -vPM -jgN -tvI -acx -tvI -tvI -eMO -tvI -vPM -dGw -lDC +vlK +oWY +ddB +xEH +bLM +kke +xSM +tWf +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +hCh +nQu +aQH +aeI +uJR +aeI +aeI +ssc +aeI +nQu +suX +bLJ twb twb tPN @@ -69803,9 +69803,9 @@ tPN twb eLu kqC -pHu -mcc -vei +dHD +xbM +fHo kqC ryJ end @@ -69813,67 +69813,67 @@ kqC ryJ end kqC -pHu -juW -sHH -nCu -ufo -sHH -sHH -eGz -isK +dHD +wbW +upY +ufE +ugg +upY +upY +gmG +ksE xGt -fHU -wAr -fHU -tHs -sRV -sRV -sRV -tHs -bpK -ukN -kSI +roF +xWV +roF +ihB +gag +gag +gag +ihB +wQD +aye +yjW hVG -yft -fnB -fnB +oZi +ubP +ubP hVG -sRV -sFf -sdg +gag +aUg +ntf uGY -pUS -tHs -tHs +aMS +ihB +ihB xGt -wTz -iTy -xvH +klh +mld +hjM uGY -fnB -fnB -fnB -fnB -fnB -sRV -sRV -sRV -sRV +ubP +ubP +ubP +ubP +ubP +gag +gag +gag +gag plK -fdS -nRb -sOn -sOn -sOn -xBT +oMf +dkn +uKX +uKX +uKX +xQx uMw rJO rJO rJO plK -keL -keL +xZI +xZI eYV lvi rJO @@ -69919,95 +69919,95 @@ azZ azZ xLi xLi -jpS +sWb phz phz phz phz -xjK -tOr -ezJ +mvp +cer +kpq azZ azZ -xjK -xjK -xjK -bAS +mvp +mvp +mvp +wou xLi xLi -aOd -tOr -ezJ -xjK -kVz +cGa +cer +kpq +mvp +tmF xLi -xLP +mgh azZ azZ azZ ohF pcu tQB -wnW -aUx +kZu +mAK hVI -rfo -fPZ -kqz -fPZ -idE +wfu +bLM +tja +bLM +byY tEH -fPZ -fPZ -fPZ -trH -trH -fPZ +bLM +bLM +bLM +kZV +kZV +bLM hVI hVI -wRh -kqz -kqz -nhF -kqz -kqz -icj -tST -kqz -kqz -kqz -aGS -eli +woh +tja +tja +wCJ +tja +tja +frR +gjz +tja +tja +tja +tnY +ciy hVI -myO -cwO -mJy -cwO -fPZ -uxi -kUR -eMJ -tvI -vYE -tvI -tvI -tvI -tvI -qbr -vPM -mGe -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -mGe -xQC +wNB +oTi +dOO +oTi +bLM +kke +lwq +hGy +aeI +pdX +aeI +aeI +aeI +aeI +lqJ +nQu +hCh +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +hCh +sKY bQM bQM bQM @@ -70015,70 +70015,70 @@ bQM bQM wzE kqC -pHu -ikA -vei -usz -cCq -dHp -dHp -dHp -uFh -jRR -pHu -sHH -sHH -cVl -sHH -bSP -sHH -sHw -uAG +dHD +bPn +fHo +ioc +rzp +vds +vds +vds +elO +nAs +dHD +upY +upY +hMj +upY +dQe +upY +ygk +rnE xGt -cBT -hBP -rBa -ddO -sRV -fWL -nyD -gkm -oZR -xVm -tJM +cLC +pjR +jOY +wXe +gag +udt +wHr +stw +wQg +qet +mKp nqN -ltb -cbK -hAL +qJv +bqF +tNF ceC -xEa -fnB -lqB +qNu +ubP +wty uGY -aCT -fnB -sRV +giA +ubP +gag hVG -tHs -qbu -tHs +ihB +rZO +ihB hVG -sRV -sRV -sRV -sRV -sRV -sRV -sRV -sRV -cvq +gag +gag +gag +gag +gag +gag +gag +gag +cHl plK -lNB -nRb -nRb -nRb -sOn -xBT +mVd +dkn +dkn +dkn +uKX +xQx gHz aJX uMw @@ -70136,90 +70136,90 @@ phz phz phz phz -xjK -tOr -mtk -sqg -sqg -sqg -sqg -sqg -sqg +mvp +cer +wun +hae +hae +hae +hae +hae +hae xZR -sqg -sqg -uwg -ezJ -xjK -qzn -ham -btq +hae +hae +ovk +kpq +mvp +mlb +byG +uQT azZ azZ azZ bTo pcu aFZ -uCz -kqz +hUL +tja hVI -bow -fPZ -kqz -mUr -bow +esw +bLM +tja +rnM +esw tEH -fPZ -rAa -rss -dBI -ycg -fPZ +bLM +uqd +eUy +bsR +hGu +bLM aif rKa -cVk -oYm -lFj -cFC -kqz -kqz -icj -kqz -kqz -sZr -kqz -aNw +rTV +pWX +bDJ +rtP +tja +tja +frR +tja +tja +nMi +tja +upr hVI hVI -mAz -tur -quk -rMS -tcl -seu -hTc -bWr -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -dGw -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -mGe -xQC +mMa +brC +uhX +tJw +kGD +gyh +buG +tWf +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +suX +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +hCh +sKY bQM bQM bQM @@ -70227,32 +70227,32 @@ bQM bQM wzE kqC -pHu -mcc -vei -usz -avl -xri -xri -xri -iUy -jRR -wjx -sHH -wOM -sHH -sHH -hxi -ufo -isK +dHD +xbM +fHo +ioc +qNF +xRI +xRI +xRI +efW +nAs +fcB +upY +hlB +upY +upY +vYX +ugg +ksE ceC ceC -bFY -tHs -wJt -vZU -sRV -vKj +sIh +ihB +kjX +ueP +gag +hQj nqN nqN nqN @@ -70263,27 +70263,27 @@ ceC nqN nqN ceC -hUH -sRV -nBM +unz +gag +gYH uGY -aVN -fnB -tHs +pDQ +ubP +ihB xGt -gbP -uKh -iin +fZW +cki +huB uGY sEO sEO sEO -alr -ddF -ddF -ddF -ddF -ddF +vpN +sXt +sXt +sXt +sXt +sXt plK plK plK @@ -70293,8 +70293,8 @@ dwT dwT plK plK -rrb -aYZ +nzu +mBZ aPH kPz kPz @@ -70347,101 +70347,101 @@ xLi xLi xLi phz -jpS -xjK -lax -kbO -kbO -kbO -kbO -kbO -kbO -kbO +sWb +mvp +ubX +eqU +eqU +eqU +eqU +eqU +eqU +eqU xZR -kbO -kbO -dFk -ezJ -xjK -xjK -xjK -xjK +eqU +eqU +uAg +kpq +mvp +mvp +mvp +mvp azZ bQM bQM bTo pcu aFZ -duB -kqz +wDK +tja aif -idE -fPZ -kqz -fPZ -idE +byY +bLM +tja +bLM +byY tEH -fPu -jlg -jlg -fPZ -fPZ -fPu +njm +eLw +eLw +bLM +bLM +njm hVI hVI -wRh -xzb -kqz -kqz -kqz -uXa -icj -vro -kqz -sWu -kqz -bxa -lDC -lDC -lDC -lDC -lDC -lDC -lDC -lDC -lDC -ggQ -tvI -kuT -tvI -tvI -tvI -oKQ -tvI -vPM -mGe -vPM -tvI -oKQ -tvI -tvI -tvI -ioG -tvI -tvI -vPM -deH -eDn -eDn -xQC -xQC -xQC -eDn -eDn -vqi -pHu -mcc -veB +woh +hYl +tja +tja +tja +cCs +frR +ltd +tja +set +tja +nyq +bLJ +bLJ +bLJ +bLJ +bLJ +bLJ +bLJ +bLJ +bLJ +xXl +aeI +fyt +aeI +aeI +aeI +rOL +aeI +nQu +hCh +nQu +aeI +rOL +aeI +aeI +aeI +evl +aeI +aeI +nQu +shH +iYw +iYw +sKY +sKY +sKY +iYw +iYw +izh +dHD +xbM +voO kqC ryJ end @@ -70449,39 +70449,39 @@ kqC ryJ end kqC -azT -sHH -sHH -cPQ -sHH -sHH -pbS -isK +lNf +upY +upY +elc +upY +upY +eNr +ksE xGt -mni -tHs -mni -tHs -tHs -fnB -fnB +ucu +ihB +ucu +ihB +ihB +ubP +ubP pTj -sRV -uSo -bOh +gag +hCk +tCH wBK -nzm +kGB ceC -tVZ -tVZ +dBO +dBO uGY uGY uxv uGY uGY -ril -fnB -tHs +nFb +ubP +ihB uGY xGt xGt @@ -70490,20 +70490,20 @@ uGY jwK jnd jwK -aWR -hxy -aWR -aWR -hxy -aWR +nZB +fAf +nZB +nZB +fAf +nZB okg jnd mpf hLz -aWR -hxy -hxy -aWR +nZB +fAf +fAf +nZB aPH aPH aPH @@ -70560,23 +70560,23 @@ xLi xLi xLi xLi -xjK -xjK -xjK -xjK -xjK -xjK -xjK -xjK -bAS +mvp +mvp +mvp +mvp +mvp +mvp +mvp +mvp +wou xLi xLi -aOd -tOr -ezJ -xjK -xjK -xjK +cGa +cer +kpq +mvp +mvp +mvp azZ azZ bQM @@ -70587,11 +70587,11 @@ aFZ hVI hVI hVI -gjj -fPZ -kqz -fPZ -idE +qSy +bLM +tja +bLM +byY aFZ hVI hVI @@ -70601,121 +70601,121 @@ hVI hVI hVI hVI -wRh -kqz -kqz -kqz -kqz -sHQ -pnc -bII -kqz -kqz -kqz -iJj -cAv -vPM -fhz -gTw -gTw -wuT -qyX -vPM -vPM -dGw -tvI -tvI -tvI -tvI -tvI -tvI -kuT -vPM -mGe -xqh -tvI -tvI -ioG -tvI -aJU -tvI -tvI -tvI -vPM -vPM -pkw -ybs -gTw -gTw -gTw -vPM -pkw -tjM -cMg -mcc -vei +woh +tja +tja +tja +tja +jHU +oza +cgx +tja +tja +tja +vyv +nMz +nQu +wRz +fqg +fqg +eLX +edy +nQu +nQu +suX +aeI +aeI +aeI +aeI +aeI +aeI +fyt +nQu +hCh +kob +aeI +aeI +evl +aeI +hTy +aeI +aeI +aeI +nQu +nQu +srp +hOQ +fqg +fqg +fqg +nQu +srp +bqD +cAJ +xbM +fHo kqC -cCq -awo +rzp +tKk kqC -cCq -mIA +rzp +osQ kqC -pHu -sHH -sHH -sHH -nCu -juW -buO -isK +dHD +upY +upY +upY +ufE +wbW +fxS +ksE xGt -fHU -kdk -fHU -tHs -tHs -fnB -fnB +roF +oDg +roF +ihB +ihB +ubP +ubP pTj -juS -gmS -dhs +gKg +dFB +hrB sYP -nzm +kGB uGY -wir -tHs -rcu -tHs -sRV -quU +xLd +ihB +syj +ihB +gag +aOL uGY -jdh -fnB -tHs +ppq +ubP +ihB nqN -jKG -hxy -hxy -hxy -hxy -pbC -hxy -hxy +lJx +fAf +fAf +fAf +fAf +mxc +fAf +fAf jwK -aWR -aWR +nZB +nZB jwK -hxy -mOW -hxy -aAM +fAf +gsd +fAf +lJf hLz -nID +nQH jwK jwK -hLy +lEg wly kPz kPz @@ -70775,19 +70775,19 @@ xLi xLi xLi xLi -mwU -ruy -ruy -ruy -cft -cft +vHX +dqX +dqX +dqX +kQy +kQy xLi xLi phz -tOr -ezJ +cer +kpq rBr -xjK +mvp azZ azZ azZ @@ -70796,138 +70796,138 @@ bQM bTo pcu aFZ -fHQ -kqz +chZ +tja aif -idE -fPZ -kqz -fPZ -qQU +byY +bLM +tja +bLM +qtP aFZ fIT hVI mEO mEO -qDo +ddD hVI lmn -jXQ -tqR -bgR -uiK -bgR -izP +fkH +roE +tpZ +jAF +tpZ +crm nQq nQq -sZr -kqz -kqz -kqz -lcu -vbe -dGw -fsn -mGe -mGe -dGw -rVy -mGe -wnB -wnB -gVX -vPM -vPM -vPM -vPM -vPM -vPM -vPM -dGw -vPM -vPM -vPM -vPM -vPM -vPM -vPM -sYe -tJT -tJT -mGe -isl -dGw -mGe -mGe -mGe -dGw -isl -sHH -pHu -mcc -vei +nMi +tja +tja +tja +bze +iWP +suX +jyQ +hCh +hCh +suX +fNA +hCh +ctY +ctY +iAB +nQu +nQu +nQu +nQu +nQu +nQu +nQu +suX +nQu +nQu +nQu +nQu +nQu +nQu +nQu +xFg +asz +asz +hCh +mGr +suX +hCh +hCh +hCh +suX +mGr +upY +dHD +xbM +fHo kqC -wII -bjk +qLi +dpe kqC -wII -bjk +qLi +dpe kqC -pHu -sHH -vDx -sHH -aLR -sHH -ifI -uAG +dHD +upY +sRv +upY +wam +upY +mom +rnE xGt -cBT -vok -cBT -tHs -tHs -fnB -fnB +cLC +mwK +cLC +ihB +ihB +ubP +ubP pTj -xTy -xTy -sRV -sRV -nzm +aIm +aIm +gag +gag +kGB cCB -tHs -fnB -fnB -cQu -fnB -tHs +ihB +ubP +ubP +eLQ +ubP +ihB cCB -tHs -fnB -tHs +ihB +ubP +ihB uGY hLz -wMR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -hxy -bgG +ndD +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +fAf +tFo xUo -aWR +nZB jwK jwK -aWR +nZB ckm kPz bQM @@ -70986,18 +70986,18 @@ xLi xLi xLi xLi -lzO -xjK -dNF -ruy -dNF -xjK -xjK -xjK +rGc +mvp +rHX +dqX +rHX +mvp +mvp +mvp phz phz -tOr -ezJ +cer +kpq azZ azZ azZ @@ -71008,76 +71008,76 @@ bQM bTo pcu aFZ -qTp -kqz +bRo +tja hVI -idE -fPZ -kqz -fPZ -idE +byY +bLM +tja +bLM +byY sJu mEO sJu mEO mEO -ezo +akW hVI gZf -fPZ -mJy -bII -kqz -kqz -cLr +bLM +dOO +cgx +tja +tja +sTI hVI hVI -fcO -sZr -kqz -kqz -pIX -cYg -dGw -dGw -dGw -jqR -dGw -rVy -mGe -bCk -sLl -jNa -vPM -mGe -mGe -smz -mGe -mGe -dGw -muf -dGw -mGe -wWT -dGw -mGe -mGe -vPM -liT -jXx -jXx -mGe -isl -dGw -dGw -dGw -dGw -dGw -isl -sHH -pHu -mcc -vei +kgT +nMi +tja +tja +gFp +mZH +suX +suX +suX +bEA +suX +fNA +hCh +ohl +qQa +trJ +nQu +hCh +hCh +bkU +hCh +hCh +suX +bqX +suX +hCh +jXV +suX +hCh +hCh +nQu +umm +aDx +aDx +hCh +mGr +suX +suX +suX +suX +suX +mGr +upY +dHD +xbM +fHo kqC kqC kqC @@ -71085,61 +71085,61 @@ kqC kqC kqC mCF -iDa -sHH -sHH +sAF +upY +upY vRA -sHH -sHH -isK +upY +upY +ksE ceC ceC -bFY -tHs -bFY -tHs -tHs -sRV -qks +sIh +ihB +sIh +ihB +ihB +gag +qdE uGY -kik -kik +ltQ +ltQ nqN -kik -iOE +ltQ +ayo uGY -hce -jpl -tHs -tHs -fnB -sRV +eZQ +kyZ +ihB +ihB +ubP +gag hVG -sRV -fnB -tHs +gag +ubP +ihB uGY -mft -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -aWR -hxy -aWR +jEr +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +nZB +fAf +nZB xUo -aWR +nZB jwK jwK -aWR +nZB ckm kPz bQM @@ -71199,17 +71199,17 @@ xLi xLi xLi xLi -mzp -dNF -ruy -dNF -xjK -xjK -xjK +spH +rHX +dqX +rHX +mvp +mvp +mvp phz phz -tOr -ezJ +cer +kpq pPd azZ azZ @@ -71220,138 +71220,138 @@ tuf bTo pcu tQB -qeu -kqz +kSd +tja hVI -lpV -eAQ -kqz -fPZ -ygv +ncj +sdr +tja +bLM +egT aFZ hVI hVI mEO mEO -rNp +bWy hVI gZf -fPZ -mJy -kqz -kqz -iOe -feO +bLM +dOO +tja +tja +fSa +lJS nQq nQq -fJO -kqz -kqz -kqz -aSw -cYa -dGw -gfp -hkW -mGe -dGw -rVy -mGe -oOs -oOs -eKg -vPM -jZx -vPM -vPM -vPM -vPM -jZx -dGw -vPM -dHI -vPM -vPM -vPM -vPM -vPM -xQs -ckj -ckj -mGe -isl -dGw -mGe -mGe -mGe -dGw -isl -sHH -pHu -mcc -vei +qAl +tja +tja +tja +lVQ +qZv +suX +lFQ +aCZ +hCh +suX +fNA +hCh +mRS +mRS +qRK +nQu +dcO +nQu +nQu +nQu +nQu +dcO +suX +nQu +wGb +nQu +nQu +nQu +nQu +nQu +mjm +jfO +jfO +hCh +mGr +suX +hCh +hCh +hCh +suX +mGr +upY +dHD +xbM +fHo kqC -bux -bZu +sfu +jyF kqC -bux -bFN +sfu +iEG kqC -pHu -sHH -sHH +dHD +upY +upY vRA -rkh -xBv -isK +cKH +joJ +ksE xGt -maC -tHs -tHs -tHs -tHs -tHs -bDd +bjo +ihB +ihB +ihB +ihB +ihB +kfL uGY uGY -qTa -qTa +fRq +fRq nqN -qTa -nsH +fRq +ygr xGt -tHs -fnB -aDC -wiQ -vOj -sRV +ihB +ubP +lwp +dlr +ljV +gag hVG -sRV -fnB -tHs +gag +ubP +ihB uGY -gaN -aWR -aWR -aWR -aWR -tBU -aWR -aWR -aWR -aWR -aWR -aWR -aWR -bgG -hxy -aWR +lMh +nZB +nZB +nZB +nZB +tco +nZB +nZB +nZB +nZB +nZB +nZB +nZB +tFo +fAf +nZB xUo -aWR +nZB jwK jwK -aWR +nZB ckm kPz kPz @@ -71407,24 +71407,24 @@ xLi inA xLi xLi -csp -csp -pvT -pvT -xjK -jvp -ruy -dNF -xjK -xjK -xjK +fEn +fEn +kqy +kqy +mvp +sVT +dqX +rHX +mvp +mvp +mvp rBr phz -tOr -ezJ -xjK -ruy -jpS +cer +kpq +mvp +dqX +sWb azZ azZ azZ @@ -71435,135 +71435,135 @@ aFZ hVI hVI hVI -idE -fPZ -kqz -fPZ -idE +byY +bLM +tja +bLM +byY aFZ hVI -nGq +hZf mEO mEO hVI hVI gZf -fPZ -mJy -bII -kqz -fyT -kqz -tnd -ueA -bII -kqz -kqz -kqz -kdo -tzF -vPM -guB -ick -jZb -mDi -sWF -vPM -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -mGe -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -tvI -vPM -vPM -dnA -vWE -jZb -jZb -jZb -vPM -dnA -reD -pHu -mcc -vei +bLM +dOO +cgx +tja +xAo +tja +nkJ +vTR +cgx +tja +tja +tja +tjw +cYS +nQu +pzL +vDL +eWf +qre +diL +nQu +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +hCh +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +aeI +nQu +nQu +oTS +vLO +eWf +eWf +eWf +nQu +oTS +iox +dHD +xbM +fHo kqC -avl -fAs +qNF +bjt kqC -avl -jms +qNF +mDO kqC -pHu -sHH +dHD +upY vRA -eNV -sHH -sHH -isK +vZL +upY +upY +ksE xGt -xed -tHs -tHs -tHs -tHs -tHs -wAR +mEJ +ihB +ihB +ihB +ihB +ihB +tkd cCB -sRV -sRV -sRV -sRV -sRV -nzm +gag +gag +gag +gag +gag +kGB xGt -tHs -fnB -keF -vrf -fnB -tHs +ihB +ubP +eWz +pxr +ubP +ihB uGY -tHs -tHs -pCZ +ihB +ihB +tXT uGY hLz -aWR -aWR -hxy -hxy -jrL -hxy -hxy +nZB +nZB +fAf +fAf +aXx +fAf +fAf jwK -aWR -aWR +nZB +nZB jwK -hxy -mOW -hxy -fMY +fAf +gsd +fAf +czJ hLz -nID -hxy -hxy -hLy +nQH +fAf +fAf +lEg wly ckm ckm @@ -71608,7 +71608,7 @@ bQM azZ azZ ejw -jpS +sWb etL phz phz @@ -71618,102 +71618,102 @@ gDx xLi xLi xLi -ruy -csp -csp -deN -deN -eRS -dNF -ruy -dNF -jmM +dqX +fEn +fEn +oGy +oGy +cLy +rHX +dqX +rHX +esR xLi xLi -ruy +dqX phz -tOr -ezJ +cer +kpq irD trl phz -ruy +dqX azZ azZ lAh -hPF -qFQ -sNK -idE -idE -gkt -idE -fPZ -iOe -fPZ -idE +mnd +oYs +nCh +byY +byY +uno +byY +bLM +fSa +bLM +byY eVm hVI -tNS +tgL mEO xgF hVI -fiD -wkp -fPZ -mJy -kqz -kqz -mqY -kqz -xzb -kqz -kqz -xzb -kqz -kqz -oFW -eDn -eHa -xQC -xQC -xQC -eDn -eDn -iCi -vPM -tvI -rxu -tvI -tvI -tvI -tvI -oKQ -tvI -vPM -mGe -vPM -tvI -oKQ -tvI -vYE -tvI -xXw -hVS -tvI -vPM -deH -eDn -eDn -xQC -xQC -xQC -eDn -eDn -vqi -pHu -mcc -veB +oPn +jEy +bLM +dOO +tja +tja +iMq +tja +hYl +tja +tja +hYl +tja +tja +mCR +iYw +egk +sKY +sKY +sKY +iYw +iYw +sOM +nQu +aeI +eBa +aeI +aeI +aeI +aeI +rOL +aeI +nQu +hCh +nQu +aeI +rOL +aeI +pdX +aeI +xei +xpj +aeI +nQu +shH +iYw +iYw +sKY +sKY +sKY +iYw +iYw +izh +dHD +xbM +voO kqC ryJ end @@ -71721,53 +71721,53 @@ kqC ryJ end kqC -ulJ -sHH +nBb +upY vRA -sHH -sHH -oJW -isK +upY +upY +ejf +ksE xGt -adl -isB -tHs -pQb -lgy -tHs -mEb +izN +mDS +ihB +htq +lNc +ihB +vuK uGY -sRV -sRV -sRV -sRV -sRV -nzm +gag +gag +gag +gag +gag +kGB xGt -kvn -fnB -qKs -tHs -fnB -tHs +gwm +ubP +ggA +ihB +ubP +ihB uGY ceC uGY uGY nqN -jlO +qQd jwK jwK -hxy +fAf sEO sEO sEO -hxy -hxy +fAf +fAf jwK jwK -aWR -aWR +nZB +nZB okg liZ uSQ @@ -71777,9 +71777,9 @@ xja xja hLz hLz -mWg -mWg -mWg +eCK +eCK +eCK wly wly kPz @@ -71831,115 +71831,115 @@ xLi xLi xLi phz -ruy -ruy +dqX +dqX xLi xLi -cBQ -dNF -ruy -dNF -xjK +idP +rHX +dqX +rHX +mvp azZ azZ azZ -eyo -tOr -ezJ +vTq +cer +kpq phz -jpS +sWb phz -ruy -csp -xjK -xjK -csp -idE -idE +dqX +fEn +mvp +mvp +fEn +byY +byY hVI -jJF -fPZ -fPZ -fPZ -kqz -fPZ -idE +rUQ +bLM +bLM +bLM +tja +bLM +byY aFZ hVI -svG +fQY mEO mEO sJu -fPZ -fPZ -fPZ -urS -kqz -kqz -kqz -teT -kqz -kqz -kqz -kqz -kqz -kqz -lwB +bLM +bLM +bLM +abG +tja +tja +tja +tLk +tja +tja +tja +tja +tja +tja +oOk aFZ aFZ -gyW -bQM -bQM -bQM -xQC -mGe -vPM -tvI -tvI -tvI -tvI -tvI -tvI -tvI -rxu -vPM -dGw -vPM -tvI -tvI -rxu -tvI -kuT -tvI -hVS -tvI -vPM -mGe -xQC -cmz +fPB +bQM +bQM +bQM +sKY +hCh +nQu +aeI +aeI +aeI +aeI +aeI +aeI +aeI +eBa +nQu +suX +nQu +aeI +aeI +eBa +aeI +fyt +aeI +xpj +aeI +nQu +hCh +sKY +hTN fyC qOk mKS erT wzE wzE -pHu -mcc -vei -usz -cCq -dHp -dHp -wsN -uFh -jRR -wjx -uyd -sHH -sHH -sHH -sHH -isK +dHD +xbM +fHo +ioc +rzp +vds +vds +msH +elO +nAs +fcB +gQc +upY +upY +upY +upY +ksE ceC ceC nqN @@ -71952,47 +71952,47 @@ nqN uxv ceC ceC -bBS -qXl -weQ +aPr +jyv +kaw uGY -evQ -fnB -fnB -fnB -fnB -tHs -rfa +ilr +ubP +ubP +ubP +ubP +ihB +rKm ceC hLz -gHl +byE hLz -hxy +fAf jwK jwK -hxy +fAf sEO sEO sEO -hxy -hxy +fAf +fAf jwK jwK -hxy -hxy +fAf +fAf hLz hLz hLz hLz -nxM -nxM +aQW +aQW wSm qxN qxN -hxy -hxy -hxy -hxy +fAf +fAf +fAf +fAf ybj wly wly @@ -72041,170 +72041,170 @@ azZ phz xZR phz -xjK +mvp phz -xjK +mvp irD -ldy -lYl -fkP -dNF -ruy -dNF -phg +iMN +oNu +aQY +rHX +dqX +rHX +xqY azZ xLi xLi -xjK -tOr -ezJ +mvp +cer +kpq phz phz phz kEZ -csp -xjK -xjK -csp -idE -idE +fEn +mvp +mvp +fEn +byY +byY hVI -hpN -fPZ -fPZ -fPZ -kqz -fPZ -idE +vCL +bLM +bLM +bLM +tja +bLM +byY aFZ hVI -svG +fQY mEO mEO hVI -fOs -fPZ -fPZ -ryN -owv -jEb -cjl -jEb -yil -jEb -aaf -eTd -jEb -kqz -lJv +aEG +bLM +bLM +dAg +vki +jbq +sGk +jbq +xsh +jbq +fCf +jTo +jbq +tja +tFY aFZ aFZ -gyW -bQM -bQM -bQM -xQC -vuc -vPM -tvI -tvI -tvI -qfE -dnI -tvI -tvI -tvI -vPM -mGe -vPM -tvI -rxu -tvI -tvI -tvI -tvI -tvI -tvI -vPM -mGe -xQC -xyy +fPB +bQM +bQM +bQM +sKY +lqa +nQu +aeI +aeI +aeI +jJZ +cEW +aeI +aeI +aeI +nQu +hCh +nQu +aeI +eBa +aeI +aeI +aeI +aeI +aeI +aeI +nQu +hCh +sKY +dxl afk afk afk ghg wzE wzE -pHu -mcc -vei -usz -laZ -xri -xri -xri -iUy -jRR -wjx -sHH -sHH +dHD +xbM +fHo +ioc +iWp +xRI +xRI +xRI +efW +nAs +fcB +upY +upY vRA -nhR -sql -pZb -kWn -hKE +osN +xdb +pZn +kIb +vFV hZR kPz kPz kPz dCM -tMx -oQY -oQY -vMb +svc +wNG +wNG +hWb xGt -xBI -xBI -xBI +lVA +lVA +lVA gIB -ohs -qgA -tHs -sRV -tHs -mni -gZE +sjM +fIn +ihB +gag +ihB +ucu +fkG ceC -tvU -wMR -hxy -hxy -aWR -aWR -hxy -aWR -jtF -hxy -aWR -aWR -hxy -aWR -aWR -hxy -hxy -lPW -hxy -mqc -aWR +ikF +ndD +fAf +fAf +nZB +nZB +fAf +nZB +kEx +fAf +nZB +nZB +fAf +nZB +nZB +fAf +fAf +nyO +fAf +uuk +nZB wSm pBV qKT qbl wSm -aWR -wMR -hxy +nZB +ndD +fAf wly wly wly @@ -72253,41 +72253,41 @@ xLi xLi xLi xLi -aOd +cGa phz -xjK -app -bUJ -mcT -fkP -dNF -ruy -dNF +mvp +sVS +dwZ +wsM +aQY +rHX +dqX +rHX phz xLi xLi azZ -xjK -tOr +mvp +cer phz -xjK -jpS +mvp +sWb wNi -ruy -csp -xjK -xjK -gKA -mxO -arm -arm -arm -miZ -vcy -jCQ -fPZ -fPZ -edv +dqX +fEn +mvp +mvp +dvB +mpY +xCv +xCv +xCv +gHC +kHc +fbc +bLM +bLM +lDo aFZ aFZ aFZ @@ -72318,28 +72318,28 @@ jmG jmG cKa cKa -cNC -tvI -tvI -tvI -tvI -tvI -tvI -vYE -vPM -mGe -vPM -vPM -vPM -vPM -hrg -hrg -hrg -vPM -vPM -rWB -eDn -eDn +rMT +aeI +aeI +aeI +aeI +aeI +aeI +pdX +nQu +hCh +nQu +nQu +nQu +nQu +hox +hox +hox +nQu +nQu +bVE +iYw +iYw urJ afk hkh @@ -72347,9 +72347,9 @@ afk tCZ pcu wzE -pHu -mcc -veB +dHD +xbM +voO kqC ryJ end @@ -72357,66 +72357,66 @@ kqC ryJ end kqC -ulJ -sHH -sHH -sHH -sHH -xQE -hCX -sHH -isK +nBb +upY +upY +upY +upY +siW +bEm +upY +ksE hZR kPz bQM kPz dCM -mZw -oQY +nIw +wNG cZV -oTe +sjJ xGt -pGv -pGv -pGv +kWL +kWL +kWL gIB -qzX -tZX +mEn +psP uGY -vaj +dBs uGY -nWK -jdh +oOh +ppq ceC -xOQ -hxy -hxy -hxy -aWR -aWR -hxy -tzx -tGl -dSy -aWR -aWR -hxy -aWR -aWR -hxy -tSi -fSe -dSy -wMR -aWR +gjs +fAf +fAf +fAf +nZB +nZB +fAf +xTW +aAJ +dUi +nZB +nZB +fAf +nZB +nZB +fAf +aSA +cvv +dUi +ndD +nZB ppG qbl qbl wSm -rZr -aWR -aWR -hxy +jxc +nZB +nZB +fAf wly wly wly @@ -72465,92 +72465,92 @@ xLi xLi xLi xLi -nvZ +jVt phz -xjK -xjK -lfS -mcT -fkP -obL -ruy -dNF +mvp +mvp +bgD +wsM +aQY +pjW +dqX +rHX phz lAh lAh lAh -xjK -tOr -ezJ -xjK +mvp +cer +kpq +mvp lAh lAh beW -csp -kYM -xjK -upt +fEn +maA +mvp +ckA jmG mvl mvl mvl jmG -tuD -idE -idE -idE -idE +fer +byY +byY +byY +byY tOp -ror -wwR -uJj -kNz +ezd +jjp +hVA +lFB tOp -aaK -oDG -aRb +jWI +amZ +bsO cKa cKa -vJD -ggB -vJD -ggB -vJD +vUP +dVA +vUP +dVA +vUP hqD -aaK -dkj -kNz -hor +jWI +eow +lFB +aLX cKa -ocJ -rsE +bqu +rwm cKa -imL -ggB -uCD -mEv +fZc +dVA +rhf +nss jYs -vMX -tvI -tvI -tvI -hVS -tvI -tvI -tvI -vPM -vZz -vPM -ioG -tvI -rcG -nzp -jdX -tJT -ePm -vPM -rWB -eDn +cMD +aeI +aeI +aeI +xpj +aeI +aeI +aeI +nQu +ele +nQu +evl +aeI +kMm +umI +moK +asz +eMI +nQu +bVE +iYw jKI mdJ afk @@ -72559,76 +72559,76 @@ afk xMW jlH wzE -ldt -mcc -vei +cPh +xbM +fHo kqC -cCq -pDV +rzp +mwP kqC -cCq -qkY +rzp +ldz kqC -avl -xri -xri -xri -xri -xri -xri -xri -uAG +qNF +xRI +xRI +xRI +xRI +xRI +xRI +xRI +rnE hZR kPz kPz kPz dCM -jbx -bck -rbD -oEt +bsc +rIy +paO +sMe xGt -wYE -wYE -wYE +hqO +hqO +hqO uGY njK cHF uGY -hxy +fAf uGY gIB gIB ceC -xnN -hxy -hxy -hxy -aWR -aWR -hxy -aWR -aWR -hxy -aWR -aWR -hxy -aWR -aWR -hxy -aWR -aWR -mnp -aWR -aWR -hxy +uNG +fAf +fAf +fAf +nZB +nZB +fAf +nZB +nZB +fAf +nZB +nZB +fAf +nZB +nZB +fAf +nZB +nZB +avJ +nZB +nZB +fAf wSm wSm -hxy -rZr -aWR -aWR -hxy +fAf +jxc +nZB +nZB +fAf wly tan tan @@ -72667,7 +72667,7 @@ vcC bQM bQM bQM -dOF +wyK azZ azZ eVq @@ -72677,118 +72677,118 @@ xLi xLi xLi xLi -iQP -ruy -xjK -xjK -ljW -lYl -fkP -dNF -mHN -dNF -xjK +ppZ +dqX +mvp +mvp +twR +oNu +aQY +rHX +nDI +rHX +mvp lAh lAh lAh -xjK -tOr -ezJ +mvp +cer +kpq lAh lAh lAh -ruy -csp -xjK -xjK -upt +dqX +fEn +mvp +mvp +ckA lIG -avs -wwr -dTv +spR +kzR +qBI mvl -vBQ -idE -bha -cif -cif +eqJ +byY +iEl +gBR +gBR jmG -fmL -aaK -kNz -kNz +wUz +jWI +lFB +lFB tOp -tOK -blQ -tHu +uqV +tVI +hBc cKa bRc -ggB -imL -ggB -iNO -ggB +dVA +fZc +dVA +akM +dVA hqD -bdI -roY -iZV -hor +uKK +mgz +rLG +aLX hqD -ikq -mYp +kXk +gnY cKa -qZW -ggB -uCD -biJ +ejM +dVA +rhf +sWX jYs -vMX -iuw -tvI -tvI -tvI -tvI -tvI -tvI -sYe -aee -tJT -tvI -tvI -rcG -aIX -vPM -aIX -ePm -dGw -vVR -eDn -eDn -eDn -wby +cMD +jpW +aeI +aeI +aeI +aeI +aeI +aeI +xFg +dYi +asz +aeI +aeI +kMm +bvs +nQu +bvs +eMI +suX +aPv +iYw +iYw +iYw +fCJ llQ jKI bUB bQM wzE -ulJ -mcc -vei +nBb +xbM +fHo kqC -wII -bjk +qLi +dpe kqC -wII -bjk +qLi +dpe kqC -gMJ -usz -gMJ +okG +ioc +okG kqC kqC -sSJ -sSJ -sSJ +dbI +dbI +dbI kqC wzE hZR @@ -72800,48 +72800,48 @@ xGt ceC xGt ceC -aWR -aWR -aWR -pax -hxy -hxy -pax -hxy -pax -hxy -hxy -pax -aWR -hxy -tFu -hxy -eZN -sIT -uVo -hTm -eZN -sIT -fpM -hTm -eZN -sIT -fpM -hTm -eZN -sIT -fpM -hTm -eZN -sIT -uVo -hTm -eZN -hxy -aWR -aWR -aWR -aWR +nZB +nZB +nZB +uSU +fAf +fAf +uSU +fAf +uSU +fAf +fAf +uSU +nZB +fAf +uNI +fAf +lcm +tyC +grA +aOT +lcm +tyC +cRZ +aOT +lcm +tyC +cRZ +aOT +lcm +tyC +cRZ +aOT +lcm +tyC +grA +aOT +lcm +fAf +nZB +nZB +nZB +nZB vzB fiq vzB @@ -72880,7 +72880,7 @@ bQM bQM bQM enY -dOF +wyK azZ azZ azZ @@ -72892,100 +72892,100 @@ xLi xLi phz xLi -ruy +dqX xLi xLi -cBQ -dNF -ruy -dNF -xjK +idP +rHX +dqX +rHX +mvp lAh lAh jZc -xjK -xjK -xjK -xnM -xnM -xnM -ruy -ruy -xjK -xjK -bcV +mvp +mvp +mvp +uOu +uOu +uOu +dqX +dqX +mvp +mvp +gkv cKa -hah +lUZ xlp -ofy +poC mvl -oAm -vMh -xFe -cPI -lvN +sKu +chx +rDu +dCg +hXN jmG -jXD -mhe -iZV -ojf +xVw +bwk +rLG +dlj tOp -ikq -vII -sKn +kXk +amn +pxX cKa bRc -ggB -uUT -ggB -ktI -ggB +dVA +cYi +dVA +wqs +dVA cKa -cYY -roY -iZV -hor +awU +mgz +rLG +aLX cKa kzh tOp cKa -rfJ -ggB -uCD -iwK +sGX +dVA +rhf +avc cKa -gde -dGw -vPM -vPM -tvI -tvI -tvI -tvI -sDV -uRu -ckj -tvI -kuT -rcG -sDV -aIX -uAd -ePm -deH -ued -uvM -cnl -eDn -xQC +xbc +suX +nQu +nQu +aeI +aeI +aeI +aeI +qBf +dYC +jfO +aeI +fyt +kMm +qBf +bvs +tTB +eMI +shH +cmy +wId +vOZ +iYw +sKY wzE wzE wzE wzE wzE -aan -gPm -vei +cQf +jpx +fHo kqC kqC kqC @@ -72993,43 +72993,43 @@ kqC kqC kqC mCF -oMz -kWn -hKE +uJp +kIb +vFV kqC -wAj -fXS -fXS -fXS -gpq +lsR +lZp +lZp +lZp +svN kqC -cCq -dHp -uFh +rzp +vds +elO abJ -usz -usz +ioc +ioc abJ -sKq -sKq -sKq -hxy -jYS -bkS -bkS -bkS -bkS -aWR -bkS -bkS -bkS -bkS -aWR -aWR -aWR -tts +goo +goo +goo +fAf +hRb +upw +upw +upw +upw +nZB +upw +upw +upw +upw +nZB +nZB +nZB +iTt wQN -wSm +xnU wSm wSm wSm @@ -73047,7 +73047,7 @@ wSm wSm wSm wSm -wSm +xnU wQN eAM wSm @@ -73092,10 +73092,10 @@ bQM bQM bQM fiq -aDh +dfc ePv ePv -aDh +dfc azZ lAh xLi @@ -73107,142 +73107,143 @@ phz kEZ phz xLi -cfD -dNF -ruy -dNF -xjK +jUa +rHX +dqX +rHX +mvp lAh -vtf -xjK -xMg -aZz -sqg -fde -rjz -fde -xjK -xjK -xjK -fcp -xjK +aeS +mvp +lkr +rTd +hae +tqw +kQH +tqw +mvp +mvp +mvp +hDm +mvp rSr -mIE -mIE -mIE +cOF +cOF +cOF mvl -idE -idE -idE -idE -jAy +byY +byY +byY +byY +nFc jmG -xMR -xMR -iZV -aUa +kjt +kjt +rLG +djF jmG sta sta sta jmG cKa -vJD -ggB -vJD -ggB -vJD +vUP +dVA +vUP +dVA +vUP cKa -bdI -fnj -iZV -vJD -hFn -dkj -oMR -dkj -dkj -kNz -vJD -vJD +uKK +hjB +rLG +vUP +lEd +eow +ulc +eow +eow +lFB +vUP +vUP jmG -eHa -eDn -dGw -dGw -vPM -vPM -vPM -aLC -sDV -uRu -ckj -vPM -vZz -vPM -mIq -mIq -mIq -vPM -dhe -msS -vMX -mGe -uIA -mGe +egk +iYw +suX +suX +nQu +nQu +nQu +fDE +qBf +dYC +jfO +nQu +ele +nQu +pst +pst +pst +nQu +neY +dNk +cMD +hCh +ufL +hCh oFI -gEW -mcc -fLR +mCe +xbM +sJP kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -bux -bZu +sfu +jyF kqC -bux -bZu +sfu +jyF kqC -pHu -mxz -veB +dHD +xLx +voO kqC -dhD -vPa -oXJ -fXS -bYG +ubh +xFJ +eao +lZp +qXj kqC -ulJ -mcc -vei +nBb +xbM +fHo vRA -usz -usz +ioc +ioc vRA -hxy -hxy -aWR -hLy +fAf +fAf +nZB +lEg sEO -pXP -fSe -fSe -dSy -aWR -tSi -fSe -fSe -dSy -aWR -aWR -aWR -ttK +cCy +cvv +cvv +dUi +nZB +aSA +cvv +cvv +dUi +nZB +nZB +nZB +gBe +wSm +wSm wSm wSm -xnU wSm wSm wSm @@ -73258,22 +73259,21 @@ wSm wSm wSm wSm -xnU wSm wSm eSF -qnB -fHB -fHB -fHB -ssD -iSi -ssD -hbC -hbC -hbC -hbC -cbb +seF +ojq +ojq +ojq +tsc +bEk +tsc +ogf +ogf +ogf +ogf +mRM bQM bQM bQM @@ -73308,8 +73308,8 @@ fiq fiq fiq fiq -aDh -ruy +dfc +dqX lAh lAh lAh @@ -73319,139 +73319,139 @@ phz phz phz xLi -mHN -ruy -ruy -ruy -ruy +nDI +dqX +dqX +dqX +dqX lAh lAh jZc -tOr -hmk -rov -fde -fde -fde -xjK -xjK -xjK -xjK -xjK +cer +pvF +tfl +tqw +tqw +tqw +mvp +mvp +mvp +mvp +mvp jmG mvl mvl mvl jmG -rfo -idE -idE -idE +wfu +byY +byY +byY hVI jmG -xMR -xMR -iZV -aFJ +kjt +kjt +rLG +gYD fSq -aaK -dkj -kNz +jWI +eow +lFB fSq -vJD -aaK -dkj -dkj -dkj -kNz -aau -xMR -roY -iZV -vJD -jvE -vII -vII -vII -vII -dyM -vJD -vJD +vUP +jWI +eow +eow +eow +lFB +oNC +kjt +mgz +rLG +vUP +lcE +amn +amn +amn +amn +tPB +vUP +vUP jmG bQM -eDn -xQC -eDn -mGe -mGe -isL -wUN -mGe -mGe -mGe -kiq -tsf -lWh -vPM -kiq -vPM -vPM -dhe -msS -vMX -mGe -iTe -mGe +iYw +sKY +iYw +hCh +hCh +lBb +dEh +hCh +hCh +hCh +aXO +pOU +ssR +nQu +aXO +nQu +nQu +neY +dNk +cMD +hCh +efR +hCh oFI -gEW -mcc -mcc -usz -pHu -mcc -vei +mCe +xbM +xbM +ioc +dHD +xbM +fHo kqC -avl -jms +qNF +mDO kqC -avl -aIv +qNF +eub kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -mak -pcl +sIk +dzE kqC -mak -pcl +sIk +dzE kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -usz -usz +ioc +ioc kqC -qcv -qcv -hxy -aWR -iPV -iPV -iPV -iPV -iPV -aWR -iPV -iPV -iPV -iPV -hNc -aWR -aWR -uEN +nAm +nAm +fAf +nZB +fWr +fWr +fWr +fWr +fWr +nZB +fWr +fWr +fWr +fWr +hMH +nZB +nZB +bne wSm wSm wSm @@ -73474,7 +73474,7 @@ wSm wSm wSm xrH -gAS +axn wSm wSm wSm @@ -73485,7 +73485,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -73518,9 +73518,9 @@ kPz bQM bQM kPz -rEH -eok -eok +gEq +eIX +eIX azZ azZ azZ @@ -73529,57 +73529,57 @@ azZ azZ kny phz -xjK -xjK -xjK -xjK -csl -xjK -xjK -xjK -xjK -xjK -vBO -ezJ -cAV -hLX -hLX -nGW -ruy -lTm -qOY -xjK -xjK +mvp +mvp +mvp +mvp +pUO +mvp +mvp +mvp +mvp +mvp +xxU +kpq +jNi +ygs +ygs +kBX +dqX +loE +eIx +mvp +mvp lZA -vJD -vJD -vJD +vUP +vUP +vUP lZA -idE -idE -idE -idE -idE +byY +byY +byY +byY +byY lZA -xMR -xMR -iZV -iZV +kjt +kjt +rLG +rLG fSq -xMR -rmg -iZV +kjt +oZU +rLG fSq -vJD -pya -roY -roY -roY -iZV -pzQ -xMR -oRb -iZV +vUP +hFW +mgz +mgz +mgz +rLG +jHV +kjt +lpZ +rLG cKa kzh tOp @@ -73587,41 +73587,41 @@ cKa kzh tOp cKa -aaK -kNz +jWI +lFB jmG kPz -uwY +eHa pcu -eDn -xQC -xQC -eDn -eON -cYv -cYv -cYv -arY -lDC -irx -aXK -jZb -dRW -jZb -cFN -eDn -eDn -xQC -xQC -xQC +iYw +sKY +sKY +iYw +imI +oEH +oEH +oEH +vkt +bLJ +rcg +xZN +eWf +uRv +eWf +vlO +iYw +iYw +sKY +sKY +sKY wzE -dYr -mcc -mcc -usz -qRD -mcc -veB +gSf +xbM +xbM +ioc +nbP +xbM +voO kqC cRB end @@ -73629,41 +73629,41 @@ kqC ryJ end kqC -hpr -mcc -vei -mKG -fXS -fXS -bGy -hQg -fXS -mKG -pHu -mcc -vei +rgc +xbM +fHo +vfO +lZp +lZp +jmv +uLV +lZp +vfO +dHD +xbM +fHo abJ -usz -usz +ioc +ioc abJ -hxy -hxy -aWR -aWR -aWR -cAA +fAf +fAf +nZB +nZB +nZB +owp uPA uWQ -aWR -evD -aWR +nZB +ghz +nZB uPA uWQ -aWR -aWR -hxy -hxy -vuE +nZB +nZB +fAf +fAf +eZr wSm wSm wSm @@ -73686,7 +73686,7 @@ wSm wSm wSm fZd -gAS +axn wSm wSm wSm @@ -73697,7 +73697,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -73731,8 +73731,8 @@ bQM bQM kPz bQM -wER -lok +weE +qkq azZ azZ azZ @@ -73742,65 +73742,65 @@ azZ azZ phz azZ -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -sqg -ukI -ezJ -xjK -weH -hFe -sCo -csp -fYD -bmX -xjK -xjK +hae +hae +hae +hae +hae +hae +hae +hae +hae +iRI +kpq +mvp +lIC +kxl +swT +fEn +gDI +agh +mvp +mvp wef -vJD -vJD -vJD +vUP +vUP +vUP wef -idE -idE -idE -idE -idE +byY +byY +byY +byY +byY wef -ikq -ikq -dyM -dyM +kXk +kXk +tPB +tPB fSq -ikq -vII -dyM +kXk +amn +tPB fSq -vJD -ikq -vII -vII -vII -dyM -aau -xMR -roY -iZV +vUP +kXk +amn +amn +amn +tPB +oNC +kjt +mgz +rLG cKa -aaK -soQ +jWI +oyy cKa -cFE -soQ +drZ +oyy cKa -xMR -iZV +kjt +rLG uwk swg fyC @@ -73808,74 +73808,74 @@ qOk sHO erT kPz -eDn -rkB -rFr -lBY -uSb -lzb -lDC -lDC -ldZ -ldZ -lDC -ldZ -ldZ -eDn +iYw +hre +wfw +jRF +bvp +iiY +bLJ +bLJ +frv +frv +bLJ +frv +frv +iYw cAW bce bce bce wzE kqC -usz -wGe +ioc +fPl kqC -iSn -mcc -krp -dHp -dHp -hCd -dHp -dHp -uFh -usz -pHu -mcc -vei -mKG -fXS -fXS -oXJ -fXS -fXS -mKG -pHu -mcc -vei +oFp +xbM +sJy +vds +vds +lvV +vds +vds +elO +ioc +dHD +xbM +fHo +vfO +lZp +lZp +eao +lZp +lZp +vfO +dHD +xbM +fHo vRA -usz -usz +ioc +ioc vRA -hxy -hxy -aWR -aWR -aWR -aWR +fAf +fAf +nZB +nZB +nZB +nZB nKl qfc -aWR -hxy -aWR +nZB +fAf +nZB nKl qfc -aWR -aWR -aWR -aWR -tts +nZB +nZB +nZB +nZB +iTt wSm wSm wSm @@ -73898,7 +73898,7 @@ wSm wSm kHG eAM -gAS +axn wSm wSm wSm @@ -73909,7 +73909,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -73943,8 +73943,8 @@ bQM bQM kPz bQM -rEH -pPb +gEq +arW azZ azZ azZ @@ -73954,30 +73954,30 @@ azZ azZ azZ azZ -dNF -dNF -dNF +rHX +rHX +rHX bou -dNF -dNF -dNF -jvp -dNF -dNF -ezJ -xjK -fUu -mcT -sCo -csp -csp -sBl -xjK -xjK +rHX +rHX +rHX +sVT +rHX +rHX +kpq +mvp +mMP +wsM +swT +fEn +fEn +ciM +mvp +mvp cKa -roY -roY -roY +mgz +mgz +mgz cKa tOp tOp @@ -73985,10 +73985,10 @@ cKa tOp cKa cKa -ikq -ikq -dyM -dyM +kXk +kXk +tPB +tPB jmG jmG jmG @@ -74001,18 +74001,18 @@ cKa kzh tOp cKa -fiu -gbi -iZV +cIJ +lfX +rLG cKa -ldm -usA +iFB +dUx cKa -ldm -rEg +iFB +trR cKa -xMR -iZV +kjt +rLG uwk daD afk @@ -74020,74 +74020,74 @@ afk afk ghg gef -xQC -wkD -sMj -gXi -ecC -hgJ -edd -vgP -irx -htc -svo -irx -irx -xQC +sKY +qTe +red +mqJ +qJQ +myj +rtc +idS +rcg +wvL +hys +rcg +rcg +sKY cAW bce cAW cAW wzE -msv -uRY -dHp -dHp -bop -scg -mcc -mcc -tsi -fxP -xri -xri -iUy -usz -pHu -mcc -vei +xJQ +mYl +vds +vds +qEs +rPD +xbM +xbM +kTW +eNa +xRI +xRI +efW +ioc +dHD +xbM +fHo kqC -hnJ -pcl +hAP +dzE kqC -mak -pcl +sIk +dzE kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -usz -usz +ioc +ioc kqC -sKq -sKq -hxy -aWR -bkS -bkS -bkS -bkS -bkS -aWR -bkS -bkS -bkS -bkS -bkS -aWR -aWR -ttK +goo +goo +fAf +nZB +upw +upw +upw +upw +upw +nZB +upw +upw +upw +upw +upw +nZB +nZB +gBe wSm wSm wSm @@ -74110,7 +74110,7 @@ wSm wSm wSm eSF -gAS +axn wSm wSm wSm @@ -74121,7 +74121,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -74154,9 +74154,9 @@ bQM bQM vcC kPz -eok +eIX fiq -xLa +bxd azZ azZ azZ @@ -74167,55 +74167,55 @@ azZ azZ azZ azZ -kbO -kbO -kbO -kbO -kbO -kbO -kbO -kbO -dFk -ezJ -dTp -sVy -bXa -sCo -csp -fYD -bmX -xjK -xjK +eqU +eqU +eqU +eqU +eqU +eqU +eqU +eqU +uAg +kpq +hjp +dsS +dXN +swT +fEn +gDI +agh +mvp +mvp lZA -vJD -vJD -vJD +vUP +vUP +vUP lZA -aaK -dkj -dkj -dkj -dkj -jGL -dkj -dkj -dkj -dkj -ddz -dkj -jGL -dkj -kNz +jWI +eow +eow +eow +eow +owS +eow +eow +eow +eow +vqW +eow +owS +eow +lFB cKa -aaK -soQ +jWI +oyy cKa -mOr -wTO +siB +jSc cKa -vlX -roY -iZV +qya +mgz +rLG hEs cKa cKa @@ -74223,8 +74223,8 @@ cKa cKa cKa cKa -xMR -iZV +kjt +rLG uwk urJ afk @@ -74232,74 +74232,74 @@ hkh afk tCZ pcu -xQC -rym -fBi -irx -rym -rym -edd -vgP -eON -lWr -svo -eON -lWr -xQC +sKY +aso +ber +rcg +aso +aso +rtc +idS +imI +sPt +hys +imI +sPt +sKY bce bce cAW cAW wzE -pHu -dui -cWN -dWM -mcc -mcc -mcc -qBk -mcc -qjY +dHD +voV +sxc +cxA +xbM +xbM +xbM +oFf +xbM +jlq kqC ryJ end kqC -hix -mcc -veB +iCf +xbM +voO kqC -dhD -fXS -bGy -fXS -bYG +ubh +lZp +jmv +lZp +qXj kqC -ulJ -mcc -vei +nBb +xbM +fHo abJ -usz -usz +ioc +ioc abJ -hxy -hxy -aWR -hLy +fAf +fAf +nZB +lEg sEO -pXP -fSe -fSe -dSy -aWR -tSi -fSe -fSe -dSy -aWR -aWR -aWR -uEN +cCy +cvv +cvv +dUi +nZB +aSA +cvv +cvv +dUi +nZB +nZB +nZB +bne wSm wSm wSm @@ -74322,7 +74322,7 @@ wSm wSm wSm xrH -gAS +axn wSm wSm wSm @@ -74333,7 +74333,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -74368,7 +74368,7 @@ bQM kPz vcC bQM -eok +eIX azZ azZ azZ @@ -74379,64 +74379,64 @@ azZ azZ azZ azZ -xjK -xjK +mvp +mvp azZ -xjK +mvp azZ -xjK -xjK -xjK -tOr -ezJ -xjK -ezx -ezx -reO -ruy -ggG -rar -xjK -xjK +mvp +mvp +mvp +cer +kpq +mvp +sxH +sxH +aaR +dqX +pHi +eFX +mvp +mvp wef -vJD -vJD -vJD +vUP +vUP +vUP wef -xMR -roY -roY -lSY -roY -roY -roY -roY -roY -roY -roY -roY -roY -lSY -iZV +kjt +mgz +mgz +xAq +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +xAq +rLG cKa -ldm -usA +iFB +dUx cKa -ldm -usA +iFB +dUx cKa -bGQ -roY -iZV +xnt +mgz +rLG cKa -ocJ -rsE +bqu +rwm cKa -ocJ -rsE +bqu +rwm cKa -xMR -iZV +kjt +rLG uwk mdJ afk @@ -74444,74 +74444,74 @@ afk afk xMW ssJ -xQC -xkC -tom -vGv -uzO -dhe -edd -fje -das -jAt -svo -tJn -jAt -xQC +sKY +cvc +gPk +rmZ +sFY +neY +rtc +fOi +fac +ehO +hys +unF +ehO +sKY cAW bce bce bce wzE -lll -mcc -oPJ -jfk -mcc -vza -mcc -mcc -mcc -cCq +oXD +xbM +dJd +dBl +xbM +cZh +xbM +xbM +xbM +rzp kqC -cCq -sCh +rzp +jln kqC -cLE -mcc -uIb +eQb +xbM +kgp kqC -mXq -fXS -fXS -vPa -gNF +erU +lZp +lZp +xFJ +hrL kqC -pHu -mcc -vei +dHD +xbM +fHo vRA -usz -usz +ioc +ioc vRA -qcv -qcv -qcv -hxy -roo -iPV -iPV -hNc -iPV -aWR -iPV -iPV -iPV -iPV -aWR -hxy -hxy -vPA +nAm +nAm +nAm +fAf +lFo +fWr +fWr +hMH +fWr +nZB +fWr +fWr +fWr +fWr +nZB +fAf +fAf +klB wSm wSm wSm @@ -74534,7 +74534,7 @@ wSm wSm wSm fZd -gAS +axn wSm wSm wSm @@ -74545,7 +74545,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -74599,37 +74599,37 @@ lAh lAh lAh xvI -tOr -vJq -sqg -fde -fde -fde -xjK -xjK -xjK -xjK -xjK +cer +beh +hae +tqw +tqw +tqw +mvp +mvp +mvp +mvp +mvp cKa mvl mvl mvl cKa -ikq -vII -vII -wrQ -roY -nhz -vII -vII -vII -vII -vII -vII -wrQ -roY -fin +kXk +amn +amn +rTZ +mgz +cCe +amn +amn +amn +amn +amn +amn +rTZ +mgz +bOx cKa cKa cKa @@ -74637,18 +74637,18 @@ cKa cKa cKa cKa -pka -vII -dyM +nGV +amn +tPB cKa -dVm -dSw +jnX +rhH cKa -ikq -dSw +kXk +rhH cKa -ikq -dyM +kXk +tPB uwk aKA tWI @@ -74656,74 +74656,74 @@ llQ eOF bUB kPz -eDn -vPM -lBY -oOv -dGw -rFH -lDC +iYw +nQu +jRF +nzi +suX +tde +bLJ izZ -uym -uym +wTW +wTW izZ -uym -uym +wTW +wTW ecM cAW bce cAW cAW wzE -scw -uFh -mcc -mcc -mcc -evf -dWM -mcc -cCq -pHu +gtN +elO +xbM +xbM +xbM +lBI +cxA +xbM +rzp +dHD kqC -wII -uAi +qLi +jhN kqC -pKh -mcc -vei +rYy +xbM +fHo kqC kqC -mKG -mKG -mKG +vfO +vfO +vfO kqC kqC -pHu -mcc -vei +dHD +xbM +fHo vMK goG goG vMK goG vMK -xOQ -hxy -hxy -pax -hxy -hxy -pax -hxy -pax -hxy -hxy -pax -aWR -aWR -aWR -tts +gjs +fAf +fAf +uSU +fAf +fAf +uSU +fAf +uSU +fAf +fAf +uSU +nZB +nZB +nZB +iTt wSm wSm wSm @@ -74746,7 +74746,7 @@ wSm wSm wSm eAM -kAr +cAO wSm wSm wSm @@ -74757,7 +74757,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -74809,49 +74809,49 @@ azZ azZ azZ lAh -vtf -xjK -lax -kbO -kbO -fde -fde -fde -xjK -xjK -xjK -xjK -xjK +aeS +mvp +ubX +eqU +eqU +tqw +tqw +tqw +mvp +mvp +mvp +mvp +mvp mvl -jIZ -wwr -sGu +wSN +kzR +wSC mvl -bhR -vJD -vJD -xMR -roY -fin +knb +vUP +vUP +kjt +mgz +bOx aSz uwk uwk uwk uwk aSz -jXD -roY -iZV +xVw +mgz +rLG cKa -ocJ -iFu +bqu +hJo cKa -ocJ -rsE +bqu +rwm cKa -dso -vJD -vJD +jGz +vUP +vUP cKa kzh tOp @@ -74859,8 +74859,8 @@ cKa kzh tOp cKa -vJD -vJD +vUP +vUP jmG jmG mlC @@ -74868,77 +74868,78 @@ mlC mlC mlC ecM -eDn -eON -cYv -cYv -cYv -arY -lDC +iYw +imI +oEH +oEH +oEH +vkt +bLJ xKX -wkZ -wkZ -wWF -wkZ -wkZ +iaa +iaa +tZO +iaa +iaa ecM mlC wzE wzE wzE wzE -glW -vei -mcc -mcc -jsE -mcc -mcc -mcc -pHu -pQu +rzF +fHo +xbM +xbM +xel +xbM +xbM +xbM +dHD +jbg kqC kqC kqC kqC -cjp -mcc -pZb -xyR -xyR -dHp -dHp -dHp -jsD -xyR -bop -mcc -vei +rKd +xbM +pZn +atY +atY +vds +vds +vds +qJl +atY +qEs +xbM +fHo goG -xMs -whR -lyF -cFQ +dYq +chg +uEh +gZx goG -hxy -hxy -hxy -hxy -hxy -hxy +fAf +fAf +fAf +fAf +fAf +fAf mxQ -xBI +lVA mxQ -hxy -hxy -hxy -hxy -aWR -aWR -ttK +fAf +fAf +fAf +fAf +nZB +nZB +gBe +wSm +wSm wSm wSm -xnU wSm wSm wSm @@ -74954,22 +74955,21 @@ wSm wSm wSm wSm -xnU wSm wSm eSF -mmP -fHB -fHB -fHB -ssD -iSi -ssD -hbC -hbC -hbC -hbC -ogo +due +ojq +ojq +ojq +tsc +bEk +tsc +ogf +ogf +ogf +ogf +fWI bQM bQM bQM @@ -75023,133 +75023,133 @@ azZ lAh lAh jZc -xjK -xjK -xjK -eAo -eAo -eAo -ruy -ruy -pQh -xjK -ruy +mvp +mvp +mvp +cYd +cYd +cYd +dqX +dqX +rYw +mvp +dqX mvl -jru +fqI xlp -mIE +cOF cKa cKa cKa cKa -xMR -roY -lpA +kjt +mgz +qrU uwk bQM bQM bQM bQM uwk -ikq -vII -dyM +kXk +amn +tPB cKa -ikq -dSw +kXk +rhH cKa -ikq -dSw +kXk +rhH cKa -jCU -dkj -dkj -dkj -dkj -dkj -fvY -dkj -dkj -dkj -dkj -dkj -vCT -fYV -fDI -fDI -cjF -cjF -cjF -jMA -cjF -cjF -cjF -cjF -cjF -gky -cjF -cjF -cjF -cjF -cjF -cjF -gky -cjF +wqz +eow +eow +eow +eow +eow +tkZ +eow +eow +eow +eow +eow +rIr +nmi +scS +scS +oPR +oPR +oPR +gbR +oPR +oPR +oPR +oPR +oPR +jnQ +oPR +oPR +oPR +oPR +oPR +oPR +jnQ +oPR kqC -usz -usz -usz -usz -usz -mcc -mcc -mcc -mcc -rFT -mcc -avl -xPO +ioc +ioc +ioc +ioc +ioc +xbM +xbM +xbM +xbM +bkQ +xbM +qNF +qSz kqC -qDI -npN +rkp +iKy kqC -cvk -mcc -rrj -mcc -mxz -mcc -rrj -mcc -mcc -mcc -mcc -mcc -vei +utG +xbM +jbm +xbM +xLx +xbM +jbm +xbM +xbM +xbM +xbM +xbM +fHo goG -fHu -qos -jxa -hXc +xoR +ioW +opM +fAU goG -hxy -abe -hxy -hxy -hxy -cqc +fAf +rpL +fAf +fAf +fAf +qsc mxQ iyf mxQ -xOQ -hxy -hxy -hxy -aWR -aWR -uEN +gjs +fAf +fAf +fAf +nZB +nZB +bne wQN -wSm +xnU wSm wSm wSm @@ -75167,7 +75167,7 @@ wSm wSm wSm wSm -wSm +xnU wQN xrH wSm @@ -75241,31 +75241,31 @@ eWP lAh lAh lAh -csp -csp -xjK -xjK -csp +fEn +fEn +mvp +mvp +fEn cKa -vmW +oOU fyi -mIE +cOF mvl -vJD -vJD -vJD -xMR -roY -fin +vUP +vUP +vUP +kjt +mgz +bOx aSz uwk uwk uwk uwk aSz -cOl -vJD -vJD +cIt +vUP +vUP cKa kzh tOp @@ -75273,83 +75273,83 @@ cKa kzh tOp cKa -jXD -roY -roY -lSY -roY -roY -roY -roY -roY -roY -roY -gLG -iZV +xVw +mgz +mgz +xAq +mgz +mgz +mgz +mgz +mgz +mgz +mgz +lFg +rLG fSq -cjF -gqe -rAW -cjF -vEF -gqe -gqe +oPR +qBe +exl +oPR +jqE +qBe +qBe miU -rWX +qOu xKX -pXj -gqe -gqe -gqe -bKs -gqe -gqe -gqe -gqe -nXq +eXz +qBe +qBe +qBe +eUP +qBe +qBe +qBe +qBe +eFQ wpO -usz -usz -usz -iUy -mcc -dWM -vza -mcc -qBk -dui -mcc -mcc -avl +ioc +ioc +ioc +efW +xbM +cxA +cZh +xbM +oFf +voV +xbM +xbM +qNF kqC -avl -iUy +qNF +efW kqC -ggp -xri -lXc -xri -xri -xri -xri -xri -ijP -xri -xri -xri -iUy +bki +xRI +iXq +xRI +xRI +xRI +xRI +xRI +mKd +xRI +xRI +xRI +efW goG -oJs -kfA -kfA -fWC +egd +pYB +pYB +bMI goG -hxy -hxy -hxy -hxy -hxy -hxy +fAf +fAf +fAf +fAf +fAf +fAf mxQ tUs mxQ @@ -75358,34 +75358,34 @@ iyf iyf mxQ vMK -hxy -hxy -tZs -hLK -yfC -fHV -tZs -lLv -yfC -fHV -tZs -hLK -yfC -fHV -tZs -hLK -yfC -fHV -tZs -hLK -yfC -fHV -tZs -aWR -aWR -aWR -aWR -aWR +fAf +fAf +nfh +bxe +cFg +gAQ +nfh +bIz +cFg +gAQ +nfh +bxe +cFg +gAQ +nfh +bxe +cFg +gAQ +nfh +bxe +cFg +gAQ +nfh +nZB +nZB +nZB +nZB +nZB vzB fiq vzB @@ -75453,86 +75453,86 @@ azZ lAh lAh lAh -glw -csp -xjK -xjK -csp +nMI +fEn +mvp +mvp +fEn rSr -mIE -mIE -mIE +cOF +cOF +cOF rSr -aaK -dkj -dkj -frY -roY -iZV -vJD -aaK -dkj -dkj -dkj -kNz -kpN -aaK -dkj -dkj -dkj -dkj -dkj -dkj -dkj -dkj -frY -roY +jWI +eow +eow +ufR +mgz +rLG +vUP +jWI +eow +eow +eow +lFB +xBN +jWI +eow +eow +eow +eow +eow +eow +eow +eow +ufR +mgz wef -roY -vrX -vII -vII -vII -vII -vII -vII -vII -dyM +mgz +cbY +amn +amn +amn +amn +amn +amn +amn +tPB fSq -ebP -jJe -gqe -gqe -sad -rsW -kJX -oXE -sED -gqe -kJX -gqe -gqe -gqe -gqe -gqe -gqe -gqe -qqJ -nXq +wdl +nOe +qBe +qBe +hdR +roQ +ccZ +uOP +cZR +qBe +ccZ +qBe +qBe +qBe +qBe +qBe +qBe +qBe +lFv +eFQ wpO -usz -usz -usz -pHu -ciZ -mcc -mcc -dWM -lCs -mcc -vza -cOb -veB +ioc +ioc +ioc +dHD +kbh +xbM +xbM +cxA +jET +xbM +cZh +fYY +voO kqC qRi end @@ -75540,63 +75540,63 @@ wzE wzE wzE kqC -usz -usz -usz -usz -dbL +ioc +ioc +ioc +ioc +pvE kqC jTJ goG goG goG vMK -lKt -kfA -kfA -slG +nxc +pYB +pYB +nWM vMK vMK -xOQ -hxy -hxy -hxy -hxy +gjs +fAf +fAf +fAf +fAf mxQ tUs mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vMK -xOQ -aWR -aWR -aWR -hxy -hxy -hxy -hxy -hxy -hxy -aWR -aWR -aWR -hxy -aWR -aWR -aWR -hxy -aWR -aWR -aWR -hxy -aWR -aWR -aWR -aWR -hxy +gjs +nZB +nZB +nZB +fAf +fAf +fAf +fAf +fAf +fAf +nZB +nZB +nZB +fAf +nZB +nZB +nZB +fAf +nZB +nZB +nZB +fAf +nZB +nZB +nZB +nZB +fAf wly tan tan @@ -75665,150 +75665,150 @@ lAh lAh lAh lAh -mYx -csp -xjK -xjK -csp +bMT +fEn +mvp +mvp +fEn cKa cKa cKa cKa cKa -xMR -roY -nhz -vII -vII -dyM -vJD -ikq -vII -vII -vII -dyM -vJD -xMR -roY -lSY -roY -roY -roY -roY -roY -roY +kjt +mgz +cCe +amn +amn +tPB +vUP +kXk +amn +amn +amn +tPB +vUP +kjt +mgz +xAq +mgz +mgz +mgz +mgz +mgz +mgz wef -roY -roY -roY -fin +mgz +mgz +mgz +bOx jpN uwk uwk uwk lIG -vJD -gDt -vJD +vUP +sHj +vUP cKa -cjF -gqe -gqe -gqe -vTl -ozh -cnu -gqe -gqe -gqe -cnu -gqe -gqe -gqe -gqe -bKs -gqe -gqe -gqe -cjF +oPR +qBe +qBe +qBe +nCH +mEU +oyS +qBe +qBe +qBe +oyS +qBe +qBe +qBe +qBe +eUP +qBe +qBe +qBe +oPR wpO -usz -usz -usz -avl -xri -xri -xri -ibN -mcc -lCs -mcc -mcc -pZb -dHp -dHp -uFh +ioc +ioc +ioc +qNF +xRI +xRI +xRI +nAK +xbM +jET +xbM +xbM +pZn +vds +vds +elO hZR bQM hZR -dDM -cCq -dHp -dHp -dHp -uFh -dDM +jvi +rzp +vds +vds +vds +elO +jvi duF -jao -qcM -dvs -kfA -kfA -kfA -kfA -kfA -bVY +jTN +xro +fGW +pYB +pYB +pYB +pYB +pYB +uvV vMK goG goG goG vMK -xBI +lVA mxQ deR mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vMK -hxy -aWR -aWR -aWR -hxy +fAf +nZB +nZB +nZB +fAf wly wly wly wly -tSi -fSe -dSy -hxy -hxy -aWR -aWR -hxy -hxy -hxy -aWR -hxy -hxy -hxy -hxy -aWR -hxy -hxy +aSA +cvv +dUi +fAf +fAf +nZB +nZB +fAf +fAf +fAf +nZB +fAf +fAf +fAf +fAf +nZB +fAf +fAf wly wly wly @@ -75884,12 +75884,12 @@ wef lSj cKa cKa -eJi -kNz -pLk -roY -roY -fin +pRa +lFB +lpX +mgz +mgz +bOx cKa kzh tOp @@ -75900,20 +75900,20 @@ cKa kzh tOp arn -jXD -roY -nhz -vII -vII -vII -vII -vII -vII -wrQ -roY -roY -roY -iZV +xVw +mgz +cCe +amn +amn +amn +amn +amn +amn +rTZ +mgz +mgz +mgz +rLG uwk bQM kPz @@ -75923,26 +75923,26 @@ hul cKa cKa cKa -qjp -gqe -gqe -gqe -nSz -nSz -lvk -gqe -gqe -gqe -lvk -gqe -gqe -gqe -cjF -cjF -rQm -yiG -rUY -vGO +hrz +qBe +qBe +qBe +fWH +fWH +jlI +qBe +qBe +qBe +jlI +qBe +qBe +qBe +oPR +oPR +hxj +wis +sGa +gNU kqC kqC ecd @@ -75951,75 +75951,75 @@ kqC cRB end kqC -vee -mcc -fxP -xri -xri -xri -xri -xri -iUy +pHx +xbM +eNa +xRI +xRI +xRI +xRI +xRI +efW hZR kPz hZR -vhe -pHu -rrj -mcc -mcc -vei -dDM +auS +dHD +jbm +xbM +xbM +fHo +jvi duF -eTo -rII -lAS -lAS -lAS -dmB -dmB -lAS -lAS -lAS -lAS -lAS -bYv +fEH +xsS +tOM +tOM +tOM +kor +kor +tOM +tOM +tOM +tOM +tOM +wZH mxQ iyf mxQ tUs mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vMK -dlX -iLQ -jbG -mzz -rqL +hhu +bOp +jEQ +slT +mSk wly kPz bQM wly -vJp -xwA -wKn -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy -hxy +lhS +nXE +ibA +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf +fAf wly wly bQM @@ -76090,82 +76090,82 @@ cAW jmG bQM jmG -vJD -aaK -dkj -kNz -roY +vUP +jWI +eow +lFB +mgz cKa -lLP -iZV +dJh +rLG uwk -xMR -roY -iZV +kjt +mgz +rLG cKa -aaK -soQ +jWI +oyy cKa -tPP -soQ +bTr +oyy cKa -cVX -soQ +kyU +oyy cKa -xMR -roY -fin +kjt +mgz +bOx cKa cKa -fdn -fdn +wZt +wZt cKa jmG gHh -roY -roY -roY -iZV +mgz +mgz +mgz +rLG uwk kPz kPz kPz uwk -mIE -mIE -kFa +cOF +cOF +utw lzm -gqe -gqe -gqe -gqe -cTA -rsW -hLO -gqe -gqe -gqe -hLO -gqe -pXj -gqe -cjF +qBe +qBe +qBe +qBe +oSz +roQ +dvg +qBe +qBe +qBe +dvg +qBe +eXz +qBe +oPR kqC kqC -xrG -kDq +dAd +hbp kqC kqC rCq vRA vRA kqC -eaQ -tUA +fLb +ayW kqC -pHu -mcc -dzj +dHD +xbM +rYK kqC cRB end @@ -76175,36 +76175,36 @@ end wzE bQM hZR -dDM -pHu -fxP -eag -ibN -vei -xzW +jvi +dHD +eNa +rwK +nAK +fHo +kpu duF -hXc -lAS -lAS -lAS -lAS -tNt -uBW -lAS -lAS -lAS -lAS -lAS -bYv +fAU +tOM +tOM +tOM +tOM +nny +vHD +tOM +tOM +tOM +tOM +tOM +wZH mxQ -oYM +gbf tUs tUs vDO -atE -nVq -rev -oYM +eBS +fOT +apu +gbf bzO bzO ybj @@ -76215,12 +76215,12 @@ wly kPz bQM wly -xBK -abe -lrm -hxy -mft -gHl +dUn +rpL +fwY +fAf +jEr +byE wly ckm ckm @@ -76302,66 +76302,66 @@ cAW jmG jmG jmG -vJD -xMR -roY -iZV -vJD +vUP +kjt +mgz +rLG +vUP cKa -ldm -usA +iFB +dUx uwk -xMR -roY -iZV +kjt +mgz +rLG cKa -ldm -usA +iFB +dUx cKa -ldm -usA +iFB +dUx cKa -dra -ovc +oMw +yhJ cKa -oLd -roY -iZV +mlg +mgz +rLG cKa -cQA -xec -xec -ohN +uyC +dzB +dzB +aYg cKa -xMR -roY -roY -mSM -iZV +kjt +mgz +mgz +kWx +rLG uwk bQM kPz bQM uwk -mIE +cOF fyi -kGi +dXS qva -dAe -lps -gqe -gqe -iOJ -ozh -kJX -gqe -gqe -gqe -kJX -gqe -gqe -gqe -rUY +xbm +smj +qBe +qBe +aZL +mEU +ccZ +qBe +qBe +qBe +ccZ +qBe +qBe +qBe +sGa kqC kqC vRA @@ -76372,51 +76372,51 @@ kqC tVV arl oFI -eGY -eOf +kCT +opj kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -cCq -fOZ +rzp +bIP kqC -cCq -pDV +rzp +mwP wzE kPz jTJ -clZ -pHu -vei -vbd -pHu -vei -iPq +vUl +dHD +fHo +pLE +dHD +fHo +uuG jTJ -pMA -lAS -lAS -lAS -mKy -rII -rII -lAS -lAS -kxo -lAS -lAS -bYv +gHn +tOM +tOM +tOM +bkg +xsS +xsS +tOM +tOM +uwT +tOM +tOM +wZH mxQ -pes +eBj vfz tUs mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vEK bzO wly @@ -76514,18 +76514,18 @@ cAW cAW bQM uwk -vJD -ikq -vII -dyM -vJD +vUP +kXk +amn +tPB +vUP hEs cKa cKa cKa -dgx -uzX -aFV +wdL +vAU +hCR hEs cKa cKa @@ -76536,50 +76536,50 @@ cKa cKa cKa cKa -jXD -roY -iZV +xVw +mgz +rLG cKa -unW -wpu -xec -oYc +onW +pZp +dzB +shh cKa -xMR -roY +kjt +mgz wef -roY -iZV +mgz +rLG jmG bQM kPz bQM uwk -vbt +jsu fyi -aHs +haQ cKa -pwN -lps -wAD -gqe -gqe -gqe -gqe -gqe -rJT -gqe -kDj -gqe -gqe -gqe -oEI -jKb +ntE +smj +wrT +qBe +qBe +qBe +qBe +qBe +sWw +qBe +sQr +qBe +qBe +qBe +vcu +qQM abJ -cCq -dHp -uFh -wBr +rzp +vds +elO +sKt kqC vRA tiX @@ -76587,49 +76587,49 @@ kqC kqC kqC kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -wII -bjk +qLi +dpe kqC -wII -bjk +qLi +dpe wzE bQM hZR -vbd -pHu -vei -vbd -pHu -vei -vbd +pLE +dHD +fHo +pLE +dHD +fHo +pLE duF -iJG -lAS -lAS -lAS -lAS -lAS -lAS -lAS +mWR +tOM +tOM +tOM +tOM +tOM +tOM +tOM ffZ mxQ mxQ iyf mxQ mxQ -oYM +gbf ndl aZN mxQ -oYM -nVq -rev -oYM -vCv +gbf +fOT +apu +gbf +lTW bzO bzO rzt @@ -76726,82 +76726,82 @@ cAW cAW bQM uwk -aaK -dkj -kNz -vJD -vJD +jWI +eow +lFB +vUP +vUP wef -ocJ -rsE -oWB -ehA -roY -rAt +bqu +rwm +eDA +vsM +mgz +xBc cKa -ocJ -rsE +bqu +rwm cKa -ocJ -rsE +bqu +rwm cKa -ocJ -rsE +bqu +rwm cKa -xMR -roY -iZV +kjt +mgz +rLG cKa -vYP +tjR cKa -unW -xec -fdn -xMR -roY -roY +onW +dzB +wZt +kjt +mgz +mgz wef -iZV +rLG uwk bQM kPz bQM jmG -vBc +bZI fyi -xCy +vqs mvl -pwN -lps -uzd -gqe -uzd -gqe -uzd -rUY -vGO -tMF -hgu -hgu -hgu -hgu -rox -xNQ +ntE +smj +qof +qBe +qof +qBe +qof +sGa +gNU +oOg +bno +bno +bno +bno +vrR +jOb vRA -pHu -djx -vei -wBr +dHD +bAM +fHo +sKt oFI vRA glD kqC -tnj -pDV +pVY +mwP kqC -pHu -mcc -dzj +dHD +xbM +rYK mCF kqC kqC @@ -76811,41 +76811,41 @@ kqC wzE kPz hZR -vbd -pHu -vei -vbd -pHu -tax -vbd +pLE +dHD +fHo +pLE +dHD +naI +pLE duF -lQZ -mWF -lAS -lAS -uyq -lAS -dCF -lAS +dLN +dPm +tOM +tOM +uyw +tOM +hoT +tOM mxQ nmT tUs rbK tUs tUs -rwt +aEC tUs tUs ffZ -oYM -nVq -rev -oYM -oYM +gbf +fOT +apu +gbf +gbf mxQ -iHJ -xsa -ayK +qhD +qhJ +upK bzO rzt rzt @@ -76938,72 +76938,72 @@ bce bce uwk uwk -xMR -roY -iZV -mey -vJD -oWB -ikq -dyM +kjt +mgz +rLG +gBw +vUP +eDA +kXk +tPB wef -xMR -roY -lHc +kjt +mgz +xRY cKa -ikq -dyM +kXk +tPB cKa -ikq -dyM +kXk +tPB cKa -ikq -sAx +kXk +ctI cKa -xMR -iqV -aad +kjt +gzu +kGo cKa -unW -rmb -pdV -xec -fdn -xMR -roY +onW +vBa +cMP +dzB +wZt +kjt +mgz jMf wef -iZV +rLG uwk kPz kPz kPz jmG -wdX +wxW jEK -mIE +cOF jce -pwN -lps -gqe -gqe -gqe -gqe -gqe -iMF +ntE +smj +qBe +qBe +qBe +qBe +qBe +hSl ecM -fYn -eqT -ofr -bhM -tBa -tuH +jVj +gqU +eac +dPe +mcJ +uIL kqC kqC -ulJ -mcc -vei -wBr +nBb +xbM +fHo +sKt kqC kqC kqC @@ -77011,57 +77011,57 @@ kqC ryJ end kqC -ulJ -mcc -vei +nBb +xbM +fHo kqC -bux -bZu +sfu +jyF kqC -aFh -bZu +hHX +jyF wzE bQM hZR -vbd -avl -iUy -vbd -avl -iUy -vbd +pLE +qNF +efW +pLE +qNF +efW +pLE duF -whR -lAS -lAS -lAS -tvu -lAS -lAS -lAS +chg +tOM +tOM +tOM +fiw +tOM +tOM +tOM vDO tUs mxQ tUs mxQ mxQ -jum +mAN mxQ tUs mxQ -oYM -nVq -rev -kfA -kfA -tyQ -sTV -tdA -oYM -cUE -lAS -oYM -myt +gbf +fOT +apu +pYB +pYB +qaT +fWy +uvu +gbf +erw +tOM +gbf +pRz bzO bQM kPz @@ -77149,19 +77149,19 @@ vBP fQV erT uwk -bsd -ikq -vII -dyM -vJD -pqG +wcC +kXk +amn +tPB +vUP +dFI cKa -oWB +eDA wef wef -bDu -hMX -iiE +wlv +xWG +ngF cKa kzh tOp @@ -77172,66 +77172,66 @@ cKa kzh tOp cKa -jXD -roY -iZV +xVw +mgz +rLG cKa -unW -oYc +onW +shh cKa -unW -fdn -xMR -roY +onW +wZt +kjt +mgz bJn aTM -iZV +rLG uwk bQM kPz bQM jmG -wQh -mTS -jas +txf +oZj +sfZ uhm -ebP -bej -uzd -gqe -uzd -gqe -uzd -tnA +wdl +iUS +qof +qBe +qof +qBe +qof +pUo ecM -fXT -nSz -nSz -nSz -nSz -nSz +vNd +fWH +fWH +fWH +fWH +fWH kqC -uPD -uHL -mcc -dzj +mue +bbI +xbM +rYK kqC kqC -pFY -aru -dHp -dHp -dHp -uFh -pHu -mcc -vei +wyQ +eTa +vds +vds +vds +elO +dHD +xbM +fHo kqC -avl -jms +qNF +mDO kqC -avl -jms +qNF +mDO wzE wzE wzE @@ -77244,36 +77244,36 @@ ecd kqC jTJ vMK -dhj -lAS -mKy -lik -lAS -lAS -sDF +mGZ +tOM +bkg +czr +tOM +tOM +hao mxQ jXj mxQ rsp mxQ -oYM -oYM +gbf +gbf mxQ tUs mxQ -oYM -aZQ -rev -oYM -oYM +gbf +xRw +apu +gbf +gbf mxQ -tdA -tMe -tdA -krr -mpr -krr -xsa +uvu +sxE +uvu +sXa +uCO +sXa +qhJ bzO bQM kPz @@ -77361,43 +77361,43 @@ afk afk ghg uwk -mAE -vJD -aaK -dkj -kNz -vJD -ahe -aaK -cmj -rfD -frY -oSR -qqZ -dkj -dkj -kNz -vJD -eJi -rfD -dkj -dkj -kNz -vJD -xMR -mMq -iZV +aoZ +vUP +jWI +eow +lFB +vUP +pDo +jWI +bXz +kGd +ufR +sNi +jna +eow +eow +lFB +vUP +pRa +kGd +eow +eow +lFB +vUP +kjt +jYM +rLG cKa -unW -xec -rmb -oYc +onW +dzB +vBa +shh cKa -xMR -roY +kjt +mgz wef -roY -fin +mgz +bOx jmG uwk uwk @@ -77407,37 +77407,37 @@ mvl mvl uhm cKa -vcr -yiG -gqe -gqe -gqe -gqe -cjF -iMF +dnj +wis +qBe +qBe +qBe +qBe +oPR +hSl ecM bEX bEX izZ -cjF -cjF -cjF +oPR +oPR +oPR kqC -ftH -pHu -mcc -vei +pCQ +dHD +xbM +fHo abJ -usz -cCq -dHp -dHp -dHp -uFh -iUy -pHu -mcc -dzj +ioc +rzp +vds +vds +vds +elO +efW +dHD +xbM +rYK kqC ryJ end @@ -77448,35 +77448,35 @@ kqC wzE pah kwL -mcc -pfE +xbM +iCN qOq -mcc -mcc +xbM +xbM pah bhu goG -lAS -lAS -lAS -gfw -lAS -lAS -aem +tOM +tOM +tOM +tsf +tOM +tOM +dbW mxQ tUs tUs oBj mxQ -oYM +gbf mxQ mxQ msj mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vEK mxQ mxQ @@ -77573,132 +77573,132 @@ hkh afk tCZ uwk -wtx -vJD -xMR -roY -iZV -roY -roY -ikq -qEn -vII -vII -vII -vII -vII -vII -dyM -sAe -ikq -xqj -qEn -vII -dyM -vJD -xMR -roY -iZV +rce +vUP +kjt +mgz +rLG +mgz +mgz +kXk +qGB +amn +amn +amn +amn +amn +amn +tPB +baM +kXk +xYJ +qGB +amn +tPB +vUP +kjt +mgz +rLG cKa -qzl -pdV -xec -isi +okJ +cMP +dzB +lsZ hEs -xMR -roY -roY +kjt +mgz +mgz wef -iZV +rLG jYs -vWI -nSz -sad -qpa -nSz -nSz -vli -fGL -uXM -xrG -lHy -lHy -lHy -lHy -lHy -dBa -gqe -gqe -gqe -klg -gqe -gqe -cjF +uJi +fWH +hdR +hQQ +fWH +fWH +mBG +sue +wBB +dAd +ode +ode +ode +ode +ode +cry +qBe +qBe +qBe +wKm +qBe +qBe +oPR kqC -pzN -pHu -mcc -vei +cRI +dHD +xbM +fHo vRA -usz -avl -xri -xri -xri -iUy -uFh -qWf -mcc -vei -usz -cCq -dHp -dHp -dHp -uFh -usz +ioc +qNF +xRI +xRI +xRI +efW +elO +cHC +xbM +fHo +ioc +rzp +vds +vds +vds +elO +ioc duF koy gsL -pHc -mcc +mOI +xbM qOq -mcc -mcc +xbM +xbM ckx sNN goG -lAS -lAS -lAS -hzq -gnz -lAS -tlp +tOM +tOM +tOM +bPh +mzJ +tOM +mtD mxQ xCa pjT -wul +cHm mxQ -qFg +fvK hvF tUs tUs lhY -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vEK mxQ mxQ -kcz -vkZ -vkZ -vkZ -vkZ -vkZ -vkZ +kGZ +sBW +sBW +sBW +sBW +sBW +sBW bzO bzO bzO @@ -77785,12 +77785,12 @@ afk afk xMW uwk -wtx -vJD -ikq -vII -dyM -mLe +rce +vUP +kXk +amn +tPB +qqC eov efl fDQ @@ -77798,9 +77798,9 @@ eov tzy wef wef -pnA -vJD -bhR +xgH +vUP +knb wef wef tOp @@ -77808,110 +77808,110 @@ cKa kzh tOp cKa -jXD -roY -fin +xVw +mgz +bOx aSz aSz aSz hul aSz aSz -pka -vII -vII -vII -dyM +nGV +amn +amn +amn +tPB jYs -nSz -ozh -iOJ -ozh -iOJ -vYA -oDz -fnW -wEQ -gqe -cjF -cjF -enG -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -cjF +fWH +mEU +aZL +mEU +aZL +cGS +dBz +ivw +kmm +qBe +oPR +oPR +wuW +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +oPR kqC -uPD -gwX -mcc -dzj +mue +gIa +xbM +rYK kqC kqC -usz -avl -xri -xri -xri -iUy -pHu -mcc -vei -usz -avl -xri -xri -xri -iUy -rvf +ioc +qNF +xRI +xRI +xRI +efW +dHD +xbM +fHo +ioc +qNF +xRI +xRI +xRI +efW +sDR hBF -vHR -uJk -mcc -mcc +vcv +iLl +xbM +xbM qOq -wwH -mcc +huG +xbM pah mbH goG -lAS -lAS -lAS -aIR -lAS -lAS -hIe +tOM +tOM +tOM +quL +tOM +tOM +tzU mxQ tUs mxQ tUs tUs -oYM +gbf rbK tUs mxQ mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vEK -fKv -kcz -aWo -kfA -atE -kfA -lAS -lAS -oYM -oYM +fFw +kGZ +fHI +pYB +eBS +pYB +tOM +tOM +gbf +gbf bzO bQM kPz @@ -77997,37 +77997,37 @@ eJQ jlH bUB uwk -lCD -aaK -dkj -kNz -vJD -roY +iTr +jWI +eow +lFB +vUP +mgz eov -svF -qtX +ihV +uvS eov -pgV -uMH +gXI +qxx jAW -vJD -tMr -vJD +vUP +tWs +vUP wef -aaK -kNz +jWI +lFB cKa -aaK -soQ +jWI +oyy cKa -xMR -roY -iZV -vJD +kjt +mgz +rLG +vUP cKa -pVq +sXe wef -pVq +sXe aSz jmG jmG @@ -78035,35 +78035,35 @@ uwk uwk jmG jmG -ozh -kxV -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -aDw +mEU +bbn +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +pUf kqC kqC -ulJ -mcc -vei -wBr +nBb +xbM +fHo +sKt kqC ryJ end @@ -78071,9 +78071,9 @@ kqC ryJ end kqC -pHu -mcc -dzj +dHD +xbM +rYK kqC ryJ end @@ -78092,38 +78092,38 @@ ecd kqC jTJ vMK -pmg -lAS -lAS -lAS -lAS -lAS -lAS +pFW +tOM +tOM +tOM +tOM +tOM +tOM vDO tUs mxQ vrF hvF -oYM +gbf hvF oBj tUs vDO -atE -nVq -jVW -oYM -oYM -sTV -hHv +eBS +fOT +epB +gbf +gbf +fWy +vUZ waN sfW sfW sfW sfW sfW -oqu -jKL +qRW +mOE bzO tan tan @@ -78210,36 +78210,36 @@ bce bce uwk uwk -xMR -roY -iZV -vJD -iKC +kjt +mgz +rLG +vUP +cEg eov -kzI -qfu +jGs +vRu eov -ldm -wMS +iFB +nVu hqD -wZE -vJD -azg +jiz +vUP +cfU hqD -ldm -usA +iFB +dUx cKa -ldm -xVv +iFB +qBT cKa -xMR -roY -iZV -vJD +kjt +mgz +rLG +vUP glj -pVq +sXe wef -pVq +sXe odQ uwk bQM @@ -78247,101 +78247,101 @@ bQM bQM bQM uwk -iOJ -cjF -jBL -cjF -cjF -cjF -cjF -cjF -cjF -cjF -krQ -cjF -gqe -sad -aPi +aZL +oPR +ldj +oPR +oPR +oPR +oPR +oPR +oPR +oPR +hoC +oPR +qBe +hdR +ksu ecM mlC mlC mlC ecM -qKF -gqe -oEI -jKb +okE +qBe +vcu +qQM abJ -pHu -mcc -vei -wBr +dHD +xbM +fHo +sKt kqC -avl -jms +qNF +mDO kqC -avl -jms +qNF +mDO kqC -ulJ -mcc -vei +nBb +xbM +fHo kqC -cCq -pDV +rzp +mwP kqC -cCq -pDV +rzp +mwP kqC -qOG -lAS -eBC -nVq -rev -qTy -nVq -rev -oYM -cFf +rKs +tOM +wGA +fOT +apu +hAs +fOT +apu +gbf +xXt vMK -tld -lAS -lAS -lAS -xsg -lAS -qLJ +bRC +tOM +tOM +tOM +sbU +tOM +aXv mxQ tUs tUs jXj mxQ -oYM +gbf mxQ tUs hvF mxQ -oYM -nVq -xUz -nbv -nbv -pdf -aWo +gbf +fOT +nBw +nvX +nvX +wuz +fHI hfd fIW htt htt qpM vjq -euC -euC -euC -ssD -iSi -ssD -hbC -cbb +fHb +fHb +fHb +tsc +bEk +tsc +ogf +mRM bQM bQM bQM @@ -78422,11 +78422,11 @@ cAW cAW bQM uwk -ikq -vII -dyM -vJD -urw +kXk +amn +tPB +vUP +kIO eov dRO pvD @@ -78434,9 +78434,9 @@ eov cKa cKa cKa -pEL -vJD -pqG +mZy +vUP +dFI hEs cKa cKa @@ -78444,14 +78444,14 @@ cKa cKa cKa cKa -jXD -roY -iZV -vJD +xVw +mgz +rLG +vUP glj -pVq +sXe wef -pVq +sXe vJh uwk kPz @@ -78459,35 +78459,35 @@ kPz kPz kPz uwk -gqe -naN -cjF -rsW -kJX -iOJ -ozh -rsW -kJX -iOJ -cjF -cjF -gqe -adY -sKS +qBe +rpt +oPR +roQ +ccZ +aZL +mEU +roQ +ccZ +aZL +oPR +oPR +qBe +jDe +ofl mlC kPz kPz kPz mlC -gqe -bKs -rUY -xNQ +qBe +eUP +sGa +jOb vRA -avl -lka -iUy -usz +qNF +eux +efW +ioc kqC kqC kqC @@ -78495,26 +78495,26 @@ mCF kqC kqC kqC -pHu -mcc -vei +dHD +xbM +fHo kqC -wII -bjk +qLi +dpe kqC -wII -bjk +qLi +dpe kqC -riu -boh -oYM -nVq -rev -kfA -nVq -rev -oYM -tld +lbz +gLk +gbf +fOT +apu +pYB +fOT +apu +gbf +bRC vMK goG iyf @@ -78528,18 +78528,18 @@ mxQ uZX mxQ mxQ -iuV +uOM mxQ uZX mxQ mxQ -jae -nVq -oYM -oYM -oYM -amx -lAS +mFS +fOT +gbf +gbf +gbf +arT +tOM hfd vfM oEK @@ -78553,7 +78553,7 @@ vzB fiq vzB bQM -gEU +bmT bQM bQM bQM @@ -78634,36 +78634,36 @@ cAW cAW bQM uwk -vJD -aaK -dkj -kNz -cgE +vUP +jWI +eow +lFB +dbh eov doe cAW eov -ocJ -rsE +bqu +rwm cKa -qBh -vJD -vJD +gzN +vUP +vUP cKa -ocJ -rsE +bqu +rwm cKa -ocJ -rsE +bqu +rwm cKa -xMR -lSY -iZV -vJD +kjt +xAq +rLG +vUP cKa -nmQ +dcv wef -pVq +sXe lMi uwk bQM @@ -78671,29 +78671,29 @@ bQM bQM bQM uwk -rsW -uyb -cjF -stq +roQ +vdW +oPR +kJJ jRL mlC mlC mlC ecM -qYc -cjF -cjF -gqe -jJM -dlE +iCE +oPR +oPR +qBe +xbE +fYf mlC bQM bQM bQM mlC -bKs -gqe -fum +eUP +qBe +xIq kqC kqC vRA @@ -78701,15 +78701,15 @@ blG kqC kqC kqC -mcc -mcc -mcc -lnU -mcc -mcc -pHu -mcc -dzj +xbM +xbM +xbM +kgQ +xbM +xbM +dHD +xbM +rYK kqC kqC kqC @@ -78718,54 +78718,54 @@ kqC kqC kqC mxQ -lAS -oYM -nVq -rev -kfA -nVq -rev -oYM -lAS -sPk -kfA -kfA -kfA +tOM +gbf +fOT +apu +pYB +fOT +apu +gbf +tOM +vuV +pYB +pYB +pYB mxQ oXS fUr wcW -tTK +wjT mxQ -oYM -rwt -nQS -oYM +gbf +aEC +gzh +gbf mxQ tUs tUs bMu -btB -nVq -lXf -nLl -nLl -jYd -mXT +gOk +fOT +jzP +ydK +ydK +qzb +tdq hfd ucj bBA bBA rZi eMU -euC -euC -euC -ssD -iSi -ssD -hbC -ogo +fHb +fHb +fHb +tsc +bEk +tsc +ogf +fWI bQM bQM bQM @@ -78846,31 +78846,31 @@ cAW jmG jmG jmG -iir -xMR -fnj -iZV -gHc +lSq +kjt +hjB +rLG +taI eov ivb cAW eov -ikq -dyM +kXk +tPB cKa -uvh -aZZ -vJD +fLH +gCK +vUP cKa -ikq -dSw +kXk +rhH cKa -ikq -dSw +kXk +rhH cKa -xMR -roY -iZV +kjt +mgz +rLG cKa cKa cKa @@ -78883,95 +78883,95 @@ hxq hxq vnr vnr -ozh -cjF -cjF -iOJ +mEU +oPR +oPR +aZL mlC bQM kPz bQM mlC -rsW -cjF -cjF -gqe -gtM -sbM +roQ +oPR +oPR +qBe +vtX +dYo mlC kPz kPz kPz mlC -gqe -gqe -gqe +qBe +qBe +qBe kqC kqC -heb -rIC +jva +gEX wzE kqC -qVe -lnU -tlS -fFf -pWm -usz -lnU -tno -mcc -vei +pai +kgQ +tSl +diJ +ddt +ioc +kgQ +diF +xbM +fHo kqC -bux -bZu +sfu +jyF kqC -bux -bZu +sfu +jyF kqC -lyg -cfj -oYM -nVq -rev -ppK -nVq -mel -oYM -pfW -fqD -cmV -cmV -cmV +hNj +ijd +gbf +fOT +apu +klN +fOT +wmm +gbf +vRP +anR +pca +pca +pca vDO tUs rbK tUs tUs uZX -kfA -kfA -ppb -kfA -kfA +pYB +pYB +hQM +pYB +pYB tUs vjl mxQ -oYM -nVq -rev -oYM -oYM -fKv -hHv +gbf +fOT +apu +gbf +gbf +fFw +vUZ tuX vEi vEi vEi vEi vEi -hhh -eKu +faD +oyO bzO tan tan @@ -79058,11 +79058,11 @@ cAW jmG cAW jmG -vJD -ikq -vII -dyM -nCl +vUP +kXk +amn +tPB +mpR eov hxJ qgd @@ -79070,9 +79070,9 @@ eov kzh tOp cKa -evU -vJD -pqG +oDH +vUP +dFI cKa kzh tOp @@ -79080,110 +79080,110 @@ cKa kzh tOp cKa -jXD -roY -fin +xVw +mgz +bOx cKa -vJD -vJD -vJD +vUP +vUP +vUP cKa -xyf -tMA -ycX -jsn -ycX -eOS +xRl +cPz +ixl +kJz +ixl +bjf vNq -srz -cjF -cjF -gqe +hsz +oPR +oPR +qBe mlC kPz kPz kPz mlC -sad -cjF -cjF -gqe -iOJ -dhN +hdR +oPR +oPR +qBe +aZL +nGB ecM mlC mlC mlC ecM -qBs -gqe -gqe -gqe -eTJ -rOm -gGB -rOm +eLU +qBe +qBe +qBe +jis +dQV +nGp +dQV kqC -qVe -lnU -cbe -fFf -kqP -usz -rgD -pHu -mcc -vei +pai +kgQ +nkg +diJ +iuC +ioc +pnP +dHD +xbM +fHo kqC -avl -jms +qNF +mDO kqC -avl -jms +qNF +mDO kqC -riu -mGx -oYM -nVq -rev -iCC -nVq -rev -oYM -oYM -oYM -mgU -oYM -lAS +lbz +hnh +gbf +fOT +apu +vTM +fOT +apu +gbf +gbf +gbf +uFg +gbf +tOM mxQ -xjv -xjv -xjv -xjv +kag +kag +kag +kag uZX -oYM -kvd -ihA -fmM -oYM +gbf +dtk +nnC +ota +gbf mxQ mxQ mxQ -oYM -nVq -rev -oYM +gbf +fOT +apu +gbf vEK -sTV -pVv -oYM -kfA -atE -kfA -lAS -lAS -oYM -oYM +fWy +lUv +gbf +pYB +eBS +pYB +tOM +tOM +gbf +gbf bzO bQM kPz @@ -79279,73 +79279,73 @@ eov eov eov eov -vJD +vUP wef -vJD -ceZ -vJD -vJD -jki -aaK -dkj -aPq -rfD -kNz -vJD -xMR -roY -iZV +vUP +ika +vUP +vUP +bjZ +jWI +eow +aiv +kGd +lFB +vUP +kjt +mgz +rLG lZA -aaK -dkj -kNz +jWI +eow +lFB lZA -ycX -ycX -qHZ -qYq -qYq -ycX -sun -gqe -cjF -cjF -rsW +ixl +ixl +ghS +hHH +hHH +ixl +rmX +qBe +oPR +oPR +roQ mlC bQM kPz bQM mlC -iOJ -cjF -cjF -gqe -gqe -mmh -gqe -bKs -gqe -gqe -gqe -gqe -gqe -sad -rsW -gqe -gqe -gqe -ijv +aZL +oPR +oPR +qBe +qBe +gbk +qBe +eUP +qBe +qBe +qBe +qBe +qBe +hdR +roQ +qBe +qBe +qBe +fjg kqC -qVe -lnU -kau -fFf -tnP -fFf -mcc -pHu -mcc -dzj +pai +kgQ +tTm +diJ +aga +diJ +xbM +dHD +xbM +rYK kqC ryJ end @@ -79354,48 +79354,48 @@ ryJ end kqC kqC -pmg -mTJ -nVq -tTr -wRG -mfd -xUz -nbv -nbv -nbv -bPS -oYM -qLJ +pFW +cTy +fOT +wua +kKP +eqw +nBw +nvX +nvX +nvX +beB +gbf +aXv bzO rzt rzt rzt rzt bzO -kfA -kfA -deW -kfA -kfA +pYB +pYB +xOm +pYB +pYB mxQ -sfw -sfw -nyQ -nVq -rev -oYM -oYM -fKv -hHv +rQN +rQN +fUD +fOT +apu +gbf +gbf +fFw +vUZ waN sfW sfW sfW sfW sfW -oqu -jKL +qRW +mOE bzO tan tan @@ -79490,95 +79490,95 @@ jmG cKa cKa cKa -xCW -vJD -vJD -vJD -vJD -pFg -vJD -bhR -ikq -xqj -qEn -vII -uZe -vJD -xMR -roY -iZV +rpf +vUP +vUP +vUP +vUP +mIr +vUP +knb +kXk +xYJ +qGB +amn +hkH +vUP +kjt +mgz +rLG wef -xMR -roY -iZV +kjt +mgz +rLG wef -ycX -ycX -ycX -ycX -ycX -ovj -mfo -cjF -cjF -cjF -stq +ixl +ixl +ixl +ixl +ixl +gpr +nnr +oPR +oPR +oPR +kJJ ecM mlC mlC mlC ecM -qYc -cjF -cjF -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -gqe -klv -ozh -gqe -gqe -gqe -eRY +iCE +oPR +oPR +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +qBe +rMw +mEU +qBe +qBe +qBe +jLe kqC kqC -lVP -kqP +sRJ +iuC coj -usz -usz -mcc -pHu -mcc -vei -usz -cCq -dHp -dHp -dHp -uFh -usz +ioc +ioc +xbM +dHD +xbM +fHo +ioc +rzp +vds +vds +vds +elO +ioc ntv -lAS -oYM -nVq -oYM -oYM -oYM -oYM -oYM -oYM -oYM -rev -oYM -lAS +tOM +gbf +fOT +gbf +gbf +gbf +gbf +gbf +gbf +gbf +apu +gbf +tOM bzO bQM kPz @@ -79591,29 +79591,29 @@ iyf mxQ mxQ mxQ -suB -lAS -ogX -nVq -xUz -nbv -nbv -pdf -aWo +jkW +tOM +kLs +fOT +nBw +nvX +nvX +wuz +fHI hfd fIW htt htt qpM vjq -euC -euC -euC -ssD -iSi -ssD -hbC -cbb +fHb +fHb +fHb +tsc +bEk +tsc +ogf +mRM bQM bQM bQM @@ -79703,9 +79703,9 @@ cKa cKa cKa cKa -vJD -vJD -vJD +vUP +vUP +vUP jfc wef wef @@ -79716,81 +79716,81 @@ rPS wef wef jfc -xMR -roY -iZV +kjt +mgz +rLG lZA -xMR -roY -iZV +kjt +mgz +rLG lZA -ycX -ycX -ycX -ycX -ycX -ycX -mfo -cjF -cjF -cjF -iOJ -fnt -rsW -gqe -iOJ -fnt -rsW -cjF -cjF -sad -rsW -gqe -gqe -sad -rsW -gqe -gqe -gqe -gqe -nis -mQD -gqe -gas -gqe -qnu +ixl +ixl +ixl +ixl +ixl +ixl +nnr +oPR +oPR +oPR +aZL +eLy +roQ +qBe +aZL +eLy +roQ +oPR +oPR +hdR +roQ +qBe +qBe +hdR +roQ +qBe +qBe +qBe +qBe +hYs +uou +qBe +mrW +qBe +fWV tHl -fBc +qCK lIJ -fBc -usz -fpY -usz -mcc -avl -xri -iUy -usz -avl -xri -xri -xri -iUy -usz +qCK +ioc +idj +ioc +xbM +qNF +xRI +efW +ioc +qNF +xRI +xRI +xRI +efW +ioc ntv -lAS -oYM -eNs -nLl -nLl -nLl -nLl -nLl -nLl -oiu -rev -oYM -kLN +tOM +gbf +rsR +ydK +ydK +ydK +ydK +ydK +ydK +kHv +apu +gbf +kbt bzO rzt rzt @@ -79798,20 +79798,20 @@ rzt rzt bzO tJR -kfA -oYM -kfA +pYB +gbf +pYB wcW mxQ -lAS -lAS -oYM -nVq -rOE -oYM -oYM -amx -lAS +tOM +tOM +gbf +fOT +xEW +gbf +gbf +arT +tOM hfd vfM oEK @@ -79825,7 +79825,7 @@ vzB fiq vzB bQM -gEU +bmT bQM bQM bQM @@ -79914,74 +79914,74 @@ jmG cKa cKa cKa -xCW -aaK -dkj -kNz +rpf +jWI +eow +lFB hqD -aaK -qwy +jWI +clA wef -aaK -kNz +jWI +lFB jfc -aaK -kNz +jWI +lFB rPS -xMR -roY -iZV +kjt +mgz +rLG wef -ikq -vII -dyM +kXk +amn +tPB wef -ycX -ycX -ycX -ycX -qHZ -ycX -jRp -vvX -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -cjF -iOJ -ozh -gqe -bKs -iOJ -ozh -gqe -gqe -gqe -gqe -nis -gqe -gqe -gqe -jvu +ixl +ixl +ixl +ixl +ghS +ixl +lpS +ooq +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +oPR +aZL +mEU +qBe +eUP +aZL +mEU +qBe +qBe +qBe +qBe +hYs +qBe +qBe +qBe +oHi miU -ecp +sgt vRA -sHH +upY vRA vRA -usz -fFf -mcc +ioc +diJ +xbM vRA -mcc -mcc +xbM +xbM kqC ryJ end @@ -79990,54 +79990,54 @@ kqC ecd kqC kqC -pmg -oYM -oYM -oYM -oYM -oYM -oYM -oYM -oYM -nVq -rev -oYM -guQ +pFW +gbf +gbf +gbf +gbf +gbf +gbf +gbf +gbf +fOT +apu +gbf +ivr vDO -prP -prP -prP -jqH -oYM +wkA +wkA +wkA +lOk +gbf tUs -kfA -ppb -kfA +pYB +hQM +pYB tUs vDO -atE -lAS -oYM -nVq -lXf -nLl -nLl -jYd -mXT +eBS +tOM +gbf +fOT +jzP +ydK +ydK +qzb +tdq hfd ucj bBA bBA rZi eMU -euC -euC -euC -ssD -iSi -ssD -hbC -ogo +fHb +fHb +fHb +tsc +bEk +tsc +ogf +fWI bQM bQM bQM @@ -80127,123 +80127,123 @@ cKa cKa cKa cKa -xMR -roY -iZV +kjt +mgz +rLG hqD -mHZ -usA +fRc +dUx hqD -ldm -usA +iFB +dUx jfc -ldm -usA +iFB +dUx wef -xMR -roY -iZV +kjt +mgz +rLG cKa -vJD -vJD -vJD +vUP +vUP +vUP cKa -xyf -ycX -ycX -ycX -ycX -eOS +xRl +ixl +ixl +ixl +ixl +bjf vNq -hvE -vvX -ozh -rsW -hmg -dyi -dQY -eIp -uch -flo -dQY -dPQ -gqe -gqe -hmg -uch -uch -cWU -sad -rsW -gqe -hYK -lpp -ppY -gqe -gqe -gqe -gqe +gvz +ooq +mEU +roQ +fyL +fje +rCe +etq +gGc +dIx +rCe +gPE +qBe +qBe +fyL +gGc +gGc +tzM +hdR +roQ +qBe +kHH +fFv +uoH +qBe +qBe +qBe +qBe oPN vRA -lOa +aXC vRA -fBc +qCK lIJ vRA -sHH -sHH -sHH -qOd +upY +upY +upY +tZe kqC -cCq -pDV +rzp +mwP mxQ fCZ nZQ sso mxQ -mKy -xjv -lAS -rII -rII -lAS -lAS -lAS -oYM -nVq -rev -oYM -lAS +bkg +kag +tOM +xsS +xsS +tOM +tOM +tOM +gbf +fOT +apu +gbf +tOM bzO bzO mxQ tUs rVM -oYM -oYM -pes -qWi -vMS -mNC +gbf +gbf +eBj +cLZ +atd +xGl vDO -atE -lAS -oYM -nVq -rev -lAS -lAS -fKv -hHv +eBS +tOM +gbf +fOT +apu +tOM +tOM +fFw +vUZ tuX vEi vEi vEi vEi vEi -hhh -eKu +faD +oyO bzO tan tan @@ -80339,9 +80339,9 @@ cKa cKa cKa cKa -dgx -roY -iZV +wdL +mgz +rLG hEs cKa cKa @@ -80352,63 +80352,63 @@ cKa cKa cKa cKa -jXD -roY -iZV +xVw +mgz +rLG jmG uwk uwk uwk jmG vnr -ycX -ycX -ycX -ycX -ycX +ixl +ixl +ixl +ixl +ixl vNq vNq -xrG -lHy -lHy -dBa +dAd +ode +ode +cry vNq vNq vnr mlC mlC ecM -mam -lPV -lPV -kDq +yfp +hEv +hEv +hbp ecM nSx -lZL -gCb -ejO -gqe -gqe -iOJ -ozh -gqe -gqe -mAA -atx -jxy +gVc +xbo +qzZ +qBe +qBe +aZL +mEU +qBe +qBe +ooO +faw +lux wjH -nph -vHG -pQq +cqW +ckS +voh dtg -usz -sHH -sHH -sHH -qOd +ioc +upY +upY +upY +tZe kqC -wII -bjk +qLi +dpe mxQ gRW ssO @@ -80419,43 +80419,43 @@ iyf mxQ pte bzO -fLs -fLs -fLs -oYM -nVq -rev -oYM -fLs +mOU +mOU +mOU +gbf +fOT +apu +gbf +mOU bzO bzO mxQ tUs uZX -oYM +gbf tUs -kfA -deW -kfA +pYB +xOm +pYB tUs mxQ -sfw -lAS -rOE -nVq -rev -lAS +rQN +tOM +xEW +fOT +apu +tOM aRk -fKv -pVv -oYM -kfA -atE -kfA -lAS -lAS -oYM -oYM +fFw +lUv +gbf +pYB +eBS +pYB +tOM +tOM +gbf +gbf bzO bQM kPz @@ -80548,76 +80548,76 @@ cAW cAW jmG cKa -ocJ -wVI +bqu +moQ cKa -xMR -roY -cHq +kjt +mgz +vwX cKa -ocJ -rsE +bqu +rwm cKa -ocJ -rsE +bqu +rwm cKa -ocJ -ukk +bqu +aLC cKa -xMR -roY -iZV +kjt +mgz +rLG uwk bQM kPz kPz bQM hxq -ycX -ycX -ycX -ycX -ycX -ycX -cJo -ycX -ycX -ycX -ycX -tih -ycX +ixl +ixl +ixl +ixl +ixl +ixl +bcX +ixl +ixl +ixl +ixl +tjp +ixl ezn kPz kPz hxq -jLs -bTe -eRi -llW +ovq +vyw +bix +uTb ecM nSx -nrq -uVQ -gqe -gqe -gqe -gqe -gqe -klg -gqe -gqe -atx +gux +eio +qBe +qBe +qBe +qBe +qBe +wKm +qBe +qBe +faw tHl -opB -mcc -tyb -hDr -mcc -cel -mcc -mcc -aYA -mcc +jYm +xbM +thz +suq +xbM +wFB +xbM +xbM +xdZ +xbM kqC kqC kqC @@ -80631,16 +80631,16 @@ tUs mxQ bzO bzO -oYM -oYM -oYM -sTV -eNs -snO -sTV -oYM -oYM -oYM +gbf +gbf +gbf +fWy +rsR +oEQ +fWy +gbf +gbf +gbf mxQ iyf mxQ @@ -80651,23 +80651,23 @@ hvF mxQ mxQ mxQ -ieU -cNn -oYM -nVq -rev -lAS -xmX -lqo -hHv +fob +rxM +gbf +fOT +apu +tOM +rbW +voP +vUZ waN sfW sfW sfW sfW sfW -oqu -jKL +qRW +mOE bzO tan tan @@ -80760,65 +80760,65 @@ cAW cAW jmG cKa -ikq -ikz +kXk +qRf cKa -xMR -roY -iZV +kjt +mgz +rLG cKa -ikq -chJ +kXk +jWY cKa -ikq -frw +kXk +lzz cKa -ikq -dSw +kXk +rhH cKa -ikq -vII -dyM +kXk +amn +tPB uwk bQM kPz kPz bQM hxq -ycX -ycX -ycX -ycX -ycX -ycX -ycX -qHZ -ycX -ycX -qHZ -ycX -ycX +ixl +ixl +ixl +ixl +ixl +ixl +ixl +ghS +ixl +ixl +ghS +ixl +ixl vnr hxq hxq vnr -dXz -dpt -ycX -aap +lOx +oRg +ixl +uvn ecM nSx -aah -ckD -mQZ -gqe -sad -rsW -mQZ -gqe -gqe -gqe -qgS +ayG +laK +gRA +qBe +hdR +roQ +gRA +qBe +qBe +qBe +hQT jTJ jTJ kqC @@ -80831,8 +80831,8 @@ blG jTJ jTJ jTJ -mCT -sRH +bMG +anl ffZ tUs fgU @@ -80841,51 +80841,51 @@ noa mxQ mxQ mxQ -nPa -kfA -lAS -lAS -oYM -oYM -kfA -kfA -oYM -oYM -lAS -lAS -kfA -vWs +xLD +pYB +tOM +tOM +gbf +gbf +pYB +pYB +gbf +gbf +tOM +tOM +pYB +jyo mxQ mxQ mxQ -tMz -lif +tVf +oEn mxQ -uod -lAS -raF -pVv -oYM -nVq -xUz -nbv -nbv -pdf -aWo +pRx +tOM +xbp +lUv +gbf +fOT +nBw +nvX +nvX +wuz +fHI hfd fIW htt htt qpM vjq -euC -euC -euC -ssD -iSi -ssD -hbC -cbb +fHb +fHb +fHb +tsc +bEk +tsc +ogf +mRM bQM bQM bQM @@ -80975,9 +80975,9 @@ cKa kzh tOp cKa -xMR -roY -iZV +kjt +mgz +rLG cKa kzh tOp @@ -80988,102 +80988,102 @@ cKa kzh tOp cKa -cOl -vJD -vJD +cIt +vUP +vUP uwk bQM kPz kPz bQM hxq -bTe -eRi -kJC -eRi -eRi -eRi -eRi -eRi -eRi -dJl -eRi -eRi -eRi -eRi -eRi -jSC -eRi -eRi -gHW -bra -hrX +vyw +bix +fOC +bix +bix +bix +bix +bix +bix +fKu +bix +bix +bix +bix +bix +xOU +bix +bix +uPl +dIh +kGc nSx cVV -glH +oWC xKX -jbk -mQZ -iOJ -sad -rsW -mQZ -gqe -gqe -uix -fII +qTt +gRA +aZL +hdR +roQ +gRA +qBe +qBe +uud +wXQ ntv -gXL -dHp -dHp -xAw -rdS -usz -usz -dpr +hqX +vds +vds +rQB +gdS +ioc +ioc +qxZ duF -euR +sFH rCt -rsh +xGd mxQ tUs kZy mxQ mxQ mxQ -kfA -kfA -eCA -lAS -oYM -oYM -lAS -oYM -kfA -kfA -oYM -lAS -oYM -oYM -lAS -lAS -kfA -dxJ +pYB +pYB +eTr +tOM +gbf +gbf +tOM +gbf +pYB +pYB +gbf +tOM +gbf +gbf +tOM +tOM +pYB +cyR mxQ mxQ mxQ mxQ uLr tUs -fXQ -ncQ -oYM -nVq -oYM -oYM -oYM -amx -lAS +brl +kyh +gbf +fOT +gbf +gbf +gbf +arT +tOM hfd vfM oEK @@ -81097,7 +81097,7 @@ vzB fiq vzB bQM -gEU +bmT bQM bQM bQM @@ -81184,132 +81184,132 @@ cAW cAW jmG cKa -aaK -dkj -dkj -frY -roY -qqZ -dkj -dkj -rfD +jWI +eow +eow +ufR +mgz +jna +eow +eow +kGd wef -dkj -dkj -dkj -dkj -kNz -vJD -aaK -dkj -kNz +eow +eow +eow +eow +lFB +vUP +jWI +eow +lFB uwk bQM kPz kPz bQM hxq -dpt -jLs -jLs -grO -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -jLs -aap +oRg +ovq +ovq +ehr +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +ovq +uvn nSx nSx xKX rGf xKX -bRU -mQZ -iOJ -ozh -rsW -gqe -gqe -gqe +qUw +gRA +aZL +mEU +roQ +qBe +qBe +qBe kqC kqC kqC -aKF -sHH -xAw -uJk -usz -usz -sJc +fKX +upY +rQB +iLl +ioc +ioc +sjZ kqC -dFC +huJ caF -njT +xKE mxQ cLu wBX mxQ -nPa -kfA -lAS -lAS -oYM -oYM -lAS -lAS -lAS -oYM -jax -kfA -oYM -lAS -lAS -lAS -oYM -oYM -lAS -lAS -kfA -xmg +xLD +pYB +tOM +tOM +gbf +gbf +tOM +tOM +tOM +gbf +fLu +pYB +gbf +tOM +tOM +tOM +gbf +gbf +tOM +tOM +pYB +xkm mxQ mxQ mWY tUs -amx -lAS -oYM -nVq -lXf -nLl -nLl -jYd -mXT +arT +tOM +gbf +fOT +jzP +ydK +ydK +qzb +tdq hfd ucj bBA bBA rZi eMU -euC -euC -euC -ssD -iSi -ssD -hbC -ogo +fHb +fHb +fHb +tsc +bEk +tsc +ogf +fWI bQM bQM bQM @@ -81396,70 +81396,70 @@ cAW cAW jmG cKa -xMR -roY -roY -roY -roY -roY -roY -roY -roY +kjt +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz wef -roY -roY -roY -roY -iZV -vJD -xMR -roY -iZV +mgz +mgz +mgz +mgz +rLG +vUP +kjt +mgz +rLG uwk bQM kPz kPz bQM hxq -dpt -jLs -mDV -iSQ -iSQ -iSQ -iSQ -iSQ -iSQ -xVP -jLs -mDV -iSQ -iSQ -iSQ -iSQ -iSQ -iSQ -xVP -jLs -aap +oRg +ovq +kDw +kgG +kgG +kgG +kgG +kgG +kgG +ujb +ovq +kDw +kgG +kgG +kgG +kgG +kgG +kgG +ujb +ovq +uvn cVV nSx -jzY +nVE xKX -sGb -ozh -gqe -mQZ -iOJ -ozh -gqe -gqe -uix -mNg +uGL +mEU +qBe +gRA +aZL +mEU +qBe +qBe +uud +mwu ntv -gXL -dHp -dHp +hqX +vds +vds jTJ jTJ vRA @@ -81467,55 +81467,55 @@ blG jTJ jTJ kqC -oSo +pim kqC mxQ tUs mxQ mxQ -kfA -lAS -oYM -oYM -xoF -lAS -lAS -kIc -pwi -fbT -mBV -wPL -fNc -pwi -uIa -lAS -lAS -bPS -oYM -oYM -lAS -kfA +pYB +tOM +gbf +gbf +ekx +tOM +tOM +dXT +egz +fpg +nmM +aMr +hDS +egz +xBu +tOM +tOM +beB +gbf +gbf +tOM +pYB mxQ mxQ uSY tUs -jYd -cNn -wPF -nVq -rev -oYM -oYM -sTV -hHv +qzb +rxM +uMN +fOT +apu +gbf +gbf +fWy +vUZ tuX vEi vEi vEi vEi vEi -hhh -eKu +faD +oyO bzO tan tan @@ -81608,126 +81608,126 @@ cAW cAW jmG cKa -eXC -vII -vII -vII -vII -vII -vII -vII -vII +ndQ +amn +amn +amn +amn +amn +amn +amn +amn ljc -vII -vII -vII -vII -dyM -vJD -ikq -raD -dyM +amn +amn +amn +amn +tPB +vUP +kXk +ylr +tPB uwk bQM kPz kPz bQM hxq -dpt -jLs -wGm +oRg +ovq +peP vnr hxq vnr vnr hxq vnr -elC -jLs -wGm +sTw +ovq +peP oUg -fPF -fPF +qFO +qFO oUg oUg oUg -ljA -jLs -wGm +yfA +ovq +peP nSx nSx -ajD -rsW -mQZ -gqe -sad -vEX +xgC +roQ +gRA +qBe +hdR +dVu nSx -qKF -gqe -gqe -gqe +okE +qBe +qBe +qBe kqC kqC kqC -mcc -sHH +xbM +upY sqC -cXY -kfl -kfl -dEo +vVx +qQb +qQb +tlF hfT -dAB -xng -dIq +ecU +iSg +vTA vDO tUs vDO -kfA -lAS -oYM -lAS -lAS -lAS -qvL -pwi -xcJ +pYB +tOM +gbf +tOM +tOM +tOM +tYD +egz +xkq mxQ mxQ -pwg -nYA +kKQ +vhk mxQ mxQ -ozg -pwi -qnc -lAS -lAS -lAS -oYM -lAS -kfA +tSL +egz +jOv +tOM +tOM +tOM +gbf +tOM +pYB mxQ -sfw -lAS -nBO -pVv -oYM -nVq -rev -oYM +rQN +tOM +rTD +lUv +gbf +fOT +apu +gbf vEK -sTV -pVv -oYM -kfA -atE -kfA -oYM -oYM -oYM -oYM +fWy +lUv +gbf +pYB +eBS +pYB +gbf +gbf +gbf +gbf bzO bQM kPz @@ -81823,19 +81823,19 @@ cKa cKa cKa cKa -yke -ggB -vJD -ggB -vJD -roY -roY -roY -vJD -ggB -czC -czC -czC +wsw +dVA +vUP +dVA +vUP +mgz +mgz +mgz +vUP +dVA +gtr +gtr +gtr cKa cKa cKa @@ -81845,100 +81845,100 @@ kPz kPz bQM hxq -dpt -jLs -aap +oRg +ovq +uvn hxq hoH bQM bQM bQM hxq -dpt -fPF -aap -dgB -jLs -hfl -lFO -eCg +oRg +qFO +uvn +jSZ +ovq +sIg +uwb +wvU oUg -dpt -tTV -aap -fvk -oHI -iOJ -sad -rsW -mQZ -iOJ -sad -ygS +oRg +vdN +uvn +uFC +qyM +aZL +hdR +roQ +gRA +aZL +hdR +dhc nSx -qKF -gqe -uix -fII +okE +qBe +uud +wXQ ntv -gXL -dHp -dHp +hqX +vds +vds ntv -mpT -jOO -xbB -ePf -jqX -kQY -xng -dIq +kUR +sIj +hkA +bDv +jCO +fOK +iSg +vTA bzO mxQ mxQ -kfA -lAS -oYM -lAS -kjA -pwi -xcJ +pYB +tOM +gbf +tOM +rko +egz +xkq mxQ jjg mxQ -eBC -kfA -kfA -ers +wGA +pYB +pYB +cwM mxQ jjg mxQ -aqW -pwi -uOb -lAS -oYM -lAS -kfA +cBn +egz +sGg +tOM +gbf +tOM +pYB mxQ mxQ mxQ -vkZ -ncQ -oYM -nVq -rev -oYM +sBW +kyh +gbf +fOT +apu +gbf mxk mxQ mxQ -lAS -lAS -lAS -lAS -lAS -lAS -lAS +tOM +tOM +tOM +tOM +tOM +tOM +tOM bzO bzO bzO @@ -82034,21 +82034,21 @@ jmG cKa cKa cKa -mUV -roY -roY -roY -roY -vJD -roY -roY -roY -vJD -roY -roY -xuw -vJD -vJD +pQc +mgz +mgz +mgz +mgz +vUP +mgz +mgz +mgz +vUP +mgz +mgz +mns +vUP +vUP tBP vNq vnr @@ -82057,91 +82057,91 @@ kPz kPz bQM hxq -dpt -jLs -aap +oRg +ovq +uvn hxq bQM bQM bQM bQM hxq -dpt -jLs -odH -dgB -dgB -iOG -jLs -aWP +oRg +ovq +ukg +jSZ +jSZ +mVk +ovq +cLS oUg -dpt -jLs -aap -jLs -oHI -mQZ -iOJ -ozh -rsW -mQZ -iOJ -pKz -rsW -mQZ -gqe -gqe +oRg +ovq +uvn +ovq +qyM +gRA +aZL +mEU +roQ +gRA +aZL +qEC +roQ +gRA +qBe +qBe kqC kqC kqC -qBQ -sHH +sKr +upY ntv -mpT -jOO -xbB -pOd -mwL -jOO -aRG -xbB +kUR +sIj +hkA +nZI +sWr +sIj +iBr +hkA bzO mxQ -kfA -eCA -oYM -xoF -lAS -neX +pYB +eTr +gbf +ekx +tOM +xpM mxQ jjg mxQ -jMz -lXf -oYM -kfA -kfA -oYM -nyk -swh +tVY +jzP +gbf +pYB +pYB +gbf +pWl +ogs mxQ jjg mxQ -hHv -lAS -bPS -wqx -eCA -kfA +vUZ +tOM +beB +jMv +eTr +pYB bzO bzO -oeG -lAS -oYM -nVq -rev -oYM -lAS +aGR +tOM +gbf +fOT +apu +gbf +tOM mxQ mxQ mxQ @@ -82247,20 +82247,20 @@ cKa cKa cKa cKa -roY -uTp -uTp -jkZ +mgz +rAw +rAw +xKP niw niw oKn niw jfp -dYP -roY -roY -vJD -vJD +pho +mgz +mgz +vUP +vUP tBP vNq vnr @@ -82269,95 +82269,95 @@ kPz kPz bQM hxq -dpt -jLs -aap +oRg +ovq +uvn hxq bQM bQM bQM bQM hxq -dpt -jLs -flm -iOG -dgB -eGg -tAk -mhu +oRg +ovq +lAE +mVk +jSZ +grg +uen +ujz oUg -dpt -kCK -aap -jLs -oHI -rsW -mQZ -iOJ -sad -vEX +oRg +jUP +uvn +ovq +qyM +roQ +gRA +aZL +hdR +dVu nSx -urc -sad -rsW -mQZ -uix -jGV +asf +hdR +roQ +gRA +uud +iIG ntv -gXL -dHp -dHp +hqX +vds +vds ntv -mpT -jOO -xbB -ngr -fKr -fAV -dxO -jLS +kUR +sIj +hkA +qTQ +jfT +drd +hEk +myJ bzO bzO -kfA -lAS -oYM -lAS -qvL -xcJ +pYB +tOM +gbf +tOM +tYD +xkq jjg -xTe -beV -rQP -rev -oYM -kfA -ycN -oYM -nVq -xUz -rzR -byn +vRk +pRD +bTC +apu +gbf +pYB +voI +gbf +fOT +nBw +fXW +ldF jjg -aqW -qnc -lAS -oYM -lAS -dxJ +cBn +jOv +tOM +gbf +tOM +cyR bzO bzO -pmg -lAS -oYM -nVq -rev -glI -lAS -oYM -lAS -oYM -lAS +pFW +tOM +gbf +fOT +apu +xdT +tOM +gbf +tOM +gbf +tOM bzO bzO bQM @@ -82457,22 +82457,22 @@ jmG jmG jmG jmG -vRj -vJD -roY -uTp -uTp -vvk +pcN +vUP +mgz +rAw +rAw +vsr nmm gWg nmm nmm wJd -kNz -xuw -roY -vJD -vJD +lFB +mns +mgz +vUP +vUP tBP vNq vnr @@ -82481,95 +82481,95 @@ kPz kPz bQM hxq -dpt -jLs -aap +oRg +ovq +uvn hxq bQM bQM bQM bQM hxq -eSg -bQx -aap -sJl -bpq -dnp -bpq -ovZ +erb +vhy +uvn +lpW +gyP +gPV +gyP +pBW oUg -dpt -ors -aap -jLs -oHI -ozh -rsW -mQZ -iOJ -ozh -qGl +oRg +xHi +uvn +ovq +qyM +mEU +roQ +gRA +aZL +mEU +nGO nSx -srz -ozh -rsW -mQZ +hsz +mEU +roQ +gRA kqC kqC kqC -mcc -sHH +xbM +upY jTJ -qDd -tEb -tEb -dwg +veW +vVN +vVN +uYo rBF rBF nhY mny bzO -oYM -lAS -oYM -lAS -lAS -neX +gbf +tOM +gbf +tOM +tOM +xpM mxQ mxQ -beV -oYM -oYM -lXf -oYM -kfA -kfA -oYM -klb -vDK -sAk -xUz +pRD +gbf +gbf +jzP +gbf +pYB +pYB +gbf +iYe +bnx +siy +nBw mxQ mxQ -hHv -lAS -lAS -oYM -lAS -xaK -oYM -lAS +vUZ +tOM +tOM +gbf +tOM +nup +gbf +tOM mxQ -oYM -nVq -rev -oYM -pmo -pmo -dyp -lAS -oYM +gbf +fOT +apu +gbf +buJ +buJ +xTf +tOM +gbf bzO bzO bzO @@ -82669,22 +82669,22 @@ cAW bQM fwn jmG -brS -vJD -roY -uTp -kfF -tyk +dVC +vUP +mgz +rAw +vrH +tAE nmm pqz nmm nmm wJd -iZV -roY -roY -aIp -jLN +rLG +mgz +mgz +rkF +qfi vNq vNq vNq @@ -82693,96 +82693,96 @@ vNq vNq vNq vNq -dpt -jLs -wGm +oRg +ovq +peP vnr hxq vnr vnr hxq vnr -ljA -jLs -wGm +yfA +ovq +peP oUg -fzt -umq +vnl +qcy oUg oUg oUg -ljA -jLs -aap -xnq +yfA +ovq +uvn +vja nSx -kcP -iOJ -rsW -mQZ -iOJ -sad -rsW -mQZ -iOJ -sad -rsW -jZR -wnz -wnz -cCq -uFh +oQS +aZL +roQ +gRA +aZL +hdR +roQ +gRA +aZL +hdR +roQ +cfa +qwH +qwH +rzp +elO jTJ -bxl -jOO -xbB -pOd -vlt -xOI -pOd -kZb +lmu +sIj +hkA +nZI +aoo +bcd +nZI +pxf bzO -oYM -lAS -oYM -lAS -kjA -xcJ +gbf +tOM +gbf +tOM +rko +xkq jjg -jMz -otq -oYM -oYM -rvW -cDZ -kfA -kfA +tVY +bxv +gbf +gbf +oox +lMV +pYB +pYB vjR doQ upM vjR -xUz -swh +nBw +ogs jjg -aqW -cNn -lAS -oYM -lAS -xaK -oYM -mKy -vaO -oYM -nVq -rev -dEF -hab -hab -oaX -vCv -lAS -ehg +cBn +rxM +tOM +gbf +tOM +nup +gbf +bkg +ivN +gbf +fOT +apu +xEi +uVL +uVL +sqR +lTW +tOM +wwo rzt bQM bQM @@ -82881,20 +82881,20 @@ cAW tan geF jmG -aDs -vJD -roY -uTp -uTp -bXk +qPL +vUP +mgz +rAw +rAw +uLj nmm rru nmm djB wJd -dyM -roY -avI +tPB +mgz +uhA oUg oUg oUg @@ -82905,96 +82905,96 @@ oUg oUg oUg oUg -dpt -hsd -uTi -wYG -eRi -eRi -eRi -eRi -eRi -gHW -nCC -uTi -eRi -eRi -kqr -eRi -eEh -eRi -gHW -eNm -cfc -lzW -oHI -mQZ -iOJ -ozh -vEX +oRg +nNS +sPi +sfe +bix +bix +bix +bix +bix +uPl +bww +sPi +bix +bix +mPf +bix +dWn +bix +uPl +kHS +iHB +reZ +qyM +gRA +aZL +mEU +dVu nSx -srz -ozh -rsW -mQZ -iOJ -ozh -jZR -sHH -wnz -avl -iUy +hsz +mEU +roQ +gRA +aZL +mEU +cfa +upY +qwH +qNF +efW jTJ -mgC -jOO -xbB -pOd -kwv -aRG -aRG -aRG -ewy -oYM -oYM -lAS -lAS -neX +hcB +sIj +hkA +nZI +scG +iBr +iBr +iBr +rtw +gbf +gbf +tOM +tOM +xpM mxQ mxQ -lXf -nLl -lXf -xMT -fOw -qOG -roS -kfA -vDK -dvV -lqi -kOZ -nLl -nyk +jzP +ydK +jzP +tlj +ekW +rKs +ngg +pYB +bnx +taS +jEa +hPu +ydK +pWl mxQ mxQ -kGw -lAS -lAS -oYM -xaK -oYM -lAS -kbg -oYM -nVq -rev -oYM -ngd -nbv -odN -lAS -oYM -ehg +jLD +tOM +tOM +gbf +nup +gbf +tOM +lDG +gbf +fOT +apu +gbf +oib +nvX +uTA +tOM +gbf +wwo rzt bQM bQM @@ -83095,18 +83095,18 @@ cAW jmG uwk jmG -roY -neH -wTV -rSh +mgz +xCg +iFP +kiT nmm nmm nmm nmm wJd -vJD -roY -roY +vUP +mgz +mgz oUg oUg oUg @@ -83115,97 +83115,97 @@ oUg oUg oUg oUg -llC +qZc qGn -dpt -jLs -jLs -jLs -dgB -jLs -bRu -lYr -jLs -jLs -jLs -tTV -jLs -bQx -lYr -jLs -mPA -jLs -jfD -jLs -aap -fvk -oHI -rsW -mQZ -iOJ -sad -vEX +oRg +ovq +ovq +ovq +jSZ +ovq +fun +xia +ovq +ovq +ovq +vdN +ovq +vhy +xia +ovq +sZZ +ovq +kvu +ovq +uvn +uFC +qyM +roQ +gRA +aZL +hdR +dVu nSx -srz -dDy +hsz +tad izZ -kcP -bGT +oQS +vao kqC -rGV -wnz +cYj +qwH mCF kqC jTJ -wXf -jOO -xbB -pOd -pOd -qzI -pOd -pOd -pOd -sTV -hll -oYM -oYM -dCb +oaa +sIj +hkA +nZI +nZI +pWc +nZI +nZI +nZI +fWy +dxW +gbf +gbf +gSg mxQ -cbx -oYM -oYM -oYM -sru -qOG -vuW -ufX +qyq +gbf +gbf +gbf +eEC +rKs +saL +qCx fEY bzO -oYM -kqF -oYM -oYM -oYM -iGW +gbf +drk +gbf +gbf +gbf +jHj mxQ -qIk -oYM -oYM -hll -sTV -oYM -oYM -oYM -oYM -nVq -rev -oYM -pmo -cRs -nLl -lAS -oYM +aNz +gbf +gbf +dxW +fWy +gbf +gbf +gbf +gbf +fOT +apu +gbf +buJ +qTW +ydK +tOM +gbf bzO bzO bQM @@ -83307,18 +83307,18 @@ cAW cAW cAW uwk -roY -roY -roY -tAf +mgz +mgz +mgz +jPM oBC jNl vrp mTa bsm -kNl -roY -roY +wqY +mgz +mgz oUg kSh wPz @@ -83327,98 +83327,98 @@ wPz wPz ofq oUg -llC +qZc qGn -nOF -iSQ -iSQ -iSQ -suj -iSQ -iSQ -iSQ -tHP -ilv -jLs -pYO -iSQ -fCz -iEz -gzy -iSQ -iSQ -xjW -osR -aap -jLs -oHI -ozh -rsW -mQZ -iOJ -ozh -rsW -mQZ -iOJ -gWf -mQZ -mQZ -aRG -aRG -aRG -aRG -aRG -oAv -wXf -jOO -ovE -xng -xng -xng -xng -xng -xng -fBd -kfA -kfA -kfA -ubT -xyK -kfA -kfA -kfA -kfA -ufX -kfA -kfA -kfA -kfA -kfA -kfA -kfA -cvp -kfA -kfA -kfA -iCR -nVH -kfA -kfA -kfA -xoF -nbv -nbv -nbv -nbv -beV -rev -dEF -xrn -jXC -gUn -vCv -lAS -ehg +wTC +kgG +kgG +kgG +gFZ +kgG +kgG +kgG +eRR +cXV +ovq +iKI +kgG +bRA +tMs +sTK +kgG +kgG +uTt +xZV +uvn +ovq +qyM +mEU +roQ +gRA +aZL +mEU +roQ +gRA +aZL +xNJ +gRA +gRA +iBr +iBr +iBr +iBr +iBr +qdf +oaa +sIj +iTE +iSg +iSg +iSg +iSg +iSg +iSg +waQ +pYB +pYB +pYB +ont +eGm +pYB +pYB +pYB +pYB +qCx +pYB +pYB +pYB +pYB +pYB +pYB +pYB +hpX +pYB +pYB +pYB +vuT +uBV +pYB +pYB +pYB +ekx +nvX +nvX +nvX +nvX +pRD +apu +xEi +nMn +icu +ugP +lTW +tOM +wwo rzt bQM bQM @@ -83519,18 +83519,18 @@ cAW cAW cAW jmG -roY -roY -roY -sTB +mgz +mgz +mgz +mUd ubQ okF fis lUs pqz -kNl -roY -roY +wqY +mgz +mgz mPW cpP aFK @@ -83541,96 +83541,96 @@ fnD oUg oUg qob -kSU -kSU -tBR +jGf +jGf +sdV oUg oUg oUg -kRM -sBr +jKv +tJH oUg -ljA -xoB -wGm +yfA +imG +peP oUg -jPO -dSz -aRY -nCw +uFd +hzF +aXp +iDA ggh -rmS -tVu -tYc -tVu -mQZ -iOJ -ozh -vYA -ozh -mQZ -mQZ -sDp -mQZ -fiI -mQZ -gNK -aRG -aRG -aRG -aRG -aRG -aRG -wXf -jOO -oZc -dxO -dxO -dxO -dxO -dxO -dxO -wpp -kfA -kfA -kfA -wPL -gbn -kfA -kfA -roS -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -kfA -jYd -mBV -kfA -kfA -kfA -eNs -nLl -nLl -nLl -nLl -nLl -fOw -oYM -iXz -hIu -xRg -lAS -oYM -ehg +acO +xFL +pmC +xFL +gRA +aZL +mEU +cGS +mEU +gRA +gRA +wOG +gRA +cum +gRA +eZW +iBr +iBr +iBr +iBr +iBr +iBr +oaa +sIj +tPC +hEk +hEk +hEk +hEk +hEk +hEk +mkn +pYB +pYB +pYB +aMr +jYV +pYB +pYB +ngg +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +pYB +qzb +nmM +pYB +pYB +pYB +rsR +ydK +ydK +ydK +ydK +ydK +ekW +gbf +pLM +jWk +eHQ +tOM +gbf +wwo rzt bQM bQM @@ -83731,18 +83731,18 @@ cAW cAW cAW uwk -roY -jyc -roY -sTB +mgz +xCh +mgz +mUd hpz hxM fHK iwT nmm -kNl -xvs -roY +wqY +pUG +mgz puE hTf qGn @@ -83753,96 +83753,96 @@ pbp qGn pbp qGn -dpt -eph -aap +oRg +kHF +uvn oUg -qvk -tCj -grO -jLs -sJl -dpt -jLs -aap -eBs -cWM -dCA -lFx -cky -laD -dpt -jLs -flm -xnq +mNN +wFM +ehr +ovq +lpW +oRg +ovq +uvn +nvi +wMe +jQc +hGW +lFm +nUm +oRg +ovq +lAE +vja nSx -srz -ozh -mQZ -oFv +hsz +mEU +gRA +dJt izZ bEX bEX bEX iCU -mQZ -mQZ -aRG -oAv -aRG -aRG -aRG -aRG -wXf -jOO -ere -wEn -wEn -pOd -pOd -pOd -eEk -sTV -oYM -hll -oYM -dCb +gRA +gRA +iBr +qdf +iBr +iBr +iBr +iBr +oaa +sIj +lHw +sFr +sFr +nZI +nZI +nZI +gRg +fWy +gbf +dxW +gbf +gSg mxQ -uLH -oYM -oYM -oYM -rhF -rhF +xcz +gbf +gbf +gbf +ubo +ubo mxQ -jxa -kfA -tuB -kAo -tLd -oYM -oYM -oYM -iGW +opM +pYB +tWz +duV +lAM +gbf +gbf +gbf +jHj mxQ -enh -oYM -hll -oYM -sTV -oYM -oYM -lAS -oYM -oYM -oYM -oYM -pmo -vNY -nLl -lAS -oYM -ehg +dNc +gbf +dxW +gbf +fWy +gbf +gbf +tOM +gbf +gbf +gbf +gbf +buJ +thV +ydK +tOM +gbf +wwo rzt bQM bQM @@ -83943,17 +83943,17 @@ cAW cAW cAW jmG -roY -roY -uTp -rSh +mgz +mgz +rAw +kiT wyU ujs nmm nmm wJd -vJD -roY +vUP +mgz wef puE cJv @@ -83965,96 +83965,96 @@ eqQ eqQ eqQ eqQ -dpt -eph -aap +oRg +kHF +uvn oUg -gDz -jLs -aWP -wQn -vyU -dpt -bQx -sjc -eBs -rjM -tTM -jeY -akc -laD -oHk -tVu -tYc -tVu -sad -ovB -vxp -qvx -ozh +mju +ovq +cLS +ekS +ePU +oRg +vhy +dkX +nvi +orD +oiX +qgv +aEQ +nUm +uVH +xFL +pmC +xFL +hdR +ntx +kSe +leN +mEU izZ -bzG -lEz -waz +fOe +rez +xJn bEX -uRe -mQZ +cRM +gRA bhX -aRG -vAi -mNJ -bVk -oan -nZT -jOO -ere -pOd -plc -utC -aRG -aRG -ewy -oYM -oYM -lAS -lAS -neX +iBr +xMO +iDg +urv +avT +gVT +sIj +lHw +nZI +xyw +cOB +iBr +iBr +rtw +gbf +gbf +tOM +tOM +xpM mxQ mxQ -kfA -joS -kfA -kfA -wDF -oYM -kfA -kfA -xLI -dZc -beV -beV -luU -med +pYB +uTw +pYB +pYB +nKf +gbf +pYB +pYB +hWG +qQy +pRD +pRD +khw +htT mxQ mxQ -hHv -lAS -lAS -oYM -xaK -oYM -lAS -lAS -lAS -lAS -oYM -vCv -hab -gIF -ptZ -vCv -lAS -ehg +vUZ +tOM +tOM +gbf +nup +gbf +tOM +tOM +tOM +tOM +gbf +lTW +uVL +hUj +dWp +lTW +tOM +wwo rzt bQM bQM @@ -84155,18 +84155,18 @@ cAW cAW cAW uwk -roY -uTp -uTp -vvk +mgz +rAw +rAw +vsr nmm nmm cYT nmm wJd -kNz +lFB wef -roY +mgz qrz puE lzn @@ -84177,95 +84177,95 @@ eqQ eqQ eqQ eqQ -dpt -eph -aap +oRg +kHF +uvn eUi -xup -bQx -jLs -rWZ -jLs -dpt -jLs -aap -eBs -igD -uin -rvR -aag -laD -dpt -jLs -aap -dfZ -iOJ -iOJ -ozh -mQZ -mQZ +bGB +vhy +ovq +pse +ovq +oRg +ovq +uvn +nvi +tPA +lou +fwg +qAe +nUm +oRg +ovq +uvn +uZP +aZL +aZL +mEU +gRA +gRA izZ -uFc +bIR gWq -waz +xJn bEX -eJP +lbL xKX iyc bhX -aRG -oAv -mNJ -aRG -wXf -jOO -xbB -pOd -aRG -wen -aRG -aRG -mTq -oYM -lAS -oYM -lAS -flg -wOc +iBr +qdf +iDg +iBr +oaa +sIj +hkA +nZI +iBr +fdC +iBr +iBr +myA +gbf +tOM +gbf +tOM +rdt +rsQ mxQ -oYM -oYM -oYM -wqx -kfA -oYM -kfA -qos -wAv -beV -fmM -oYM -lXf -uod +gbf +gbf +gbf +jMv +pYB +gbf +pYB +ioW +hXF +pRD +ota +gbf +jzP +pRx jjg -tQL -ncQ -lAS -oYM -lAS -xaK -oYM -qFg +tlC +kyh +tOM +gbf +tOM +nup +gbf +fvK qbY -lAS -lAS -oYM -gqd -hIu -nbv -nbv -lAS -oYM +tOM +tOM +gbf +uSX +jWk +nvX +nvX +tOM +gbf bzO bzO bQM @@ -84367,18 +84367,18 @@ cAW cAW cAW jmG -roY -uTp -uTp -vgS +mgz +rAw +rAw +gFN nmm nmm nmm nmm wJd -iZV -roY -xvs +rLG +mgz +pUG puE eqQ qGn @@ -84389,96 +84389,96 @@ qGn qGn qGn qGn -dpt -eph -aap +oRg +kHF +uvn oUg -ovZ -yhT -bQx -jLs -qvk -pYp -jLs -aap -eBs -hjb -gyI -eph -eph -laD -uGb -puB -kiW -jLs -mQZ -ovB -vxp -mQZ -mQZ +pBW +jew +vhy +ovq +mNN +wet +ovq +uvn +nvi +mrK +qRS +kHF +kHF +nUm +lBE +sNj +erh +ovq +gRA +ntx +kSe +gRA +gRA izZ -hiK +nyF tOc tOc bgd -mQZ -mQZ +gRA +gRA bhX mhR bhX -aRG -nrL -aRG -wXf -jOO -xbB -pOd -qZL -utC -aRG -lBJ -xbu -oYM -lAS -oYM -lAS -lAS -neX +iBr +dfA +iBr +oaa +sIj +hkA +nZI +qKq +cOB +iBr +aTL +vPF +gbf +tOM +gbf +tOM +tOM +xpM mxQ mxQ -lAS -uTk -oYM -lLU -kqF -kfA -kfA -oYM -beV -oYM -oYM -meG +tOM +gjr +gbf +fgq +drk +pYB +pYB +gbf +pRD +gbf +gbf +oLX mxQ mxQ -hHv -lAS -lAS -oYM -lAS -xaK -oYM -vDK +vUZ +tOM +tOM +gbf +tOM +nup +gbf +bnx qbY -gxN -lAS -oYM -egx -nLl -vZx -pmo -lAS -oYM -jfa +rVQ +tOM +gbf +mPg +ydK +lZm +buJ +tOM +gbf +jlU rzt bQM bQM @@ -84579,18 +84579,18 @@ bQM cAW cAW uwk -roY -uTp -uTp -dLF +mgz +rAw +rAw +srQ nmm sUX nmm nmm nEN -dyM -roY -roY +tPB +mgz +mgz mPW vvM tet @@ -84601,96 +84601,96 @@ fnD oUg oUg qob -kSU -kSU -tBR +jGf +jGf +sdV oUg oUg oUg -jLs -hXi +ovq +kbj oUg -rmS -tVu -lsU +acO +xFL +uVk oUg -gUx -eza -bfs -eir +njG +sli +fbX +nxW oUg -dzk -jLs -aap -jLs -jLs -iOJ -ozh -mQZ -smh +vmL +ovq +uvn +ovq +ovq +aZL +mEU +gRA +fXo izZ bEX mrG bEX izZ -kcP -fGM -vpk +oQS +lco +oZx bhX -uVv -vAi -fpl -aRG -wXf -jOO -xbB -pOd -aRG -aRG -aRG -uhb +ahm +xMO +rSU +iBr +oaa +sIj +hkA +nZI +iBr +iBr +iBr +aco bzO bzO -kfA -lAS -oYM -lAS -qMV -wOc +pYB +tOM +gbf +tOM +kTD +rsQ mxQ -lAS -lAS -oYM -kfA -oYM -kfA -kfA -oYM -nVq -lXf -meG -kaH +tOM +tOM +gbf +pYB +gbf +pYB +pYB +gbf +fOT +jzP +oLX +wYT jjg -tQL -tsu -lAS -oYM -lAS -dxJ +tlC +jrO +tOM +gbf +tOM +cyR bzO bzO -pmg +pFW yfE uBq baE -lAS -vCv -cyU -hab -tiW -vCv -oYM -jfa +tOM +lTW +lsO +uVL +iRG +lTW +gbf +jlU rzt bQM bQM @@ -84791,18 +84791,18 @@ kPz bce cAW jmG -roY -uTp -neH -jkZ +mgz +rAw +xCg +xKP spl oNx uuJ oNx jWy -vJD -roY -roY +vUP +mgz +mgz jqt pTU wPz @@ -84811,97 +84811,97 @@ wPz wPz jPK oUg -llC +qZc qGn -bTe -eRi -eRi -eRi -eRi -dJl -ami -eRi -lJa -gHW -jLs -uTi -eRi -tBe -eRi -eRi -jgW -lHL -gHW -jLs -vsq -ucr -jLs -jLs -jLs -wXf -wXf -wXf -bmO -wXf -bmO -wXf -bmO -wXf -uFE -wXf -iiP -pEY -vzZ -wXf -wXf -jOO -ere -pOd -plc -utC -aRG -nds +vyw +bix +bix +bix +bix +fKu +tTv +bix +wGX +uPl +ovq +sPi +bix +uZZ +bix +bix +bBr +eds +uPl +ovq +hkB +cOL +ovq +ovq +ovq +oaa +oaa +oaa +kMV +oaa +kMV +oaa +kMV +oaa +tbj +oaa +uKb +evC +wzg +oaa +oaa +sIj +lHw +nZI +xyw +cOB +iBr +ume bzO bzO -kfA -eCA -oYM -eNs -lAS -neX +pYB +eTr +gbf +rsR +tOM +xpM mxQ mxQ mxQ -jcB -kfA -dMm -kfA -kfA -oYM -pON -mLE +sHe +pYB +kBt +pYB +pYB +gbf +wdo +nEP mxQ jjg mxQ -hHv -lAS -snO -oYM -lAS -kfA +vUZ +tOM +oEQ +gbf +tOM +pYB bzO bzO -oYM +gbf qbY -gxN -lAS -oYM -lAS -nbv -hIu -nbv -lAS -eCA +rVQ +tOM +gbf +tOM +nvX +jWk +nvX +tOM +eTr bzO bzO bQM @@ -85003,18 +85003,18 @@ fiq cAW cAW uwk -roY -roY -roY -roY -roY -roY -roY -roY -roY -roY -roY -roY +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz +mgz oUg oUg oUg @@ -85023,98 +85023,98 @@ oUg oUg oUg oUg -llC +qZc qGn -dpt -eph -eph -eph -eph -eph -eph -skO -gxL -eph -rDl -aAH -eph -gxL -eph -eph -ybR -eph -eph -ybR -eph -xZk -eRi -dJl -eRi -xng -aQK -xng -pAt -kjz -vea -xng -vea -irK -hWJ -xng -iah -xng -mbe -xng -xng -bsJ -ere -pOd -aRG -aRG -aRG -xnW +oRg +kHF +kHF +kHF +kHF +kHF +kHF +nVN +ojj +kHF +vTL +kBm +kHF +ojj +kHF +kHF +hcs +kHF +kHF +hcs +kHF +jLC +bix +fKu +bix +iSg +cJS +iSg +fVY +alK +jOd +iSg +jOd +njg +xGr +iSg +tyt +iSg +eQX +iSg +iSg +dBZ +lHw +nZI +iBr +iBr +iBr +dcy bzO bzO mxQ -kfA -lAS -oYM -lAS -flg -lJy -wOc +pYB +tOM +gbf +tOM +rdt +jGC +rsQ mxQ mxQ mxQ -eRH -kfA -kfA -fKF +aLz +pYB +pYB +mPn mxQ jjg mxQ -tQL -lJy -ncQ -lAS -oYM -lAS -kfA +tlC +jGC +kyh +tOM +gbf +tOM +pYB mxQ mxQ mxQ -oYM -oYM -oYM -oYM -lAS -oYM -oYM -lAS -oYM -dgz -oYM -bGt +gbf +gbf +gbf +gbf +tOM +gbf +gbf +tOM +gbf +lNR +gbf +uXK bzO bzO bzO @@ -85215,18 +85215,18 @@ fiq fiq tan jmG -roY -roY -roY -roY -roY -vJD -vJD -vJD -vJD -roY -roY -roY +mgz +mgz +mgz +mgz +mgz +vUP +vUP +vUP +vUP +mgz +mgz +mgz oUg oUg oUg @@ -85237,96 +85237,96 @@ oUg oUg oUg oUg -nOF -iSQ -iSQ -iSQ -iSQ -iSQ -gjg -iSQ -njC -iSQ -iSQ -iSQ -iSQ -njC -iSQ -soc -iSQ -iSQ -iSQ -iSQ -iSQ -iSQ -sOp -sOp -iSQ -kJI -dxO -dxO -mjD -dxO -mjD -rmG -mjD -dxO -mki -dxO -dxO -dxO -dxO -dxO -dxO -dxO -gmy -pOd -plc -utC -aRG -gCY +wTC +kgG +kgG +kgG +kgG +kgG +vyK +kgG +pXJ +kgG +kgG +kgG +kgG +pXJ +kgG +lqN +kgG +kgG +kgG +kgG +kgG +kgG +slR +slR +kgG +iIx +hEk +hEk +nZU +hEk +nZU +irE +nZU +hEk +mqM +hEk +hEk +hEk +hEk +hEk +hEk +hEk +rVi +nZI +xyw +cOB +iBr +brR vDO tUs mxQ -kfA -lAS -oYM -lAS -lAS -lAS -qMV -lJy -wOc +pYB +tOM +gbf +tOM +tOM +tOM +kTD +jGC +rsQ mxQ mxQ -kPC -bPf +rqh +iAr mxQ mxQ -tQL -lJy -tsu -lAS -lAS -lAS -oYM -eCA -kfA +tlC +jGC +jrO +tOM +tOM +tOM +gbf +eTr +pYB mxQ tUs vDO -atE -oYM -oYM -lAS -eCA -boh -boh -boh -boh -lAS -lAS -okM +eBS +gbf +gbf +tOM +eTr +gLk +gLk +gLk +gLk +tOM +tOM +pti bzO bzO bzO @@ -85459,78 +85459,78 @@ hxq hxq hxq vnr -vtJ -kSU -kSU +fjV +jGf +jGf vNq -dpt -ycX -doB -kFM -ycX -aBm -ycX -ycX -ycX -ycX -aap -eix -dZA -eix -kaB -wXf -uCu -wXf -bmO -wXf -xCm -wXf -wXf -wXf -wXf -wXf -sde -tCf -tCf -wXf -aRG -aRG -aRG -aRG +oRg +ixl +cCh +qby +ixl +gtP +ixl +ixl +ixl +ixl +uvn +oty +tUD +oty +koK +oaa +sga +oaa +kMV +oaa +jft +oaa +oaa +oaa +oaa +oaa +iEF +rBu +rBu +oaa +iBr +iBr +iBr +iBr mxQ tUs mxQ mxQ -kfA -lAS -oYM -oYM -eNs -lAS -lAS -flg -lJy -jka -nVH -ubT -vyF -lJy -ncQ -lAS -lAS -snO -oYM -oYM -lAS -kfA +pYB +tOM +gbf +gbf +rsR +tOM +tOM +rdt +jGC +dOZ +uBV +ont +xcS +jGC +kyh +tOM +tOM +oEQ +gbf +gbf +tOM +pYB mxQ mxQ tUs bzO -lAS -lAS -oYM -lAS +tOM +tOM +gbf +tOM mxQ mLP uap @@ -85640,14 +85640,14 @@ cAW tan tan tan -mFf -hgp -cXw +tst +iPv +roH lRT -fhX -wHx -wHx -esE +gxn +ijC +ijC +fdu lRT cAW vnr @@ -85671,21 +85671,21 @@ bQM bQM kPz xDw -tRa -fLa -ltV +ibl +raC +tIW dOX -qqu -rZa -ljZ -kDg -rZa -qHC -arq -qHC -fxY -qcT -hlK +pmn +smR +fgN +bMF +smR +fDJ +fSp +fDJ +vlU +xSz +uYi lRT deL dzl @@ -85694,64 +85694,64 @@ dzl dzl dzl dzl -skM -fpl -aRG -dEy -gOs -wpf -fTx -wXf -fTx -gOs -fyQ -fTx -vOz -aRG -ogd +nie +rSU +iBr +enu +xNU +wkL +vMT +oaa +vMT +xNU +kKs +vMT +ksY +iBr +bnJ mxQ cLu kVk mxQ -nPa -kfA -lAS -lAS -oYM -oYM -lAS -lAS -lAS -oYM -kfA -kfA -oYM -lAS -lAS -lAS -oYM -oYM -lAS -lAS -kfA -pzG +xLD +pYB +tOM +tOM +gbf +gbf +tOM +tOM +tOM +gbf +pYB +pYB +gbf +tOM +tOM +tOM +gbf +gbf +tOM +tOM +pYB +bAf mxQ cZr tUs bzO -lAS -lAS +tOM +tOM vEK -lAS +tOM jjg -xoF -pkG -nbv -nbv -nbv -nbv -nbv -izJ +ekx +cqV +nvX +nvX +nvX +nvX +nvX +prL rzt bQM bQM @@ -85852,14 +85852,14 @@ cAW cAW pcu nfF -xdy +gID ruD -jVC +dde taY -voS -hKI -hKI -hlK +ann +nGZ +nGZ +uYi lRT cAW vnr @@ -85883,21 +85883,21 @@ xDw xDw xDw lRT -hTG -qHC -kjo +pVk +fDJ +hmq sIJ -iJf -qWa -lbe -sEi -kge -sEi -oMy -vED -sEi -ltV -hlK +qaL +hWk +vKz +dnX +hPO +dnX +qgk +jYt +dnX +tIW +uYi xDw cAW bQM @@ -85907,19 +85907,19 @@ sVv bQM rBF dzl -bVk -vAi -kwm -cll -qmO -lRe -wXf -kwm -xYB -luH -wDV -aRG -dGj +urv +xMO +gmg +nRQ +qNy +cdp +oaa +gmg +nLS +qpN +pwo +iBr +obE mxQ mxQ tUs @@ -85927,24 +85927,24 @@ cFX mxQ mxQ mxQ -xjv -kfA -eCA -lAS -oYM -oYM -lAS -oYM -kfA -kfA -oYM -lAS -oYM -oYM -lAS -eCA -kfA -kfA +kag +pYB +eTr +tOM +gbf +gbf +tOM +gbf +pYB +pYB +gbf +tOM +gbf +gbf +tOM +eTr +pYB +pYB mxQ iyf mxQ @@ -85952,18 +85952,18 @@ eoW tUs bzO bzO -lAS +tOM vEK -lAS +tOM jjg -nVq -oYM -oYM -vSk -sFN -oYM -oYM -vqM +fOT +gbf +gbf +gIo +wYq +gbf +gbf +xlx rzt bQM bQM @@ -86064,14 +86064,14 @@ fiq fiq pcu fiq -xdy -xdy -xdy +gID +gID +gID taY -iJf -hKI -hKI -hlK +qaL +nGZ +nGZ +uYi lRT cAW vnr @@ -86089,27 +86089,27 @@ bQM bQM xDw xDw -uri -lwO -eqC -foT -fxY -hsA -iJf -jOW -hlK +sda +qeN +wSD +bHP +vlU +lqI +qaL +gtT +uYi dOX -jdc -vbn -tRa -lbe -idq -sEi -lbe -fLa -eWh -hlK -rKB +onB +mbz +ibl +vKz +rpT +dnX +vKz +raC +bec +uYi +sDS xDw dhi fQV @@ -86119,19 +86119,19 @@ sHO fQV erT dzl -kng -aRG -fTx -lnf -aVA -fTx -vzZ -fTx -lnf -aVA -fTx -aRG -aRG +mQV +iBr +vMT +rZN +krE +vMT +wzg +vMT +rZN +krE +vMT +iBr +iBr ffZ tUs tlQ @@ -86141,20 +86141,20 @@ vFn mxQ iyf mxQ -nPa -kfA -lAS -lAS -oYM -oYM -kfA -kfA -oYM -oYM -lAS -lAS -kfA -kfA +xLD +pYB +tOM +tOM +gbf +gbf +pYB +pYB +gbf +gbf +tOM +tOM +pYB +pYB mxQ mxQ mxQ @@ -86164,18 +86164,18 @@ hpW tUs tUs bzO -lAS +tOM vEK -lAS +tOM jjg -eNs -nLl -nLl -nLl -nLl -nLl -nLl -qgq +rsR +ydK +ydK +ydK +ydK +ydK +ydK +eyj rzt bQM bQM @@ -86280,10 +86280,10 @@ fiq nfF nfF lRT -iJf -dlW -dlW -hlK +qaL +cUd +cUd +uYi lRT cAW bce @@ -86300,28 +86300,28 @@ kPz bQM xDw xDw -lwO -eqC -hKI -hKI -hKI -hKI -hsA -iJf -qHC -hlK +qeN +wSD +nGZ +nGZ +nGZ +nGZ +lqI +qaL +fDJ +uYi dOX -pkc -bGr -aCn -tRa -sEi -sEi -sEi -gnS -sYM -hlK -jBj +nSS +udE +utW +ibl +dnX +dnX +dnX +xEX +mfF +uYi +lOy lRT ajx afk @@ -86331,19 +86331,19 @@ afk afk iWq dzl -aRG -aRG -wXf -wXf -wXf -wXf -wXf -wXf -wXf -wXf -wXf -pOd -gCY +iBr +iBr +oaa +oaa +oaa +oaa +oaa +oaa +oaa +oaa +oaa +nZI +brR vDO tUs tUs @@ -86355,16 +86355,16 @@ tUs mxQ mxQ bzO -oYM -oYM -oYM -sTV -xoF -bPS -sTV -oYM -oYM -iGW +gbf +gbf +gbf +fWy +ekx +beB +fWy +gbf +gbf +jHj bzO mxQ mxQ @@ -86376,13 +86376,13 @@ tUs tUs tUs vDO -atE +eBS vEK -lAS +tOM mxQ -wMQ -kPv -cbC +lPE +qbR +gcD mxQ syV iyf @@ -86492,10 +86492,10 @@ pcu atp cAW lRT -hTG +pVk hjW hjW -cxe +mgE lRT cAW bce @@ -86511,29 +86511,29 @@ bQM kPz bQM xDw -jyR -fxY -hKI -hKI -eqC -hKI -nJC -own -wew -rXT -uxY +ssC +vlU +nGZ +nGZ +wSD +nGZ +kNk +sPh +gTy +ifN +ncb dOX -aKc -aQE -iJf -joD -dlW -dlW -dIa -uxY -xmM -hlK -iRy +kaF +kka +qaL +kqJ +cUd +cUd +tUC +ncb +hXG +uYi +sgJ xDw ajx afk @@ -86543,19 +86543,19 @@ afk afk iWq dzl -aRG -aRG -fTx -gOs -fyQ -fTx -wXf -fTx -gOs -fyQ -fTx -pOd -pOd +iBr +iBr +vMT +xNU +kKs +vMT +oaa +vMT +xNU +kKs +vMT +nZI +nZI mxQ mxQ mxQ @@ -86565,16 +86565,16 @@ mxQ mxQ iyf mxQ -oAH +xRo bzO bzO bzO -sKP -oYM -nVq -rev -oYM -sKP +iHT +gbf +fOT +apu +gbf +iHT bzO bzO bzO @@ -86588,17 +86588,17 @@ cZr eoW tUs bzO -lAS +tOM vEK -lAS +tOM mxQ -xVR -ipJ -kwy +nQJ +iys +iFZ bzO -loy -txS -jrn +eET +ldW +tyJ bzO bQM bQM @@ -86704,10 +86704,10 @@ pcu fiq cAW lRT -iJf -sEi -sEi -hlK +qaL +dnX +dnX +uYi lRT cAW bce @@ -86723,10 +86723,10 @@ bQM kPz bQM xDw -hKI -hKI -hKI -fxY +nGZ +nGZ +nGZ +vlU xDw xDw xDw @@ -86735,17 +86735,17 @@ hir hir hir dOX -fye -gEv -jyK -dlW -dIa -dlW -gxx -dlW -uxY -hlK -tGF +eqi +tYt +bxy +cUd +tUC +cUd +guv +cUd +ncb +uYi +qhP xDw ajx afk @@ -86755,38 +86755,38 @@ afk afk iWq dzl -vOz -aRG -kwm -kXH -jGP -wDV -wXf -kwm -cll -cDf -wDV -pOd -pOd -kfA -sTV -rOE -ers -oYM -ers -oYM -prP -lAS -lAS +ksY +iBr +gmg +nck +ayH +pwo +oaa +gmg +nRQ +vGM +pwo +nZI +nZI +pYB +fWy +xEW +cwM +gbf +cwM +gbf +wkA +tOM +tOM rzt bQM rzt -lAS -oYM -nVq -rev -oYM -qLJ +tOM +gbf +fOT +apu +gbf +aXv mxQ cZr eoW @@ -86800,17 +86800,17 @@ bzO bzO bzO bzO -lAS +tOM vEK -lAS +tOM mxQ -itq -oAL -aIE +llE +nfe +bvg bzO -lQd -btP -jrn +klt +qFf +tyJ bzO bQM bQM @@ -86916,48 +86916,48 @@ pcu cAW cAW xDw -iJf -dlW -dlW -hlK +qaL +cUd +cUd +uYi lRT lRT lRT cAW cAW lRT -nBB -nBB -nBB -nBB +gUu +gUu +gUu +gUu lRT bQM kPz bQM xDw -hKI -dYv -hKI +nGZ +ipz +nGZ xDw xDw bQM bQM xDw -thU -diR -tVX -qHC -iJf -ojh -dlW -dlW -dlW -pzV -dlW -dlW -dlW -uxY -tNu +tZz +jrT +vhd +fDJ +qaL +rrs +cUd +cUd +cUd +pvi +cUd +cUd +cUd +ncb +sXP xDw fdV jlH @@ -86967,38 +86967,38 @@ eOF jlH bUB rBF -goM -aRG -fTx -lnf -aVA -fTx -wXf -fTx -lnf -aVA -fTx -pOd -pOd -kfA -nbv -nbv -nbv -nbv -nbv -bPS -oYM -lAS -lAS +lwn +iBr +vMT +rZN +krE +vMT +oaa +vMT +rZN +krE +vMT +nZI +nZI +pYB +nvX +nvX +nvX +nvX +nvX +beB +gbf +tOM +tOM rzt kPz rzt -lAS -oYM -nVq -rev -oYM -guQ +tOM +gbf +fOT +apu +gbf +ivr vDO tUs tUs @@ -87012,13 +87012,13 @@ kPz bQM bQM bzO -lAS -xjv -kGW +tOM +kag +lKI mxQ -cGg -kte -tWq +wSb +gPp +tIf bzO rzt rzt @@ -87128,48 +87128,48 @@ pcu cAW cAW xDw -iJf +qaL hjW hjW -hlK -hKI -nvO +uYi +nGZ +gsX lRT lRT lRT lRT -eps -ffN -eps -ffN +rFw +nQF +rFw +nQF lRT lRT lRT lRT xDw -hKI -hKI -hKI +nGZ +nGZ +nGZ xDw bQM bQM bQM lRT -iuW +sLu hva -nSi -qHC -iJf -qHC -wdA -fsf -qHC -qHC -qHC -lHB -bFh -hKI -vYM +fUP +fDJ +qaL +fDJ +qLH +udB +fDJ +fDJ +fDJ +rPW +dmQ +nGZ +wBE xDw cAW bQM @@ -87179,38 +87179,38 @@ sVv bQM bQM rBF -aRG -aRG -aRG -aRG -aRG -wXf -wXf -wXf -aRG -pOd -aRG -pOd -pOd -kfA -nLl -nLl -nLl -nLl -oiu -rev -oYM -lAS -lAS +iBr +iBr +iBr +iBr +iBr +oaa +oaa +oaa +iBr +nZI +iBr +nZI +nZI +pYB +ydK +ydK +ydK +ydK +kHv +apu +gbf +tOM +tOM rzt bQM rzt -lAS -oYM -nVq -rev -oYM -lAS +tOM +gbf +fOT +apu +gbf +tOM mxQ bzO bzO @@ -87340,48 +87340,48 @@ cAW cAW cAW xDw -iJf -sEi -sEi -mcE -ltV -hKI -hKI -hKI -piy -nvO -hKI -hKI -hKI -hKI -rUc -rUc -gnR -rUc -hsA -hsA -hsA -lpm +qaL +dnX +dnX +nCm +tIW +nGZ +nGZ +nGZ +fNN +gsX +nGZ +nGZ +nGZ +nGZ +ntw +ntw +cTD +ntw +lqI +lqI +lqI +gBP xDw bQM bQM bQM xDw -yiD -aOJ -jUp -qHC -qyk -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -pbF -uxY +dNC +wAt +oJK +fDJ +bSm +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +dZQ +ncb lRT xDw xDw @@ -87396,34 +87396,34 @@ iRa iRa iRa dOX -aIh -hsA -hsA +bTp +lqI +lqI fjd -pOd -ltu -pOd -kLo -kfA -sTV -oYM -fKF -oYM -nVq -rev -oYM -lAS -eCA +nZI +xXY +nZI +jgz +pYB +fWy +gbf +mPn +gbf +fOT +apu +gbf +tOM +eTr bzO rzt bzO -pmg -oYM -nVq -rev -rOE -lAS -fLO +pFW +gbf +fOT +apu +xEW +tOM +kUo rzt kPz rzt @@ -87552,28 +87552,28 @@ cAW cAW cAW xDw -iJf -oWz -hKI -hKI -tRa -ltV -hKI -tRa -sEi -ltV -hKI -tRa -sEi -ltV -hKI -tRa -pJo -ltV -iJf -hKI -hKI -hKI +qaL +vOD +nGZ +nGZ +ibl +tIW +nGZ +ibl +dnX +tIW +nGZ +ibl +dnX +tIW +nGZ +ibl +eEQ +tIW +qaL +nGZ +nGZ +nGZ lRT sJN lRT @@ -87583,14 +87583,14 @@ hir hir hir dOX -xfd -rTb -rTb -rTb -rTb -rTb -rTb -qUZ +iIl +cEb +cEb +cEb +cEb +cEb +cEb +vBZ dOX sIJ dOX @@ -87603,39 +87603,39 @@ xDw bQM xAl xDw -cfN -cfN -cfN -cfN -cfN -cfN -cfN -cfN +lqC +lqC +lqC +lqC +lqC +lqC +lqC +lqC fjd -pOd -pAB -pOd +nZI +mdY +nZI rBF rzt rzt rzt bzO -oYM -nVq -rev -oYM -rOE -oYM -oYM -oYM -oYM -wqx -oYM -nVq -rev -oYM -mKy -utf +gbf +fOT +apu +gbf +xEW +gbf +gbf +gbf +gbf +jMv +gbf +fOT +apu +gbf +bkg +gZg rzt bQM rzt @@ -87764,50 +87764,50 @@ cAW cAW cAW lRT -utV -tqQ -orA -hKI -iJf -hlK -hsA -iJf -hsA -hlK -hsA -iJf -hsA -hlK -hsA -iJf -hsA -hlK -iJf -hKI -hKI -hKI -hKI -pCF -hKI -mWx -hKI -hKI -lOb -hKI -rMP -hKI -hKI -hKI -iJf -hlK -hKI -hKI -hKI -jal -hKI -aai -ddc -qbT +rbI +nim +lPA +nGZ +qaL +uYi +lqI +qaL +lqI +uYi +lqI +qaL +lqI +uYi +lqI +qaL +lqI +uYi +qaL +nGZ +nGZ +nGZ +nGZ +jiq +nGZ +vzp +nGZ +nGZ +vSW +nGZ +hQR +nGZ +nGZ +nGZ +qaL +uYi +nGZ +nGZ +nGZ +rnn +nGZ +xpw +szP +edY xeO dNh dNh @@ -87815,14 +87815,14 @@ xDw bQM bQM xDw -cfN -hKI -hKI -hKI -hKI -hKI -hKI -cfN +lqC +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +lqC lRT rBF rBF @@ -87832,22 +87832,22 @@ bQM bQM bQM bzO -oYM -nVq -xUz -nbv -nbv -nbv -nbv -nbv -nbv -nbv -nbv -beV -rev -oYM -eCA -byt +gbf +fOT +nBw +nvX +nvX +nvX +nvX +nvX +nvX +nvX +nvX +pRD +apu +gbf +eTr +iwi rzt bQM rzt @@ -87977,64 +87977,64 @@ cAW cAW xDw xDw -jyK -tqQ -hKI -jyK -uxY -hKI -jyK -dlW -uxY -hKI -jyK -dlW -uxY -hKI -jyK -dlW -uxY -iJf -hKI -hKI +bxy +nim +nGZ +bxy +ncb +nGZ +bxy +cUd +ncb +nGZ +bxy +cUd +ncb +nGZ +bxy +cUd +ncb +qaL +nGZ +nGZ aHj -hKI +nGZ hjW hjW -hKI +nGZ wnq hjW -hKI +nGZ hjW -rMP -fxY -hKI -hKI -iJf -hlK -hKI +hQR +vlU +nGZ +nGZ +qaL +uYi +nGZ hjW hjW -fxY +vlU hjW -hKI -tRa -mDs -sEi +nGZ +ibl +cVu +dnX xeO smv xDw bQM bQM xDw -cfN -cfN -cfN -cfN -cfN -cfN -cfN -cfN +lqC +lqC +lqC +lqC +lqC +lqC +lqC +lqC xDw kPz kPz @@ -88044,22 +88044,22 @@ kPz kPz kPz bzO -tnH -nVq -lXf -nLl -nLl -nLl -nLl -nLl -nLl -nLl -nLl -nLl -snO -oYM -lAS -htL +eJt +fOT +jzP +ydK +ydK +ydK +ydK +ydK +ydK +ydK +ydK +ydK +oEQ +gbf +tOM +oZS rzt kPz rzt @@ -88190,59 +88190,59 @@ cAW cAW xDw xDw -jyK -dlW -hBn -hKI -hKI -hKI -hKI -lmM -mcN -mcN -mcN -rBR -mcN -mcN -crw -mcN -iJf -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -qcK -hKI -hKI -iJf -hlK -hKI -hKI -hKI -hKI -hKI -hKI -iJf -hKI -qHC -nsC -hKI +bxy +cUd +vnM +nGZ +nGZ +nGZ +nGZ +rJW +hSO +hSO +hSO +pkB +hSO +hSO +ign +hSO +qaL +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +mSP +nGZ +nGZ +qaL +uYi +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +qaL +nGZ +fDJ +hbH +nGZ lRT xDw xDw lRT -aIh -hsA -hsA -hsA +bTp +lqI +lqI +lqI lRT fjd lRT @@ -88256,21 +88256,21 @@ bQM bQM kPz bzO -oYM -nVq -rev -oYM -oYM -oYM -oYM -oYM -oYM -oYM -oYM -oYM -oYM -oYM -lAS +gbf +fOT +apu +gbf +gbf +gbf +gbf +gbf +gbf +gbf +gbf +gbf +gbf +gbf +tOM mxQ bzO bzO @@ -88418,43 +88418,43 @@ lRT lRT lRT lRT -dhV -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -ltV -qHC -hlK +vgC +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +tIW +fDJ +uYi xeO -qDY -cfN -cfN -cfN -cfN -hKI -hKI -hKI +yiT +lqC +lqC +lqC +lqC +nGZ +nGZ +nGZ lRT xeO lRT @@ -88468,21 +88468,21 @@ bQM bQM bQM bzO -oYM -nVq -rev -oYM -lAS -lAS -kLQ -lAS -lAS -lAS -lAS -lAS -lAS -lAS -guQ +gbf +fOT +apu +gbf +tOM +tOM +aAk +tOM +tOM +tOM +tOM +tOM +tOM +tOM +ivr vDO tUs tUs @@ -88630,43 +88630,43 @@ bQM vzB gws vzB -iJf -hKI -hsA -wFk -nGk -uhH -uol -wFk -nGk -uhH -uol -wFk -nGk -uhH -uol -wFk -nGk -uhH -uol -wFk -nGk -uhH -uol -wFk -hsA -hlK -dlW -uxY -hKI -vQr -hKI -hKI -hKI -hKI -hKI -fxY -hKI +qaL +nGZ +lqI +eDp +qGe +unp +wKx +eDp +qGe +unp +wKx +eDp +qGe +unp +wKx +eDp +qGe +unp +wKx +eDp +qGe +unp +wKx +eDp +lqI +uYi +cUd +ncb +nGZ +gtg +nGZ +nGZ +nGZ +nGZ +nGZ +vlU +nGZ lRT xeO lRT @@ -88680,18 +88680,18 @@ kPz kPz kPz bzO -oYM -nVq -rev -dMm -lAS -lAS -lAS -lAS -eCA -lAS -lAS -lAS +gbf +fOT +apu +kBt +tOM +tOM +tOM +tOM +eTr +tOM +tOM +tOM vEK vEK fTs @@ -88842,11 +88842,11 @@ bQM vzB gws vzB -iJf -hKI -owG +qaL +nGZ +uNs iOa -xeO +cCx xeO xeO xeO @@ -88864,21 +88864,21 @@ xeO xeO xeO xeO -xeO +cCx iOa -nBR -hlK -hKI -hKI -hKI -cfN -cfN -cfN -cfN -cfN -cfN -cfN -cfN +eLB +uYi +nGZ +nGZ +nGZ +lqC +lqC +lqC +lqC +lqC +lqC +lqC +lqC lRT xeO lRT @@ -88892,17 +88892,17 @@ bQM bQM bQM bzO -tnH -nVq -rev -oYM -kfA -kfA -kfA -kfA -aMz -kfA -kfA +eJt +fOT +apu +gbf +pYB +pYB +pYB +pYB +hZG +pYB +pYB bzO rzt rzt @@ -89046,20 +89046,21 @@ cAW cAW bQM bQM -pfi -hbC -hbC -hbC -hbC -ssD -iSi -ssD -tPi -viV -wJf +dPZ +ogf +ogf +ogf +ogf +tsc +bEk +tsc +dxc +pYD +ehy +xeO +xeO xeO xeO -cCx xeO xeO xeO @@ -89075,21 +89076,20 @@ xeO xeO xeO xeO -cCx xeO xeO -sLo -hlK -hKI -iWW +oGR +uYi +nGZ +ieA hQh hQh hQh hQh hQh hQh -qHC -qHC +fDJ +fDJ lRT lRT fjd @@ -89104,10 +89104,10 @@ bQM cAW bzO bzO -iqR -xnp -xnp -pIK +ofA +axx +axx +lbK bzO bzO bzO @@ -89258,7 +89258,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -89266,9 +89266,9 @@ bQM vzB gws vzB -iJf -bYS -jCp +qaL +czf +aTe xeO xeO xeO @@ -89290,48 +89290,48 @@ xeO xeO xeO xeO -pAN -hlK +rrD +uYi hjW -iWW +ieA xeO bym uKx uKx xew vem -eXr -eXr -yls -ssD -yls -ssD -iSi -hbC -iSi -hbC -hbC -hbC -hbC -hbC -ssD -kqe -eML -lNg -lNg -npz -ahR -vrN -dUZ -dUZ -dUZ +uGI +uGI +paI +tsc +paI +tsc +bEk +ogf +bEk +ogf +ogf +ogf +ogf +ogf +tsc +kSD +sNQ +aeo +aeo +dPr +cUU +mvF +kkU +kkU +kkU xDq naf naf cqz ggd -hbC -cbb +ogf +mRM bce cAW cAW @@ -89470,7 +89470,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -89478,9 +89478,9 @@ bQM vzB gws vzB -iJf -bYS -hHh +qaL +czf +tgK xeO xeO xeO @@ -89502,10 +89502,10 @@ xeO xeO xeO xeO -aVK -hlK +cfG +uYi hjW -iWW +ieA xeO lpl jVE @@ -89543,7 +89543,7 @@ kEy sDL bQM bQM -gEU +bmT bce cAW cAW @@ -89682,7 +89682,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -89690,9 +89690,9 @@ bQM vzB gws vzB -iJf -bYS -owG +qaL +czf +uNs xeO xeO xeO @@ -89714,48 +89714,48 @@ xeO xeO xeO mUA -nBR -hlK +eLB +uYi hjW -iWW +ieA xeO fSz lIv lIv xFP sov -eXr -eXr -yls -ssD -yls -ssD -iSi -hbC -iSi -hbC -hbC -hbC -hbC -hbC -ssD -hPW -lNg -lNg -lNg -lNg -hPW -vrN -dUZ -dUZ -dUZ +uGI +uGI +paI +tsc +paI +tsc +bEk +ogf +bEk +ogf +ogf +ogf +ogf +ogf +tsc +vmt +aeo +aeo +aeo +aeo +vmt +mvF +kkU +kkU +kkU iBP vcf vcf lku mzT -hbC -ogo +ogf +fWI bce cAW cAW @@ -89894,7 +89894,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -89902,9 +89902,9 @@ bQM vzB gws vzB -iJf -bYS -wJf +qaL +czf +ehy xeO xeO xeO @@ -89926,10 +89926,10 @@ xeO xeO xeO xeO -sLo -hlK -hKI -iWW +oGR +uYi +nGZ +ieA xeO xeO xeO @@ -90106,7 +90106,7 @@ bQM bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -90114,9 +90114,9 @@ bQM vzB gws vzB -iJf -bYS -jCp +qaL +czf +aTe xeO xeO xeO @@ -90138,48 +90138,48 @@ xeO xeO xeO xeO -pAN -hlK +rrD +uYi hjW -iWW +ieA xeO bym uKx uKx xew vem -eXr -eXr -yls -ssD -yls -ssD -iSi -hbC +uGI +uGI +paI +tsc +paI +tsc +bEk +ogf xDq naf naf cqz -bFj -hbC -ssD -hPW -lNg -lNg -lNg -lNg -hPW -vrN -dUZ -dUZ -dUZ -hbC -dUZ -hbC -hbC -hbC -hbC -cbb +cQv +ogf +tsc +vmt +aeo +aeo +aeo +aeo +vmt +mvF +kkU +kkU +kkU +ogf +kkU +ogf +ogf +ogf +ogf +mRM cAW bce bce @@ -90318,7 +90318,7 @@ cAW bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -90326,9 +90326,9 @@ bQM vzB gws vzB -iJf -bYS -hHh +qaL +czf +tgK xeO xeO xeO @@ -90350,10 +90350,10 @@ xeO xeO xeO xeO -aVK -hlK +cfG +uYi hjW -iWW +ieA xeO lpl jVE @@ -90391,7 +90391,7 @@ bQM bQM bQM bQM -gEU +bmT cAW cAW bce @@ -90530,7 +90530,7 @@ cAW bQM bQM bQM -gEU +bmT bQM bQM bQM @@ -90538,9 +90538,9 @@ bQM vzB gws vzB -iJf -bYS -owG +qaL +czf +uNs xeO xeO xeO @@ -90562,48 +90562,48 @@ xeO xeO xeO xeO -rPu -hlK +jKz +uYi hjW -iWW +ieA xeO fSz lIv lIv xFP sov -eXr -eXr -yls -ssD -yls -ssD -iSi -hbC +uGI +uGI +paI +tsc +paI +tsc +bEk +ogf iBP vcf vcf lku -bOz -hbC -ssD -hPW -lNg -lNg -lNg -lNg -hPW -vrN -dUZ -dUZ -dUZ -hbC -dUZ -hbC -hbC -hbC -hbC -ogo +vev +ogf +tsc +vmt +aeo +aeo +aeo +aeo +vmt +mvF +kkU +kkU +kkU +ogf +kkU +ogf +ogf +ogf +ogf +fWI cAW cAW bce @@ -90742,20 +90742,19 @@ cAW bQM bQM bQM -qvn -hbC -hbC -hbC -hbC -ssD -iSi -ssD -tPi -oSK -wJf +qmv +ogf +ogf +ogf +ogf +tsc +bEk +tsc +dxc +pqY +ehy doA xeO -cCx xeO xeO xeO @@ -90771,21 +90770,22 @@ xeO xeO xeO xeO -cCx xeO xeO -lGh -hlK -hKI -iWW +xeO +xeO +kIh +uYi +nGZ +ieA giX giX giX giX giX giX -qHC -qHC +fDJ +fDJ scM scM xkv @@ -90962,11 +90962,11 @@ bQM vzB gws vzB -iJf -hKI -jCp +qaL +nGZ +aTe iOa -xeO +cCx xeO xeO xeO @@ -90984,42 +90984,42 @@ xeO xeO xeO xeO -xeO +cCx iOa -pAN -hlK -hKI -hKI -qyc -eps -tbs -eps -mYZ -hKI -hKI -hKI +rrD +uYi +nGZ +nGZ +fBD +rFw +joU +rFw +pCG +nGZ +nGZ +nGZ lnK -jUK -qVt -jUK +bcp +akZ +bcp scM xdE xdE xdE xdE scM -mli -qVt -atm +jZk +akZ +lOe lnK -jeh -bnK -bnK -qjC +uFs +hqb +hqb +nuX lnK -jGd -ctz -voa +vJL +eZi +qKx scM scM cAW @@ -91174,65 +91174,65 @@ bQM vzB gws vzB -iJf -hKI -hsA -tZV -lYA -wfp -xjw -tZV -lYA -wfp -xjw -tZV -lYA -wfp -xjw -tZV -lYA -wfp -xjw -tZV -lYA -wfp -xjw -tZV -hsA -hlK -sEi -ltV -hKI -hKI +qaL +nGZ +lqI +laz +dDI +vrA +hTh +laz +dDI +vrA +hTh +laz +dDI +vrA +hTh +laz +dDI +vrA +hTh +laz +dDI +vrA +hTh +laz +lqI +uYi +dnX +tIW +nGZ +nGZ kdR hjW -hKI +nGZ hjW hjW -hKI -vfR -ydX -hDL +nGZ +eVj +sYB +oTP qQl -jTk -kmB -kmB -kmB -hiu -kmB -iXL -ydX -hDL -bbT -iXL +ekb +tuA +tuA +tuA +fQa +tuA +ssb +sYB +oTP +qDq +ssb qQl qQl -iXL -jTk -sbj -jGj -uqp -jTk +ssb +ekb +epY +hrl +jBv +ekb xdE cAW cAW @@ -91386,65 +91386,65 @@ bQM lRT lRT lRT -utV -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -otB -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -uxY -qHC -hlK -sEi -sEi -sEi -sEi -sEi -sEi -sEi -sEi -fXe -inh -ydX -hDL -iXL -ydX -ydX -bUH -bUH -bUH -ydX -hDL -pGi -jTk +rbI +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +ipV +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +ncb +fDJ +uYi +dnX +dnX +dnX +dnX +dnX +dnX +dnX +dnX +qes +rRo +sYB +oTP +ssb +sYB +sYB +eot +eot +eot +sYB +oTP +hZi +ekb qQl -ydX -vlT +sYB +xmV qQl -jTk -ydX -bUH -jlW -iXL +ekb +sYB +eot +nMg +ssb xdE bce bce @@ -91598,65 +91598,65 @@ bQM lRT lRT lRT -pCF -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -hKI -iJf -qHC -qHC -hlK -dlW -dlW -dlW -dlW -dlW -dlW -dlW -dlW -bHl -inh -gFq -nes -iXL -gFq -gFq -pEw -pEw -pEw -gFq -nes -pGi -jTk +jiq +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +nGZ +qaL +fDJ +fDJ +uYi +cUd +cUd +cUd +cUd +cUd +cUd +cUd +cUd +jYU +rRo +aic +ckr +ssb +aic +aic +xZA +xZA +xZA +aic +ckr +hZi +ekb qQl -gFq -nes +aic +ckr qQl -jTk -gFq -pEw -nes -iXL +ekb +aic +xZA +ckr +ssb xdE cAW bce @@ -91810,65 +91810,65 @@ bQM bQM bQM lRT -hKI -hKI +nGZ +nGZ hjW hjW -hKI -krG -udY -cmI -eJq -pGf -cXq -klG -aHA -rTb -dKI -rTb -rTb -oLB +nGZ +oyk +wzK +wbL +rSN +mGN +prG +cpv +sjd +cEb +nFJ +cEb +cEb +hjC iUO iUO iUO iUO iUO -jmO -jyK -dlW -dlW -uxY -hKI -hKI +wzT +bxy +cUd +cUd +ncb +nGZ +nGZ hjW hjW -hKI +nGZ hjW hjW -hKI -nhd -gFq -nes +nGZ +fWs +aic +ckr qQl -jTk -tBy -tBy -tBy -tBy -tBy -rOa -gFq -nes -jTk -iXL +ekb +csL +csL +csL +csL +csL +sZt +aic +ckr +ekb +ssb qQl qQl -iXL -jTk -sbj -jGj -uqp -jTk +ssb +ekb +epY +hrl +jBv +ekb xdE cAW cAW @@ -92022,12 +92022,12 @@ bQM bQM bQM lRT -hKI -hKI +nGZ +nGZ hjW hjW -hKI -ycj +nGZ +vwx xeO xeO xeO @@ -92042,26 +92042,26 @@ xeO mUA xeO xeO -cXm -uXm +xfb +yat xeO -cvr -hKI -hKI -lmM -hKI -hKI -lmM -hKI -hKI -lmM -hKI -hKI -qDD +oIg +nGZ +nGZ +rJW +nGZ +nGZ +rJW +nGZ +nGZ +rJW +nGZ +nGZ +tpw lnK -iVb -dIK -iJM +mVn +gHo +nwS scM xdE xdE @@ -92069,17 +92069,17 @@ xdE xdE scM scM -jUK -jUK -jTk -jTk -jTk -jTk -jTk +bcp +bcp +ekb +ekb +ekb +ekb +ekb lnK -jGd -iXL -voa +vJL +ssb +qKx scM scM bce @@ -92235,30 +92235,30 @@ bQM bQM lRT lRT -gDP -hKI -hKI -hKI -ycj +ntZ +nGZ +nGZ +nGZ +vwx bym uKx uKx -tke -tke -yls -yls -yls -tHU +rcl +rcl +paI +paI +paI +dRx xeO sTd xeO mUA xeO -gqZ -ybY +cAU +uyp xeO vUf -hKI +nGZ lRT lRT atl @@ -92281,13 +92281,13 @@ pcu iWq bQM scM -sws -dBR -mss -tBy -tBy -tBy -gaL +aOC +dKB +gmp +csL +csL +csL +uLq scM scM scM @@ -92450,8 +92450,8 @@ lRT lRT lRT lRT -fLr -ycj +hTo +vwx lpl jVE vzn @@ -92460,17 +92460,17 @@ xeO xeO mUA xeO -rUr +fxa bHv ylu xeO xeO xeO -awx +mQB aTE xeO -yaz -hKI +aRv +nGZ lRT lRT xDw @@ -92493,8 +92493,8 @@ pcu iWq bQM scM -laP -imn +eNv +lFM scM xdE xdE @@ -92662,27 +92662,27 @@ bQM bQM bQM xDw -oQz -ycj +oEN +vwx fSz lIv lIv xFP sov -yls -yls -yls -qDc +paI +paI +paI +eeH dFM sov xeO xeO xeO -dIp -oDn +fCW +myf xeO -wqM -hKI +tOP +nGZ xDw bQM bQM @@ -92875,7 +92875,7 @@ bQM bQM lRT lRT -tvM +piw tFA tFA tFA @@ -92893,7 +92893,7 @@ tFA tFA tFA tFA -koV +nnG lRT lRT bQM diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm index 22c8cb543d98..34dc51f305fb 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm @@ -553,7 +553,7 @@ dir = 4; pixel_y = 24 }, -/obj/item/toy/plushie_cade{ +/obj/item/toy/plush/barricade{ pixel_x = 1; pixel_y = -9 }, @@ -731,7 +731,7 @@ dir = 8; pixel_y = 24 }, -/obj/item/toy/plushie_cade{ +/obj/item/toy/plush/barricade{ pixel_x = -3; pixel_y = -9 }, @@ -763,7 +763,7 @@ pixel_y = 5; layer = 3.1 }, -/obj/item/toy/farwadoll{ +/obj/item/toy/plush/farwa{ pixel_x = -5; pixel_y = 4 }, @@ -847,7 +847,7 @@ /area/template_noop) "FD" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/toy/therapy_blue{ +/obj/item/toy/plush/therapy/blue{ pixel_y = 4 }, /obj/item/reagent_container/food/drinks/bottle/whiskey{ @@ -1271,7 +1271,7 @@ dir = 4; pixel_y = 24 }, -/obj/item/toy/plushie_cade{ +/obj/item/toy/plush/barricade{ pixel_x = 1; pixel_y = -9 }, @@ -1452,7 +1452,7 @@ dir = 8; pixel_y = 24 }, -/obj/item/toy/plushie_cade{ +/obj/item/toy/plush/barricade{ pixel_x = -1; pixel_y = -9 }, diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm index aaaaeb0c1199..485760ebc2af 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -26844,7 +26844,7 @@ /area/ice_colony/underground/storage/highsec) "bCS" = ( /obj/structure/safe, -/obj/item/weapon/katana/replica, +/obj/item/weapon/sword/katana/replica, /obj/item/reagent_container/food/drinks/bottle/absinthe, /turf/open/floor{ dir = 1; @@ -27958,7 +27958,7 @@ /area/ice_colony/surface/bar/canteen) "bFZ" = ( /obj/structure/surface/table/reinforced, -/obj/item/toy/farwadoll, +/obj/item/toy/plush/farwa, /turf/open/floor{ icon_state = "darkblue2" }, @@ -34904,7 +34904,7 @@ /area/ice_colony/surface/hangar/alpha) "sto" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Hangar Landing Zone" + name = "LZ1: Hangar Landing Zone" }, /turf/open/floor/plating, /area/ice_colony/exterior/surface/landing_pad) diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index f5e2f597ef24..b43c34586c5c 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -17,10 +17,6 @@ /obj/structure/girder, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) -"aaf" = ( -/obj/item/lightstick/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) "aag" = ( /obj/structure/bed/chair{ dir = 4 @@ -113,29 +109,20 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) "aat" = ( -/obj/structure/ice/thin/single{ - opacity = 1; - unacidable = 0 +/obj/item/tool/shovel/snow{ + pixel_y = 8 }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/obj/item/tool/shovel/snow, +/obj/structure/surface/rack, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "aau" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "aav" = ( -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"aaw" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large2" - }, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) +/area/shiva/exterior/telecomm/lz1_north) "aax" = ( /obj/structure/prop/ice_colony/surveying_device{ layer = 3.01; @@ -176,10 +163,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/right_spiders) -"aaE" = ( -/mob/living/simple_animal/hostile/giant_spider/nurse, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaF" = ( /obj/structure/platform/strata{ dir = 4 @@ -226,10 +209,6 @@ /obj/item/tool/pickaxe/drill, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_colony_grounds) -"aaL" = ( -/obj/effect/spider/cocoon, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaM" = ( /obj/structure/platform/strata{ dir = 4 @@ -247,10 +226,6 @@ /obj/item/explosive/plastic, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_colony_grounds) -"aaP" = ( -/mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaQ" = ( /obj/effect/spider/stickyweb, /obj/item/clothing/head/helmet/marine/sof, @@ -272,12 +247,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) -"aaU" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large3" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "aaV" = ( /obj/effect/spider/stickyweb, /obj/effect/spider/cocoon{ @@ -301,7 +270,7 @@ "aaZ" = ( /obj/structure/fence, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/warehouse/caves) +/area/shiva/interior/caves/research_caves) "aba" = ( /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/snow/layer3, @@ -455,7 +424,7 @@ /area/shiva/exterior/cp_lz2) "abv" = ( /obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer1, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "abw" = ( /obj/item/lightstick/red/spoke/planted{ @@ -493,20 +462,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"abC" = ( -/mob/living/simple_animal/hostile/giant_spider/nurse, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"abD" = ( -/obj/effect/spider/cocoon, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abE" = ( /obj/effect/landmark/hunter_primary, /turf/open/auto_turf/ice/layer1, @@ -521,11 +476,6 @@ /obj/effect/landmark/hunter_secondary, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"abI" = ( -/obj/effect/spider/stickyweb, -/obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abJ" = ( /turf/open/shuttle/elevator/grating, /area/shiva/interior/colony/research_hab) @@ -535,11 +485,6 @@ }, /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/right_spiders) -"abL" = ( -/obj/effect/spider/cocoon, -/obj/effect/spider/stickyweb, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "abM" = ( /turf/closed/shuttle/elevator{ dir = 1 @@ -549,25 +494,6 @@ /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/right_spiders) -"abO" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large3" - }, -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) -"abP" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 4 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) -"abQ" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "abR" = ( /obj/structure/flora/grass/tallgrass/ice, /obj/structure/flora/bush/ausbushes/lavendergrass, @@ -579,12 +505,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"abT" = ( -/obj/structure/tunnel{ - id = "north_research_tunnel" - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "abU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 1 @@ -631,7 +551,7 @@ "abZ" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "aca" = ( /obj/item/tank/oxygen, /obj/item/tank/oxygen, @@ -649,17 +569,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/research_hab) -"acc" = ( -/obj/item/tool/shovel/spade{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) -"acd" = ( -/obj/structure/machinery/space_heater, -/turf/open/auto_turf/ice/layer1, -/area/shiva/exterior/research_alley) "ace" = ( /turf/closed/shuttle/elevator/gears, /area/shiva/interior/colony/central) @@ -809,16 +718,6 @@ "acL" = ( /turf/closed/shuttle/elevator/arrivals, /area/shiva/interior/colony/central) -"acM" = ( -/mob/living/simple_animal/hostile/retaliate/clown{ - desc = "Uh oh, looks like Gonzo got blocked by a cave-in. How is he gonna get out of this one?"; - health = 10000; - move_to_delay = 2; - name = "Gonzo the Magnificent"; - rapid = 1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/oob/dev_room) "acN" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Underground Security Interrogation"; @@ -826,12 +725,6 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"acO" = ( -/obj/effect/decal/hefa_cult_decals/d96{ - desc = "Original map by Infernus, remapped by Triiodine." - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/oob/dev_room) "acP" = ( /obj/effect/landmark/xeno_spawn, /turf/open/auto_turf/ice/layer1, @@ -1553,7 +1446,7 @@ "agy" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "agz" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor{ @@ -1700,13 +1593,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"ahB" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/colony/research_hab) "ahC" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_2" @@ -2115,9 +2001,8 @@ /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) "ajy" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/turf/open/floor/shiva, +/area/shiva/interior/caves/cp_camp) "ajD" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/shiva{ @@ -2230,7 +2115,7 @@ "akf" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "akh" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/shiva{ @@ -2261,6 +2146,7 @@ /obj/structure/barricade/snow{ dir = 4 }, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/fortbiceps) "akr" = ( @@ -2741,16 +2627,6 @@ icon_state = "bluefull" }, /area/shiva/interior/colony/n_admin) -"ano" = ( -/obj/structure/closet/toolcloset, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/aerodrome) "anq" = ( /obj/structure/toilet, /turf/open/floor/plating, @@ -3526,10 +3402,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) -"asC" = ( -/obj/structure/fence, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "asE" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 5 @@ -3705,10 +3577,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/cp_camp) -"atJ" = ( -/obj/structure/flora/tree/dead/tree_3, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "atK" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer1, @@ -3959,6 +3827,10 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"awP" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "awY" = ( /obj/structure/flora/grass/tallgrass/ice, /obj/structure/flora/bush/ausbushes/lavendergrass{ @@ -4230,6 +4102,10 @@ icon_state = "yellowcorners" }, /area/shiva/interior/garage) +"ayz" = ( +/obj/structure/fence, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "ayB" = ( /obj/structure/surface/table, /obj/item/device/flashlight, @@ -4253,12 +4129,6 @@ /obj/item/clothing/shoes/snow, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) -"ayJ" = ( -/obj/structure/prop/invuln/ice_prefab/standalone{ - icon_state = "white" - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "ayK" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/snow/layer0, @@ -5179,10 +5049,6 @@ icon_state = "floor3" }, /area/shiva/interior/bar) -"aHz" = ( -/obj/structure/flora/tree/dead/tree_1, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "aHB" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_1" @@ -5219,19 +5085,12 @@ /obj/item/weapon/wirerod, /turf/open/shuttle/elevator/grating, /area/shiva/interior/aerodrome) -"aIO" = ( -/turf/closed/wall/shiva/prefabricated/red, -/area/shiva/interior/oob) "aJc" = ( /obj/structure/largecrate/random/mini/med, /turf/open/floor/shiva{ icon_state = "floor3" }, /area/shiva/interior/valley_huts/no2) -"aJd" = ( -/obj/structure/surface/table/reinforced/prison, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "aJe" = ( /obj/effect/spawner/random/toolbox, /obj/effect/landmark/crap_item, @@ -5296,12 +5155,6 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) -"aJR" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassgb_2" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "aJU" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -5312,9 +5165,6 @@ /obj/structure/prop/invuln/ice_prefab/standalone/trim{ icon_state = "pink_trim" }, -/obj/structure/machinery/portable_atmospherics/powered/scrubber{ - icon_state = "psiphon:1" - }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/valley) "aKn" = ( @@ -5323,18 +5173,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/valley) -"aKo" = ( -/obj/structure/surface/rack, -/obj/item/ammo_rcd{ - pixel_x = -4 - }, -/obj/item/ammo_rcd{ - pixel_x = 4 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/caves/cp_camp) "aKp" = ( /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer3, @@ -5346,33 +5184,12 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"aKr" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) "aKv" = ( /obj/item/stack/folding_barricade, /turf/open/floor/shiva{ icon_state = "floor3" }, /area/shiva/interior/colony/s_admin) -"aKA" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) -"aKD" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/bar) "aKJ" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -5392,15 +5209,6 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"aKP" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "aKQ" = ( /obj/structure/machinery/computer/cameras, /obj/structure/surface/table/reinforced/prison, @@ -5498,24 +5306,11 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard/cp_bar) -"aMk" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/junkyard/cp_bar) "aMl" = ( /obj/effect/landmark/corpsespawner/engineer, /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"aMn" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "aMs" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -5550,16 +5345,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/central) -"aMy" = ( -/obj/structure/machinery/space_heater, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "aMz" = ( /obj/structure/machinery/smartfridge{ density = 0; @@ -5648,13 +5433,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"aMZ" = ( -/obj/structure/machinery/power/port_gen/pacman, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "aNb" = ( /obj/structure/safe, /obj/item/spacecash/c1000{ @@ -5785,27 +5563,11 @@ /obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) -"aOk" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "pink_trim" - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/valley) -"aOl" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/valley) "aOo" = ( /obj/item/dogtag, /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/bar) -"aOp" = ( -/obj/item/tool/shovel/snow, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "aOu" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/medseceng_caves) @@ -5924,15 +5686,6 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/central) -"aPX" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 4 - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - dir = 1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "aQb" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/shiva{ @@ -5946,19 +5699,6 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) -"aQh" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 2.99; - pixel_x = -13; - pixel_y = 28 - }, -/obj/structure/largecrate/random/mini/small_case/b, -/obj/structure/largecrate/random/mini/small_case{ - pixel_x = 14; - pixel_y = -3 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aQi" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/snow/layer2, @@ -6020,20 +5760,6 @@ /obj/item/stool, /turf/open/floor/shiva, /area/shiva/interior/bar) -"aRo" = ( -/obj/structure/largecrate/random/mini/med{ - pixel_x = -7; - pixel_y = 9 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"aRp" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "pink_trim" - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aRs" = ( /obj/structure/closet/radiation, /obj/structure/machinery/light/double{ @@ -6120,25 +5846,6 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"aSC" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 3.1; - pixel_x = -13; - pixel_y = 25 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) -"aSF" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 8; - pixel_y = -8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) -"aSG" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aSI" = ( /obj/structure/closet/radiation, /turf/open/floor/shiva{ @@ -6185,7 +5892,7 @@ name = "\improper Anti-Freeze Lounge" }, /turf/open/floor/plating, -/area/shiva/interior/bar) +/area/shiva/exterior/cp_s_research) "aSX" = ( /obj/structure/largecrate/random/mini/ammo, /turf/open/floor/plating, @@ -6232,52 +5939,10 @@ /obj/effect/spawner/random/tool, /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"aTr" = ( -/obj/item/tool/shovel/snow{ - pixel_y = 8 - }, -/obj/item/tool/shovel/snow, -/obj/structure/surface/rack, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) -"aTt" = ( -/obj/item/lightstick/red/variant/planted{ - pixel_x = 11; - pixel_y = 11 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) -"aTw" = ( -/obj/structure/prop/ice_colony/soil_net, -/obj/item/tool/shovel/spade{ - layer = 2.99; - pixel_x = -9; - pixel_y = -11 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "aTE" = ( /obj/structure/largecrate/random/barrel, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) -"aTH" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/structure/largecrate/random/case, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"aTL" = ( -/obj/structure/largecrate/random/case{ - pixel_y = 11 - }, -/obj/structure/largecrate/random/mini/chest/b{ - pixel_x = -4; - pixel_y = -5 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "aTO" = ( /obj/item/stack/rods, /turf/open/asphalt/cement, @@ -6377,21 +6042,6 @@ icon_state = "green" }, /area/shiva/interior/colony/botany) -"aUP" = ( -/obj/structure/surface/rack, -/obj/item/stack/cable_coil/blue, -/obj/item/stack/cable_coil/orange{ - pixel_y = 6 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) -"aUQ" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 12; - pixel_y = 25 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) "aUS" = ( /obj/structure/machinery/disposal, /turf/open/floor/shiva{ @@ -6582,13 +6232,6 @@ icon_state = "floor7" }, /area/shiva/interior/aerodrome) -"aVW" = ( -/obj/item/lightstick/red/variant/planted{ - pixel_x = -7; - pixel_y = -5 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "aWb" = ( /obj/structure/foamed_metal, /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, @@ -6650,16 +6293,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"aWG" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -11; - pixel_y = 20 - }, -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/junkyard) "aWH" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 4 @@ -6817,28 +6450,6 @@ opacity = 0 }, /area/shiva/interior/aerodrome) -"aYf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) -"aYg" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "aYx" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_3" @@ -6848,10 +6459,6 @@ /obj/structure/window_frame/shiva, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"aYF" = ( -/obj/item/stack/rods, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "aYU" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/shiva{ @@ -6955,9 +6562,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/bar) -"bax" = ( -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "baN" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/pen/blue{ @@ -7024,12 +6628,6 @@ /obj/item/stack/rods, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"bbt" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "bbw" = ( /obj/structure/barricade/handrail/strata{ dir = 8 @@ -7039,12 +6637,6 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/deck) -"bbF" = ( -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "bbG" = ( /obj/structure/ice/thin/indestructible{ dir = 4; @@ -7102,33 +6694,11 @@ }, /turf/open/gm/river, /area/shiva/interior/warehouse/caves) -"bdk" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "bdT" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile2" }, /area/shiva/interior/colony/medseceng) -"bea" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shiva/interior/aerodrome) "ben" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/telecomm/lz1_north) @@ -7187,10 +6757,6 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) -"bfB" = ( -/obj/effect/spawner/random/tool, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/valley) "bfL" = ( /obj/structure/largecrate/random/mini/wooden, /turf/open/auto_turf/snow/layer2, @@ -7226,7 +6792,7 @@ icon_state = "snowgrassall_1" }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "bhI" = ( /turf/open/floor/shiva{ dir = 6; @@ -7282,6 +6848,10 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/central) +"bkK" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "bkP" = ( /obj/effect/spider/cocoon{ icon_state = "cocoon_large2" @@ -7300,6 +6870,10 @@ icon_state = "green" }, /area/shiva/interior/colony/botany) +"bme" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "bmg" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer2, @@ -7339,12 +6913,6 @@ /obj/structure/bed/chair, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) -"boz" = ( -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "boA" = ( /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer1, @@ -7357,12 +6925,6 @@ /obj/docking_port/stationary/marine_dropship/lz1, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"boS" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassbb_3" - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) "boT" = ( /obj/structure/largecrate/random/mini/wooden{ pixel_y = 6 @@ -7617,10 +7179,14 @@ /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, /area/shiva/interior/colony/central) -"bBT" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) +"bCr" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz1, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "bDx" = ( /obj/item/reagent_container/food/drinks/flask/vacuumflask, /turf/open/floor/shiva, @@ -7660,16 +7226,6 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"bGk" = ( -/obj/item/stack/rods, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) -"bGx" = ( -/obj/item/shard{ - icon_state = "medium" - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "bGU" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -7868,16 +7424,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"bQX" = ( -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - pixel_y = 21 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - pixel_x = -7; - pixel_y = 13 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "bQZ" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/interior/caves/s_lz2) @@ -7890,7 +7436,7 @@ "bRU" = ( /obj/structure/flora/tree/dead/tree_5, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "bSB" = ( /obj/structure/prop/invuln{ desc = "big pile energy."; @@ -8046,6 +7592,16 @@ icon_state = "red" }, /area/shiva/interior/colony/central) +"bYV" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/aerodrome) "bZZ" = ( /obj/effect/landmark/objective_landmark/far, /turf/open/floor/shiva{ @@ -8088,6 +7644,10 @@ dir = 1 }, /area/shiva/interior/colony/s_admin) +"cbG" = ( +/obj/effect/spawner/random/tool, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "cbW" = ( /obj/structure/largecrate/random/mini/med, /turf/open/floor/plating, @@ -8105,6 +7665,13 @@ /obj/structure/prop/invuln/ice_prefab/standalone, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"ccT" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "cdh" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer2, @@ -8169,6 +7736,13 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) +"cid" = ( +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) "cio" = ( /turf/open/floor/shiva{ icon_state = "floor3" @@ -8212,9 +7786,6 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) -"clK" = ( -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/left_spiders) "cnb" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/telecomm/lz2_northeast) @@ -8272,6 +7843,13 @@ icon_state = "red" }, /area/shiva/interior/colony/medseceng) +"cps" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "cpC" = ( /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer1, @@ -8398,10 +7976,6 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/botany) -"cyW" = ( -/obj/structure/girder, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "czf" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassall_1" @@ -8440,10 +8014,6 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) -"cBs" = ( -/obj/structure/machinery/cell_charger, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "cBB" = ( /obj/item/clothing/shoes/snow, /obj/structure/surface/rack, @@ -8482,16 +8052,6 @@ /obj/structure/machinery/vending/cigarette, /turf/open/floor/shiva, /area/shiva/interior/bar) -"cBU" = ( -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/research_caves) -"cBX" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "cCI" = ( /turf/open/floor/shiva{ dir = 8; @@ -8516,10 +8076,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"cEV" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "cFa" = ( /obj/structure/machinery/light/double{ dir = 4; @@ -8593,10 +8149,26 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"cIs" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/turf/closed/wall/shiva/ice, +/area/shiva/interior/caves/cp_camp) "cIV" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) +/area/shiva/interior/warehouse/caves) +"cIZ" = ( +/obj/structure/surface/rack, +/obj/item/stack/cable_coil/blue, +/obj/item/stack/cable_coil/orange{ + pixel_y = 6 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "cJy" = ( /obj/structure/surface/table, /turf/open/floor/shiva{ @@ -8791,6 +8363,13 @@ icon_state = "bluecorners" }, /area/shiva/interior/colony/central) +"cTU" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "cTY" = ( /obj/item/ammo_magazine/flamer_tank, /turf/open/floor/shiva{ @@ -8869,6 +8448,15 @@ /obj/structure/prop/ice_colony/surveying_device, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) +"cXU" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) "cYa" = ( /turf/open/floor/shiva{ dir = 8; @@ -8964,11 +8552,19 @@ "daD" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) +"dbv" = ( +/obj/structure/largecrate/random/case, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "dbH" = ( /turf/closed/shuttle/ert{ icon_state = "stan1" }, /area/shiva/interior/aerodrome) +"dbO" = ( +/obj/structure/prop/invuln/ice_prefab/standalone, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "dbQ" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -8977,6 +8573,17 @@ icon_state = "wredfull" }, /area/shiva/interior/colony/medseceng) +"dcn" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = -13; + pixel_y = 28 + }, +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "dcu" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer2, @@ -8996,12 +8603,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"ddA" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassbb_1" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "dex" = ( /obj/structure/machinery/photocopier, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -9038,10 +8639,6 @@ /obj/vehicle/train/cargo/engine, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard/cp_bar) -"dhx" = ( -/obj/item/device/binoculars/civ, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "diL" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -9130,6 +8727,11 @@ /obj/structure/window/reinforced, /turf/open/floor/wood, /area/shiva/interior/colony/central) +"dnj" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "dnv" = ( /obj/structure/prop/invuln/minecart_tracks/bumper{ dir = 5 @@ -9188,6 +8790,11 @@ /obj/item/device/flashlight/lamp, /turf/open/floor/carpet, /area/shiva/interior/colony/central) +"dro" = ( +/obj/structure/platform/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "drx" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -9308,7 +8915,7 @@ "dyt" = ( /obj/vehicle/train/cargo/trolley, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "dze" = ( /obj/effect/decal/warning_stripes{ icon_state = "W-corner" @@ -9361,14 +8968,10 @@ icon_state = "stan2" }, /area/shiva/interior/aerodrome) -"dCY" = ( -/obj/structure/ice/thin/single{ - opacity = 1; - unacidable = 0 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +"dDj" = ( +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "dDo" = ( /obj/structure/machinery/landinglight/ds1/spoke, /turf/open/floor/shiva{ @@ -9397,12 +9000,6 @@ dir = 1 }, /area/shiva/interior/colony/central) -"dHr" = ( -/obj/structure/flora/bush/snow{ - icon_state = "snowgrassall_3" - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "dIF" = ( /obj/structure/machinery/photocopier, /turf/open/floor/shiva{ @@ -9534,13 +9131,8 @@ }, /area/shiva/interior/colony/n_admin) "dRb" = ( -/turf/closed/wall/shiva/ice, -/area/shiva/interior/caves/left_spiders) -"dRi" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 10 - }, -/turf/open/auto_turf/ice/layer1, +/obj/structure/fence, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "dTj" = ( /obj/structure/machinery/space_heater, @@ -9703,12 +9295,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) -"eaB" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) "ebK" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer2, @@ -9732,9 +9318,15 @@ icon_state = "floor3" }, /area/shiva/interior/colony/botany) +"ecx" = ( +/obj/structure/largecrate/random, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/caves/cp_camp) "ecz" = ( /obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "ecZ" = ( /turf/open/floor/shiva{ @@ -9784,10 +9376,8 @@ }, /turf/open/floor/wood, /area/shiva/interior/colony/botany) -"ehe" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-entrance" - }, +"ehO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/shiva/prefabricated/blue, /area/shiva/interior/colony/research_hab) "ehV" = ( @@ -9825,6 +9415,13 @@ /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"elf" = ( +/obj/item/reagent_container/glass/bucket{ + pixel_x = 8; + pixel_y = -8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "eln" = ( /obj/structure/surface/table, /obj/item/book/manual/engineering_guide{ @@ -9877,9 +9474,6 @@ /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/cp_lz2) -"enh" = ( -/turf/open/auto_turf/ice/layer1, -/area/shiva/exterior/research_alley) "eni" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) @@ -10142,13 +9736,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) -"eGe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "eGq" = ( /obj/structure/platform/strata, /obj/structure/platform/strata{ @@ -10235,17 +9822,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"eKp" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 8; - pixel_y = -8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -2; - pixel_y = -8 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "eKY" = ( /obj/structure/closet/radiation, /obj/effect/landmark/crap_item, @@ -10263,11 +9839,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"eMx" = ( -/obj/structure/surface/rack, -/obj/item/tool/lighter/zippo, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "eNr" = ( /obj/structure/bed, /obj/effect/landmark/corpsespawner/prisoner, @@ -10353,11 +9924,14 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) -"eSc" = ( -/obj/structure/surface/rack, -/obj/item/tool/pickaxe/plasmacutter, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) +"eSf" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "eSt" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/shiva{ @@ -10379,6 +9953,12 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) +"eUn" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "eUT" = ( /turf/closed/wall/shiva/prefabricated/white, /area/shiva/exterior/cp_lz2) @@ -10409,6 +9989,10 @@ icon_state = "snow_mat" }, /area/shiva/exterior/cp_lz2) +"eWl" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "eWn" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/shiva{ @@ -10433,6 +10017,10 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_lz2) +"eXQ" = ( +/obj/structure/inflatable/popped, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "eYH" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/exterior/cp_lz2) @@ -10465,17 +10053,6 @@ /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/medseceng_caves) -"faR" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 8; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 5; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "faT" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 8; @@ -10483,20 +10060,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/cp_lz2) -"faW" = ( -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1; - pixel_y = 5 - }, -/obj/structure/prop/ice_colony/poly_kevlon_roll{ - dir = 1; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "fbf" = ( /obj/effect/decal/cleanable/blood/oil/streak, /obj/effect/decal/cleanable/dirt, @@ -10510,6 +10073,11 @@ icon_state = "floor3" }, /area/shiva/interior/colony/botany) +"fbS" = ( +/obj/structure/flora/grass/tallgrass/ice/corner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "fcq" = ( /obj/structure/closet/coffin, /obj/effect/landmark/objective_landmark/close, @@ -10633,9 +10201,6 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) -"fjv" = ( -/turf/open/auto_turf/snow/layer4, -/area/shiva/interior/caves/research_caves) "fjI" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/o2, @@ -10718,13 +10283,20 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/wood, /area/shiva/interior/colony/botany) +"fmo" = ( +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "fnw" = ( /obj/structure/stairs/perspective/ice{ dir = 1; icon_state = "p_stair_full" }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/interior/caves/research_caves) "fnx" = ( /turf/open/floor/shiva{ dir = 8; @@ -10753,13 +10325,13 @@ icon_state = "floor7" }, /area/shiva/interior/aerodrome) -"fqb" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 12; - pixel_y = 25 +"fpF" = ( +/obj/structure/stairs/perspective/ice{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) +/area/shiva/interior/warehouse/caves) "fqJ" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -10859,7 +10431,7 @@ "fxy" = ( /obj/item/lightstick/variant/planted, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "fxJ" = ( /obj/structure/surface/table, /obj/item/clipboard{ @@ -10920,6 +10492,10 @@ icon_state = "greenfull" }, /area/shiva/interior/colony/n_admin) +"fBA" = ( +/obj/structure/machinery/space_heater, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "fBJ" = ( /obj/structure/surface/table/woodentable, /obj/item/paper_bin, @@ -10945,6 +10521,10 @@ dir = 1 }, /area/shiva/interior/colony/botany) +"fDH" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "fEf" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/shiva{ @@ -11044,7 +10624,7 @@ "fHx" = ( /obj/vehicle/train/cargo/engine, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "fHH" = ( /obj/item/stack/sheet/metal, /turf/open/floor/shiva{ @@ -11148,6 +10728,21 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"fLk" = ( +/obj/item/clothing/shoes/snow, +/obj/structure/surface/rack, +/obj/item/clothing/shoes/snow, +/obj/item/clothing/suit/storage/snow_suit, +/obj/item/clothing/suit/storage/snow_suit, +/obj/item/tank/emergency_oxygen/engi, +/obj/effect/decal/strata_decals/grime/grime3{ + dir = 8 + }, +/obj/item/clothing/mask/rebreather, +/obj/item/tank/emergency_oxygen/engi, +/obj/item/clothing/mask/rebreather, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "fLz" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 @@ -11192,10 +10787,25 @@ /obj/structure/bed/chair/office/dark, /turf/open/floor/carpet, /area/shiva/interior/colony/medseceng) +"fNf" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata{ + dir = 1 + }, +/turf/open/gm/river, +/area/shiva/interior/warehouse/caves) "fNE" = ( /obj/structure/window/framed/shiva, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"fOa" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "fOE" = ( /obj/item/ammo_magazine/rifle/boltaction, /turf/open/floor/shiva{ @@ -11261,23 +10871,32 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/botany) -"fSR" = ( -/turf/open/floor/shiva, -/area/shiva/interior/caves/research_caves) "fTX" = ( /obj/structure/machinery/space_heater, /turf/open/floor/shiva{ dir = 1 }, /area/shiva/interior/bar) +"fUP" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "bluefull" + }, +/area/shiva/interior/aerodrome) "fUZ" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/cp_bar) -"fVl" = ( -/obj/structure/largecrate/random, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +"fVq" = ( +/obj/structure/prop/invuln/ice_prefab/standalone{ + icon_state = "pink" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "fVw" = ( /obj/structure/prop/ice_colony/dense/planter_box/hydro{ density = 0 @@ -11316,14 +10935,33 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) +"fXp" = ( +/obj/structure/prop/invuln{ + desc = "The mounting points are ground down from heavy use. They'll need some maintenance work before they can be used again."; + icon = 'icons/obj/structures/props/almayer_props.dmi'; + icon_state = "equip_base"; + name = "shuttle attachment point" + }, +/obj/effect/landmark/objective_landmark/close, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/shuttle{ + icon_state = "floor7" + }, +/area/shiva/interior/aerodrome) +"fXr" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "fXB" = ( /obj/structure/largecrate/random/case/double, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"fXQ" = ( -/obj/structure/largecrate/random/case, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "fXX" = ( /turf/open/floor/plating, /area/shiva/interior/caves/research_caves) @@ -11465,29 +11103,11 @@ /obj/item/stack/rods, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/warehouse) -"ggv" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 5; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 6; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "ggC" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11 }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "ggL" = ( /obj/structure/inflatable/popped, @@ -11524,6 +11144,9 @@ icon_state = "redfull" }, /area/shiva/interior/colony/research_hab) +"gik" = ( +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/aerodrome) "giH" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony, /turf/open/floor/plating, @@ -11596,6 +11219,9 @@ dir = 8 }, /area/shiva/interior/colony/central) +"goe" = ( +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/aerodrome) "goh" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -11620,6 +11246,13 @@ /obj/structure/machinery/space_heater, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"gpj" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "gpn" = ( /obj/structure/largecrate/random/case, /turf/open/floor/shiva{ @@ -11629,6 +11262,17 @@ "gpz" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/research_caves) +"gpF" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "bluefull" + }, +/area/shiva/interior/aerodrome) "gpS" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassbb_3" @@ -11674,6 +11318,16 @@ dir = 1 }, /area/shiva/interior/caves/s_lz2) +"grk" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "gso" = ( /obj/structure/platform/strata, /turf/open/gm/river, @@ -11739,12 +11393,16 @@ dir = 1 }, /area/shiva/interior/lz2_habs) +"guH" = ( +/obj/structure/prop/ice_colony/surveying_device, +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "gva" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, /obj/item/lightstick/planted, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "gvz" = ( /turf/open/floor{ @@ -11757,12 +11415,6 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/medseceng) -"gvY" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 1 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "gwq" = ( /obj/structure/bed/chair/comfy/blue, /turf/open/floor/shiva{ @@ -11887,6 +11539,12 @@ }, /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/cp_camp) +"gEn" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber{ + icon_state = "psiphon:1" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "gFb" = ( /obj/structure/surface/table, /obj/structure/window{ @@ -11991,28 +11649,19 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"gJk" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "gJo" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/junkyard/cp_bar) +"gJF" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "gJI" = ( /obj/structure/surface/rack, /obj/item/stack/cable_coil, /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"gKf" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/bar) "gKE" = ( /obj/structure/surface/table, /obj/item/stock_parts/matter_bin{ @@ -12128,6 +11777,16 @@ dir = 10 }, /area/shiva/interior/aerodrome) +"gQK" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "gQL" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/darkred, @@ -12257,6 +11916,10 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) +"gXu" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "gXS" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/medseceng) @@ -12283,6 +11946,14 @@ /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_colony_grounds) +"gZi" = ( +/obj/structure/closet/toolcloset, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"gZk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "gZG" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 2; @@ -12308,6 +11979,13 @@ /obj/structure/platform/strata, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/oob/dev_room) +"hbp" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard) "hbu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/flour{ @@ -12325,7 +12003,7 @@ /area/shiva/interior/warehouse/caves) "hbD" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 10 + dir = 6 }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) @@ -12341,6 +12019,16 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) +"hfw" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/research_hab) "hfN" = ( /obj/structure/surface/table, /turf/open/floor/shiva{ @@ -12362,6 +12050,18 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/telecomm/lz1_biceps) +"hhT" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/lz1_valley) +"hic" = ( +/obj/structure/platform_decoration/strata{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/lz1_valley) "hif" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -12377,6 +12077,13 @@ /obj/structure/machinery/disposal, /turf/open/floor/wood, /area/shiva/interior/colony/central) +"hip" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/gm/river, +/area/shiva/interior/warehouse/caves) "hju" = ( /turf/open/floor/shiva{ dir = 8; @@ -12400,10 +12107,14 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"hlh" = ( -/obj/item/tool/pickaxe, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) +"hkZ" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "vent4"; + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "hlm" = ( /obj/structure/bed/chair{ dir = 8 @@ -12477,6 +12188,10 @@ "hng" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/cp_colony_grounds) +"hnj" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "hnw" = ( /obj/structure/coatrack, /turf/open/floor/wood, @@ -12562,9 +12277,6 @@ icon_state = "wredfull" }, /area/shiva/interior/colony/medseceng) -"hsu" = ( -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "hsw" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/circuitboard, @@ -12672,6 +12384,15 @@ /obj/structure/flora/tree/dead/tree_2, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_s_research) +"hye" = ( +/obj/structure/prop/ice_colony/flamingo{ + dir = 1 + }, +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/lz1_valley) "hyu" = ( /turf/open/floor/shiva{ icon_state = "bluefull" @@ -12715,6 +12436,10 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"hBn" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "hBq" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/interior/caves/cp_camp) @@ -12748,7 +12473,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 8 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "hCt" = ( /obj/structure/machinery/firealarm{ @@ -12826,7 +12551,7 @@ icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform/shiva/catwalk{ - dir = 8 + dir = 4 }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) @@ -12840,6 +12565,18 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/deck) +"hEx" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) +"hEB" = ( +/obj/structure/surface/rack, +/obj/item/tool/lighter/zippo, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "hEE" = ( /obj/structure/barricade/handrail/wire{ dir = 8; @@ -12887,6 +12624,15 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) +"hHR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "hHV" = ( /obj/structure/surface/table, /obj/structure/machinery/cell_charger, @@ -12905,12 +12651,6 @@ }, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/lz2_fortress) -"hIn" = ( -/obj/structure/platform_decoration/strata{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "hIu" = ( /obj/structure/surface/rack, /obj/item/device/radio{ @@ -12935,10 +12675,6 @@ /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) -"hJd" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) "hJH" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, /turf/open/floor/plating, @@ -13035,10 +12771,6 @@ /obj/structure/machinery/light/double, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"hRF" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "hRK" = ( /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" @@ -13054,6 +12786,12 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"hRY" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/ice/layer0, +/area/shiva/interior/warehouse/caves) "hSa" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/ice/layer1, @@ -13126,6 +12864,13 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) +"hUA" = ( +/obj/structure/largecrate/random/secure, +/obj/item/ashtray/bronze{ + pixel_y = 7 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "hUG" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, @@ -13140,13 +12885,6 @@ }, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) -"hVr" = ( -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "hVs" = ( /obj/structure/surface/table, /obj/item/evidencebag{ @@ -13176,16 +12914,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"hWY" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "multi_tiles" - }, -/area/shiva/interior/colony/research_hab) "hXB" = ( /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer2, @@ -13264,6 +12992,16 @@ dir = 1 }, /area/shiva/interior/colony/central) +"ibP" = ( +/obj/structure/closet/toolcloset, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/aerodrome) "icC" = ( /obj/structure/machinery/light/double{ dir = 8; @@ -13291,10 +13029,6 @@ icon_state = "kitchen" }, /area/shiva/interior/bar) -"iel" = ( -/obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "ieo" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -13341,12 +13075,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"ifQ" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-cave-complete" - }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/oob) "igl" = ( /obj/item/paper_bin, /obj/item/tool/pen/blue, @@ -13406,6 +13134,10 @@ /obj/effect/landmark/corpsespawner/wygoon, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/central) +"ijm" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/warehouse/caves) "ijq" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/shiva{ @@ -13419,6 +13151,13 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) +"ijE" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "ijP" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -13466,6 +13205,10 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) +"ilW" = ( +/obj/item/lightstick/planted, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "imk" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer1, @@ -13692,6 +13435,15 @@ icon_state = "red" }, /area/shiva/interior/colony/medseceng) +"ivE" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/lz1_valley) "ivS" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, @@ -13853,7 +13605,7 @@ /area/shiva/exterior/cp_lz2) "iDy" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 9 + dir = 4 }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) @@ -13870,7 +13622,7 @@ icon_state = "p_stair_sn_full_cap" }, /obj/structure/platform/shiva/catwalk{ - dir = 4 + dir = 8 }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) @@ -13902,13 +13654,12 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/botany) -"iGn" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 +"iHu" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 8 }, -/turf/open/floor/shiva, -/area/shiva/interior/bar) +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/lz1_valley) "iHN" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/shiva{ @@ -13942,10 +13693,20 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/research_hab) +"iIg" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "iIP" = ( /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"iIR" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "iJr" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -13969,6 +13730,12 @@ icon_state = "red" }, /area/shiva/interior/colony/medseceng) +"iKW" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/lz1_valley) "iLf" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; @@ -14012,6 +13779,15 @@ /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/colony/central) +"iOp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S-corner" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/lz1_valley) "iOr" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -14086,13 +13862,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/central) -"iSp" = ( -/obj/item/tool/screwdriver, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) -"iSG" = ( -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "iTQ" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -14268,12 +14037,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) -"iYu" = ( -/obj/structure/surface/rack, -/obj/item/device/flashlight, -/obj/item/device/t_scanner, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "iYC" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/interior/plastic/alt, @@ -14295,9 +14058,6 @@ dir = 1 }, /area/shiva/interior/garage) -"iZI" = ( -/turf/closed/wall/shiva/prefabricated/blue, -/area/shiva/interior/caves/cp_camp) "iZX" = ( /obj/structure/machinery/power/apc{ dir = 4; @@ -14321,6 +14081,9 @@ /obj/item/lightstick/red/planted, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/valley) +"jaT" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/warehouse/caves) "jaU" = ( /obj/structure/surface/table, /obj/item/device/whistle, @@ -14363,6 +14126,12 @@ }, /turf/open/floor/carpet, /area/shiva/interior/colony/research_hab) +"jfO" = ( +/obj/effect/spider/stickyweb{ + icon_state = "stickyweb2" + }, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/caves/cp_camp) "jfS" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz2-south-caves" @@ -14379,6 +14148,12 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/botany) +"jhm" = ( +/obj/structure/platform/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/lz1_valley) "jhq" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile" @@ -14410,11 +14185,6 @@ dir = 1 }, /area/shiva/interior/colony/s_admin) -"jjq" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "jkH" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -14423,16 +14193,12 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) -"jkM" = ( -/obj/structure/machinery/door_control/brbutton{ - id = "hangar_ice_2"; - pixel_y = 28 - }, -/obj/structure/platform/shiva/catwalk{ - dir = 8 +"jld" = ( +/obj/item/shard{ + icon_state = "medium" }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "jlv" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/blood{ @@ -14464,21 +14230,6 @@ "jmW" = ( /turf/open/auto_turf/ice/layer2, /area/shiva/interior/caves/cp_camp) -"jnc" = ( -/obj/structure/prop/invuln{ - desc = "The mounting points are ground down from heavy use. They'll need some maintenance work before they can be used again."; - icon = 'icons/obj/structures/props/almayer_props.dmi'; - icon_state = "equip_base"; - name = "shuttle attachment point" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/shuttle{ - icon_state = "floor7" - }, -/area/shiva/interior/aerodrome) "jny" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -14532,7 +14283,7 @@ pixel_x = 15; pixel_y = -3 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jpE" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, @@ -14541,7 +14292,7 @@ "jqo" = ( /obj/item/lightstick/planted, /obj/effect/decal/cleanable/blood/drip, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jqx" = ( /obj/structure/platform/strata, @@ -14647,6 +14398,13 @@ icon_state = "warnplate" }, /area/shiva/interior/colony/medseceng) +"jzs" = ( +/obj/structure/largecrate/random/mini/wooden{ + pixel_x = -16; + pixel_y = -1 + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/warehouse/caves) "jAg" = ( /turf/open/floor/shiva{ icon_state = "snow_mat" @@ -14713,7 +14471,7 @@ icon_state = "large"; name = "ice shard" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "jDp" = ( /obj/structure/surface/table/woodentable, @@ -14726,6 +14484,14 @@ icon_state = "floor3" }, /area/shiva/interior/bar) +"jDv" = ( +/obj/structure/ice/thin/single{ + opacity = 1; + unacidable = 0 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "jDB" = ( /obj/item/shard, /turf/open/floor/shiva{ @@ -14833,6 +14599,14 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"jKm" = ( +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "vent5"; + pixel_x = 16; + pixel_y = 10 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "jKN" = ( /obj/structure/fence, /turf/open/auto_turf/snow/layer0, @@ -14877,11 +14651,21 @@ icon_state = "chapel" }, /area/shiva/interior/colony/central) +"jNr" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "jOi" = ( /turf/open/floor/shiva{ icon_state = "floor3" }, /area/shiva/interior/caves/cp_camp) +"jOv" = ( +/obj/structure/surface/rack, +/obj/item/device/flashlight, +/obj/item/device/t_scanner, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "jOA" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/weapon/gun/smg/pps43, @@ -14944,12 +14728,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) -"jQt" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) "jQy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; @@ -15037,6 +14815,13 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) +"jWh" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "jWL" = ( /obj/structure/machinery/space_heater, /obj/structure/machinery/light/double{ @@ -15052,6 +14837,15 @@ /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"jXM" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/research_hab) "jYO" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -15160,6 +14954,11 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/medseceng) +"kch" = ( +/obj/structure/surface/rack, +/obj/item/tool/pickaxe/plasmacutter, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "kcB" = ( /obj/structure/machinery/landinglight/ds2/spoke, /obj/structure/machinery/landinglight/ds2/delayone{ @@ -15239,14 +15038,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) -"kfl" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz1, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_console) "kfW" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, @@ -15345,13 +15136,19 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"kjU" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 +"kjX" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" }, -/turf/open/floor/wood, -/area/shiva/interior/aerodrome) +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/warehouse/caves) +"klF" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "klN" = ( /obj/effect/spider/stickyweb{ icon_state = "stickyweb2" @@ -15370,6 +15167,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/colony/medseceng) +"kmO" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/colony/research_hab) "kng" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/right_spiders) @@ -15412,17 +15216,6 @@ icon_state = "radiator_tile2" }, /area/shiva/interior/colony/central) -"kqE" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 4; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 1; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "kqH" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -15449,12 +15242,6 @@ icon_state = "green" }, /area/shiva/interior/colony/botany) -"krT" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-elevator" - }, -/turf/closed/wall/shiva/prefabricated/orange, -/area/shiva/interior/colony/research_hab) "krU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/white, @@ -15556,6 +15343,9 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/lz1_valley) +"kwa" = ( +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "kwc" = ( /obj/structure/bed/chair/comfy/blue, /obj/structure/machinery/light/double{ @@ -15601,6 +15391,10 @@ /obj/structure/largecrate/random/barrel/green, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"kyt" = ( +/obj/item/tool/shovel/snow, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "kyu" = ( /obj/structure/surface/table, /obj/structure/machinery/door/window/eastright{ @@ -15611,15 +15405,6 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) -"kyw" = ( -/obj/structure/barricade/metal{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "kyD" = ( /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/junkyard) @@ -15655,6 +15440,27 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) +"kAd" = ( +/obj/structure/closet/radiation, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"kAg" = ( +/mob/living/simple_animal/hostile/retaliate/clown{ + desc = "Uh oh, looks like Gonzo got blocked by a cave-in. How is he gonna get out of this one?"; + health = 10000; + move_to_delay = 2; + name = "Gonzo the Magnificent"; + rapid = 1 + }, +/obj/effect/decal/hefa_cult_decals/d96{ + desc = "Original map by Infernus, remapped by Triiodine." + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/oob/dev_room) +"kAm" = ( +/obj/structure/flora/tree/dead/tree_6, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "kAp" = ( /obj/item/stack/sheet/metal/small_stack, /obj/structure/foamed_metal, @@ -15771,13 +15577,6 @@ /obj/effect/landmark/static_comms/net_one, /turf/open/floor/wood, /area/shiva/interior/aerodrome) -"kGO" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 8 - }, -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "kGW" = ( /obj/structure/flora/tree/dead/tree_2, /turf/open/auto_turf/snow/layer2, @@ -15793,13 +15592,13 @@ icon_state = "redfull" }, /area/shiva/interior/colony/medseceng) -"kIo" = ( -/obj/structure/platform/shiva/catwalk{ - dir = 4 +"kHG" = ( +/obj/structure/largecrate/random/mini/med, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "floor3" }, -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/interior/caves/cp_camp) "kIq" = ( /obj/structure/bed/chair, /turf/open/floor/shiva{ @@ -16030,6 +15829,10 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/research_hab) +"kRq" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "kRI" = ( /obj/structure/surface/table, /turf/open/floor/shiva{ @@ -16068,10 +15871,6 @@ }, /turf/open/gm/river, /area/shiva/interior/caves/cp_camp) -"kSW" = ( -/obj/item/circuitboard, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "kTd" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/colony/research_hab) @@ -16109,12 +15908,6 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) -"kVs" = ( -/obj/structure/platform_decoration/strata{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "kVA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/twohanded/fireaxe, @@ -16276,11 +16069,8 @@ /turf/open/floor/plating, /area/shiva/interior/colony/central) "leg" = ( -/obj/effect/spider/cocoon{ - icon_state = "cocoon_large1" - }, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/turf/closed/wall/shiva/prefabricated/reinforced/hull, +/area/shiva/exterior/telecomm/lz1_north) "lfe" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer1, @@ -16332,12 +16122,12 @@ /obj/structure/surface/rack, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) -"lhu" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "south-spidercave" +"lhP" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/oob) +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "lip" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 10 @@ -16389,6 +16179,9 @@ icon_state = "redfull" }, /area/shiva/interior/colony/research_hab) +"llZ" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/warehouse/caves) "lmt" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/snow/layer0, @@ -16444,7 +16237,7 @@ layer = 2.9 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "lok" = ( /obj/structure/cargo_container/ferret/left, /turf/open/auto_turf/snow/layer3, @@ -16505,6 +16298,17 @@ dir = 1 }, /area/shiva/interior/lz2_habs) +"lqu" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/colony/research_hab) +"lqT" = ( +/obj/effect/spider/stickyweb{ + icon_state = "stickyweb2" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "lqY" = ( /obj/structure/largecrate/random/mini/small_case{ pixel_x = -9; @@ -16552,12 +16356,12 @@ icon_state = "kitchen" }, /area/shiva/interior/colony/central) -"ltJ" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +"ltA" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/snow, +/obj/item/storage/belt/utility/full, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "luD" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer1, @@ -16636,15 +16440,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"lyE" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 4 - }, -/obj/structure/prop/ice_colony/flamingo{ - dir = 1 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "lzQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NS-center" @@ -16660,8 +16455,11 @@ /turf/open/floor/plating, /area/shiva/interior/caves/research_caves) "lAN" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/ice/layer1, +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "lBC" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ @@ -16675,18 +16473,13 @@ /obj/item/tool/pickaxe, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/s_lz2) -"lCe" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 8 - }, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) -"lCp" = ( -/obj/structure/platform_decoration/shiva/catwalk{ - dir = 4 +"lCg" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "lDv" = ( /obj/structure/machinery/computer/crew, /turf/open/floor/shiva{ @@ -16750,6 +16543,12 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) +"lGT" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "lGU" = ( /obj/structure/surface/table, /obj/item/storage/fancy/cigarettes/lucky_strikes{ @@ -16846,14 +16645,14 @@ icon_state = "greencorners" }, /area/shiva/interior/colony/botany) +"lLf" = ( +/obj/item/tool/screwdriver, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "lLv" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"lLE" = ( -/obj/structure/prop/invuln/ice_prefab/standalone, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "lMO" = ( /obj/structure/barricade/snow{ dir = 8 @@ -16966,6 +16765,9 @@ icon_state = "floor3" }, /area/shiva/interior/valley_huts) +"lRJ" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/colony/research_hab) "lSz" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/shiva{ @@ -17007,16 +16809,6 @@ icon_state = "snow_mat" }, /area/shiva/interior/colony/botany) -"lUL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -11; - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "lUQ" = ( /obj/structure/closet/toolcloset, /obj/effect/landmark/objective_landmark/close, @@ -17046,15 +16838,6 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/colony/central) -"lVJ" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/snow, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) -"lVN" = ( -/obj/structure/closet/radiation, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "lWr" = ( /obj/structure/barricade/handrail/strata, /obj/structure/surface/table, @@ -17063,6 +16846,16 @@ dir = 1 }, /area/shiva/interior/colony/central) +"lWC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -10; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "lWL" = ( /obj/effect/spider/cocoon{ icon_state = "cocoon_large3" @@ -17123,6 +16916,13 @@ icon_state = "floor3" }, /area/shiva/interior/bar) +"lXQ" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "lYf" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -17232,10 +17032,6 @@ }, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) -"mda" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "mdx" = ( /turf/open/floor/shiva{ dir = 1 @@ -17322,7 +17118,7 @@ "mhs" = ( /obj/effect/spawner/random/powercell, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "mhx" = ( /obj/structure/machinery/light/double, /turf/open/floor/shiva{ @@ -17340,10 +17136,6 @@ "mib" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/medseceng_caves) -"mie" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/research_caves) "miD" = ( /turf/open/floor/shiva{ dir = 4; @@ -17362,6 +17154,13 @@ /obj/structure/largecrate/random/case/small, /turf/open/floor/plating, /area/shiva/interior/colony/central) +"mkC" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "mkK" = ( /obj/structure/surface/table/reinforced/prison, /turf/open/floor/shiva{ @@ -17375,7 +17174,7 @@ /area/shiva/interior/caves/s_lz2) "mlX" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "Research Landing Zone" + name = "LZ2: Research Landing Zone" }, /turf/open/floor/plating, /area/shiva/exterior/lz2_fortress) @@ -17384,14 +17183,6 @@ dir = 1 }, /area/shiva/interior/colony/deck) -"mmW" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent5"; - pixel_x = 16; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "mnD" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile2" @@ -17403,12 +17194,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/interior/colony/medseceng) -"mnZ" = ( -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "moV" = ( /obj/structure/closet/crate/freezer/rations, /obj/item/reagent_container/food/snacks/bigbiteburger, @@ -17426,6 +17211,10 @@ }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) +"mpI" = ( +/obj/structure/fence, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "mqd" = ( /obj/structure/filingcabinet, /obj/item/paper/research_notes, @@ -17477,10 +17266,6 @@ icon_state = "green" }, /area/shiva/interior/colony/botany) -"msh" = ( -/obj/structure/flora/tree/dead/tree_6, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "msu" = ( /obj/structure/closet/bodybag, /obj/effect/landmark/objective_landmark/close, @@ -17519,13 +17304,6 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"muI" = ( -/obj/structure/barricade/handrail/wire{ - dir = 4 - }, -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "muN" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp, @@ -17575,12 +17353,25 @@ icon_state = "floor3" }, /area/shiva/interior/bar) +"mxr" = ( +/obj/structure/stairs/perspective/ice{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "myR" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 }, /turf/closed/wall/shiva/ice, /area/shiva/interior/caves/s_lz2) +"mzf" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_3" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "mzx" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim, /turf/open/auto_turf/snow/layer2, @@ -17658,6 +17449,15 @@ icon_state = "bluefull" }, /area/shiva/interior/colony/s_admin) +"mCG" = ( +/obj/structure/platform_decoration/strata{ + dir = 4 + }, +/obj/structure/platform_decoration/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "mCQ" = ( /obj/structure/prop/ice_colony/surveying_device/measuring_device{ dir = 1; @@ -17725,6 +17525,15 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) +"mGk" = ( +/obj/item/tool/shovel/snow, +/obj/item/storage/fancy/cigarettes/arcturian_ace{ + layer = 3.1; + pixel_x = -8; + pixel_y = 23 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "mGn" = ( /obj/structure/machinery/light/double{ dir = 4; @@ -17840,6 +17649,10 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) +"mKD" = ( +/obj/structure/machinery/cell_charger, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "mKF" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/auto_turf/ice/layer1, @@ -17863,12 +17676,6 @@ icon_state = "floor3" }, /area/shiva/interior/bar) -"mLR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "mLT" = ( /obj/structure/machinery/alarm{ pixel_y = 24 @@ -17890,6 +17697,19 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) +"mME" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = -13; + pixel_y = 28 + }, +/obj/structure/largecrate/random/mini/small_case/b, +/obj/structure/largecrate/random/mini/small_case{ + pixel_x = 14; + pixel_y = -3 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "mMK" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) @@ -17915,10 +17735,6 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/lz1_valley) -"mOT" = ( -/mob/living/simple_animal/hostile/giant_spider/hunter, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "mOY" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/shiva, @@ -17997,22 +17813,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/central) -"mTN" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 - }, -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 4; - pixel_x = -5; - pixel_y = -2 - }, -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 1; - pixel_x = 7; - pixel_y = 16 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "mUB" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -18032,15 +17832,6 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"mUT" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/colony/research_hab) "mVl" = ( /obj/structure/prop/dam/truck, /turf/open/floor/shiva{ @@ -18187,6 +17978,11 @@ icon_state = "floor3" }, /area/shiva/interior/colony/central) +"ndb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/colony/research_hab) "ndJ" = ( /obj/structure/flora/bush/snow{ icon_state = "snowgrassall_3" @@ -18293,12 +18089,22 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/n_admin) -"nhF" = ( -/obj/structure/prop/ice_colony/surveying_device{ - dir = 4 +"nig" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer4, /area/shiva/interior/caves/cp_camp) +"nij" = ( +/obj/item/circuitboard, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) +"niA" = ( +/obj/structure/stairs/perspective/ice{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "niL" = ( /obj/structure/platform/strata{ dir = 8 @@ -18311,10 +18117,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"nkH" = ( -/obj/structure/girder, -/turf/open/floor/shiva, -/area/shiva/interior/caves/research_caves) "nlx" = ( /obj/structure/platform/strata, /obj/structure/platform/strata{ @@ -18334,6 +18136,13 @@ dir = 1 }, /area/shiva/exterior/lz2_fortress) +"nmf" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "pink_trim" + }, +/obj/structure/prop/invuln/ice_prefab/roof_greeble, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "nmi" = ( /obj/item/weapon/twohanded/spear, /turf/open/floor/shiva{ @@ -18390,6 +18199,10 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/medseceng) +"npY" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "nqu" = ( /turf/open/floor/shiva{ dir = 1; @@ -18473,6 +18286,18 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"nvu" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "nvS" = ( /turf/open/floor/shiva{ dir = 8; @@ -18496,6 +18321,17 @@ /obj/structure/machinery/space_heater, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"nxt" = ( +/obj/structure/platform_decoration/strata{ + dir = 1 + }, +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "nxA" = ( /obj/structure/bed/chair/office/dark{ dir = 4 @@ -18504,6 +18340,17 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) +"nyc" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) +"nyS" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/obj/structure/platform/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "nzf" = ( /obj/structure/surface/table, /obj/structure/noticeboard{ @@ -18524,10 +18371,11 @@ /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) "nzr" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" }, -/turf/open/auto_turf/ice/layer0, +/turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) "nzR" = ( /obj/structure/largecrate/random/case/small, @@ -18537,18 +18385,6 @@ /obj/item/tool/crowbar, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) -"nAp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/desertdam/decals/road_stop{ - icon_state = "road_edge_decal8" - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) "nAs" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/snow/layer1, @@ -18625,6 +18461,16 @@ }, /turf/open/floor/plating, /area/shiva/exterior/lz1_valley) +"nEQ" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) +"nEU" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "nEZ" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/shiva{ @@ -18667,14 +18513,6 @@ dir = 1 }, /area/shiva/interior/colony/n_admin) -"nHp" = ( -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent4"; - pixel_x = -4; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "nHt" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -18692,6 +18530,13 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) +"nIA" = ( +/obj/item/lightstick/red/variant/planted, +/obj/structure/platform/shiva/catwalk{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/aerodrome) "nIB" = ( /obj/structure/surface/table, /obj/item/device/taperecorder, @@ -18707,10 +18552,6 @@ }, /turf/open/floor/wood, /area/shiva/interior/bar) -"nJu" = ( -/obj/item/frame/rack, -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/caves/cp_camp) "nKc" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 1; @@ -18783,15 +18624,6 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) -"nNl" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) "nNN" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -18819,13 +18651,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_colony_grounds) -"nOw" = ( -/obj/structure/stairs/perspective/ice{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "nOB" = ( /obj/item/stack/sheet/metal, /turf/open/floor/shiva{ @@ -18833,6 +18658,15 @@ icon_state = "purplefull" }, /area/shiva/interior/colony/research_hab) +"nOK" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) "nPb" = ( /obj/structure/prop/ice_colony/soil_net, /obj/structure/platform/strata{ @@ -18870,10 +18704,13 @@ icon_state = "bluefull" }, /area/shiva/interior/colony/n_admin) -"nRL" = ( -/obj/item/device/flashlight, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) +"nRD" = ( +/obj/structure/stairs/perspective/ice{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/warehouse/caves) "nSI" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -18910,6 +18747,12 @@ }, /turf/open/floor/wood, /area/shiva/interior/aerodrome) +"nUk" = ( +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "nUn" = ( /obj/structure/bed/chair{ dir = 8 @@ -18977,6 +18820,13 @@ "nZA" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/interior/warehouse/caves) +"nZG" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -16; + pixel_y = -3 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "nZM" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -19034,12 +18884,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) -"ocl" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "labs-larder" - }, -/turf/closed/wall/shiva/prefabricated/blue, -/area/shiva/interior/colony/research_hab) "ocv" = ( /obj/item/weapon/ice_axe/red, /turf/open/auto_turf/ice/layer0, @@ -19062,16 +18906,6 @@ }, /turf/open/floor/shiva, /area/shiva/interior/bar) -"ocI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -10; - pixel_y = -1 - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "odb" = ( /obj/structure/machinery/light/double{ dir = 8; @@ -19101,10 +18935,6 @@ }, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/lz1_valley) -"ofr" = ( -/obj/item/frame/rack, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "ofw" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/junkyard) @@ -19150,6 +18980,12 @@ icon_state = "yellowfull" }, /area/shiva/interior/garage) +"ohd" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 1 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "ohq" = ( /obj/structure/largecrate/random/case, /turf/open/floor/shiva{ @@ -19168,6 +19004,17 @@ /obj/structure/flora/tree/dead/tree_1, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"oiL" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 15; + pixel_y = -3 + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -16; + pixel_y = -3 + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "oiX" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -19179,6 +19026,13 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/valley) +"okc" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/aerodrome) "okz" = ( /obj/effect/decal/cleanable/blood{ layer = 3 @@ -19195,9 +19049,6 @@ icon_state = "redfull" }, /area/shiva/interior/colony/medseceng) -"ols" = ( -/turf/closed/wall/shiva/prefabricated/reinforced/hull, -/area/shiva/exterior/valley) "olI" = ( /obj/item/device/pinpointer, /turf/open/floor/shiva{ @@ -19219,10 +19070,6 @@ /obj/item/evidencebag, /turf/open/floor/wood, /area/shiva/interior/colony/medseceng) -"onF" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "onM" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -19299,6 +19146,10 @@ dir = 1 }, /area/shiva/interior/colony/central) +"ork" = ( +/obj/structure/flora/tree/dead/tree_1, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "ors" = ( /obj/effect/decal/cleanable/dirt, /turf/open/auto_turf/ice/layer1, @@ -19322,6 +19173,16 @@ /obj/structure/prop/ice_colony/dense/ice_tray, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"osV" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 4; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/research_hab) "otA" = ( /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 7 @@ -19377,7 +19238,7 @@ "owr" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "owt" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -19451,14 +19312,6 @@ /obj/structure/largecrate, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) -"oCk" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 2.99; - pixel_x = 12; - pixel_y = 28 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/valley) "oCr" = ( /obj/item/shard{ icon_state = "large" @@ -19689,9 +19542,16 @@ "oQl" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/valley) +"oQo" = ( +/turf/closed/wall/shiva/prefabricated, +/area/shiva/exterior/cp_s_research) "oRH" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/interior/caves/cp_camp) +"oRK" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/valley) "oSU" = ( /obj/structure/machinery/disposal, /turf/open/floor/shiva{ @@ -19779,6 +19639,7 @@ /obj/structure/platform/strata{ dir = 4 }, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "oZs" = ( @@ -19841,7 +19702,7 @@ "pct" = ( /obj/effect/spider/stickyweb, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "pcC" = ( /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced/prison, @@ -19869,22 +19730,11 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/yellow, /obj/structure/machinery/light/double{ - dir = 4; + dir = 8; pixel_y = -5 }, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"pei" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pey" = ( /obj/structure/platform/strata{ dir = 4 @@ -19897,6 +19747,10 @@ icon_state = "bluefull" }, /area/shiva/interior/colony/n_admin) +"pff" = ( +/obj/item/stack/rods, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "pfg" = ( /obj/structure/barricade/handrail/strata{ dir = 8 @@ -19986,10 +19840,6 @@ "plM" = ( /turf/open/auto_turf/ice/layer0, /area/shiva/exterior/junkyard) -"plS" = ( -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "pmj" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/ice/layer1, @@ -20033,6 +19883,15 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) +"poz" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/lz1_valley) "ppb" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 9 @@ -20045,6 +19904,12 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) +"ppS" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "pqe" = ( /turf/closed/wall/shiva/prefabricated/reinforced/hull, /area/shiva/interior/bar) @@ -20076,7 +19941,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/junkyard) +/area/shiva/interior/caves/research_caves) "prU" = ( /obj/structure/machinery/light/double{ dir = 8; @@ -20118,7 +19983,7 @@ icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/junkyard) +/area/shiva/interior/caves/research_caves) "ptr" = ( /turf/open/floor/shiva{ dir = 8; @@ -20178,10 +20043,6 @@ "pvv" = ( /turf/open/floor/shiva, /area/shiva/interior/aerodrome) -"pvR" = ( -/obj/structure/platform_decoration/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "pvU" = ( /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer2, @@ -20193,10 +20054,10 @@ /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) "pwT" = ( -/turf/open/floor/shiva{ - dir = 1; - icon_state = "snow_mat" +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_1" }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "pxi" = ( /obj/structure/closet/secure_closet/engineering_welding, @@ -20226,16 +20087,6 @@ dir = 1 }, /area/shiva/exterior/lz2_fortress) -"pyB" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 10; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pyI" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -20327,7 +20178,14 @@ icon_state = "p_stair_sn_full_cap" }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/interior/caves/research_caves) +"pCw" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "pCH" = ( /obj/item/tool/shovel, /turf/open/auto_turf/snow/layer3, @@ -20374,10 +20232,6 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) -"pDH" = ( -/obj/structure/platform_decoration/strata, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "pDW" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer1, @@ -20434,11 +20288,6 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) -"pFq" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar/red, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "pFt" = ( /turf/open/floor/shiva{ icon_state = "red" @@ -20468,10 +20317,22 @@ dir = 1 }, /area/shiva/exterior/lz2_fortress) +"pGi" = ( +/obj/structure/prop/ice_colony/ground_wire, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "pGj" = ( /obj/item/weapon/ice_axe/red, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) +"pGt" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "pGL" = ( /obj/structure/platform/strata{ dir = 1 @@ -20506,6 +20367,15 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) +"pIV" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim, +/obj/structure/prop/invuln/ice_prefab/roof_greeble{ + icon_state = "windsock"; + pixel_x = 6; + pixel_y = -1 + }, +/turf/closed/wall/shiva/ice, +/area/shiva/exterior/cp_s_research) "pJp" = ( /obj/effect/decal/cleanable/ash, /turf/open/floor/shiva{ @@ -20691,10 +20561,6 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/medseceng) -"pOy" = ( -/obj/structure/inflatable, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "pOI" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/dry_ramen, @@ -20724,10 +20590,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"pPY" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "pQt" = ( /obj/item/stack/sheet/metal, /turf/open/floor/shiva{ @@ -20744,6 +20606,13 @@ }, /turf/open/floor/shiva, /area/shiva/interior/colony/research_hab) +"pRM" = ( +/obj/structure/platform_decoration/strata{ + dir = 1 + }, +/obj/structure/platform_decoration/strata, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "pRU" = ( /obj/item/stack/cable_coil/white, /turf/open/auto_turf/ice/layer1, @@ -20845,16 +20714,18 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"pWp" = ( +/obj/structure/barricade/handrail/wire{ + dir = 4 + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "pWw" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/colonist, /obj/effect/landmark/good_item, /turf/open/floor/wood, /area/shiva/interior/colony/botany) -"pWY" = ( -/obj/structure/girder, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "pXU" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -16; @@ -20910,6 +20781,18 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) +"qdh" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 4 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) +"qdH" = ( +/turf/closed/wall/shiva/prefabricated/blue, +/area/shiva/exterior/junkyard/cp_bar) "qep" = ( /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_colony_grounds) @@ -20955,18 +20838,13 @@ icon_state = "yellowfull" }, /area/shiva/interior/garage) -"qfI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/obj/structure/desertdam/decals/road_stop{ - icon_state = "road_edge_decal5" - }, -/turf/open/floor/shiva{ - dir = 1; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) +"qfR" = ( +/obj/structure/flora/grass/tallgrass/ice, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/research_caves) +"qfZ" = ( +/turf/closed/wall/shiva/prefabricated/orange, +/area/shiva/interior/caves/research_caves) "qgd" = ( /obj/structure/prop/ice_colony/ground_wire, /turf/open/auto_turf/ice/layer2, @@ -20991,9 +20869,9 @@ dir = 1 }, /area/shiva/interior/colony/central) -"qgD" = ( -/turf/closed/wall/shiva/prefabricated/reinforced/hull, -/area/shiva/interior/colony/research_hab) +"qgP" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/warehouse/caves) "qhm" = ( /obj/structure/barricade/metal{ dir = 4 @@ -21028,6 +20906,10 @@ icon_state = "floor3" }, /area/shiva/interior/bar) +"qiy" = ( +/obj/structure/barricade/handrail/wire, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/cp_s_research) "qjY" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer0, @@ -21158,6 +21040,13 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) +"qnJ" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/caves/cp_camp) "qof" = ( /obj/item/stack/cable_coil/blue, /obj/structure/airlock_assembly, @@ -21232,9 +21121,12 @@ dir = 1 }, /area/shiva/interior/colony/central) +"qrY" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/exterior/junkyard) "qsN" = ( /obj/structure/machinery/light/double{ - dir = 8; + dir = 4; pixel_y = -5 }, /turf/open/floor/interior/plastic, @@ -21259,17 +21151,6 @@ /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/lz1_valley) -"quO" = ( -/obj/item/tool/shovel/snow, -/obj/item/tool/shovel/snow{ - pixel_y = 8 - }, -/obj/structure/surface/rack, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) "qvr" = ( /obj/structure/machinery/alarm{ dir = 8; @@ -21360,16 +21241,6 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/medseceng) -"qBn" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 9 - }, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "vent5"; - pixel_y = 10 - }, -/turf/open/auto_turf/snow/layer3, -/area/shiva/interior/caves/cp_camp) "qBM" = ( /obj/structure/platform/strata{ dir = 8 @@ -21377,12 +21248,6 @@ /obj/structure/platform/strata, /turf/open/gm/river, /area/shiva/interior/caves/cp_camp) -"qBN" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/shiva{ - icon_state = "radiator_tile" - }, -/area/shiva/interior/caves/cp_camp) "qCa" = ( /obj/structure/bed/chair{ dir = 4 @@ -21415,6 +21280,15 @@ icon_state = "floor3" }, /area/shiva/interior/colony/botany) +"qCW" = ( +/obj/structure/platform/strata{ + dir = 1 + }, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/interior/caves/research_caves) "qDg" = ( /obj/structure/bed/chair{ dir = 8 @@ -21456,8 +21330,19 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) +"qEH" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) +"qEK" = ( +/obj/structure/prop/invuln/ice_prefab/standalone{ + icon_state = "white" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "qEQ" = ( /obj/structure/platform/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard) "qFx" = ( @@ -21478,17 +21363,6 @@ "qIr" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/warehouse) -"qIu" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 4; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 9; - pixel_y = 10 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "qII" = ( /turf/open/floor/shiva{ dir = 6; @@ -21506,30 +21380,6 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) -"qKn" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 4 - }, -/obj/structure/bed/chair{ - dir = 4; - pixel_y = 8 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/shiva{ - dir = 4; - icon_state = "snow_mat" - }, -/area/shiva/interior/caves/cp_camp) -"qKA" = ( -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "qLA" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 8 @@ -21556,6 +21406,11 @@ /obj/structure/flora/grass/tallgrass/ice, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) +"qMT" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "qNj" = ( /obj/structure/flora/tree/dead/tree_5, /turf/open/auto_turf/snow/layer2, @@ -21582,9 +21437,6 @@ }, /turf/open/gm/river, /area/shiva/exterior/cp_lz2) -"qNE" = ( -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "qNK" = ( /obj/structure/surface/table, /obj/item/reagent_container/glass/beaker/cryopredmix{ @@ -21617,10 +21469,6 @@ /obj/item/storage/firstaid/rad, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"qOP" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) "qOZ" = ( /obj/structure/bed/chair/comfy/beige{ dir = 8 @@ -21637,17 +21485,6 @@ }, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"qPi" = ( -/obj/structure/closet/toolcloset, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) -"qPj" = ( -/obj/structure/platform/strata{ - dir = 4 - }, -/obj/structure/platform/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) "qRb" = ( /obj/structure/barricade/metal/wired, /turf/open/floor/shiva{ @@ -21680,10 +21517,6 @@ /obj/item/stack/sheet/metal, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_colony_grounds) -"qRV" = ( -/obj/structure/platform/strata, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/valley) "qRX" = ( /obj/structure/tunnel{ id = "hydroponics_tunnel" @@ -21782,14 +21615,6 @@ icon_state = "greenfull" }, /area/shiva/interior/colony/n_admin) -"qXC" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 8; - pixel_x = -6; - pixel_y = 13 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "qXS" = ( /turf/open/floor/shiva, /area/shiva/interior/bar) @@ -21885,15 +21710,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) -"rdQ" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim, -/obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "windsock"; - pixel_x = 6; - pixel_y = -1 - }, -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "rdS" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement, @@ -21945,10 +21761,6 @@ /obj/structure/platform/strata, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) -"rfv" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "rfU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 9 @@ -21987,6 +21799,14 @@ icon_state = "redfull" }, /area/shiva/interior/colony/research_hab) +"rib" = ( +/obj/structure/ice/thin/single{ + opacity = 1; + unacidable = 0 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer2, +/area/shiva/exterior/valley) "ril" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/open/floor/shiva{ @@ -22019,6 +21839,10 @@ /obj/structure/window/framed/shiva, /turf/open/floor/plating, /area/shiva/interior/garage) +"rkG" = ( +/obj/structure/flora/tree/dead/tree_2, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rkS" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -13; @@ -22032,6 +21856,15 @@ icon_state = "warnplate" }, /area/shiva/exterior/junkyard/fortbiceps) +"rld" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "rli" = ( /obj/structure/flora/tree/dead/tree_1, /turf/open/auto_turf/snow/layer2, @@ -22048,15 +21881,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_colony_grounds) -"rnO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S-corner" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "rov" = ( /obj/item/lightstick/red/spoke/planted{ layer = 3.1; @@ -22077,7 +21901,7 @@ unacidable = 0 }, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "rpL" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -22091,6 +21915,20 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) +"rqK" = ( +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal5"; + pixel_y = -17 + }, +/turf/closed/wall/shiva/prefabricated/orange, +/area/shiva/interior/colony/research_hab) +"rrj" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/research_caves) "rsa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -22122,10 +21960,6 @@ /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) -"rwy" = ( -/obj/structure/inflatable/popped, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/research_alley) "rwQ" = ( /obj/structure/bedsheetbin, /turf/open/floor/shiva{ @@ -22137,17 +21971,6 @@ /obj/structure/bed/chair, /turf/open/floor/interior/plastic/alt, /area/shiva/interior/warehouse) -"rxf" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, -/area/shiva/interior/aerodrome) "rxF" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "pink" @@ -22181,6 +22004,10 @@ icon_state = "yellow" }, /area/shiva/interior/lz2_habs) +"rzw" = ( +/obj/structure/platform_decoration/strata, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rzz" = ( /obj/structure/flora/pottedplant, /turf/open/floor/shiva{ @@ -22351,6 +22178,10 @@ icon_state = "floor3" }, /area/shiva/interior/colony/s_admin) +"rKq" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/cp_s_research) "rKW" = ( /obj/structure/machinery/computer3/powermonitor, /turf/open/floor/shiva{ @@ -22404,6 +22235,17 @@ icon_state = "purplefull" }, /area/shiva/interior/colony/research_hab) +"rNx" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shiva/interior/aerodrome) "rNO" = ( /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer2, @@ -22430,6 +22272,17 @@ }, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) +"rPa" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shiva/interior/aerodrome) "rRb" = ( /obj/structure/surface/rack, /obj/item/weapon/ice_axe, @@ -22467,6 +22320,9 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) +"rRZ" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/exterior/cp_s_research) "rSr" = ( /obj/structure/bed/chair/office/light, /turf/open/floor/shiva{ @@ -22523,6 +22379,10 @@ icon_state = "yellowfull" }, /area/shiva/interior/lz2_habs) +"rUW" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "rVF" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/shiva{ @@ -22570,6 +22430,13 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) +"rWW" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11; + pixel_y = 20 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "rXn" = ( /turf/closed/shuttle/elevator{ dir = 5 @@ -22591,6 +22458,10 @@ /obj/effect/landmark/railgun_camera_pos, /turf/open/auto_turf/ice/layer1, /area/shiva/exterior/cp_lz2) +"rYj" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/junkyard/cp_bar) "rZj" = ( /obj/structure/surface/table, /obj/structure/machinery/computer/station_alert{ @@ -22661,6 +22532,13 @@ "sax" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/warehouse/caves) +"saA" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "sbd" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/shiva{ @@ -22675,6 +22553,12 @@ /obj/structure/largecrate/random/barrel/green, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"scp" = ( +/obj/structure/platform_decoration/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/lz1_valley) "scN" = ( /obj/structure/surface/table, /obj/item/device/assembly/infra, @@ -22753,6 +22637,12 @@ "sgX" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/telecomm/lz2_northeast) +"shi" = ( +/obj/structure/prop/invuln/ice_prefab/standalone/trim{ + icon_state = "white_trim" + }, +/turf/closed/wall/shiva/ice, +/area/shiva/exterior/cp_s_research) "shx" = ( /obj/structure/ice/thin/single{ opacity = 1; @@ -22827,14 +22717,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"skK" = ( -/obj/structure/prop/ice_colony/surveying_device/measuring_device{ - dir = 8; - pixel_x = -6; - pixel_y = 13 - }, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "slj" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile" @@ -22885,9 +22767,6 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) -"snZ" = ( -/turf/closed/wall/shiva/prefabricated/reinforced, -/area/shiva/exterior/valley) "sod" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/junkyard/fortbiceps) @@ -22923,6 +22802,13 @@ icon_state = "floor3" }, /area/shiva/interior/colony/deck) +"srJ" = ( +/obj/structure/stairs/perspective/ice{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/research_caves) "ssf" = ( /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/central) @@ -22954,18 +22840,15 @@ /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_colony_grounds) "sud" = ( -/turf/open/floor/shiva{ - icon_state = "snow_mat" +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_1" }, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "suD" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/medseceng_caves) -"swn" = ( -/obj/structure/largecrate/random, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "swF" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -22983,7 +22866,7 @@ icon_state = "medium"; name = "ice shard" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "swW" = ( /obj/structure/machinery/space_heater, @@ -23147,10 +23030,24 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) +"sDd" = ( +/obj/item/lightstick/planted, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) +"sEC" = ( +/obj/structure/flora/grass/tallgrass/ice/corner{ + dir = 10 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "sFj" = ( /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) +"sFs" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/aerodrome) "sFu" = ( /obj/item/tool/mop, /turf/open/floor/wood, @@ -23234,7 +23131,7 @@ /obj/item/shard{ icon_state = "large" }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "sIX" = ( /obj/structure/machinery/constructable_frame{ @@ -23286,6 +23183,13 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/botany) +"sKi" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva, +/area/shiva/interior/aerodrome) "sKH" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12 @@ -23393,6 +23297,9 @@ icon_state = "redfull" }, /area/shiva/interior/colony/research_hab) +"sQX" = ( +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "sRV" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgibdown1" @@ -23617,6 +23524,13 @@ icon_state = "green" }, /area/shiva/interior/colony/botany) +"teK" = ( +/obj/structure/stairs/perspective/ice{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/ice/layer2, +/area/shiva/interior/warehouse/caves) "tfd" = ( /turf/open/floor/wood, /area/shiva/interior/colony/central) @@ -23649,16 +23563,6 @@ dir = 1 }, /area/shiva/interior/colony/s_admin) -"thK" = ( -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) -"tig" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "tiw" = ( /obj/structure/machinery/light, /turf/open/floor/shiva{ @@ -23669,6 +23573,9 @@ /obj/structure/fence, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) +"tjL" = ( +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/aerodrome) "tkb" = ( /obj/structure/surface/table, /obj/item/tool/pen/blue, @@ -23680,15 +23587,13 @@ /obj/structure/largecrate/random/case, /turf/open/asphalt/cement, /area/shiva/interior/warehouse) -"tkB" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 8 +"tkS" = ( +/obj/structure/largecrate/random/mini/med{ + pixel_x = -7; + pixel_y = 9 }, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "tle" = ( /obj/structure/prop/invuln/ice_prefab/standalone, /turf/open/auto_turf/snow/layer2, @@ -23731,6 +23636,10 @@ icon_state = "red" }, /area/shiva/interior/colony/central) +"tmP" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "tmV" = ( /obj/structure/machinery/door/airlock/multi_tile/elevator/arrivals, /turf/open/shuttle/elevator/grating, @@ -23781,6 +23690,15 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) +"too" = ( +/obj/structure/prop/ice_colony/soil_net, +/obj/item/tool/shovel/spade{ + layer = 2.99; + pixel_x = -9; + pixel_y = -11 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "toA" = ( /turf/open/floor/shiva{ dir = 1; @@ -23803,6 +23721,10 @@ icon_state = "redfull" }, /area/shiva/interior/colony/research_hab) +"toO" = ( +/obj/item/stack/rods, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "tpg" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/lz1_valley) @@ -23810,7 +23732,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, -/obj/effect/decal/cleanable/dirt, +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal5"; + pixel_x = -14 + }, /turf/open/floor/shiva{ dir = 8; icon_state = "purplefull" @@ -23841,15 +23766,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/shiva/interior/caves/cp_camp) -"trw" = ( -/obj/structure/platform/strata{ - dir = 1 - }, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) "trX" = ( /obj/structure/machinery/conveyor, /obj/effect/decal/cleanable/dirt, @@ -23887,13 +23803,6 @@ dir = 1 }, /area/shiva/exterior/cp_colony_grounds) -"tue" = ( -/obj/structure/platform/strata{ - dir = 8 - }, -/obj/structure/platform/strata, -/turf/open/gm/river, -/area/shiva/interior/caves/left_spiders) "tuz" = ( /obj/structure/platform_decoration/strata{ dir = 1 @@ -23959,12 +23868,6 @@ icon_state = "red" }, /area/shiva/interior/colony/medseceng) -"txO" = ( -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/caves/cp_camp) "txS" = ( /turf/open/floor/shiva{ icon_state = "multi_tiles" @@ -24182,8 +24085,8 @@ }, /area/shiva/interior/colony/botany) "tJP" = ( -/obj/structure/surface/rack, -/turf/open/auto_turf/ice/layer0, +/obj/structure/flora/tree/dead/tree_4, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "tJS" = ( /obj/structure/blocker/invisible_wall, @@ -24193,6 +24096,10 @@ /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, +/obj/structure/desertdam/decals/road_stop{ + icon_state = "road_edge_decal8"; + pixel_x = -14 + }, /turf/open/floor/shiva{ dir = 8; icon_state = "purplefull" @@ -24235,6 +24142,13 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) +"tLC" = ( +/obj/item/lightstick/red/variant/planted, +/obj/structure/platform/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/aerodrome) "tLP" = ( /obj/structure/platform/shiva/catwalk{ dir = 1 @@ -24336,6 +24250,10 @@ icon_state = "floor3" }, /area/shiva/interior/valley_huts/no2) +"tPB" = ( +/obj/structure/platform/strata, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "tPJ" = ( /obj/structure/platform/shiva/catwalk, /turf/open/auto_turf/snow/layer1, @@ -24376,10 +24294,6 @@ icon_state = "floor3" }, /area/shiva/interior/colony/botany) -"tRn" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "tRq" = ( /obj/structure/filingcabinet{ pixel_x = 8; @@ -24438,7 +24352,7 @@ /area/shiva/interior/colony/research_hab) "tTc" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "tTd" = ( /obj/structure/prop/ice_colony/dense/planter_box{ @@ -24639,6 +24553,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"ucN" = ( +/obj/structure/flora/grass/tallgrass/ice/corner{ + dir = 6 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "udD" = ( /obj/structure/prop/dam/truck{ dir = 4; @@ -24736,13 +24657,9 @@ /obj/structure/largecrate/random/case/double, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) -"ugD" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva, -/area/shiva/interior/aerodrome) +"ugC" = ( +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/oob) "ugP" = ( /obj/structure/computerframe, /turf/open/floor/shiva{ @@ -24792,18 +24709,15 @@ icon_state = "floor3" }, /area/shiva/interior/colony/s_admin) -"uil" = ( -/obj/structure/prop/invuln/ice_prefab/standalone/trim{ - icon_state = "white_trim" - }, -/turf/closed/wall/shiva/ice, -/area/shiva/exterior/research_alley) "uim" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/shiva{ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) +"uir" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/caves/cp_camp) "uiI" = ( /obj/item/reagent_container/food/drinks/cans/beer, /turf/open/auto_turf/snow/layer0, @@ -24882,6 +24796,10 @@ /obj/structure/platform/shiva/catwalk, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/junkyard/fortbiceps) +"ulI" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/caves/cp_camp) "ulZ" = ( /obj/structure/platform/shiva/catwalk, /obj/structure/cable/heavyduty{ @@ -24935,11 +24853,11 @@ /turf/closed/wall/shiva/prefabricated/white, /area/shiva/exterior/cp_lz2) "uoZ" = ( -/obj/effect/spider/stickyweb{ - icon_state = "stickyweb2" +/obj/structure/tunnel{ + id = "south_tcomms_tunnel" }, /turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) +/area/shiva/interior/caves/cp_camp) "upf" = ( /obj/item/tool/pickaxe, /turf/open/auto_turf/snow/layer1, @@ -24961,6 +24879,11 @@ icon_state = "purplefull" }, /area/shiva/interior/lz2_habs) +"upK" = ( +/obj/effect/landmark/corpsespawner/engineer, +/obj/effect/decal/cleanable/blood, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "uqb" = ( /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) @@ -25063,6 +24986,12 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/botany) +"uxZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "uyI" = ( /obj/structure/largecrate/random/mini/small_case/c{ pixel_x = 11; @@ -25254,6 +25183,10 @@ /obj/item/stack/sheet/plasteel/medium_stack, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/s_lz2) +"uIE" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "uII" = ( /obj/structure/surface/table, /obj/effect/landmark/corpsespawner/scientist, @@ -25261,6 +25194,13 @@ icon_state = "floor3" }, /area/shiva/interior/colony/research_hab) +"uIO" = ( +/obj/item/lightstick/red/variant/planted{ + pixel_x = 11; + pixel_y = 11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "uJg" = ( /obj/item/clothing/shoes/snow, /obj/structure/surface/rack, @@ -25367,6 +25307,9 @@ }, /turf/open/gm/river/no_overlay, /area/shiva/interior/caves/cp_camp) +"uLi" = ( +/turf/open/auto_turf/ice/layer0, +/area/shiva/interior/aerodrome) "uLn" = ( /obj/structure/closet/secure_closet/medical1{ req_access_txt = "100" @@ -25408,16 +25351,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/exterior/cp_lz2) -"uMJ" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "bluefull" - }, -/area/shiva/interior/aerodrome) "uNe" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Colony Engineering Locker Room" @@ -25425,14 +25358,6 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, /area/shiva/interior/colony/medseceng) -"uOc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purplefull" - }, -/area/shiva/interior/colony/research_hab) "uOR" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/shiva{ @@ -25647,13 +25572,6 @@ icon_state = "greenfull" }, /area/shiva/interior/colony/botany) -"uZF" = ( -/obj/structure/barricade/handrail/wire{ - dir = 8 - }, -/obj/structure/barricade/handrail/wire, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "uZJ" = ( /obj/structure/bed/chair{ dir = 8 @@ -25672,10 +25590,6 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/colony/medseceng) -"vaT" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/auto_turf/snow/layer1, -/area/shiva/interior/caves/cp_camp) "vbb" = ( /obj/structure/surface/table/woodentable, /obj/item/device/flashlight/lamp, @@ -25775,6 +25689,7 @@ /area/shiva/interior/colony/central) "veu" = ( /obj/structure/platform_decoration/strata, +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard) "vey" = ( @@ -25796,6 +25711,10 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/central) +"vgR" = ( +/obj/structure/platform_decoration/strata, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "vhp" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, @@ -25822,7 +25741,7 @@ "vhM" = ( /obj/structure/flora/tree/dead/tree_4, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "vhQ" = ( /obj/structure/machinery/space_heater, /turf/open/floor/shiva{ @@ -25844,13 +25763,6 @@ icon_state = "floor3" }, /area/shiva/interior/bar) -"vjg" = ( -/obj/structure/platform/strata, -/obj/structure/platform/strata{ - dir = 4 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "vjs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -25878,6 +25790,10 @@ icon_state = "redfull" }, /area/shiva/interior/colony/medseceng) +"vkr" = ( +/obj/item/device/flashlight, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "vkZ" = ( /obj/structure/largecrate/random, /turf/open/floor/shiva{ @@ -25913,10 +25829,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"vnr" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "vnF" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -25992,6 +25904,10 @@ dir = 1 }, /area/shiva/interior/colony/s_admin) +"vrG" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "vrM" = ( /obj/effect/decal/warning_stripes{ pixel_y = 32 @@ -26016,7 +25932,7 @@ /area/shiva/interior/caves/s_lz2) "vtz" = ( /obj/effect/decal/cleanable/blood/drip, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "vuj" = ( /obj/structure/bed/roller, @@ -26032,6 +25948,10 @@ dir = 1 }, /area/shiva/interior/colony/central) +"vwn" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/auto_turf/ice/layer1, +/area/shiva/exterior/valley) "vwv" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/scientist, @@ -26039,6 +25959,14 @@ icon_state = "wredfull" }, /area/shiva/interior/colony/medseceng) +"vwx" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "vxb" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -26064,6 +25992,12 @@ icon_state = "floor3" }, /area/shiva/interior/colony/s_admin) +"vym" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "vyM" = ( /obj/structure/bed/roller, /turf/open/floor/plating, @@ -26142,6 +26076,12 @@ icon_state = "redfull" }, /area/shiva/interior/colony/medseceng) +"vCe" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassbb_1" + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/interior/caves/cp_camp) "vCj" = ( /obj/structure/barricade/snow{ dir = 1 @@ -26189,13 +26129,6 @@ /obj/structure/prop/ice_colony/surveying_device, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/junkyard/cp_bar) -"vEN" = ( -/obj/structure/largecrate/random/mini/wooden{ - pixel_x = -16; - pixel_y = -1 - }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/warehouse/caves) "vFi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating, @@ -26256,16 +26189,6 @@ icon_state = "floor3" }, /area/shiva/interior/valley_huts/no2) -"vIk" = ( -/obj/structure/machinery/disposal, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/shiva/interior/aerodrome) "vIy" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 4 @@ -26292,6 +26215,9 @@ dir = 1 }, /area/shiva/interior/colony/deck) +"vJu" = ( +/turf/closed/wall/shiva/prefabricated/blue, +/area/shiva/exterior/valley) "vKu" = ( /turf/open/floor/shiva{ dir = 8; @@ -26314,15 +26240,9 @@ }, /area/shiva/interior/colony/botany) "vNN" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "redfull" - }, -/area/shiva/interior/colony/research_hab) +/obj/structure/fence, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/warehouse/caves) "vOb" = ( /obj/structure/prop/ice_colony/surveying_device{ dir = 4 @@ -26349,6 +26269,9 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) +"vPr" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/warehouse/caves) "vPK" = ( /obj/structure/platform/strata{ dir = 1 @@ -26508,6 +26431,12 @@ dir = 1 }, /area/shiva/interior/lz2_habs) +"vZS" = ( +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/auto_turf/snow/layer4, +/area/shiva/exterior/lz1_valley) "wag" = ( /turf/closed/wall/shiva/prefabricated/reinforced, /area/shiva/interior/colony/n_admin) @@ -26559,6 +26488,12 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) +"wfH" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/cp_s_research) "wfL" = ( /obj/structure/machinery/door/airlock/almayer/security/colony{ name = "\improper Underground Security Evidence Storage" @@ -26647,17 +26582,13 @@ dir = 1 }, /area/shiva/interior/lz2_habs) -"wiG" = ( -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 6; - pixel_y = -9 - }, -/obj/structure/prop/invuln/dense/ice_tray{ - dir = 8; - pixel_y = 10 +"wiy" = ( +/obj/structure/barricade/snow{ + dir = 4 }, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard/fortbiceps) "wiM" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -26782,7 +26713,7 @@ pixel_y = 9 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/cp_s_research) +/area/shiva/exterior/junkyard) "wtC" = ( /turf/open/floor/shiva{ dir = 6; @@ -26801,14 +26732,14 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/exterior/cp_lz2) -"wuw" = ( -/obj/item/lightstick/red/spoke/planted{ - layer = 3.1; - pixel_x = -13; - pixel_y = 25 +"wvd" = ( +/obj/structure/prop/ice_colony/surveying_device/measuring_device{ + dir = 8; + pixel_x = -6; + pixel_y = 13 }, -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/valley) +/turf/open/auto_turf/ice/layer0, +/area/shiva/exterior/cp_s_research) "wvx" = ( /obj/structure/largecrate/random/case, /turf/open/floor/shiva, @@ -26827,6 +26758,21 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) +"wwl" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 3.1; + pixel_x = -13; + pixel_y = 25 + }, +/obj/structure/largecrate/random/case{ + pixel_y = 11 + }, +/obj/structure/largecrate/random/mini/chest/b{ + pixel_x = -4; + pixel_y = -5 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "wwp" = ( /obj/effect/landmark/hunter_secondary, /turf/open/auto_turf/snow/layer3, @@ -26839,9 +26785,13 @@ dir = 1 }, /area/shiva/exterior/cp_colony_grounds) -"wwW" = ( -/turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/research_alley) +"wwZ" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "wxs" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/spray/cleaner{ @@ -27049,6 +26999,13 @@ dir = 1 }, /area/shiva/interior/lz2_habs) +"wLM" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/auto_turf/snow/layer0, +/area/shiva/interior/caves/cp_camp) "wMh" = ( /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) @@ -27084,6 +27041,16 @@ /obj/structure/window/framed/shiva, /turf/open/floor/plating/icefloor, /area/shiva/interior/telecomm/lz1_biceps) +"wNB" = ( +/obj/structure/machinery/door_control/brbutton{ + id = "hangar_ice_2"; + pixel_y = 28 + }, +/obj/structure/platform/shiva/catwalk{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/lz1_valley) "wOq" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/shiva{ @@ -27102,9 +27069,10 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) -"wPp" = ( -/turf/closed/wall/shiva/ice, -/area/shiva/interior/colony/research_hab) +"wPs" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/cp_s_research) "wPz" = ( /obj/effect/decal/cleanable/blood/drip{ icon_state = "3" @@ -27132,10 +27100,6 @@ "wRm" = ( /turf/open/floor/plating, /area/shiva/interior/aerodrome) -"wRL" = ( -/obj/structure/prop/ice_colony/soil_net, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/cp_s_research) "wSv" = ( /obj/item/lightstick/red/variant/planted{ pixel_x = -7; @@ -27174,15 +27138,8 @@ }, /area/shiva/interior/colony/research_hab) "wTx" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 15; - pixel_y = -3 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -16; - pixel_y = -3 - }, -/turf/open/auto_turf/ice/layer0, +/obj/effect/spawner/random/toolbox, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "wTz" = ( /obj/structure/largecrate/random/mini/chest{ @@ -27239,6 +27196,10 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) +"wXs" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "wXQ" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/shiva{ @@ -27307,16 +27268,6 @@ icon_state = "bluefull" }, /area/shiva/interior/colony/n_admin) -"xbm" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) -"xbn" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 6 - }, -/turf/closed/wall/shiva/ice, -/area/shiva/interior/caves/cp_camp) "xbz" = ( /obj/structure/window/framed/shiva, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -27328,12 +27279,6 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) -"xbT" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/shiva{ - icon_state = "yellowfull" - }, -/area/shiva/interior/telecomm/lz1_biceps) "xbZ" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -27342,10 +27287,6 @@ dir = 1 }, /area/shiva/exterior/cp_colony_grounds) -"xct" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/auto_turf/ice/layer1, -/area/shiva/interior/caves/cp_camp) "xcE" = ( /obj/structure/inflatable/popped, /turf/open/floor/shiva{ @@ -27371,7 +27312,7 @@ dir = 4; pixel_y = 10 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer3, /area/shiva/interior/caves/cp_camp) "xeE" = ( /obj/effect/decal/warning_stripes{ @@ -27380,10 +27321,6 @@ /obj/structure/window/reinforced, /turf/open/floor/wood, /area/shiva/interior/colony/central) -"xfZ" = ( -/obj/structure/prop/ice_colony/surveying_device, -/turf/open/auto_turf/ice/layer0, -/area/shiva/interior/caves/cp_camp) "xgc" = ( /turf/open/auto_turf/snow/layer1, /area/shiva/exterior/cp_s_research) @@ -27471,13 +27408,6 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) -"xog" = ( -/obj/structure/platform/strata, -/obj/structure/platform/strata{ - dir = 8 - }, -/turf/open/gm/river, -/area/shiva/interior/caves/cp_camp) "xoi" = ( /obj/structure/machinery/light/double{ dir = 1; @@ -27510,9 +27440,6 @@ /obj/structure/foamed_metal, /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/exterior/lz2_fortress) -"xrC" = ( -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/research_alley) "xst" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -27547,6 +27474,10 @@ }, /turf/open/gm/river, /area/shiva/exterior/cp_lz2) +"xun" = ( +/obj/structure/tunnel, +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/colony/research_hab) "xuz" = ( /obj/structure/machinery/space_heater, /turf/open/auto_turf/ice/layer1, @@ -27555,12 +27486,6 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/lz1_valley) -"xvd" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/snow, -/obj/item/storage/belt/utility/full, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/research_alley) "xvf" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, @@ -27613,6 +27538,15 @@ icon_state = "redfull" }, /area/shiva/interior/colony/n_admin) +"xxY" = ( +/obj/item/lightstick/red/spoke/planted{ + layer = 2.99; + pixel_x = 12; + pixel_y = 28 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/snow/layer4, +/area/shiva/interior/caves/cp_camp) "xyd" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 10 @@ -27697,12 +27631,29 @@ dir = 1 }, /area/shiva/interior/colony/medseceng) +"xCz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/shiva/exterior/junkyard) "xCA" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison{ icon_state = "kitchen" }, /area/shiva/interior/bar) +"xCD" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "xCN" = ( /obj/structure/prop/souto_land/pole{ dir = 1 @@ -27777,9 +27728,6 @@ }, /turf/open/auto_turf/snow/layer4, /area/shiva/exterior/cp_lz2) -"xFP" = ( -/turf/open/auto_turf/snow/layer0, -/area/shiva/interior/colony/research_hab) "xFR" = ( /turf/open/floor/shiva{ dir = 8; @@ -27799,6 +27747,9 @@ icon_state = "floor3" }, /area/shiva/interior/aerodrome) +"xHv" = ( +/turf/open/auto_turf/ice/layer1, +/area/shiva/interior/aerodrome) "xIL" = ( /obj/item/powerloader_clamp, /turf/open/floor/shiva{ @@ -27831,6 +27782,22 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/research_hab) +"xLy" = ( +/obj/structure/platform/strata, +/obj/structure/platform/strata{ + dir = 8 + }, +/turf/open/gm/river, +/area/shiva/exterior/cp_s_research) +"xMs" = ( +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/obj/structure/prop/ice_colony/ground_wire{ + dir = 4 + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/interior/caves/cp_camp) "xMz" = ( /turf/closed/wall/shiva/ice, /area/shiva/exterior/lz1_valley) @@ -27864,6 +27831,13 @@ }, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/caves/cp_camp) +"xMX" = ( +/obj/effect/spawner/random/toolbox, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/caves/cp_camp) "xNe" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/shiva{ @@ -27871,16 +27845,9 @@ icon_state = "redfull" }, /area/shiva/interior/colony/medseceng) -"xNO" = ( -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/research_alley) "xOb" = ( /turf/open/floor/plating/plating_catwalk/shiva, /area/shiva/interior/bar) -"xOT" = ( -/obj/item/device/flashlight/lamp/tripod/grey, -/turf/open/auto_turf/ice/layer2, -/area/shiva/interior/caves/left_spiders) "xPd" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile2" @@ -27994,12 +27961,6 @@ }, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/caves/cp_camp) -"xWy" = ( -/obj/structure/flora/grass/tallgrass/ice/corner{ - dir = 5 - }, -/turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/junkyard) "xXv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate{ @@ -28024,6 +27985,10 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_colony_grounds) +"xXQ" = ( +/obj/structure/inflatable, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/cp_s_research) "xXV" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/landmark/objective_landmark/close, @@ -28121,6 +28086,10 @@ icon_state = "floor3" }, /area/shiva/interior/lz2_habs) +"yhA" = ( +/obj/structure/fence, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "yhX" = ( /obj/structure/surface/table, /obj/item/tool/wrench{ @@ -28195,6 +28164,12 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/shiva/prefabricated, /area/shiva/interior/colony/medseceng) +"ylF" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/auto_turf/snow/layer1, +/area/shiva/interior/caves/cp_camp) "ylO" = ( /obj/structure/machinery/colony_floodlight_switch{ pixel_y = 32 @@ -28213,7 +28188,7 @@ /obj/structure/prop/ice_colony/ground_wire{ dir = 4 }, -/turf/open/auto_turf/snow/layer0, +/turf/open/auto_turf/snow/layer1, /area/shiva/interior/caves/cp_camp) "ylZ" = ( /obj/structure/machinery/light/double, @@ -28360,22 +28335,22 @@ puZ puZ puZ puZ -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD -qgD +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28505,39 +28480,39 @@ puZ puZ puZ puZ -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -aIO -pxA -pxA -pxA -pxA puZ puZ puZ -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28660,46 +28635,46 @@ puZ puZ puZ puZ -asz -asz -asz -asz -asz -asz puZ -pxA -ueu -mMa -euA -vKu -euA -euA -vKu -rhS -oqQ -oqQ -rhS -ueu -pxA -pxA -pxA -pxA -pxA -sym -ctk -ugP -pxA -pxA -xwi -thc -ckI -dTn -pxA -pxA -rZt -rZt -rZt -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28820,48 +28795,48 @@ puZ puZ puZ puZ -asz -asz -asz -goj -djO -goj -goj -asz -pxA -pxA -lkX -ffw -uim -vKu -uim -ffw -lkX -vKu -vKu -vKu -vKu -vKu -uLu -pxA -pxA -bJi -bJi -euA -vPR -euA -euA -bJi -euA -euA -vPR -euA -bJi -euA -euA -bJi -rZt -pxA +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -28982,50 +28957,50 @@ puZ puZ puZ puZ -asz -fjd -rZt -djO -kts -wAM -djO -asz -pxA -pxA -ift -smI -hUG -vKu -udJ -euA -ift -pKP -nNN -kZy -pKP -vKu -uLu -pxA -pxA -bJi -rZt -dTU -dTU -dTU -dTU -rZt -dTU -dTU -dTU -dTU -rZt -dTU -rZt -mwF -rZt -pxA -kTd -kTd +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +hFl +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29144,51 +29119,51 @@ puZ puZ puZ puZ -asz -wgp -rZt -goj -qNK -hrb -goj -wnK -rZt -vKu -lkX -ift -sQU -vKu -sQU -ift -lkX -rhS -oqQ -oqQ -lNm -vKu -pxA -pxA -ctk -mwF -chU -bJi -euA -euA -euA -bJi -euA -euA -euA -euA -bJi -bJi -chU -mwF -rZt -twi -kue -kTd -flN +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jCE +jCE +jCE +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29303,55 +29278,55 @@ puZ puZ puZ puZ +tlB +oRH +tlB +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jCE +jCE +kAg +jCE +jCE +puZ +puZ puZ puZ puZ -asz -tqs -rZt -goj -rZt -fHM -goj -wnK -rZt -vKu -wnK -rZt -rZt -wnK -rZt -rZt -wnK -vKu -vKu -vKu -vKu -vKu -bqy -pxA -ugP -mwF -chU -mwF -pxA -pxA -pxA -pxA -wnK -vKu -xIL -vKu -wnK -bJi -chU -bJi -rZt -twi -flN -flN -kue -flN puZ puZ puZ @@ -29451,6 +29426,8 @@ puZ puZ puZ puZ +ntJ +ntJ puZ puZ puZ @@ -29461,6 +29438,21 @@ puZ puZ puZ puZ +hBq +tlB +hBq +hBq +oRH +tlB +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29468,52 +29460,35 @@ puZ puZ puZ puZ -asz -asz -rZt -goj -rZt -rZt -goj -wnK -xEB -vKu -wnK -rZt -rZt -eFQ -rZt -rZt -wnK -vKu -vKu -vKu -vKu -vKu -jqT -pxA -ctk -cVy -chU -mwF -pxA -kRV -kVe -wnK -mwF -mwF -yiS -mwF -vKu -mwF -chU -mwF -rZt -flN -flN -flN -kTd -kTd +puZ +puZ +puZ +snN +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +oaP +jCE +jCE +jCE +jCE +jCE +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -29612,6 +29587,9 @@ puZ puZ puZ puZ +wMh +ntJ +ntJ puZ puZ puZ @@ -29621,6 +29599,13 @@ puZ puZ puZ puZ +hBq +tlB +oRH +oRH +oRH +hBq +oRH puZ puZ puZ @@ -29630,68 +29615,58 @@ puZ puZ puZ puZ -asz -iIe -rZt -goj -fHM -rZt -goj -wnK -rZt -vKu -vKu -vKu -vKu -vKu -vKu -vKu -toN -vKu -vKu -dgF -hEE -wnK -pxA -pxA -pxA -wnK -wnK -wnK -pxA -hQO -pve -wnK -flN -wAP -flN -dJS -flN -mwF -chU -mwF -rZt -rZt -wBf -pxA -kTd -kue -flN puZ puZ -"} -(10,1,1) = {" puZ puZ puZ -caS -caS -caS -dsD -gpn -caS -caS -caS +puZ +puZ +puZ +uqb +uqb +uqb +kLM +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +hFl +jLx +iWS +jCE +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(10,1,1) = {" +puZ +puZ +puZ +caS +caS +caS +dsD +gpn +caS +caS +caS aac aac tQN @@ -29773,15 +29748,63 @@ puZ puZ puZ puZ +ntJ +wMh +wMh +wMh puZ puZ puZ -aau -aau -aau puZ puZ puZ +xAS +xAS +hBq +tlB +oRH +oRH +tlB +tlB +oRH +tlB +hBq +puZ +puZ +puZ +puZ +puZ +puZ +slO +slO +slO +puZ +puZ +mev +cQW +rbA +aDM +cko +rLu +rLu +nMR +uqb +uqb +uqb +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +jCE puZ puZ puZ @@ -29789,56 +29812,8 @@ puZ puZ puZ puZ -lhu puZ puZ -asz -bNu -rZt -djO -qCs -pPt -goj -wnK -qyE -wnK -asz -fNE -fNE -fNE -pxA -xvS -xvS -pxA -pxA -iQe -qaF -chU -pxA -pxA -pxA -vKu -vKu -vKu -pxA -lGU -wnK -wnK -aPd -aRz -aXi -bag -flN -mwF -chU -mwF -rZt -flN -flN -pxA -flN -kTd -kue puZ puZ "} @@ -29935,14 +29910,62 @@ puZ puZ puZ puZ +jmW +jmW +jmW +wMh +ntJ +puZ +puZ +puZ +vrG +gXu +xAS +xAS +oRH +hBq +oRH +tlB +oRH +xAS +xAS +oRH +hBq +oRH +puZ +puZ +puZ +puZ +puZ +slO +slO +slO +slO +puZ +lLv +cQW +rbA +uqb +mNs +xMz +slO +ofl +uqb +uqb +aDM +uqb +uqb +uqb +uqb +riV +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -pct -hsu -hsu -aaP -aau -aau puZ puZ puZ @@ -29950,57 +29973,9 @@ puZ puZ puZ puZ -clK puZ puZ puZ -asz -iqt -rZt -goj -axa -hVs -djO -dBB -rZt -rZt -fNE -sdF -biM -biM -fNE -rZt -vKu -pxA -pxA -rZt -hEE -chU -gFb -sfM -oHF -wnK -wnK -wnK -pxA -lYG -wnK -wnK -aPe -aSJ -aXn -bah -flN -mwF -chU -mwF -flN -rZt -rZt -flN -flN -kTd -kue puZ puZ "} @@ -30097,72 +30072,72 @@ puZ puZ puZ puZ +wMh +wMh +wMh +jmW +ntJ +puZ +puZ +xAS +xAS +xAS +xAS +aFO +xAS +oRH +nmf +dcn +fVq +wwl +gpj +tlB +oRH +hBq +puZ +puZ +puZ +puZ +slO +slO +slO +poz +hhT +puZ +bCr +cTU +iOp +qza +mNs +slO +slO +ofl +uqb +xvb +kGW +aDM +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -pct -hsu -aav -clK -uoZ -aau puZ puZ puZ -aav -clK -aav -clK -aav puZ puZ puZ -asz -asz -asz -goj -goj -djO -goj -wnK -rZt -rZt -fNE -nPH -biM -biM -fNE -chU -wnK -vFX -pxA -iQe -qaF -chU -kyu -drx -rZt -chU -rZt -chU -fNE -mHU -pDp -wnK -aQm -aXc -aXI -bbG -flN -mwF -chU -mwF -rZt -flN -rZt -flN -flN -flN -kue puZ puZ "} @@ -30259,72 +30234,72 @@ puZ puZ puZ puZ -puZ -aaw -hsu +wMh +wMh +wMh uoZ -clK -clK -aav -clK -aav -aav -rpE -clK -aav -aaP -aav -clK -dCY -asz -asz -asz -asz -asz -wnK -wnK -wnK -wnK -wnK -rZt -rZt -asz -wTm -biM -biM -fNE -chU -vKu -vQm -pxA -rZt -iQe -wnK -gFb -nMk -chU -rZt -chU -rZt -fNE -mWE -pDu -wnK -flN -flN -flN -flN -flN -mwF -chU -fww -sNX -dAt -flN -pxA -flN -flN -kue +ntJ +puZ +puZ +gEn +xAS +xAS +xAS +aFO +hBq +oRH +tlB +xxY +eHY +saA +oRH +lfe +oRH +oRH +puZ +puZ +puZ +puZ +vZS +vZS +niL +hic +aDM +uqb +uqb +uqb +uqb +mfa +jqx +slO +ivE +oqH +uqb +aDM +kLM +kLM +xvb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ "} @@ -30421,72 +30396,72 @@ puZ puZ puZ puZ +wMh +jmW +wMh +wMh +wMh +puZ +puZ +gEn +tlB +oRH +aFO +aFO +aFO +hBq +hBq +xAS +oRH +xAS +oRH +oRH +oRH +xAS +xAS +kvQ +uqb +aDM +uqb +uqb +uqb +uqb +uqb +uqb +qza +kLM +hXX +kLM +mOv +niL +hic +kLM +uqb +uqb +aDM +xvb +uqb +uqb +uqb +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -aaw -hsu -clK -aau -aau -clK -aav -hsu -aav -rpE -clK -aav -clK -aav -clK -dCY -asz -wFB -eSt -wFB -dTU -rZt -gAV -rZt -dTU -asz -asz -asz -asz -asz -goj -goj -fNE -chU -wnK -pxA -pxA -pxA -pxA -pxA -pxA -mcw -rZt -chU -rZt -chU -pxA -pxA -pxA -wnK -mwF -mwF -mwF -mwF -vKu -mwF -chU -uOR -rZt -acP -flN -pxA -flN -flN -kue puZ puZ "} @@ -30582,73 +30557,73 @@ puZ puZ puZ puZ +wMh +jmW +jmW +wMh +puZ +puZ +puZ +puZ +lhP +dcn +fVq +vwx +aFO +dDj +aFO +aFO +aFO +aFO +aFO +xAS +oRH +oRH +xAS +xAS +kvQ +iOu +kLM +kLM +kLM +kLM +kLM +uqb +uqb +uqb +uqb +kLM +iQq +uqb +uqb +kLM +kLM +kLM +uqb +uqb +uqb +uqb +kLM +uqb +kLM +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -aaU -uoZ -aav -aau -dRb -dRb -aau -clK -clK -aau -dRb -dRb -dRb -dRb -aaL -abL -dCY -asz -gha -uuN -sNX -rZt -chU -gAV -chU -rZt -asz -dnH -jft -ghS -asz -goj -goj -pxA -rZH -vKu -ghU -pxA -vQm -vFX -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -rZt -vKu -vKu -wnK -vKu -wnK -vKu -wnK -bJi -chU -fww -gaJ -dAt -rZt -rZt -flN -flN -kTd puZ puZ "} @@ -30743,74 +30718,74 @@ puZ puZ puZ puZ +wMh +wMh +wMh +wMh +puZ +puZ +puZ +puZ +puZ +xAS +eSf +xAS +hEx +aFO +aFO +aFO +aFO +elf +too +xAS +oRH +aFO +aFO +xAS +aFO +iQq +iQq +iQq +iQq +uqb +uqb +uqb +uqb +kLM +kLM +iQq +gCx +uqb +uqb +qkI +iQq +kLM +kLM +kLM +kLM +gCx +kLM +uqb +uqb +aDM +upf +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ -clK -aav -clK -aav -tkB -tue -dRb -clK -hsu -aav -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -asz -wFB -eSt -wFB -dTU -rZt -gAV -rZt -txX -kRj -qOZ -cEj -qOZ -goj -fwv -goj -bXo -chU -kQJ -vKu -wnK -vKu -wnK -vKu -kap -rZt -crF -crF -crF -wnK -vKu -wnK -chU -rZt -chU -rZt -chU -rZt -chU -rZt -chU -mwF -byr -rZt -rZt -flN -flN -kTd -kue puZ puZ "} @@ -30905,74 +30880,74 @@ puZ puZ puZ puZ -clK -aav -hsu -aau -clK -trw -qPj -abL -clK -aav -aaL -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -asz -rZt -byr -rZt -rZt -chU -gAV -chU -iaK -feA -biM -biM -biM -uuv -yhX -goj -pxA -rZt -dTU -hWY -dTU -dTU -dTU -rZt -kap -rZt -crF -crF -crF -wnK -vKu -wnK -chU -rZt -chU -rZt -chU -rZt -chU -rZt -chU -mwF -bgC -flN -flN -rZt -flN -kTd -flN +wMh +lqT +wMh +puZ +puZ +puZ +puZ +puZ +puZ +xAS +xAS +aFO +aFO +aFO +aFO +xAS +xAS +oRH +uIO +oRH +oRH +xAS +tlB +xAS +xAS +kvQ +oUu +uqb +kLM +kLM +uqb +iQq +gCx +kLM +uqb +kLM +iQq +iQq +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +kLM +kLM +uqb +uqb +uqb +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ "} @@ -31066,86 +31041,86 @@ puZ puZ puZ puZ -hsu +jmW pct -clK -clK -aav -clK -aaw -abL -clK -aav -hsu -abD -tkB -tue -dRb -dRb -dRb -dRb -dRb -dRb -asz -eaa -rZt -rZt -rZt -chU -gAV -chU -iaK -kTI -biM -xtI -qOd -goj -wnK -goj -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -rZt -vKu -vKu -wnK -vKu -wnK -vKu -wnK -bJi -chU -fww -sNX -dAt -flN -rZt -flN -kTd -puZ -puZ -puZ -"} -(19,1,1) = {" -puZ -puZ -puZ -caS -caS -mFm -mFm +wMh +pcY +pcY +pcY +pcY +pcY +pcY +oRH +xAS +aFO +aFO +aFO +aFO +xAS +oRH +tkS +xAS +aFO +oRH +xAS +oRH +xAS +xAS +xAS +kvQ +uqb +dgG +kLM +kLM +kLM +kLM +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +gCx +kLM +kLM +uqb +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(19,1,1) = {" +puZ +puZ +puZ +caS +caS +mFm +mFm mFm mFm mhP @@ -31227,75 +31202,75 @@ puZ puZ puZ puZ -clK -uoZ -hsu -aau -aaP -clK -aau -aau -clK -aaE +wMh +jfO +jmW aau -hsu -uoZ -trw -qPj -dRb -dRb -dRb -dRb -dRb -dRb -asz -rZt -bgC -rZt -rZt -chU -gAV -chU -rZt -asz -biM -biM -biM -goj -lpA -uWA -pxA -tNP -lFp -jcv -fqJ -cSn -pxA -pxA -pxA -rZH -rZt -chU -rZt -rZt -pxA -pxA -pxA -wnK -mwF -mwF -mwF -mwF -vKu -mwF -chU -uOR -uuN -acP -flN -pxA -flN -kTd +ntJ +ntJ +wMh +wMh +wMh +oRH +xAS +aFO +aFO +aFO +oRH +xAS +eUn +tlB +xAS +aFO +xAS +xAS +oRH +oRH +rzw +nUk +xMz +xMz +uqb +uqb +kLM +kLM +gCx +iQq +iQq +cQW +cQW +cQW +iQq +iQq +iQq +gGH +iQq +iQq +cQW +cQW +cQW +cQW +kLM +iQq +iQq +iQq +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31389,75 +31364,75 @@ puZ puZ puZ puZ -aav -clK -abC -clK -aau -aav -hsu -clK -clK -aau -clK -pct -hsu -aaL -dRb -dRb -dRb -dRb -aau -aau -dRb -asz -dAt -sNX -dAt -rZt -chU -gAV -chU -rZt -bXo -biM -biM -biM -goj -xJA -goj -bXo -vKu -soj -wnK -wnK -cSn -pxA -pxA -pxA -wnK -wnK -wnK -wnK -wnK -pxA -kRV -pEv -wnK -flN -flN -flN -flN -flN -mwF -chU -fww -sNX -dAt -rZt -pxA -kTd -flN +lqT +wMh +lqT +wMh +wMh +jmW +jmW +wMh +oRH +oRH +xAS +aFO +aFO +xAS +xAS +tlB +nig +mME +fVq +fXr +oRH +oRH +xAS +kRq +aFc +wMh +xMz +xMz +aDM +uqb +kLM +kLM +gGH +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +cQW +cQW +cQW +cQW +kLM +gGH +cQW +iQq +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31551,74 +31526,74 @@ puZ puZ puZ puZ -aav -clK -aav -clK -aav -dRb -dRb -abI -clK -aau -aau -clK -aav -abD -dRb -dRb -aav -aav -hsu -clK -dRb -asz -gha -rZt -sNX -rZt -chU -gAV -chU -rZt -asz -wqc -tOq -hXQ -asz -goj -goj -pxA -vKu -wnK -wnK -cSn -pxA -pxA -sIX -chU -rZt -chU -rZt -wnK -pxA -pxA -nmT -pve -wnK -aPd -aRz -aXi -bag -flN -mwF -chU -mwF -flN -wBf -pxA -pxA -kTd +lqT +wMh +lqT +wMh +wMh +wMh +wMh +wMh +oRH +hBq +xAS +aFO +xAS +xAS +hBq +xAS +pcY +cIs +hBq +pCw +xAS +oRH +xAS +xAS +mfc +xMz +xMz +aDM +uqb +uqb +kLM +iQq +iQq +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +iQq +kLM +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -31712,78 +31687,78 @@ puZ puZ puZ puZ -aav -hsu -aav -aav -clK -dRb -dRb -tkB -tue -xOT -aau -clK -aav -hsu -hsu -abD -rpE -hsu -hsu -uoZ -clK +lqT +jmW +lqT +lqT +wMh +abH +wMh +oRH +oRH +hBq +xAS +aFO +aFO +xAS +xAS +oRH +pcY +pcY +pcY +pcY +pcY aat -asz -dAt -sNX -dAt -rZt -chU -gAV -chU -asz -asz -asz -asz -asz -asz -asz -asz -pxA -vdS -wnK -vKu -pxA -pxA -ahu -wnK -wnK -wnK -wnK -mUT -uYt -amu -pxA -nrr -wnK -wnK -aPe -act -acA -bah -flN -mwF -chU -bJi -rZt -flN -flN -rZt -flN +oRH +oRH +xAS +oRH +xMz +xMz +aDM +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +kLM +kLM +aDM +aDM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ -ifQ puZ "} (23,1,1) = {" @@ -31874,75 +31849,75 @@ puZ puZ puZ puZ -uoZ -aav -clK -aaL -abD -dRb -dRb -trw -qPj -abD -hsu -aau -clK -aau -clK -uoZ -rpE -aav -aav -clK -aav -aat -asz -asz -asz -asz -asz -chU -gAV -chU -adS -aea -ptr -aew -aew -aex -asz -asz -lXy -nxA -vKu -vKu -bUe -rZt -chU -rZt -chU -dwQ -wnK -pxA -amu -amu -pxA -nzf -wnK -wnK -aQm -aXc -aXI -bbG -flN -mwF -chU -bJi -bJi -wBf -flN -kTd -kTd +jfO +lqT +wMh +wMh +wMh +oRH +oRH +oRH +tlB +tlB +xAS +aFO +aFO +xAS +oRH +oRH +pcY +pcY +pcY +pcY +pcY +pcY +cIZ +tlB +xAS +oRH +xMz +xMz +kLM +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +kLM +kLM +uqb +kLM +uqb +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32037,73 +32012,73 @@ puZ puZ puZ rpE -rpE -rpE -dRb -dRb -dRb -dRb -dRb +jmW +jmW +pcY +pcY +xAS +oRH +oRH +tlB +xAS +tlB +xAS +xAS +oRH +xAS +oRH +pcY +pcY +pcY +pcY +pcY +pcY +yhA dRb -abO -aav -hsu -aaE -aav -aau -clK -rpE -aav -aaP -aav -clK -aat -aat -aat -aat +tlB dRb -asz -chU -gAV -chU -adT -rZt -rZt -rZt -rZt -mRU -aex -asz -nVn -iCJ -pxA -pxA -pxA -wnK -wnK -wnK -wnK -mUT -wnK -amu -jrg -jrg -pxA -nHH -pDp -wnK -flN -flN -flN -flN -flN -mwF -rZt -rZt -mwF -pxA -kTd -kTd +yhA +xMz +uqb +kLM +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +boD +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +iQq +iQq +iQq +kLM +lMO +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32193,78 +32168,78 @@ tlB puZ wMh wMh -aFO -fuz -aFO -dJl -fuz -aFO +tlB +vym +tlB +sDd +vym +xAS wMh abB -dRb -dRb -dRb -dRb -dRb -dRb -tkB -tue -aav -hsu -clK -clK -aav -rpE -clK -aav -clK -aav -clK -clK -clK -clK -dRb -asz -chU -gAV -chU -adV -rZt -rZt -rZt -rZt -rZt -mOu -asz -asz -asz -asz -asz -rZt -flN -rZt -rZt -dwQ -pxA -amu -amu -jrg -jrg -pxA -mWE -pJA -wnK -mwF -mwF -mwF -mwF -vKu -bJi -bJi -chU -mwF -pxA -flN +pcY +pcY +xAS +xAS +tlB +xAS +tlB +xAS +tlB +oRH +ben +vpD +vpD +pcY +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +tlB +tlB +xMz +uqb +uqb +kLM +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +iQq +iQq +kLM +kLM +ath +aDM +kLM +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32355,102 +32330,102 @@ tlB tlB oRH oRH -elN +pGi jmW -tPs -elN +ohd +pGi jmW -tPs +nEU abv wMh -dRb -dRb -dRb -dRb -dRb -dRb -trw -qPj -clK -uoZ -clK -aav -clK -rpE -aav -clK -uoZ -mOT -uoZ -aav -dRb -dRb -dRb -asz -rZH -gAV -chU -adW -aeb -rZt -miD -miD -adi -aCB -asz -asz -asz -asz -wnK -wnK -wnK -wnK -dwQ -flN -jrg -jrg -jrg -jrg -jrg -pxA -pxA -pxA -wnK -wnK -vKu -wnK -vNN -wnK -rZt -mwF -chU -mwF -pxA -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(27,1,1) = {" -puZ -puZ -puZ -caS -caS -mFm -mFm -mFm -mFm -mhP -jLc -mFm -mFm -aar -mFm -gkY +pcY +aFO +aFO +wMh +uir +uir +wMh +xAS +oRH +oRH +vpD +vpD +qFx +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +aFO +xAS +tlB +xMz +uqb +uqb +uqb +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +iQq +kLM +kLM +lNg +uqb +kLM +kLM +vNN +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(27,1,1) = {" +puZ +puZ +puZ +caS +caS +mFm +mFm +mFm +mFm +mhP +jLc +mFm +mFm +aar +mFm +gkY gkY gkY gkY @@ -32514,80 +32489,80 @@ oRH oRH jVi oRH -xAS -aFO -aFO -vtz -pMV +tlB +tlB +tlB +rUW +xMs jqo -aFO -pMV -aFO +tlB +rld +tlB +xAS +wMh +wMh aFO wMh +jOi +ecx +uir +uir wMh -dRb -dRb -dRb -dRb -dRb -dRb -dRb -uoZ -clK -aav -clK -aav -dRb +hBq +xAS +vpD +vpD +vpD +ccu leg -uoZ -hsu -pct -dRb -dRb -dRb -dRb -dRb -asz -chU -gAV -chU -asz -asz -aed -asz -asz -aez -mRU -aeQ -asz -asz -rZt -flN -rZt -dwQ -flN -flN -amu -bJj -jrg -jrg -jrg -jrg -jrg -jrg -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -mwF -chU -mwF -pxA +pcY +pcY +pcY +pcY +rkG +xAS +aFO +xAS +tlB +xMz +aDM +uqb +uqb +kLM +iQq +iQq +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +iQq +kLM +kLM +wgM +kLM +ath +iQq +vNN +cwZ +kAw +puZ +puZ +puZ +puZ puZ puZ puZ @@ -32676,80 +32651,80 @@ jmW tlB oRH xAS -aFO +tlB vtz -aFO -aFO +xAS +tlB mCQ pPK eFI -aFO +tlB vtz gva -aFO +xAS wMh eFI wMh -dRb -dRb -dRb -dRb -dRb -hsu -aav -aav -dRb -dRb -dRb -aaw -aav +jOi +jOi +xMX +uir +wMh +wMh +wMh aav -dRb -dRb -lSU -lSU -lSU -lSU -lSU -chU -gAV -rZt -dTU -dTU -dTU -rZt -fNE -aeC -rZt -aeR -asz -wnK -dwQ -wnK -wnK -wnK -dwQ -bJj -bJj -jrg -jrg -bJj -osE -jrg -jrg -jrg -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -vKu -vKu -vKu -pxA +ben +vpD +vpD +vpD +pcY +pcY +pcY +pcY +tlB +tlB +xAS +tlB +xAS +xMz +aDM +uqb +uqb +uqb +kLM +gGH +iQq +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +cQW +kLM +cQW +cQW +cQW +cQW +kLM +gGH +cQW +kLM +uqb +lNg +erj +kLM +tcp +iQq +vNN +cwZ +kAw +kAw +hrk +puZ +puZ puZ puZ puZ @@ -32837,81 +32812,81 @@ pcY jmW wMh oRH -aFO -aFO -oRH -oRH +tlB +tlB +xAS +xAS wMh pcY jmW nuY wMh -elN +pGi jmW -tPs +ohd wMh wMh wMh wMh +jOi +kHG +uir wMh +ntJ +ntJ +wMh +wMh +wMh +wMh +oRH +pcY +pcY +pcY +pcY +yhA dRb +xAS dRb -aav -uoZ -clK -aav -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -lSU -rHO -rHO -fgK -lSU -chU -gAV -gAV -gAV -gAV -gAV -chU -fNE -aeP -miD -aiV -asz -rZt -rZt -rZt -rZt -flN -amu -fXX -bJj -jrg -bJj -bJj -bJj -bJj -bJj -osE -pxA -wnK -wnK -pxA -pxA -pxA -pxA -pxA -mwF -chU -mwF -pxA +yhA +xMz +cnt +cnt +uqb +xvb +kLM +gCx +kLM +iQq +cQW +cQW +cQW +iQq +iQq +iQq +gGH +kLM +kLM +cQW +cQW +cQW +cQW +kLM +iQq +iQq +kLM +kLM +lNg +xMz +xMz +iQq +kLM +vNN +cwZ +kAw +kAw +hrk +ugC +puZ puZ puZ puZ @@ -33008,72 +32983,72 @@ pcY pcY pcY wMh -aFO -pMV -dJl -aFO -aFO -aFO +tlB +xMs +ilW +xAS +xAS wMh -eFI +jOi +jOi wMh -dRb -rpE -rpE -rpE -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -dRb -ocl -dwQ -dwQ -dwQ -bXo -rZt -dTU -dTU -rZt -gAV -gAV -chU -asz -asz -asz -asz -asz -wnK -wnK -dwQ -wnK -fXX -bJj -bJj -gpz -gpz -gpz -bJj -osE -osE -gpz -gpz -xTK -fXX -fXX -jrg -jrg -jrg -jrg -pxA -xcE -ggL -xcE -pxA +uir +wMh +jmW +ntJ +jmW +ntJ +wMh +wMh +pcY +pcY +pcY +pcY +pcY +pcY +tlB +xAS +xAS +hBq +xMz +xMz +xMz +xMz +oqf +uqb +kTP +kLM +kLM +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +iQq +qkI +iQq +uqb +kLM +aDM +xMz +xMz +xMz +iQq +vNN +cwZ +kAw +kAw +kAw +hrk +puZ puZ puZ puZ @@ -33170,72 +33145,72 @@ pcY pcY pcY ouS -aFO +tlB jpp wMh wMh wMh +tlB +xAS wMh -aFO -aFO wMh -abP wMh +jmW +wMh +wMh +ntJ +jmW wMh -abB pcY pcY +tlB +hBq +tlB pcY -lSU -dRb -dRb -abY -abY -dRb -lSU -dwQ -dwQ -lSU -lSU -lSU -lSU -lSU -shO -gAV -gAV -chU -rZt -rZt -ahB -rZt -rZt -rZt -rZt -rZt -rZt -bJj -bJj -osE -gpz -bJj -bJj -bJj -bJj -bJj -gpz -gpz -rad -fXX -osE -gRJ -jrg -jrg -jrg -pxA -mwF -chU -mwF -pxA +hBq +tlB +xAS +aFO +tlB +hBq +xMz +xMz +xMz +xMz +aDM +uqb +kLM +gCx +kLM +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +iQq +iQq +kLM +uqb +iQq +iQq +iQq +kLM +xvb +uqb +uCs +xMz +xMz +xMz +xMz +cwZ +cwZ +kAw +kAw +kAw +hrk puZ puZ puZ @@ -33332,72 +33307,72 @@ pcY pcY pcY laz -aFO -aFO +tlB +tlB yjM kSO qBM -wMh -aFO -aFO -wMh +tlB +tlB xAS xAS -abQ +xAS +xAS +hBq +wMh +wMh +ntJ wMh -pcY -pcY -pcY -lSU dRb -abX -ors -ors -lSU -lSU -dwQ -dwQ -lSU -ada -ady -adE -lSU -goj -goj -goj -goj -goj -goj -goj -goj -goj -wnK -wnK -dwQ -flN -fXX -bJj -bJj -osE -bJj -bJj -gpz -gpz -bJj -bJj -xuz -ciL -bJj -bJj -bJj -jrg -jrg -jrg -amu -fXX -fXX -fSR -amu +xAS +hBq +tlB +tlB +hBq +tlB +tlB +tlB +xAS +aFO +tlB +xAS +tlB +xAS +kvQ +kLM +xvb +kLM +kLM +kLM +kLM +kLM +gCx +kJQ +kLM +qkI +iQq +kLM +iOu +kLM +iQq +qkI +lNg +kLM +lNg +uqb +uqb +xMz +xMz +xMz +xMz +xMz +xMz +cwZ +cwZ +kAw +kAw +kAw +kAw puZ puZ puZ @@ -33489,77 +33464,77 @@ wMh tQn nBo tlB -oRH +xAS sFj pcY kBo obH -aFO -aFO +tlB +tlB cQY rJI gso -pcY -wMh +tlB +tlB +tlB +oRH wMh -aFO -aFO +tlB +xAS xAS wMh -iZI ntJ -ntJ -pcY -lSU -abV -skl -skl -ors -elw -dwQ -dwQ -dwQ -lSU -ada -dwQ -dwQ -adI -goj -chU -goj -chU -chU -chU -goj -chU -aiD -rZt -flN -rZt -dwQ -bJj -osE -bJj -osE -osE -osE -gpz -bJj -gpz -gpz -bJj -ciL -gpz -bJj -xuz -jrg -jrg -jrg -amu -bJj -fSR -fXX -amu +wMh +mpI +hBq +tlB +tlB +xAS +xAS +xAS +xAS +xAS +xAS +xAS +aFO +xAS +tlB +xAS +cdh +aDM +uqb +kLM +kLM +uqb +uqb +kLM +kLM +kLM +iQq +bzK +iQq +iQq +kLM +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +xMz +xMz +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw puZ puZ puZ @@ -33651,119 +33626,119 @@ pcY pcY pcY xeq -aFO +xAS tze wMh wMh pWn -aFO +tlB tTc cQY aNy xtc -nKD +tlB wMh wMh -vtz -aFO -aFO +tlB +tlB +tlB +xAS xAS wMh wMh -ntJ +aaA wMh -lSU -sgB -skl -skl -ors -dwQ -elw -dwQ -dwQ -adI -adj -dwQ -adH -lSU -goj -wnK -goj -wnK -wnK -wnK -goj -txU -goj -rZt -rZt -flN -asz -jrg -jrg -jrg -osE -osE -osE -osE -bJj -bJj -bJj -bJj -sLj -sLj -tnG -jrg -jrg -jrg -jrg -nkH -bJj -fXX -fSR -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(35,1,1) = {" -puZ -puZ -puZ -caS -caS -mFm -mFm -mFm -caS -caS -mFm -mFm -caS -caS -mFm -lTL -caS -voH -slj -vOd -vOd -slj -las -caS -mFm -mFm -wMj -wMj -mFm -mFm -caS -voH -slj +xAS +tlB +xAS +xAS +aFO +aFO +aFO +aFO +aFO +tlB +xAS +aFO +xAS +tlB +kLM +uqb +kLM +kLM +kLM +kLM +kLM +iQq +iQq +kLM +iQq +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +xMz +xMz +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +puZ +"} +(35,1,1) = {" +puZ +puZ +puZ +caS +caS +mFm +mFm +mFm +caS +caS +mFm +mFm +caS +caS +mFm +lTL +caS +voH +slj +vOd +vOd +slj +las +caS +mFm +mFm +wMj +wMj +mFm +mFm +caS +voH +slj vFq ghK slj @@ -33813,77 +33788,77 @@ wMh cQY xhU wMh -aFO -aFO -dJl -fuz -dJl -aFO -aFO -pXU +tlB +tlB +sDd +vym +sDd +tlB +tlB +nZG wMh wMh -aFO +tlB +hBq +tlB +tlB +oRH +tlB +tlB wMh wMh wMh -eFI +wMh +mpI +hBq +aFO +aFO +aFO +aFO aFO aFO xAS -wMh -ntJ -wMh -lSU -kbT -skl -skl -ors -lSU -lSU -dwQ -dwQ -lSU -dwQ -dwQ -dwQ -lSU -dtE -rZt -rZt -iXr -pue -wui -rZt -rZt -goj -asz -asz -asz -asz -asz -asz -jrg -jrg -jrg -bJj -bJj -bJj -gpz -osE -osE -bJj -osE -osE -jrg -jrg -jrg -jrg -jrg -bJj -gRJ -bJj -amu +tlB +tlB +tlB +xAS +aFO +xAS +kvQ +uqb +aDM +iQq +kLM +kLM +iQq +uqb +uqb +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +uqb +lNg +lNg +xvb +uqb +xMz +xMz +xMz +xMz +xMz +xMz +kAw +nZA +kAw +kAw +nZA +kAw puZ puZ puZ @@ -33975,77 +33950,77 @@ oRH cQY oRH sIP -aFO -aFO -elN +tlB +tlB +pGi jmW -tPs -aFO +ohd +tlB wMh wMh wMh -aFO -aFO +tlB +tlB +tlB +tlB +oRH +tlB +tlB +xAS +wMh wMh -aFO wMh +wMh +dRb +xAS +tlB +xAS aFO +xAS +xAS +tlB +tlB +xAS +xAS +xAS aFO -tTc +xAS aFO -vaT -wMh -wMh -lSU -xFP -mIx -aca -wPp -wPp -lSU -dwQ -dwQ -lSU -gpb -adC -adC -lSU -goj -wnK -goj -gKE -pue -iYc -onM -wnK -goj -asz -afz -azH -agZ -aUS -asz -jrg -jrg -jrg -jrg -jrg -bJj -gpz -osE -osE -gpz -bJj -bJj -mKF -jrg -jrg -gRJ -sUD -hXH -apD -hXH -czI +fKb +kLM +iQq +kLM +kLM +kLM +kLM +uqb +iOu +kLM +iQq +iQq +iQq +iQq +iQq +iOu +iQq +iQq +uqb +hbD +iDy +iDy +hzJ +hzJ +xMz +xMz +xMz +xMz +xMz +kAw +nZA +nZA +kAw +kAw +kAw puZ puZ puZ @@ -34135,80 +34110,80 @@ aFO aFO aFO wfP -oRH +xAS tlB oRH -aFO -dJl +tlB +sDd hCa -dJl -aFO -aFO +sDd +tlB +tlB wMh wMh -aFO -aFO -aFO -aFO -aFO -aFO -aFO -vtz -aFO +hBq +wMh +wMh +hBq +tlB +tlB xAS +tlB wMh +jmW pcY -lSU -wPp -wPp -acb -wPp -wPp -lSU -dwQ -dwQ -lSU -lSU -lSU -lSU -lSU -goj -chU -dsY -hTb -pRH -lpA -goj -chU -goj -fNE -afV -rZt -rZt -aCB -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -gpz -gpz -gpz -bJj -bJj -bJj -jrg -gRJ -bJj -osE -gpz -bJj -bJj -jrg -puZ +pcY +pcY +pcY +hBq +xAS +xAS +pcY +pcY +xAS +xAS +xAS +xAS +cbG +ylF +tlB +uji +uji +uji +uji +uji +uAd +kbK +jpE +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +kLM +kLM +qoU +hXB +hzJ +hzJ +hzJ +xMz +xMz +xMz +xMz +kAw +kAw +kAw +kAw +kAw +kAw +hrk +hrk puZ puZ puZ @@ -34301,76 +34276,76 @@ pZB wMh wMh aaA -elN +pGi jmW swV -aFO -aFO -aFO -wMh -wMh -wMh -aFO -wMh +xAS +xAS +tlB wMh +hBq +tlB wMh -aFO -vtz +tlB +oRH +tlB +tlB wMh wMh +ntJ pcY pcY -lSU -wPp -wPp -wPp -wPp -wPp -lSU -elw -dwQ -dwQ -dwQ -dwQ -lSU -lQm -goj -chU -goj -dqH -rZt -sCl -onM -chU -goj -fNE -afX -rZt -rZt -ahS -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -osE -bJj -bJj -gpz -bJj -bJj -jrg -osE -bJj -bJj -gpz -bJj -jrg -jrg -puZ +pcY +pcY +tlB +hBq +xAS +pcY +pcY +pcY +xAS +toO +jld +xAS +pff +tlB +uji +uji +uji +uji +uji +kLM +kLM +knI +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +kLM +uqb +uqb +uqb +qEB +hzJ +hzJ +hzJ +hzJ +kAw +hrk +kAw +kAw +kAw +kAw +kAw +nZA +kAw +kAw +kAw +kAw puZ puZ puZ @@ -34463,77 +34438,77 @@ pcY gXW gXW kQW -dJl +ilW ylU -dJl -aFO -wMh +ilW +tlB wMh -aFO wMh -aFO -aFO -aFO +xAS wMh -aFO -aFO +tlB +tlB +tlB +tlB xAS +tlB +wMh +wMh wMh pcY pcY pcY -wPp -wPp -wPp -lSU -lSU -lSU -lSU -dwQ -oaO -dwQ -dwQ -dwQ -bXo -rZt -goj -vuj -goj -eaz -rZt -nwd -goj -wnK -goj -fNE -aud -rZt -rZt -ahT -asz -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -gpz -bJj -osE -bJj -gpz -gpz -bJj -jrg -jrg -puZ -puZ +pcY +hBq +tlB +pcY +pcY +pcY +uKZ +iMA +aYy +bbj +aYy +iMA +uKZ +uji +uji +uji +uji +uji +uji +qhm +qhm +kXs +mcH +mcH +mcH +mcH +nEH +mcH +mcH +mcH +pNo +qhm +qhm +hzJ +hzJ +hzJ +hzJ +hzJ +kAw +kAw +kAw +hrk +hrk +kAw +nZA +nZA +kAw +kAw +kAw +kAw +hrk puZ puZ puZ @@ -34629,73 +34604,73 @@ mbt mbt abt wMh -aFO -aFO -aFO -aFO -aFO -aFO -fXQ -pcY -wMh -vtz +xAS +tlB +xAS +tlB xAS wMh -pcY +wMh +tlB +tlB wMh wMh -wPp -wPp -wPp -lSU -dwQ -dwQ -dwQ -oaO -dwQ -rEW -lSU -lSU -lSU -ehe -bxW -chU -goj -rZt -rZt -rZt -goj -chU -oag -asz -aud -rZt -rZt -tiw -asz -jrg -jrg -jrg -bJj -osE -bJj -bJj -jrg -bJj -osE -bJj -gpz -gpz -gpz -bJj -bJj -gpz -gpz -fXX -jrg -iTQ -puZ -puZ +wMh +jmW +pcY +pcY +pcY +uji +uKZ +uKZ +uji +uji +uji +uKZ +fRg +fRg +fRg +bfy +fRg +uKZ +uji +dMo +ibP +dMo +uji +uji +kLM +lNE +uqb +iOu +kLM +iQq +iQq +iQq +iQq +kLM +kLM +uqb +uqb +uqb +hzJ +huz +huz +huz +huz +ncS +ncS +ncS +huz +huz +hrk +kAw +kAw +kAw +kAw +kAw +hrk +hrk puZ puZ puZ @@ -34793,70 +34768,70 @@ gXW mbt abw wMh -aFO -aFO -aFO +tlB +tlB +xAS wMh -sFj -pcY wMh -aFO +tlB xAS wMh -iZI -ntJ +wMh ntJ wMh -wPp -wPp -lSU -dwQ -eBG -dwQ -dwQ -elw -rRP -lSU -cvn -lSU -exm -goj -rWS -fVI -rZt -rZt -rZt -goj -chU -goj -aeU -rZt -rZt -rZt -aCB -asz -jrg -jrg -jrg -osE -bJj -bJj -bJj -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -bJj -bJj -fXX -fXX -iTQ -puZ +pcY +pcY +pcY +uji +oYH +ahe +pvv +sKi +pvv +pvv +aWY +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +uji +aDM +uqb +uqb +uqb +kLM +kLM +iQq +iQq +iQq +iQq +kLM +kLM +sqb +lNg +aDM +aDM +huz +huz +huz +huz +tRN +rdS +xvQ +huz +huz +kAw +kAw +kAw +kAw +nZA +kAw +hrk puZ puZ puZ @@ -34954,110 +34929,110 @@ idR jHg aui ecz -aFO -aFO -aFO -wMh -jmW -pcY -pcY -pcY -aFO -aFO +tlB +tlB +tlB xAS -iZI +tlB +tlB +tlB +tlB wMh wMh ntJ -wPp -wPp -lSU -dwQ -lSU -lSU -lSU -lSU -lSU -lSU -dwQ -lSU -qRo -goj -wnK -goj -kMJ -rZt -neS -goj -wnK -oag -asz -agl -rZt -rZt -apk -asz -jrg -jrg -jrg -osE -bJj -bJj -jrg -jrg -bJj -bJj -gpz -gpz -bJj -bJj -bJj -gpz -bJj -fXX -bJj -fXX -amu -puZ -puZ -puZ -puZ -puZ -puZ -puZ -"} -(43,1,1) = {" -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -eni -mMK -ntc -vYm -vYm -vYm -vYm -vYm -vYm -vYm -vYm -vYm -vYm -vYm -ntc -vYm -vYm -vYm -vYm -eni -ntc -ntc +ntJ +pcY +pcY +pcY +uji +dtr +oYH +pvv +aTn +pvv +pvv +pvv +pvv +pvv +bfi +pvv +pvv +pvv +pvv +pvv +fRg +hGj +kLM +iOu +uqb +kJQ +uqb +iQq +iQq +iQq +iQq +kLM +iQq +kLM +uqb +kLM +que +aDM +huz +kys +pef +rdS +axJ +axJ +xvQ +fXB +ncS +kAw +nZA +kAw +kAw +nZA +kAw +hrk +puZ +puZ +puZ +puZ +puZ +puZ +"} +(43,1,1) = {" +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +puZ +eni +mMK +ntc +vYm +vYm +vYm +vYm +vYm +vYm +vYm +vYm +vYm +vYm +vYm +ntc +vYm +vYm +vYm +vYm +eni +ntc +ntc eni eni ntc @@ -35118,69 +35093,69 @@ tes sPo wMh tze -aFO -xbm -pcY -pcY -pcY +tlB +tlB +tlB +tlB +xAS +xAS wMh wMh -vtz -aFO -cyW -xAS wMh wMh wMh -iZI -lSU -jis -lSU -acU -acU -lSU -lSU -lSU -fgH -lSU -bYk -goj -chU -dsY -uKo -rZt -wjK -goj -vTj -goj -asz -agm -rZt -rZt -ard -asz -asz -asz -jrg -bJj -bJj -bJj -jrg -jrg -jrg -bJj -gpz -bJj -gpz -bJj -osE -jrg -amu -fXX -fXX -bJj -amu -puZ +pcY +pcY +uji +fRg +oYH +pvv +pvv +aTh +aVx +aWI +aYd +baX +bcJ +pvv +pvv +pvv +pvv +pvv +fRg +hGj +kLM +iQq +kLM +uqb +kLM +iQq +iQq +iQq +iQq +iQq +kLM +iQq +iQq +kLM +kLM +kLM +huz +krU +axJ +axJ +trX +uLT +wTT +fXB +ncS +hrk +hrk +nZA +kAw +kAw +kAw +kAw puZ puZ puZ @@ -35279,70 +35254,70 @@ aRL uLf nlx wMh -aFO -aFO +tlB +tlB wMh -jmW -pcY wMh -aFO -aFO -aFO -aFO -vtz -aFO -aFO +wMh +wMh +tlB xAS wMh -iZI wMh -flN -kEs -agw -agw -kEs -wXh -lSU -cvn -lSU -wOO -goj -chU -goj -lfk -rZt -uII -aiD -chU -goj -fNE -aud -rZt -rZt -mRU -ptr -aue -asz -jrg -bJj -gpz -gpz -bJj -jrg -jrg -jrg -gpz -gpz -gpz -bJj -osE -jrg -iTQ -rbq -rbq -rbq -amu -puZ +wMh +ntJ +wMh +wMh +uKZ +fRg +oYH +pvv +pvv +aUw +aVB +aWQ +aVN +aVN +aVN +bqN +aVx +dbH +pvv +pvv +gxK +hGj +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +iQq +huz +axJ +axJ +rBC +rdS +axJ +axJ +tkm +ncS +hrk +hrk +kAw +kAw +kAw +kAw +kAw puZ puZ puZ @@ -35441,72 +35416,72 @@ wMh wMh jJv afY -aFO +tlB tTc wMh +gZk +tlB +tlB +tlB +xAS wMh wMh -aFO -aFO -aFO -aFO -aFO -aFO -tTc -vtz -aFO -eFI -xct wMh -kEs -flN -flN -kEs -flN -kOi -lSU -lSU -lSU -lSU -bxW -wnK -goj -aNf -rZt -nBs -goj -txU -goj -fNE -aud -ptr -miD -miD -rZt -ava -asz -asz -dVw -gpz -gpz -bJj -bJj -jrg -bJj -bJj -gpz -bJj -bJj -jrg -jrg -amu -rbq -rbq -rbq -amu -puZ -puZ -puZ +wMh +ntJ +ntJ +uKZ +aQg +oYH +pvv +aTh +aUx +aVL +aWS +rNx +bbg +rNx +aWS +bYO +aWQ +dbH +fhv +fRg +hGj +kLM +kLM +iQq +iQq +kLM +vdk +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +tpg +exX +qIr +axJ +axJ +axJ +dQq +axJ +huz +huz +huz +hrk +kAw +kAw +kAw +kAw +kAw +fNf +oFl puZ puZ puZ @@ -35602,75 +35577,75 @@ wMh ntJ wMh wMh +tlB +tlB +hBq +pcY wMh -aFO -aFO -aFO -aFO -aFO -aFO -wMh -pWY -wMh -wMh -xAS -xAS +tlB +tlB +tlB wMh +pcY +pcY wMh -tig wMh -eFI -flN -kEs -kEs -fgB -kEs -kOi -lSU -coj -coj -lSU -dtE -rZt -rZt -rZt -rZt -mgT -rZt -uvU -goj -fNE -aud -miD -ptr -ptr -rZt -aCB -aeU -dwQ -bJj -bJj -bJj -bJj -bJj -bJj -bJj -bJj -gpz -bJj -bJj -bJj -jrg -amu -gpz -bJj -osE -amu -puZ -puZ -puZ -puZ -puZ +ntJ +ntJ +uKZ +aQg +oYH +pvv +aTi +aUy +aVL +vVq +aVL +aVL +aVL +aWS +clp +aVU +aUA +gIQ +fRg +hGj +uqb +uqb +uqb +kLM +iQq +ipc +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +iQq +eSN +akF +alS +aMW +wHx +dQq +axJ +axJ +huz +huz +huz +hrk +nZA +nZA +nZA +kAw +kAw +rBk +hip +puZ +puZ puZ puZ "} @@ -35756,7 +35731,7 @@ oRH oRH tlB wMh -tlB +xAS wMh wMh oRH @@ -35764,71 +35739,71 @@ tlB tlB wMh wMh -aFO -aFO -aFO -aFO -wMh -wMh -wMh -wMh -wMh -iZI -wMh -wMh -wMh +tlB +tlB +hBq +pcY +pcY +dRb +dRb +dRb +pcY +pcY +pcY +pcY wMh -jmW -xct wMh wMh -gCL -flN -kEs -flN -flN -vTc -rMI -dTU -dTU -rMI -goj -wnK -goj -wnK -wnK -wnK -goj -wnK -goj -fNE -aud -rZt -rZt -rZt -nBh -ajg -asz -asz -jrg -jrg -jrg -cBU -cBU -cBU -bJj -bJj -bJj -gpz -bJj -bJj -bJj -bJj -fXX -osE -fXX -amu -puZ +uKZ +fRg +oYH +pvv +aTj +aUz +aVU +aWS +rPa +baY +rPa +aWS +cbk +aWU +deV +eVG +fRg +hGj +uqb +kLM +kLM +iQq +iQq +ipc +iQq +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +tpg +exX +qIr +rdS +axJ +axJ +axJ +axJ +axJ +huz +huz +sax +hrk +nZA +nZA +kAw +kAw puZ puZ puZ @@ -35925,77 +35900,77 @@ wMh oRH oRH wMh -aFO -aFO -aFO -aFO -wMh -wMh -pcY +tlB +tlB +tlB +tlB +tlB +tlB +hBq +tlB +xAS pcY pcY pcY -iZI pcY -wMh -ntJ -wMh -xct -wMh -wMh -wMh -flN -flN -eit -kEs -kEs -flN -rMI -dTU -dTU -rMI -goj -chU -goj -chU -chU -chU -goj -chU -aiD -asz -twt -agY -aha -arK -arU -asz -asz -qNE -qNE -enh -xNO -bJj -cBU -cBU -cBU -bJj -fXX -gpz -gpz -vlD -bJj -bJj -bJj -osE -bJj -amu -amu -amu -amu -amu -amu -amu +uji +uKZ +uKZ +uji +dtr +oYH +pvv +fhv +aUA +aVB +aWU +aVx +aVx +aVx +bqN +aVN +deV +dKR +pvv +fRg +hGj +kLM +iQq +iQq +iQq +iQq +iQq +kLM +kLM +uqb +kLM +iQq +iQq +iQq +iQq +iQq +tpg +exX +qIr +aut +rdS +rdS +axJ +axJ +rdS +huz +huz +sax +hrk +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (49,1,1) = {" @@ -36087,77 +36062,77 @@ wMh wMh wMh wMh -aFO -aFO -aFO -aFO -aFO -wMh -pcY -pcY +tlB +tlB +oRH +tlB +tlB +tlB +tlB +tlB +xAS pcY pcY pcY pcY -jmW -abT -wMh -iZI -pWY -wMh -wMh -flN -kEs -kEs -flN -eit -vTc -asz -coj -coj -asz -dtE -goj -goj -goj -goj -goj -goj -aiD -goj -asz -agz -asz -asz -asz -asz -asz -asz -qNE -enh -xNO -acd -cBU -cBU -cBU -bJj -cBU -bJj -gpz -gpz -bJj -bJj -gpz -rbq -fXX -rbq -mwJ -fXX -fXX -fXX -fXX -pLS -amu +uKZ +cHB +xSk +afd +fRg +oYH +aSA +gIQ +aTj +aVN +aWV +aYx +bbh +beK +pvv +pvv +pvv +pvv +pvv +fRg +hGj +iQq +iQq +iQq +iQq +iQq +iQq +kLM +aDM +kLM +iQq +iQq +iQq +iQq +iQq +iQq +iQq +huz +aut +rdS +aCy +tdc +axJ +axJ +tZW +huz +huz +sax +hrk +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (50,1,1) = {" @@ -36247,96 +36222,96 @@ wMh hBq wMh oRH -aFO -aFO -aFO -aFO -aFO -wMh -wMh -wMh -pcY -pcY +tlB +tlB +tlB +oRH +tlB +oRH +tlB +tlB +tlB +tlB pcY pcY pcY pcY -jmW -jmW pcY -lSU -lSU -lSU -lSU -lSU -wBf -kEs -fgB -kEs -flN -asz -asz -asz -asz -asz -asz -tDg -iWX -wZh -asz -rMI -kdy -asz -asz -asz -asz -asz -asz -asz -asz -asz -qNE -xNO -enh -wwW -bJj -bJj -bJj -jrg -cBU -bJj -fXX -fXX -bJj -gpz -bJj -bJj -fXX -vOb -cuJ -fXX -bJj -fXX -fXX -pLS -amu -puZ -"} -(51,1,1) = {" -puZ -puZ -puZ -puZ -puZ -anc -anc -iXC -ukU -iPU -anc -edw -bsM -iVj +uKZ +xSk +aNq +oYH +fRg +oYH +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +hGj +iQq +iOu +kLM +iOu +kLM +kLM +iQq +kLM +iQq +iQq +iQq +iQq +pKK +iQq +iOu +kLM +huz +rdS +axJ +amH +tbR +axJ +rdS +ixC +huz +huz +sax +hrk +kAw +kAw +kAw +kAw +puZ +puZ +puZ +puZ +puZ +puZ +"} +(51,1,1) = {" +puZ +puZ +puZ +puZ +puZ +anc +anc +iXC +ukU +iPU +anc +edw +bsM +iVj qII ntc ntc @@ -36409,15 +36384,13 @@ hBq wMh oRH xAS -aFO +tlB jCZ pGj -aFO -abH -wMh -wMh -pcY -pcY +tlB +hBn +oRH +tlB pcY pcY pcY @@ -36426,62 +36399,64 @@ pcY pcY pcY pcY -lSU -lSU -lSU -aSI -aRs -uRt -flN -sBW -rZt -nOB -rMI -rMI -asz -tRq -wdy -dTU -bZZ -dTU -twc -fNE -rZt -uvU -asz -asz -qNE -qNE -qNE -qNE -qNE -qNE -qNE -qNE -cEV -kSW -wwW -cBU -bJj -jrg -jrg -cBU -cBU -bJj -bJj -bJj -bJj -bJj -fXX -osE -gpz -amu -amu -amu -fXX -igJ -fXX -amu +uKZ +hsw +aNp +bfR +oYH +oYH +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +gqe +uji +wNB +khx +jac +khx +iHu +idG +kLM +iQq +iQq +kLM +kLM +huz +huz +huz +huz +huz +huz +mpt +axJ +rxd +sFv +axJ +rdS +hRC +huz +huz +sax +qCr +kAw +nZA +kAw +kAw +puZ +puZ +puZ +puZ +puZ puZ "} (52,1,1) = {" @@ -36571,79 +36546,79 @@ tlB wMh oRH xAS -elN +pGi jmW swV -aFO -wMh -xAS -wMh -pcY -pcY -xbn -qBn -rdp +tlB +oRH +oRH +tlB pcY pcY pcY pcY pcY -lSU -lSU -aOv -afF -rZt -rZt -gLv -afF -wBf -wnK -dTU -pkK -asz -emq -chU -kbZ -chU -gTv -chU -fNE -uvU -rZt -asz -asz -qNE -qNE -qNE -enh -enh -iSG -xNO -iSG -hRF -bax -wwW -wvS -cBU -bJj -bJj -cBU -cBU -bJj -bJj -bJj -qMc -bJj -rbq -osE -gpz -gpz -amu -amu -fXX -fXX -lAb -amu +uji +uji +uji +uji +uKZ +uKZ +uji +uji +uji +qLA +uji +uKZ +aVT +fRg +fRg +oYH +uKZ +bFS +ail +ail +ail +uKZ +uji +uji +iMA +iMA +iMA +uKZ +ehV +aDM +kTP +iQq +iQq +kLM +uqb +huz +cio +ieD +aKR +aDu +huz +axJ +rdS +rti +ieD +axJ +axJ +hIu +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ puZ "} (53,1,1) = {" @@ -36733,79 +36708,79 @@ wMh wMh wMh oRH -aFO -pMV -aFO -aFO -wMh -wMh -pcY -pcY +tlB +xMs +tlB +oRH +tlB +oRH pcY -xbn -ppb -rdp pcY pcY pcY pcY pcY -lSU -lSU -tSI -rZt -gLv -rZt -gLv -afF -wBf -wnK -dTU -wnK -asz -kbZ -chU -gTv -sHf -tRq -chU -ogu -rZt -rZt -asz -asz -qNE -qNE -xNO -iSG -xNO -xNO -xNO -iSG -rwy -bBT -xrC -cBU -cBU -cBU -bJj -bJj -cBU -bJj -bJj -osE -bJj -bJj -bJj -amu -gpz -gpz -amu -amu -fXX -fXX -pLS -amu +uji +uji +fRg +aMs +bYV +lJh +loH +ppI +aMs +bKV +bKV +uKZ +nUa +bKV +bKV +bKV +iDW +bzh +fRg +fRg +fRg +fRg +aKS +fRg +ohq +mKB +cLq +iMA +avx +voo +kLM +iQq +iQq +kLM +tpg +exX +qIr +azS +qny +aDu +aut +kfW +axJ +axJ +axJ +axJ +axJ +rdS +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ puZ "} (54,1,1) = {" @@ -36896,123 +36871,123 @@ wMh wMh oRH xAS -aFO -aFO +tlB +tlB wMh xAS -ntJ -pcY -pcY -pcY -xbn -qBn -rdp -wMh -wMh -wMh -ntJ +aFO pcY -lSU -lSU -afF -sBW -xDq -aSI -afF -aUT -asz -rMI -rMI -rMI -asz -emq -wnK -dTU -wnK -dTU -hfm -asz -rZt -rZq -asz -asz -rdQ -mmW -lLE -aSC -iSG -iSG -atJ -bax -bax -bBT -xrC -cBU -bJj -bJj -cBU -cBU -bJj -fjv -iTQ -osE -gpz -gpz -bJj -amu -gpz -gpz -amu -amu -fXX -fXX -amu -amu -puZ -"} -(55,1,1) = {" -puZ -puZ -puZ -puZ -anc -jWL -nTC -nTC -nTC -nTC -nTC -nTC -pFJ -anc -xkV -fxJ -frV -gNM -aMu -azy -vYm -vYm -vYm -vYm -vYm -vYm -vYm -vYm -ntc -ntc -aEJ -mMK -eni -kOV -kOV -vYm -ntc -ntc -eni -eni -eni -ntc +gUc +xgH +xgH +xgH +gQJ +uji +uji +fRg +fRg +fRg +fRg +fRg +fRg +fRg +bKV +bKV +iMA +vHX +aWX +bKV +bKV +bsC +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +xQa +iMA +avx +uqb +kLM +iQq +iQq +kLM +tpg +exX +alW +arW +anJ +dQq +hmo +rdS +axJ +dQq +axJ +axJ +axJ +axJ +huz +huz +sax +sax +nZA +nZA +kAw +kAw +kAw +puZ +puZ +puZ +puZ +puZ +"} +(55,1,1) = {" +puZ +puZ +puZ +puZ +anc +jWL +nTC +nTC +nTC +nTC +nTC +nTC +pFJ +anc +xkV +fxJ +frV +gNM +aMu +azy +vYm +vYm +vYm +vYm +vYm +vYm +vYm +vYm +ntc +ntc +aEJ +mMK +eni +kOV +kOV +vYm +ntc +ntc +eni +eni +eni +ntc kOV ntc kOV @@ -37057,78 +37032,78 @@ aFO xAS oRH xAS +tlB +tlB +xAS aFO -aFO -aFO -wMh xAS -ntJ -pcY -pcY +aFO pcY -xbn -ppb -rdp -wMh -ntJ -wMh -wMh -wMh -lSU -aNL -nmi -afP -asz -asz -aTQ -asz -asz -wnK -dTU -wnK -asz -asz -qkL -fNE -fNE -asz -asz -asz -crF -crF -asz -asz -qNE -iSG -bax -aUQ -xNO -iSG -iSG -iSG -wwW -pPY -wwW -bJj -fjv -fjv -fjv -bJj -fjv -jrg -amu -osE -gpz -gpz -fXX -bJj -gpz -gpz -amu -amu -fXX -fXX -amu +aGc +qkC +tzo +qkC +tGv +dtr +fRg +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +iMA +vHX +bKV +bKV +bKV +bsC +pvv +pvv +pvv +pvv +pvv +pvv +pvv +pvv +fRg +uKZ +uKZ +vqV +kLM +kLM +iQq +iQq +iQq +kLM +huz +pJM +ayZ +rdS +bqO +axJ +bqO +axJ +axJ +axJ +axJ +axJ +axJ +huz +huz +sax +sax +nZA +nZA +nZA +kAw +kAw +fNf +oFl +puZ puZ puZ "} @@ -37219,78 +37194,78 @@ aFO aFO xAS aFO +tlB +tlB +xAS aFO aFO aFO -wMh -wMh -ntJ -pcY -pcY -pcY -xbn -qBn -tyi -wMh -ntJ -ntJ -wMh -wMh -bXo -kxx -bIh -afQ -fNE -rZt -rZt -rZt -rZt -rZt -rZt -rZt -rkc -wnK -rZt -rZt -rZt -asz -asz -hMY -rZt -rZt -asz -asz -qNE -qPi -iSG -iSG -iSG -iSG -bax -iSG -wwW -pOy -wwW -jrg -cBU -fjv -fjv -fjv -jrg -jrg -amu -osE -gpz -osE -osE -bJj -gpz -amu -amu -amu -fXX -fXX -amu +xAS +aGd +aHd +aIG +tzo +aJk +fRg +fRg +bKV +bKV +aMK +aNl +aNl +aPn +bKV +bKV +tsU +uKZ +ocB +bKV +bKV +bKV +hDW +bAX +fRg +fRg +fRg +qXk +fRg +pvv +khz +fRg +iMA +nIA +scp +kLM +iQq +iQq +kLM +iQq +iQq +huz +aQq +axJ +axJ +axJ +axJ +jJZ +oXU +axJ +dQq +axJ +axJ +rdS +huz +huz +sax +sax +kAw +kAw +kAw +kAw +kAw +rBk +hip +puZ puZ puZ "} @@ -37378,81 +37353,81 @@ wMh wMh oRH oRH +xAS +tlB +tlB +hnj +tlB +tlB +xAS aFO aFO aFO -cou -aFO -aFO -xAS -wMh -pcY -jmW -pcY -pcY -aPX -dRi -abA -wMh -wMh -wMh -ntJ -wMh -asz -aNN -afN -afP -fNE -rZt -rZt -rZt -rZt -gGf -rZt -rZt -qVo -wnK -wnK -wnK -rZt -asz -asz -hLB -rZt -rZt -asz -asz -uil -iSG -ayJ -aSC -wwW -wwW -bax -wwW -wwW -cEV -rfv -jrg -amu -iTQ -amu -amu -amu -amu -amu -osE -gpz -osE -osE -bJj -gpz -amu -amu -amu -fXX -fXX -amu +aGd +tzo +qkC +tzo +aGd +fRg +fRg +bKV +bKV +bKV +bKV +kGz +bKV +bKV +ohE +bKV +uKZ +ahe +fRg +fRg +oYH +uKZ +bwk +cex +cex +cex +uKZ +xHu +pvv +pvv +oCG +kjM +oCG +iQq +iQq +iQq +kLM +aDM +kLM +iQq +huz +huz +avz +avz +axJ +axJ +alO +pJM +rgI +rdS +axJ +kLi +alP +huz +huz +sax +sax +kAw +kAw +nZA +kAw +kAw +kAw +puZ +puZ puZ puZ "} @@ -37546,75 +37521,75 @@ wMh wMh wMh aFO +tlB +xAS aFO xAS -wMh -jmW -jmW -wMh -wMh -wMh -ntJ -wMh -ntJ -wMh -wMh -ntJ -asz -asz -asz -asz -asz -asz -krT -rZt -rZt -rZt -gGf -bDx -asz -kXt -asz -wnK -rZt -asz -asz -kPX -rZt -rZt -asz -asz -qNE -nHp -bax -aUQ -wwW -wwW -bax -wwW -wwW -jrg -jrg -jrg -amu -igJ -fXX -fXX -fXX -fXX -fXX -osE -gpz -bJj -fXX -bJj -iTQ -amu -amu -amu -fXX -fXX -amu +aGb +tzo +qkC +tzo +aGd +fRg +fRg +bKV +bKV +pzj +pzi +bKV +bKV +bKV +bKV +bKV +oYH +bKV +bKV +bKV +bKV +oYH +bKV +bKV +bKV +bKV +iMA +sFR +pvv +pvv +oCG +wRm +oCG +iQq +iQq +iQq +szU +kLM +iQq +iQq +uqb +ncS +pTp +pTp +rdS +axJ +alO +huz +qWL +aut +axJ +kLi +kLi +huz +huz +sax +sax +kAw +kAw +nZA +nZA +kAw +kAw +puZ +puZ puZ puZ "} @@ -37709,74 +37684,74 @@ xAS wMh wMh aFO -aFO +tlB xAS -wMh -wMh -ntJ -ntJ -wMh -wMh -lAN -wMh -ntJ -ntJ -wMh -asz -abn -abF -abF -abF -acg -asz -aUU -aXh -mYX -bVr -aXh -aXh -bJf -rkc -wnK -rZt -hMY -asz -asz -crF -crF -asz -asz -xNO -iSG -iSG -iSG -iSG -wwW -xrC -xrC -iSG -enh -jrg -jrg -amu -lAb -fXX -fXX -fXX -fXX -fXX -fXX -bJj -bJj -gpz -osE -bJj -mwJ -bJj -fXX -fXX -fXX -amu +uji +aGe +tzo +tzo +aJj +aGd +fRg +fRg +bKV +bKV +aMK +aNl +aNl +aPn +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +uHA +bKV +bKV +rfd +bKV +iMA +hFJ +fRg +dZN +fRg +iMA +tLC +hye +kLM +iQq +kLM +iQq +iQq +kLM +uqb +ncS +mRc +rdS +aXk +axJ +jFq +huz +qPh +rdS +axJ +axJ +sXt +huz +huz +sax +sax +kAw +kAw +nZA +nZA +nZA +kAw +puZ +puZ puZ puZ "} @@ -37872,73 +37847,73 @@ wMh aFO aFO aFO -aFO -aFO -wMh -wMh -ntJ -gvY -ntJ -qXC -wMh -wMh -wMh -wMh -asz -abp -abG -abJ -abG -ach -asz -aWC -aWs -qkR -eRG -sbd -wnK -aXH -rkc -wnK -rZt -fir -asz -asz -rZt -rZt -asz -asz -iSG -iSG -iSG -bax -bax -wwW -xrC -nRL -kSW -enh -jrg -jrg -amu -cur -fXX -fXX -amu -amu -iTQ -bJj -fXX -gpz -gpz -bJj -fXX -cuJ -fXX -bJj -fXX -fXX -amu +tlB +uji +ahX +qkC +tzo +qkC +mhS +dtr +fRg +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +fRg +bKV +bKV +bKV +bKV +uKZ +uKZ +iMA +iMA +iMA +uKZ +uKZ +ehV +kLM +iQq +iQq +iQq +kLM +kLM +uqb +ncS +bWB +auh +aTO +hkS +itR +oNz +qOE +rdS +axJ +sYx +wFm +huz +huz +sax +sax +kAw +kAw +nZA +hrk +nZA +kAw +puZ +puZ puZ puZ "} @@ -38034,73 +38009,73 @@ wMh xAS xAS aFO -aFO -aFO -aFO -wMh -tRn -wMh -wMh -wMh -pyB -lAN -wMh -wMh -asz -abp -abJ -abJ -abJ -aSK -aTR -rMI -acY -rZt -bJi -rZt -wnK -aXH -rkc -wnK -wnK -asz -asz -dTj -rZt -rZt -tYA -fNE -iSG -aHz -iSG -bax -bax -eSc -xrC -cBs -xNO -enh -jrg -jrg -amu -amu -fXX -fXX -amu -jrg -osE -bJj -gpz -gpz -gpz -osE -bJj -iTQ -iTQ -amu -amu -amu -amu +xAS +uji +rXn +dsx +dsx +dsx +waS +uji +uji +fRg +fRg +pgh +fRg +fRg +fRg +lro +bKV +bKV +oYH +bKV +meg +bKV +bbi +beP +bKV +meg +bKV +bKV +eGG +bKV +bKV +ftr +obb +vHX +iMA +ehV +kLM +iQq +iQq +kLM +uqb +uqb +huz +huz +auh +bWB +qvY +gZZ +iof +aDu +qoY +axJ +axJ +wFm +sYx +huz +huz +sax +sax +nZA +kAw +nZA +nZA +nZA +kAw +puZ +puZ puZ puZ "} @@ -38197,70 +38172,70 @@ vXw wMh xAS aFO -aFO -aFO -aFO -wMh -kSO -thK -xog -kqE -wMh -wMh -wMh -asz -aNP -abJ -abG -abJ -abJ -rZt -kxx -oZs -bJi -bJi -bJi -wnK -bQx -asz -asz -qkL -asz -asz -rZt -rZt -iEF -cYC -fNE -iSG -iSG -bax -wwW -xrC -xrC -xrC -iSp -xNO -xNO -enh -jrg -jrg -amu -fXX -fXX -amu -jrg -bJj -gpz -bJj -bJj -bJj -osE -bJj -amu -puZ -puZ -puZ +uji +uji +uji +uji +uji +uji +uji +uji +uji +aKL +uji +aNh +aLs +uji +uji +iMA +iMA +uKZ +oYH +gxK +fRg +oYH +uKZ +iMA +iMA +uji +uKZ +uKZ +bKV +okc +bKV +krm +iXx +iMA +ehV +uqb +kLM +iQq +nAs +uqb +ajE +huz +qSW +arZ +aIh +aPf +gtx +aTO +oww +qmv +axJ +axJ +axJ +axJ +huz +huz +sax +sax +kAw +kAw +hrk +kAw +nZA +kAw puZ puZ puZ @@ -38359,71 +38334,71 @@ hPp pcY wMh xAS -aFO -aFO -nhF -aFO -rJI -pvR -vjg -wiG -wMh -ntJ -wMh -asz -aNR -abJ -abG -abJ -abJ -rZt -kxx -oZs -bJi -bJi -ahZ -eRG -aXH -rZt -rZt -rZt -hAX -crF -rZt -rZt -rZt -fhd -fNE -iSG -iSG -bax -wwW -xrC -xrC -xrC -xrC -xNO -xNO -enh -jrg -jrg -amu -eom -fXX -amu -osE -osE -bJj -bJj -bJj -bJj -bJj -bJj -amu -puZ -puZ -puZ -puZ +uji +uji +uji +uji +uji +uji +uji +uji +aLk +bKV +bKV +aNg +bKV +aOb +uji +snX +fRg +aKS +fRg +fRg +dLk +fRg +aKS +fRg +fRg +fRg +rIj +uKZ +giH +uji +iMA +iMA +iMA +uKZ +ehV +uqb +kLM +iQq +iQq +kLM +ajd +huz +fjS +anJ +aGf +aNE +ggr +hLE +qvY +qkQ +axJ +axJ +axJ +axJ +huz +huz +sax +iZj +kAw +kAw +hrk +kAw +nZA +kAw +hrk puZ puZ puZ @@ -38521,71 +38496,71 @@ pcY pcY wMh xAS -aFO -aFO -aFO -wMh -rJI -gso -aJd -ntJ +tPB wMh wMh +ntJ +ntJ +ntJ wMh -asz -abp -abJ -abJ -abJ -abJ -rZt -rMI -oZs -azm -bJi -rZt -wnK -aXH -rZt -rZt -rZt -dwQ -crF -rZt -rZt -rZt -rZt -fNE -iSG -iSG -wwW -xrC -wwW -jjq -iYu -eMx -xNO -xNO -jrg -jrg -jrg -amu -fXX -fXX -amu -osE -osE -gpz -bJj -jrg -bJj -bJj -gpz -osE -puZ -puZ -puZ -puZ +iMA +aKQ +bKV +bKV +omu +aFr +uji +uji +pvv +kJw +pvv +pvv +pvv +pvv +pvv +sYh +pvv +pvv +pvv +pvv +eGs +fRg +uji +xwo +jhm +bHC +bHC +iKW +kLM +iQq +iQq +iQq +iQq +qIr +oWk +qIr +anG +axJ +axJ +ggh +rdS +owe +axJ +rdS +axJ +axJ +axJ +huz +huz +sax +kAw +kAw +nZA +nZA +kAw +kAw +kAw +hrk puZ puZ puZ @@ -38683,71 +38658,71 @@ pcY jmW wMh aFO -aFO -aFO +tPB wMh -ntJ -rJI -gso -faR -ntJ wMh wMh +ntJ +ntJ wMh -asz -abp -abG -abJ -abG -acj -asz -aUX -aWB -gTU -wnK -wnK -wnK -aXH -rZt -rZt -rZt -asz -asz -rZt -rZt -hCY -hCY -fNE -iSG -iSG -xrC -wwW -bax -iSG -xrC -xrC -xNO -jrg -jrg -jrg -jrg -amu -fXX -fXX -amu -iTQ -bJj -gpz -bJj -jrg -bJj -bJj -gpz -osE -puZ -puZ -puZ -puZ +iMA +aJM +aJU +bKV +aLk +bMK +uji +snX +pvv +aSA +pvv +vFR +eVG +pvv +pvv +pvv +aSA +pvv +pvv +pvv +pvv +fRg +hvZ +kLM +iOu +kLM +iOu +kLM +iQq +kLM +iQq +iQq +iQq +qIr +oWk +qIr +ans +ans +aMW +fMq +aut +axJ +rdS +aut +huz +huz +huz +huz +huz +hrk +kAw +hrk +hrk +nZA +kAw +kAw +nZA +nZA puZ puZ puZ @@ -38845,70 +38820,70 @@ pcY jmW wMh nuy -nuy -aFO +vgR wMh ntJ -rJI -gso -qIu -ntJ ntJ wMh +ntJ wMh -asz -abx -abM -abM -abM -ack -asz -aUY -vjs -aXw -kaL -wnK -wnK -aXH -rZt -rZt -rZt -fNE -ril -rZt -iEF -far -nVL -fNE -iSG -wwW -xrC -wwW -wwW -enh -xNO -xNO -jrg -jrg -jrg -jrg -jrg -amu -fXX -fXX -osE -osE -gpz -gpz -jrg -jrg -bJj -bJj -osE -osE -puZ -puZ -puZ +uKZ +iMA +iMA +uji +uji +uji +uji +fRg +pvv +pvv +aTh +aVx +aWI +aYd +baX +bcJ +pvv +pvv +pvv +aSA +pvv +fRg +hvZ +kLM +iQq +iQq +iQq +iQq +kLM +iQq +iQq +iQq +iQq +qIr +akF +alS +ans +axJ +axJ +fbf +fbf +ook +hAS +aDu +huz +huz +huz +huz +huz +kAw +kAw +nZA +nZA +nZA +kAw +kAw +nZA puZ puZ puZ @@ -39007,70 +38982,70 @@ wMh wMh aFO nuy -nuy -aFO +hBq wMh -tRn -aNy -xtc -ggv +pcY ntJ +jmW +wMh ntJ wMh +fEl wMh -asz -asz -asz -asz -asz -asz -asz -ufb -wnK -jaU -uEx -bJi -bJi -aXH -rZt -rZt -rZt -fNE -mWA -rZt -iEF -etV -tNN -fNE -wwW -wwW -xrC -wwW -wwW -enh -enh -jrg -jrg -jrg -jrg -jrg -jrg -amu -fXX -fXX -osE -osE -bJj -bJj -jrg -jrg -jrg -bJj -bJj -bJj -puZ -puZ -puZ +hBq +lRJ +uKZ +fRg +gxK +pvv +pvv +aUw +fof +aWQ +aVN +aVN +aVN +bqN +aVN +dbH +wTz +pvv +fRg +hvZ +iQq +kLM +iQq +iQq +iQq +iQq +iQq +kLM +iQq +iQq +qIr +exX +qIr +rdS +rdS +axJ +axJ +axJ +bsS +pKf +iYC +huz +huz +oBV +pRU +hrk +hrk +kAw +nZA +nZA +nZA +kAw +kAw +nZA puZ puZ puZ @@ -39169,70 +39144,70 @@ aFO aFO aFO aFO -aFO -aFO -aFO -wMh -ofr -nJu -tze -wMh wMh -ntJ wMh pcY pcY -pcY -pcY -pcY -pcY -asz -asz -asz -ahu -qfI -bJi -bJi -nAp -rZt -asz -asz -asz -asz -qkL -asz -asz -asz -asz -wwW -wwW -iSG -enh -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -amu -amu -amu -bJj -fXX -gpz -bJj -bJj -jrg -jrg -bJj -gpz -osE -puZ -puZ -puZ +jmW +jmW +wMh +wMh +fEl +upK +hBq +hBq +uKZ +fRg +fRg +pvv +aTh +aUx +aVM +aWS +rNx +bbg +rNx +aWS +bYO +aWQ +dbH +wvx +fRg +hvZ +kLM +iQq +kLM +iQq +iQq +iQq +kLM +snN +kTP +iQq +huz +huz +kLi +amI +aCy +rdS +axJ +axJ +nTu +hAS +sjh +huz +huz +tuA +kAw +hrk +hrk +kAw +kAw +kAw +nZA +kAw +kAw +nZA puZ puZ puZ @@ -39331,70 +39306,70 @@ tPs aFO aFO aFO -aFO -aFO -aFO -aFO -wMh -aFO -aFO -jmW wMh -lAN -ntJ wMh -cQY -skK -kSO -xog pcY pcY -asz -asz -asz -tpL -orO -orO -tJY -asz -asz -asz -gSJ -bJi -bJi -bJi -asz -xvd -lVJ -iSG -wwW -iSG -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -fXX -bJj -bJj -gpz -bJj -bJj -bJj -gpz -bJj -puZ -puZ -puZ +pcY +pcY +pcY +pcY +pcY +lAN +nyc +tlB +uKZ +wUy +fRg +pvv +aTi +aUy +aVL +aWT +aVL +bOh +aVL +aWS +aVL +aVL +dCS +eoH +fRg +hvZ +iQq +iQq +kLM +iQq +iQq +kLM +bcM +aDM +lNg +kLM +huz +huz +dLi +amH +qsN +aMN +faH +hHf +nTu +qsN +iYC +huz +huz +dWO +hbB +kAw +hrk +kAw +kAw +kAw +kAw +kAw +oBV +nZA puZ puZ puZ @@ -39470,91 +39445,91 @@ aXb eni ntc kOV -oRH -xAS -aFO -aFO -aFO -wMh -jmW -xAS -xAS -aFO -aFO -xAS -xAS -aFO -aFO -cou -aFO -aFO -pMV -aFO -aFO -aFO -aFO -aFO -cou -aFO -aFO -aFO -aFO -aFO -aFO -aFO -wMh -wMh -wMh -cQY -ntJ -aNy -xtc -pcY -pcY -asz -crF -aXH -bJi -crF -crF -tHD -uEx -crF -fNE -hyx -xFp -xFp -sHL -asz -lVN -iSG -iSG -wwW -iSG -enh -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj -gpz -gpz -gpz -bJj -bJj -bJj -bJj -puZ +oRH +xAS +aFO +aFO +aFO +wMh +jmW +xAS +xAS +aFO +aFO +xAS +xAS +aFO +aFO +cou +aFO +aFO +pMV +aFO +aFO +aFO +aFO +aFO +wMh +pcY +pcY +pcY +pcY +pcY +pcY +hBq +tlB +hBq +tlB +uKZ +xHu +fRg +pvv +aTj +cov +eHL +aWS +rPa +baY +rPa +aWS +fXp +aWU +deV +uyI +fRg +hvZ +iQq +iQq +iQq +iQq +iQq +iQq +kLM +aDM +uqb +iQq +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +nNX +hbB +kAw +kAw +kAw +hrk +kAw +kAw +jzs puZ puZ puZ @@ -39655,68 +39630,68 @@ aFO aFO wMh aFO -nuy -aFO -aFO -aFO -xAS -aFO -aFO aFO -aFO -aFO -wMh -wMh -pei -wMh -xfZ -ntJ pcY pcY -asz -crF -aXH -tHD -crF -crF -tHD -uEx -crF -fNE -qud -tZA -ctC -ctC -asz -asC -asC -iSG -asC -asC -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -gpz -gpz -gpz -gpz -gpz -gpz -gpz -bJj -bJj +pcY +pcY +pcY +pcY +nyc +hBq +xCD +hBq +tlB +uKZ +uwS +fRg +pvv +pvv +aUw +xyY +aWU +aVx +aVx +aVx +bqN +aUA +deV +pti +pvv +fRg +hvZ +kLM +iQq +iQq +iQq +iQq +iQq +kLM +lNg +kLM +iQq +iQq +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +huz +dWO +hbB +kAw +kAw +kAw +hrk +kAw +nZA +kAw puZ puZ puZ @@ -39817,68 +39792,68 @@ cou wMh wMh wMh -aFO -aFO -aFO -xAS wMh -jmW -aFO -aFO -aFO -aFO -aFO -aFO -cQY -mbt -mbt -mbt pcY pcY -asz -asz -asz -uOc -pCI -gmV -vTc -asz -asz -asz -fNE -fNE -fNE -fNE -asz -kVd -kVd -uzu -xgc -uzu -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -osE -gpz -gpz -gpz -gpz -bJj -bJj -bJj -gpz -bJj -bJj +pcY +pcY +pcY +hBq +nyc +hBq +cps +tlB +tlB +uKZ +oIR +fRg +pvv +pvv +aTj +aVN +aWV +aYx +bbh +beK +aSA +gIQ +oXM +pvv +pvv +fRg +hvZ +kLM +kLM +iQq +iQq +iQq +iQq +iQq +kLM +kLM +iQq +iQq +iQq +lXQ +cwZ +kAw +kAw +nZA +kAw +kAw +hrk +hrk +hrk +acl +kAw +kAw +hrk +kAw +kAw +kAw +kAw +kAw +puZ puZ puZ puZ @@ -39980,67 +39955,67 @@ wMh jmW jmW wMh -aFO -aFO -aFO -wMh -tJP -lAN -aFO -aFO -aFO -aFO -wMh -wMh -wMh -wMh -wMh -wMh pcY pcY -siZ -ukp -kVd -kVd -boW -boW -boW -siZ -dkv -xgc -kVd -kVd -rAH -rAH -kVd -uzu -boW -xgc -uzu -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj -bJj -jrg -bJj -bJj -bJj -bJj -bJj -bJj +pcY +pcY +pcY +hBq +hBq +tlB +aFO +hBq +hBq +uKZ +rIj +wCn +pvv +pvv +pvv +pvv +pvv +mOY +drM +pvv +aSA +uaa +pvv +pvv +pvv +fRg +hvZ +kLM +iOu +kLM +iOu +kLM +kLM +iQq +kLM +iQq +iQq +kLM +iQq +jWh +cwZ +kAw +kAw +kAw +kAw +nZA +hrk +hrk +nZA +hRY +hrk +nZA +nZA +nZA +kAw +kAw +kAw +nDv +puZ puZ puZ puZ @@ -40112,98 +40087,98 @@ kOV kOV kOV kOV -kOV -kOV -aqd -eBc -aqI -aqI -aqI -aqI -asj -ntc -jmW -xAS -aFO -aFO -aFO -pMV -aFO -xAS -wMh -xAS -wMh -pcY -pcY -wMh -aFO -wMh -jmW -jmW -jmW -wMh -aFO -aFO -aFO -xAS -tJP -wMh -aFO -aFO -wMh -wMh -wMh -wMh -ntJ -ntJ -wMh -wMh -ukp -kVd -ckH -lIa -lIa -qjY -qjY -qjY -qjY -tsK -qjY -tsK -lIa -oHf -oHf -oHf -lIa -qjY -tsK -tsK -ckH -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -gpz -bJj -jrg -jrg -bJj -bJj -bJj -bJj -bJj -bJj -bJj +kOV +kOV +aqd +eBc +aqI +aqI +aqI +aqI +asj +ntc +jmW +xAS +aFO +aFO +aFO +pMV +aFO +xAS +wMh +xAS +wMh +pcY +pcY +wMh +aFO +wMh +jmW +jmW +jmW +wMh +pcY +pcY +pcY +pcY +tJP +nyc +tlB +xAS +xCD +xAS +hBq +uKZ +rIj +ohq +pvv +pvv +pvv +tXL +pvv +pvv +pvv +pvv +pvv +pvv +pvv +hZI +pvv +fWq +uji +iOA +aDM +lNg +kLM +uqb +uqb +iQq +iQq +kLM +kLM +kLM +kLM +fpF +wSv +kAw +kAw +kAw +kAw +kAw +nZA +nZA +nZA +aco +hrk +nZA +nZA +nZA +kAw +nZA +nZA +puZ +puZ +puZ puZ puZ puZ @@ -40304,68 +40279,68 @@ wMh jmW wMh wMh -aFO +wMh +pcY +pcY +tlB +hBq +tlB +xAS aFO xAS xAS -tJP -faW -faW -faW -jmW -wMh -wMh -wMh -ntJ -ntJ -wMh -wMh -kVd -kVd -kVd -kVd -kVd -boW -boW -boW -boW -xgc -boW -xgc -xgc -kVd -rAH -rAH -kVd -xgc -kVd -ukp -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -osE -bJj -bJj -jrg -jrg -bJj -bJj -osE -bJj -bJj -bJj -bJj +oRH +uKZ +uKZ +uKZ +fRg +fRg +fRg +fRg +fRg +fRg +oZR +fRg +iXc +fRg +bxL +bxL +gGc +rzR +uji +qrY +qrY +qrY +hHR +hHR +xCz +uxZ +uxZ +uxZ +lWC +hHR +hHR +sax +sax +sax +hrk +kAw +kAw +kAw +kAw +kAw +kAw +teK +hrk +hrk +hrk +kAw +nZA +nZA +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40467,67 +40442,67 @@ wMh ntJ wMh aFO +hBq +xAS +xAS +xAS +xAS +xAS aFO -cpC -lfe -pcY -pcY -pcY -pcY -mTN +oRH nzr -uZF -wMh -wMh -ntJ -ntJ -wMh -kVd -kVd -xgc -xgc -boW -boW -boW -xgc -boW -xgc -xgc -rAH -xgc -xgc -rAH -rAH -kVd -xgc -uzu -mhs -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -jrg -bJj -bJj -bJj -iel -jrg -jrg -bJj -bJj -osE -bJj -bJj -jrg -bJj +xAS +oRH +hBq +uKZ +uKZ +uji +gpF +oYH +fUP +uji +uKZ +iMA +iMA +iMA +uKZ +uKZ +uKZ +uKZ +uji +ofw +ofw +jMf +tHd +kop +kop +kyD +kyD +kyD +tHd +kop +gzb +sax +sax +sax +bcV +oFl +kAw +kAw +kAw +hrk +bcV +tFd +hrk +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40627,69 +40602,69 @@ ntc xAS wMh wMh -wMh -jmW -wMh -wMh -kSO -xog -pcY -pcY -pcY -kSO -xog +aFO +aFO +aFO +aFO +xAS +aFO +aFO +aFO +xAS +xAS +aFO wTx -wMh -wMh -ntJ -wMh -vnr -kVd -kVd -dyt -dyt -fHx -xgc -boW -boW -xgc -boW -boW -boW -xgc -xgc -kVd -rAH -rAH -uzu -kVd -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj -bJj -osE -osE -bJj -bJj -bJj -mie -jrg -bJj -bJj -gpz -bJj -bJj -bJj -bJj +xAS +fOa +aFO +aFO +uji +uKZ +jLX +uKZ +uji +tHd +rtZ +tHd +tHd +rtZ +kop +kop +xvp +tHd +jMf +xvp +kop +kop +kop +tHd +kyD +kyD +kyD +tHd +kop +bhN +fCs +sax +sax +rBk +vAU +kAw +kAw +kAw +tad +tlr +tuz +tFy +hrk +kAw +nZA +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40761,96 +40736,96 @@ aqI asj kOV kOV -kOV -kOV -eni -kOV -eni -eni -mMK -ntc -ntc -vYm -ntc -vYm -vYm -xAS -xAS -aFO -aFO -wMh -pcY -pcY -kOV -toD -toD -toD -toD -jmW -wMh -wMh -jmW -xAS -xAS -pcY -aNy -xtc -pcY -pcY -pcY -aNy -xtc -qKA -ntJ -wMh -wMh -ntJ -ntJ -kVd -kVd -boW -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -kVd -xgc -rAH -rAH -uzu -kVd -jrg -jrg -jrg -jrg -jrg -jrg -jrg -jrg -bJj -jrg -bJj -bJj -bJj -osE -osE -bJj -gpz -bJj -bJj -jrg -gpz -gpz -bJj -bJj -bJj -bJj +kOV +kOV +eni +kOV +eni +eni +mMK +ntc +ntc +vYm +ntc +vYm +vYm +xAS +xAS +aFO +aFO +wMh +pcY +pcY +kOV +toD +toD +toD +toD +jmW +wMh +wMh +aFO +aFO +aFO +aFO +aFO +xAS +xAS +xAS +aFO +aFO +aFO +aFO +oRH +xAS +aFO +aFO +wwZ +qnJ +jOi +qnJ +mkC +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +iMC +kyD +kyD +tHd +tHd +kyD +tHd +kyD +kyD +tHd +kop +bhN +fCs +sax +sax +sax +sax +kAw +kAw +kAw +acl +rBk +vAU +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ puZ puZ puZ @@ -40951,68 +40926,68 @@ kOV wMh wMh wMh -ntJ -pcY -pcY -pcY -pcY -pcY -pcY -pcY -pcY -pcY -gXW -muI -wMh wMh -eKp -mda +oRH wMh -wRL -kVd +xAS +xAS +xAS +aFO +aFO +xAS +xAS +xAS +xAS +xAS +aFO +aFO +aFO +wLM ajy -boW -akf -boW -boW -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -uzu -ukp -jrg -jrg -jrg -jrg -jrg -jrg -xgc -ukp -ukp -kVd -kVd -bJj -bJj -bJj -bJj -gpz -dhx -bJj -osE -gpz -gpz -bJj -bJj -bJj -bJj +jOi +ajy +ppS +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kop +lip +sax +sax +sax +sax +kAw +kAw +nZA +kAw +aco +kAw +hrk +kAw +nZA +nZA +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41114,66 +41089,66 @@ pcY pcY wMh wMh -ntJ -wMh -wMh -pcY -bQX -wMh -cBX -wMh -wMh -hlh wMh +oRH +oRH +xAS wMh -pcY -pcY -pcY -acc -kVd -kVd -boW -boW -boW -boW -boW -boW -boW -boW -boW -fHx -boW -boW -kVd -xgc -rAH -kVd -kVd -uzu -ukp -jrg -jrg -jrg -jrg -jrg -ukp -kVd -xgc -xgc -rAH -kVd -bJj -bJj -bJj -bJj -bJj -bJj -gpz -gpz -bJj -bJj -jrg -bJj +aFO +xAS +oRH +xAS +xAS +aFO +aFO +aFO +aFO +aFO +wLM +ajy +jOi +ajy +ppS +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +tHd +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +sax +hrk +llZ +kAw +nZA +nZA +nZA +kAw +aco +kAw +kAw +kAw +nZA +kAw +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41275,67 +41250,67 @@ aby pcY pcY wMh -wMh -wMh -wMh -wMh -wMh -wMh -wMh -hlh -hPp -hPp -hPp -hPp -hPp -hPp -hPp -pcY -pcY -kVd -kVd -dyt -dyt -fHx -boW -boW -boW -boW -boW -boW -dyt -boW -boW -boW -rAH -xgc -kVd -kVd -uzu -ukp -jrg -jrg -ukp -ukp -jrg -uzu -xgc -xgc -xgc -xgc -uzu -rAH -osE -bJj -bJj -bJj -bJj -gpz -gpz -bJj -bJj -bJj -bJj +hBq +vCe +oRH +oRH +xAS +xAS +aFO +aFO +xAS +xAS +oRH +xAS +xAS +aFO +aFO +aFO +wLM +ajy +jOi +ajy +ppS +tHd +tHd +tHd +kop +aQJ +kop +eyx +kop +tHd +kop +kop +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +grk +hrk +kAw +qgP +kAw +nZA +qgP +kAw +aco +kAw +nZA +kAw +kAw +nZA +puZ +puZ +puZ +puZ +puZ puZ puZ puZ @@ -41400,102 +41375,102 @@ oHE aLv pvU pvU -sfY -rfU -kOV -aCo -jrR -jrR -asu -mMK -eni -lop -eni -eni -eni -ntc -ntc -tJe -asB -ntc -ntc -vYm -ntc -eni -kOV -kOV -kOV -kOV -hUv -arP -arP -ijA -aqE -aqE -asI -abz -pcY -wMh -wMh -jmW -wMh -ntJ -wMh -ntJ -hlh -wMh -jmW -hPp -aMy -mnZ -pwT -mnZ -qKn -hPp -pcY -pcY -ukp -kVd -boW -boW -boW -boW -boW -xgc -boW -boW -boW -dyt -boW -boW -boW -kVd -xgc -rAH -uzu -uzu -uzu -ukp -ukp -uzu -uzu -fkB -xgc -uzu -rAH -rAH -uzu -rAH -kVd -osE -bJj -bJj -bJj -gpz -bJj -bJj -bJj -bJj +sfY +rfU +kOV +aCo +jrR +jrR +asu +mMK +eni +lop +eni +eni +eni +ntc +ntc +tJe +asB +ntc +ntc +vYm +ntc +eni +kOV +kOV +kOV +kOV +hUv +arP +arP +ijA +aqE +aqE +asI +abz +pcY +wMh +wMh +ulI +hBq +mzf +oRH +wMh +xAS +aFO +xAS +xAS +oRH +tlB +oRH +oRH +xAS +aFO +aFO +lCg +ajy +jOi +ajy +lGT +jMf +tHd +kop +jMf +sJo +ofw +etl +fLi +gGT +kop +tHd +xvp +kyD +kyD +kyD +tHd +kyD +kyD +kyD +tHd +oDi +nRD +kAw +vPr +kAw +nZA +nZA +sax +kAw +acp +kAw +nZA +nZA +kAw +nZA +puZ +puZ +puZ puZ puZ puZ @@ -41601,62 +41576,62 @@ ntJ wMh wMh wMh -ntJ -ntJ -ntJ wMh -sFj -hPp -hPp -quO +vzM +wMh +xAS +aFO +aFO +jNr +xAS pwT -hVr +tlB sud ggC -hPp -pcY -ukp -rAH -kVd -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -kVd -uzu -ukp -pLf -rAH -rAH -oHf -rAH -kVd -rAH -kVd -rAH -rAH -bJj -bJj -bJj -gpz -gpz -osE -bJj -bJj -bJj +xAS +aFO +uir +bni +bni +bni +uir +ofw +jMf +tHd +kop +jMf +gGT +kop +rli +kop +kop +tHd +kyD +kyD +kyD +tHd +kyD +tHd +kyD +kyD +kyD +tHd +kjX +kAw +vPr +qgP +vPr +sax +sax +sax +sax +kAw +nZA +nZA +kAw +puZ +puZ +puZ puZ puZ puZ @@ -41767,56 +41742,56 @@ jmW wMh ntJ ntJ -swn -hPp -aKo -qBN -jOi -jOi -jOi -fGb -hPp -xgc -rAH -xgc -kVd -boW -boW -boW -boW -xgc -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -xgc -kVd -kVd -plS -uzu -uzu -rAH -rAH -rAH -fkB -xgc -rAH -kVd -kVd -bJj -bJj -bJj -osE -osE -gpz -osE -bJj -bJj +oRH +oRH +oRH +oRH +oRH +oRH +tlB +tlB +tlB +tHd +kwa +kwa +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kop +kop +kop +tHd +tHd +jMf +jMf +qLS +ofw +ofw +kop +kyD +kop +hbp +kAw +llZ +nZA +nZA +acl +kAw +kAw +hrk +hrk +nZA +hrk +kAw +kAw puZ puZ puZ @@ -41930,55 +41905,55 @@ wMh jmW ntJ wMh -bni -jOi -txO -jOi -jOi -jOi -jOi -bni -xgc -xgc -boW -xgc -ajy -boW +oRH +oRH +oRH +oRH +oRH +tlB +hBq +tlB +tHd +qrY +kyD +kwa +kyD +kyD akf -boW -boW -xgc -boW -boW -boW -boW -boW -boW -xgc -kVd -kVd -kVd -plS +fDH +kyD +tHd +kyD +kyD +kyD +kop +kop +kop +kop +jMf +jMf +jMf +qLS bRU -uzu -rAH -ukp -uzu -rAH -fkB -uzu -uzu -uzu -ukp -bJj -bJj -bJj -osE -gpz -gpz -gpz -bJj -bJj +ofw +kop +mwE +ofw +kyD +hbp +kAw +kAw +jaT +hrk +aco +kAw +qgP +hrk +nZA +nZA +nZA +kAw +kAw puZ puZ puZ @@ -42092,54 +42067,54 @@ pcY wMh wMh wMh -bni -jOi -jOi -jOi -jOi -jOi -jOi -bni -rAH -rAH -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -boW -kVd -uzu -kVd -kVd -kVd -uzu -plS -rAH -rAH -rAH -rAH -rAH -ckH -ukp -ukp -jrg -bJj -bJj -jrg -osE -gpz -gpz -osE -bJj +oRH +kAm +hBq +kAm +hBq +hBq +xAS +oRH +kop +qrY +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +jMf +ofw +jMf +jMf +jMf +ofw +qLS +kop +kyD +kop +kyD +mxr +kAw +vPr +vPr +nZA +acp +kAw +sax +hrk +nZA +nZA +hrk +kAw puZ puZ puZ @@ -42251,57 +42226,57 @@ wMh ntJ pcY pcY -kVd -kVd -kVd -hPp -hPp -hPp -hPp -hPp -hPp -hPp -hPp -rAH -xgc -xgc -boW +jMf +jMf +jMf +kAm +oRH +hBq +oRH +hBq +xAS +tlB +oRH +kop +qrY +kyD +kyD dyt dyt -boW -boW -boW -boW -boW -boW -boW -boW -xgc -boW -xgc -xgc -kVd -kVd -kVd -uzu -kVd -uzu +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kyD +tHd +tHd +jMf +jMf +jMf +ofw +jMf +ofw bhB -rAH -rAH -ukp -jrg -jrg -jrg -jrg -jrg -bJj -bJj -osE -bJj -bJj -bJj -bJj +kop +kop +gss +sax +sax +sax +sax +sax +kAw +kAw +hrk +kAw +kAw +kAw +kAw puZ puZ puZ @@ -42413,57 +42388,57 @@ jmW pcY pcY pcY -rAH -rAH -rAH -siZ -pFq -fVl -qOP -aMZ -uzu -xgc -siZ -rAH -xgc -xgc -boW -boW +kop +kop +kop +kop +kop +kop +kop +kop +jMf +kop +ofw +kop +kyD +kyD +kyD +kyD fHx -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -xgc -xgc -kVd -kVd -xgc -kVd -rAH -kVd -uzu -uzu -ddA -kVd -ukp -jrg -jrg -jrg -jrg -jrg -bJj -osE -bJj -bJj -bJj -bJj +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +jMf +jMf +tHd +jMf +kop +jMf +ofw +ofw +rgy +jMf +gss +sax +sax +sax +sax +sax +kAw +hrk +kAw +kAw +kAw +kAw puZ puZ puZ @@ -42575,56 +42550,56 @@ wMh pcY pcY pcY -rAH -rAH -rAH -kVd -kVd -kVd -kVd -kVd -kVd -kVd -kVd +kop +kop +kop +kop +kop +jMf +kop +ofw +jMf +jMf +jMf agy -boW -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -boW -xgc -boW -boW -rAH -rAH -aaf -rAH -rAH -ddA -xgc -rAH -uzu -msh -uzu -uzu -rAH -ukp -jrg -jrg -jrg -jrg -jrg -osE -gpz -gpz -bJj +kyD +kyD +kyD +kyD +qrY +kyD +kyD +tHd +kyD +kyD +kyD +kyD +tHd +kyD +kop +kop +kop +bnD +kop +kop +rgy +tHd +kop +ofw +oxP +ofw +ofw +kop +mwE +sax +sax +sax +sax +sax +hrk +nZA +nZA +kAw puZ puZ puZ @@ -42737,56 +42712,56 @@ wMh pcY pcY pcY -rAH -rAH -rAH -kVd -uzu -kVd -uzu -kVd -uzu -kVd -rAH -xgc -ajy -boW -xgc -boW -boW -boW -boW -boW -boW -boW -boW -xgc -boW -boW -boW -kVd -kVd -rAH -rAH -kVd -rAH -rAH -xgc -kVd -kVd -kVd -rAH -rAH +kop +kop +kop +jMf +ofw +jMf +ofw +jMf +ofw +jMf +kop +tHd +kyD +kyD +kyD +kyD +qrY +kyD +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +jMf +jMf +kop +kop +jMf +kop +kop +tHd +jMf +jMf +jMf +kop +kop mhs -jrg -jrg -jrg -jrg -jrg -bJj -bJj -bJj -bJj +sax +sax +sax +sax +sax +kAw +kAw +qgP +kAw puZ puZ puZ @@ -42895,59 +42870,59 @@ kOV ntc kOV kOV -ukp -kVd -kVd -dHr -rAH -msh -uzu -uzu -xgc -rAH -kVd -kVd -rAH -xgc -rAH -xgc -xgc -boW -xgc -boW -xgc -boW -boW -xgc -xgc -xgc -xgc -boW -boW -boW -boW -kVd -kVd -kVd -kVd -ddA -rAH -kVd -kVd -rAH -xgc -xgc -kVd -uzu +mwE +jMf +jMf +mdV +kop +oxP +ofw +ofw +tHd +kop +jMf +jMf +kop +tHd +kop +fDH +tHd +kyD +tHd +kyD +qrY +kyD +kyD +tHd +tHd +tHd +tHd +kyD +kyD +kop +kop +jMf +jMf +jMf +jMf +rgy +kop +jMf +jMf +kop +tHd +tHd +jMf +ofw loe -jrg -jrg -jrg -jrg -jrg -bJj -gpz -bJj +sax +sax +sax +sax +sax +qgP +nZA +kAw puZ puZ puZ @@ -43057,59 +43032,59 @@ kOV kOV ntc kOV -kVd -kVd +jMf +jMf bhB -kVd -rAH -rAH -uzu -xgc -kVd -rAH -xgc -xgc -kVd -rAH -xgc -rAH -xgc -xgc -boW -boW -boW -xgc -uzu +jMf +kop +kop +ofw +tHd +jMf +kop +tHd +tHd +jMf +kop +tHd +kop +tHd +tHd +kyD +kyD +kyD +tHd +ofw gss gss gss gss -xgc -xgc -xgc -kVd -kVd -kVd -kVd -huF -uzu -rAH -uzu -aJR -kVd -rAH -rAH -rAH -rAH -kVd -rAH -jrg -jrg -jrg -jrg -bJj -gpz -bJj +tHd +tHd +tHd +jMf +jMf +jMf +jMf +gBp +ofw +kop +ofw +rEd +jMf +kop +kop +kop +kop +jMf +kop +sax +sax +sax +sax +hrk +nZA +kAw puZ puZ puZ @@ -43219,29 +43194,29 @@ kOV kOV ntc ntc -uzu +ofw vhM -uzu -kVd -kVd -rAH -rAH -kVd -rAH -uzu +ofw +jMf +jMf +kop +kop +jMf +kop +ofw dYp dYp dYp -kVd -kVd -rAH +jMf +jMf +kop fxy -boW -boW -boW +kyD +kyD +kyD fxy -xgc -rAH +tHd +kop gss gss gss @@ -43253,25 +43228,25 @@ tiO tiO gss abZ -kVd -kVd -rAH -rAH -rAH -boS -kVd -rAH -xgc -rAH -rAH -rAH -ukp -jrg -jrg -jrg -cIV -cIV -cIV +jMf +jMf +kop +kop +kop +gpS +jMf +kop +tHd +kop +kop +kop +mwE +sax +sax +sax +nZA +llZ +nZA puZ puZ puZ @@ -43381,16 +43356,16 @@ kOV kOV ntc ntc -kVd -uzu -kVd -kVd -rAH -kVd -xgc -rAH -rAH -uzu +jMf +ofw +jMf +jMf +kop +jMf +tHd +kop +kop +ofw dYp dYp dYp @@ -43431,9 +43406,9 @@ tHd mwE geE geE -mwE -mwE -mwE +kop +kop +plM tYw tYw tYw @@ -43543,15 +43518,15 @@ aEq ntc ntc vYm -xgc -kVd -kVd -xgc -xgc -rAH -xgc -kVd -uzu +tHd +jMf +jMf +tHd +tHd +kop +tHd +jMf +ofw dYp dYp dYp @@ -43705,15 +43680,15 @@ nOd nOd nOd nOd -xgc -xgc -kVd -xgc -kVd -xgc -kVd -uzu -uzu +tHd +tHd +jMf +tHd +jMf +tHd +jMf +ofw +ofw dYp dYp dYp @@ -43867,15 +43842,15 @@ dZb eOG aeN nOd -rAH -rAH -rAH -rAH -xgc -rAH -kVd +kop +kop +kop +kop +tHd +kop +jMf bRU -kVd +jMf dYp dYp dYp @@ -44029,15 +44004,15 @@ uhL uhL eHk nOd -kVd +jMf bhB -xgc -kVd -xgc -rAH -uzu -kVd -uzu +tHd +jMf +tHd +kop +ofw +jMf +ofw dYp dYp dYp @@ -44191,14 +44166,14 @@ uhL uhL eHk nOd -dHr -kVd -kVd -hxY -kVd -rAH -kVd -ddA +mdV +jMf +jMf +sJo +jMf +kop +jMf +rgy dYp dYp pqe @@ -44355,12 +44330,12 @@ nOd nOd nOd nOd -kVd -xgc -xgc -rAH -kVd -kVd +jMf +tHd +tHd +kop +jMf +jMf dYp dYp pqe @@ -44517,12 +44492,12 @@ uhL gIq jny nOd -rAH -xgc -xgc -kVd -uzu -dHr +kop +tHd +tHd +jMf +ofw +mdV dYp dYp pqe @@ -44679,12 +44654,12 @@ bVb goh okz nOd -kVd -xgc -xgc -kVd -huF -xgc +jMf +tHd +tHd +jMf +gBp +tHd dYp dYp pqe @@ -44841,12 +44816,12 @@ uFr tds uhL nOd -rAH +kop wta owr -uzu -plS -xgc +ofw +qLS +tHd dYp dYp pqe @@ -45003,11 +44978,11 @@ glG tds uhL nOd -rAH -aGF -boW -boW -boW +kop +aQJ +kyD +kyD +kyD dYp dYp dYp @@ -45165,11 +45140,11 @@ tWn hyu uhL nOd -rAH -kuS -boW -boW -boW +kop +oiH +kyD +kyD +kyD owr dYp dYp @@ -45327,12 +45302,12 @@ hyu uKN uhL nOd -rAH -xgc +kop +tHd owr -boW +kyD owr -boW +kyD dYp dYp pqe @@ -47649,7 +47624,7 @@ puZ hcJ cUl cUl -xbT +cUl hcJ puZ puZ @@ -50228,17 +50203,17 @@ kyD tHd veu oZq -hrk -kAw -kAw +ijm +cIV +cIV sax sax sax sax -sPM -sPM -sPM -sPM +wiy +wiy +wiy +wiy ako puZ puZ @@ -50389,15 +50364,15 @@ tHd kyD tHd qEQ -sax -kAw -nZA -kAw -sax -bcV -oFl -sax -sax +jrg +bJj +gpz +bJj +jrg +qCW +ijE +jrg +jrg aaZ aaZ aaZ @@ -50523,47 +50498,47 @@ iXm daD dKL aPk -hcH -tnu +rRZ +oQo aSQ -tnu -hcH -aWF -jMf -ofw -jMf -tHd -kop -jMf -gGT -kop -rli -kop -kop -tHd -kyD -kyD -kyD -tHd -kyD -tHd -kyD -kyD -kyD -qEQ -sax -hrk -hrk -kAw -kAw -rBk -vAU -sax -sax -kAw -nZA -nZA -kAw +oQo +rRZ +rWW +kVd +uzu +kVd +xgc +rAH +kVd +iIR +rAH +ork +rAH +rAH +xgc +boW +boW +boW +xgc +boW +xgc +boW +boW +boW +dro +jrg +osE +osE +bJj +bJj +qdh +fmo +jrg +jrg +bJj +gpz +gpz +bJj puZ puZ puZ @@ -50680,53 +50655,53 @@ bIV bFg bIV bIV -cZk +bFg daD cZk cZk bIV -aKr -gKf -lxn -gKf -aFA -kyD -tHd -jMf -tHd -kop -jMf -sJo -ofw -etl -fLi -gGT -kop -tHd -xvp -kyD -kyD -kyD -tHd -kyD -kyD -kyD -tHd -oDi +boW +boW +boW +boW +boW +boW +xgc +kVd +xgc +rAH +kVd +hxY +uzu +hUA +mGk +iIR +rAH +xgc +wPs +boW +boW +boW +xgc +boW +boW +boW +xgc +nxt prO -kAw -hrk -nZA -nZA -nZA -kAw -kAw -acl -kAw -nZA -nZA -kAw -nZA +bJj +osE +gpz +gpz +gpz +bJj +bJj +iIg +bJj +gpz +gpz +bJj +gpz puZ puZ puZ @@ -50845,50 +50820,50 @@ bIV bIV cZk bIV -bIV bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -tHd -tHd -tHd -kop -aQJ -kop -eyx -kop -tHd -kop -kop -tHd -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD +cZk +rAH +boW +boW +boW +boW +boW +boW +xgc +xgc +xgc +rAH +aGF +rAH +klF +rAH +xgc +rAH +rAH +xgc +boW +boW +boW +boW +boW +boW +boW +boW +qjY ptm -hrk -kAw -nZA -nZA -nZA -kAw -kAw -aco -kAw -nZA -kAw -kAw -nZA +osE +bJj +gpz +gpz +gpz +bJj +bJj +niA +bJj +gpz +bJj +bJj +gpz puZ puZ puZ @@ -51008,49 +50983,49 @@ bIV bIV bFg bFg -bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -tHd -kyD -tHd -tHd -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -ofw -sax -hrk -kAw -nZA -nZA -nZA -nZA -kAw -aco -kAw -kAw -kAw -nZA -kAw +cZk +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +xgc +boW +xgc +xgc +boW +boW +boW +boW +boW +boW +boW +boW +xgc +fkB +jrg +osE +bJj +gpz +gpz +gpz +gpz +bJj +niA +bJj +bJj +bJj +gpz +bJj puZ puZ puZ @@ -51170,50 +51145,50 @@ bIV bIV bIV bIV -bFg -aKA -qXS -lxn -qXS -aFC -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -kop -gzb -sax -sax -sax -sax -kAw -kAw -nZA -kAw -aco -kAw -hrk -kAw -nZA -nZA -nZA +cZk +xgc +xgc +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +rAH +ucN +jrg +jrg +jrg +jrg +bJj +bJj +gpz +bJj +niA +bJj +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51333,50 +51308,50 @@ bFg bFg cZk bIV -aKD -iGn -lxn -iGn -aFI -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -kyD -tHd -iMC -kyD -kyD -tHd -tHd -kyD -tHd -kyD -kyD -tHd -kop -bhN -fCs -sax -sax -sax -sax -kAw -kAw -kAw -acp -bcV -tFd -hrk -kAw -nZA -nZA -nZA +rAH +xgc +rAH +rAH +xgc +boW +boW +boW +boW +boW +boW +boW +boW +boW +boW +xgc +kyt +boW +boW +xgc +xgc +boW +xgc +boW +boW +xgc +rAH +fbS +qfR +jrg +jrg +jrg +jrg +bJj +bJj +bJj +srJ +qCW +nyS +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51495,50 +51470,50 @@ bFg aNe bIV aPm -uji -uKZ -jLX -uKZ -uji -aWG -xWy -tHd -rtZ -tHd -tHd -rtZ -kop -kop -xvp -tHd -jMf -xvp -kop -kop -kop -tHd -kyD -kyD -kyD -tHd -kop -bhN -fCs -sax -sax -bcV -oFl -kAw -kAw -kAw -tad -tlr -tuz -tFy -hrk -kAw -nZA -nZA +xgc +rAH +xgc +rAH +rAH +rAH +uzu +xgc +gJF +boW +boW +awP +rAH +xgc +wPs +xgc +kVd +wPs +rAH +rAH +rAH +xgc +boW +boW +boW +xgc +rAH +fbS +qfR +jrg +jrg +qCW +ijE +bJj +bJj +bJj +nvu +mCG +pRM +gQK +osE +bJj +gpz +gpz puZ puZ puZ @@ -51657,51 +51632,51 @@ aME bIV cZk xvA -iMA -rxf -oYH -uMJ -uji -uKZ -uKZ -uKZ -iMA -iMA -iMA -uKZ -uKZ -uKZ -uKZ -uji -ofw -ofw -jMf -tHd -kop -kop -kyD -kyD -kyD -tHd -kop -lip -sax -sax -sax -rBk -vAU -kAw -kAw -kAw -hrk -rBk -vAU -hrk -hrk -kAw -nZA -nZA -nZA +boW +xgc +wfH +rAH +xgc +rAH +wfH +rAH +boW +boW +boW +xgc +xgc +rAH +rAH +rAH +uzu +uzu +kVd +xgc +rAH +rAH +boW +boW +boW +xgc +rAH +sEC +jrg +jrg +jrg +qdh +fmo +bJj +bJj +bJj +osE +qdh +fmo +osE +osE +bJj +gpz +gpz +gpz puZ puZ puZ @@ -51817,53 +51792,53 @@ bFg bIV bIV cZk -uKZ -uKZ -uKZ -fRg -fRg -fRg -fRg -fRg -fRg -oZR -fRg -iXc -fRg -bxL -bxL -gGc -rzR -uji -hzJ -hzJ -hzJ -kyw -kyw -lUL -mLR -mLR -mLR -ocI -kyw -kyw -sax -sax -sax -hrk -kAw -kAw -kAw -kAw -kAw -kAw -hrk -hrk -hrk -hrk -kAw -nZA -nZA +rAH +rAH +rAH +rAH +rAH +boW +rAH +rAH +rAH +xgc +boW +boW +boW +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +rAH +boW +boW +xgc +rAH +rAH +oHf +jrg +jrg +jrg +osE +bJj +bJj +bJj +bJj +bJj +bJj +osE +osE +osE +osE +bJj +gpz +gpz puZ puZ puZ @@ -51979,54 +51954,54 @@ bIV aLZ bIV xvA -uKZ -rIj -ohq -pvv -pvv -pvv -tXL -pvv -pvv -pvv -pvv -pvv -pvv -pvv -hZI -pvv -fWq -uji -iOA -aDM -lNg -kLM -uqb -uqb -iQq -iQq -kLM -kLM -kLM -kLM +ukp +ukp +rAH +ukp +rAH +rAH +boW +ukp +kVd +kVd +boW +boW +boW +siZ +dkv +xgc +kVd +kVd +rAH +rAH +kVd +uzu +boW +xgc +uzu +boW +xgc +xgc +xgc +tsK pCe -wSv -kAw -kAw -kAw -kAw -kAw -nZA -nZA -nZA -kAw -hrk -nZA -nZA -nZA -kAw -nZA -nZA +rrj +bJj +bJj +bJj +bJj +bJj +gpz +gpz +gpz +bJj +osE +gpz +gpz +gpz +bJj +gpz +gpz puZ puZ puZ @@ -52141,55 +52116,55 @@ daD bFg xvA xvA -uKZ -rIj -wCn -pvv -pvv -pvv -pvv -pvv -mOY -drM -pvv -aSA -uaa -pvv -pvv -pvv -fRg -hvZ -kLM -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -kLM -iQq +rAH +rAH +ukp +rAH +rAH +rAH +ckH +lIa +lIa +qjY +qjY +qjY +qjY +tsK +qjY +tsK +lIa +oHf +oHf +oHf +lIa +qjY +tsK +tsK +ckH +tsK +qjY +qjY +tsK +qjY fnw -cwZ -kAw -kAw -kAw -kAw -nZA -hrk -hrk -nZA -nZA -hrk -nZA -nZA -nZA -kAw -kAw -kAw -nDv +wvS +bJj +bJj +bJj +bJj +gpz +osE +osE +gpz +gpz +osE +gpz +gpz +gpz +bJj +bJj +bJj +xuz puZ puZ puZ @@ -52302,57 +52277,57 @@ peb xvA aMj daD -daD -uKZ -oIR -fRg -pvv -pvv -aTh -aVx -aWI -aYd -baX -bcJ -aSA -gIQ -oXM -pvv -pvv -fRg -hvZ -kLM -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -nOw -cwZ -kAw -kAw -nZA -kAw -kAw -hrk -hrk -hrk -kAw -kAw -kAw -hrk -kAw -kAw -kAw -kAw -kAw -puZ +boW +qiy +pWp +pWp +pWp +pLf +pLf +asz +asz +asz +ndb +pCI +gmV +vTc +asz +asz +asz +fNE +fNE +fNE +fNE +asz +kVd +kVd +uzu +xgc +uzu +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +bJj +osE +gpz +gpz +gpz +gpz +bJj +bJj +bJj +gpz +bJj +bJj puZ puZ puZ @@ -52464,57 +52439,57 @@ peb xvA aLZ xvA -daD -uKZ -uwS -fRg -pvv -pvv -aUw -xyY -aWQ -aVx -aVx -aVx -bqN -aUA -dbH -pti -pvv -fRg -hvZ -kLM -iQq -iQq -iQq -iQq -iQq -kLM -lNg -kLM -iQq -iQq -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -dWO -hbB -kAw -kAw -kAw -hrk -kAw -nZA -kAw +ukp +oiL +ukp +guH +sQX +pLf +pLf +asz +crF +aXH +tHD +crF +crF +tHD +uEx +crF +fNE +qud +tZA +ctC +ctC +asz +ayz +ayz +kVd +ayz +ayz +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +bJj +gpz +gpz +gpz +gpz +gpz +gpz +gpz +gpz +bJj +bJj puZ puZ puZ @@ -52622,61 +52597,61 @@ aUd aUd aUd aUd -aUd -xvA -daD +aUd xvA daD -uKZ -xHu -fRg -pvv -aTh -aUx -eHL -aWS -aYf -baY -bdk -aWS -jnc -aWQ -dbH -uyI -fRg -hvZ -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -uqb -iQq -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -huz -nNX -hbB -kAw -kAw -kAw -hrk -kAw -kAw -vEN +bFg +ukp +qiy +sQX +cXU +cid +pLf +pLf +asz +crF +aXH +bJi +crF +crF +tHD +uEx +crF +fNE +hyx +xFp +xFp +sHL +asz +kAd +kVd +kVd +xgc +kVd +ukp +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +gpz +bJj +gpz +gpz +gpz +bJj +bJj +bJj +bJj +sax puZ puZ puZ @@ -52786,61 +52761,61 @@ aUd aUd aUd aUd -aMk +aMj peb -daD -uKZ -wUy -fRg -pvv -aTi -aUy -aVL -aWT -aVL -bOh -aVL -aWS -aVL -aVL -dCS -eoH -fRg -hvZ -iQq -iQq -kLM -iQq -iQq -kLM -bcM -aDM -lNg -kLM -huz -huz -dLi -amH -qsN -aMN -faH -hHf -nTu -qsN -iYC -huz -huz -dWO -hbB -kAw -hrk -kAw -kAw -kAw -kAw -kAw -oBV -nZA +ukp +qiy +wvd +nOK +xLy +pLf +pLf +asz +asz +asz +tpL +orO +orO +tJY +asz +asz +asz +gSJ +bJi +bJi +bJi +asz +ltA +dnj +kVd +xgc +kVd +ukp +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +bJj +fXX +bJj +bJj +gpz +bJj +bJj +bJj +gpz +bJj +sax +sax +sax puZ puZ puZ @@ -52949,60 +52924,60 @@ gJo gJo abg aMl -xvA -xvA -uKZ -fRg -fRg -pvv -aTj -cov -aVM -aWS -aYg -bbg -bea -aWS -cbk -aWU -deV -wvx -fRg -hvZ -kLM -iQq -kLM -iQq -iQq -iQq -kLM -snN -kTP -iQq -huz -huz -kLi -amI -aCy -rdS -axJ -axJ -nTu -hAS -sjh -huz -huz -tuA -kAw -hrk -hrk -kAw -kAw -kAw -nZA -kAw -kAw -nZA +rYj +pLf +pLf +pLf +pLf +pLf +pLf +asz +asz +asz +ahu +uEx +bJi +bJi +aXH +rZt +asz +asz +asz +asz +qkL +asz +asz +asz +asz +xgc +xgc +kVd +ukp +bJj +jrg +jrg +jrg +jrg +jrg +jrg +jrg +jrg +amu +amu +amu +bJj +fXX +gpz +bJj +bJj +jrg +jrg +bJj +gpz +osE +sax +sax +sax puZ puZ puZ @@ -53111,60 +53086,60 @@ qbF gJo abg gJo -xvA -xvA -uKZ -fRg -gxK -pvv -pvv -aUw -fof -aWU -aVN -aVN -aVN -bqN -aVN -deV -wTz -pvv -fRg -hvZ -iQq -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq -tpg -exX -qIr -rdS -rdS -axJ -axJ -axJ -bsS -pKf -iYC -huz -huz -oBV -pRU -hrk -hrk -kAw -nZA -nZA -nZA -kAw -kAw -nZA +rYj +asz +asz +asz +asz +asz +asz +asz +ufb +wnK +jaU +uEx +bJi +bJi +aXH +rZt +rZt +rZt +fNE +mWA +rZt +iEF +etV +tNN +fNE +xgc +xgc +boW +xgc +xgc +ukp +ukp +jrg +jrg +jrg +jrg +jrg +jrg +amu +fXX +fXX +osE +osE +bJj +bJj +jrg +jrg +jrg +bJj +bJj +bJj +sax +sax +sax puZ puZ puZ @@ -53222,111 +53197,111 @@ sYu sYu sYu lwo -lwo -lwo -eOM -lwo -eOM -eOM -sYu -sYu -eOM -eOM -lwo -arX -arX -eOM -lwo -lwo -eOM -eOM -arX -eOM -aCH -toA -ver -ver -ver -ver -ver -ver -ver -ver -fEO -oDM -ktd -bFg -bIV -bFg -bFg -bFg -cZk -cZk -xvA -cgR -gJo -qbF -qbF -gJo -qbF -gJo -uKZ -iMA -iMA -uji -uji -uji -uji -fRg -pvv -pvv -aTj -aVN -aWV -aYx -bbh -beK -pvv -pvv -pvv -aSA -pvv -fRg -hvZ -kLM -iQq -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -tpg -akF -alS -ans -axJ -axJ -fbf -fbf -ook -hAS -aDu -huz -huz -huz -huz -huz -kAw -kAw -nZA -nZA -nZA -kAw -kAw -nZA +lwo +lwo +eOM +lwo +eOM +eOM +sYu +sYu +eOM +eOM +lwo +arX +arX +eOM +lwo +lwo +eOM +eOM +arX +eOM +aCH +toA +ver +ver +ver +ver +ver +ver +ver +ver +fEO +oDM +ktd +bFg +bIV +bFg +bFg +bFg +cZk +cZk +xvA +cgR +gJo +qbF +qbF +gJo +qbF +daD +xHv +xHv +xHv +wXs +asz +abn +abF +abF +abF +acg +asz +aUY +vjs +aXw +kaL +wnK +wnK +aXH +rZt +rZt +rZt +fNE +ril +rZt +iEF +far +nVL +fNE +kVd +xgc +boW +xgc +xgc +ukp +uzu +uzu +jrg +jrg +jrg +jrg +jrg +amu +fXX +fXX +osE +osE +gpz +gpz +jrg +jrg +bJj +bJj +osE +osE +sax +sax +sax puZ puZ puZ @@ -53427,69 +53402,69 @@ cZk cZk tBB gJo -gJo -gJo -qbF +bFg +qdH +qdH qbF -gJo -iMA -aJM -aJU -bKV -aLk -bMK -uji -snX -pvv -aSA -pvv -vFR -eVG -pvv -pvv -pvv -aSA -pvv -pvv -pvv -pvv -fRg -hvZ -kLM -iOu -kLM -iOu -kLM -iQq -kLM -iQq -iQq -iQq -tpg -oWk -qIr -ans -ans -aMW -fMq -aut -axJ -rdS -aut -huz -huz -huz -huz -huz -hrk -kAw -hrk -hrk -nZA -kAw -kAw -nZA -nZA +bIV +xHv +xHv +xHv +wXs +asz +abp +abG +abJ +abG +acj +asz +aUX +aWB +gTU +wnK +wnK +wnK +aXH +rZt +rZt +rZt +asz +asz +rZt +rZt +hCY +hCY +fNE +kVd +kVd +boW +xgc +rAH +kVd +boW +boW +uzu +jrg +jrg +jrg +jrg +amu +fXX +fXX +amu +iTQ +bJj +gpz +bJj +jrg +bJj +bJj +gpz +osE +sax +sax +sax +sax puZ puZ puZ @@ -53589,69 +53564,69 @@ xvA xvA tBB gJo -gJo -qbF +bFg +qdH qbF qbF gJo -iMA -aKQ -bKV -bKV -omu -aFr -uji -uji -pvv -kJw -pvv -pvv -pvv -pvv -pvv -sYh -pvv -pvv -pvv -pvv -eGs -fRg -uji -jac -jQt -khx -khx -ltJ -kLM -iQq -iQq -iQq -iQq -tpg -oWk -qIr -anG -axJ -axJ -ggh -rdS -owe -axJ -rdS -axJ -axJ -axJ -huz -huz +xHv +xHv +xHv +wXs +asz +abp +abJ +abJ +abJ +aSK +aTR +rMI +oZs +azm +bJi +rZt +wnK +aXH +rZt +rZt +rZt +hAX +crF +rZt +rZt +rZt +rZt +fNE +kVd +kVd +xgc +boW +xgc +qMT +jOv +hEB +uzu +uzu +jrg +jrg +jrg +amu +fXX +fXX +amu +osE +osE +gpz +bJj +jrg +bJj +bJj +gpz +osE +sax +sax +sax sax -kAw -kAw -nZA -nZA -kAw -kAw -kAw -hrk puZ puZ puZ @@ -53749,71 +53724,71 @@ bIV cZk cZk cZk -uji -uji -uji -uji -uji -uji -uji -uji -aLk -bKV -bKV -aNg -bKV -aOb -uji -snX -fRg -pgh -fRg -fRg -dLk -fRg -pgh -fRg -fRg -fRg -rIj -uKZ -giH -uji -iMA -iMA -iMA -uKZ -ehV -uqb -kLM -iQq -iQq -kLM -ajd -huz -fjS -anJ -aGf -aNE -ggr -hLE -qvY -qkQ -axJ -axJ -axJ -axJ -huz -huz +sFs +xHv +sFs +xHv +xHv +xHv +xHv +xHv +xHv +uLi +wXs +asz +aNR +abJ +abG +abJ +abJ +rZt +kxx +oZs +bJi +bJi +ahZ +eRG +aXH +rZt +rZt +rZt +dwQ +crF +rZt +rZt +rZt +fhd +fNE +kVd +kVd +rAH +xgc +boW +boW +boW +boW +uzu +uzu +ukp +jrg +jrg +amu +eom +fXX +amu +osE +osE +bJj +bJj +bJj +bJj +bJj +bJj +amu +sax +sax +sax sax -iZj -kAw -kAw -hrk -kAw -nZA -kAw -hrk puZ puZ puZ @@ -53911,70 +53886,70 @@ cZk cZk cZk cZk -uji -uji -uji -uji -uji -uji -uji -uji -uji -aKL -uji -aNh -aLs -uji -uji -iMA -iMA -uKZ -oYH -gxK -fRg -oYH -uKZ -iMA -iMA -uji -uKZ -uKZ -bKV -kjU -bKV -krm -iXx -iMA -ehV -uqb -kLM -iQq -nAs -uqb -ajE -huz -qSW -arZ -aIh -aPf -gtx -aTO -oww -qmv -axJ -axJ -axJ -axJ -huz -huz +tjL +xHv +xHv +gik +gik +gik +dbv +kaC +xHv +xHv +wXs +asz +aNP +abJ +abG +abJ +abJ +rZt +kxx +oZs +bJi +bJi +bJi +wnK +bQx +asz +asz +qkL +asz +asz +rZt +rZt +iEF +cYC +fNE +kVd +kVd +rAH +xgc +boW +boW +boW +lLf +uzu +uzu +ukp +jrg +jrg +amu +fXX +fXX +amu +jrg +bJj +gpz +bJj +bJj +bJj +osE +bJj +amu +sax sax sax -kAw -kAw -hrk -kAw -nZA -kAw puZ puZ puZ @@ -54073,72 +54048,72 @@ bIV bFg cZk bIV -uji -gUc -xgH -xgH -xgH -gQJ -uji -uji -fRg -fRg -aKS -fRg -fRg -fRg -lro -bKV -bKV -oYH -bKV -meg -bKV -bbi -beP -bKV -meg -bKV -bKV -eGG -bKV -bKV -ftr -obb -vHX -iMA -ehV -kLM -iQq -iQq -kLM -uqb -uqb -huz -huz -auh -bWB -qvY -gZZ -iof -aDu -qoY -axJ -axJ -wFm -sYx -huz -huz -sax -sax -nZA -kAw -nZA -nZA -nZA -kAw -puZ -puZ +xHv +sFs +xHv +xHv +gik +xHv +tmP +kaC +xHv +goe +wXs +asz +abp +abJ +abJ +abJ +abJ +rZt +rMI +acY +rZt +bJi +rZt +wnK +aXH +rkc +wnK +wnK +asz +asz +dTj +rZt +rZt +tYA +fNE +kVd +kuS +kVd +rAH +rAH +kch +boW +mKD +uzu +ukp +jrg +jrg +amu +amu +fXX +fXX +amu +jrg +osE +bJj +gpz +gpz +gpz +osE +bJj +iTQ +iTQ +amu +amu +amu +amu puZ puZ "} @@ -54235,72 +54210,72 @@ bIV fUZ bIV bIV -uji -ahX -qkC -tzo -qkC -mhS -dtr -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -uKZ -uKZ -iMA -iMA -iMA -uKZ -uKZ -ehV -kLM -iQq -iQq -iQq -kLM -kLM -uqb -ncS -bWB -auh -aTO -hkS -itR -oNz -qOE -rdS -axJ -sYx -wFm -huz -huz -sax -sax -kAw -kAw -nZA -hrk -nZA -kAw -puZ -puZ +xHv +xHv +xHv +xHv +xHv +goe +kaC +kaC +kaC +xHv +wXs +asz +abp +abG +abJ +abG +ach +asz +aWC +aWs +qkR +eRG +sbd +wnK +aXH +rkc +wnK +rZt +fir +rqK +asz +rZt +rZt +asz +asz +kVd +kVd +kVd +rAH +rAH +xgc +boW +vkr +nij +ukp +jrg +jrg +amu +cur +fXX +fXX +amu +amu +iTQ +bJj +fXX +gpz +gpz +bJj +fXX +cuJ +fXX +bJj +fXX +fXX +amu puZ puZ "} @@ -54397,72 +54372,72 @@ bIV bFg bFg bFg -uji -aGc -tzo -tzo -aJj -aJk -fRg -fRg -bKV -bKV -aMK -aNl -aNl -aPn -bKV -bKV -bKV -fRg -bKV -bKV -bKV -bKV -uHA -bKV -bKV -rfd -bKV -iMA -hFJ -fRg -dZN -fRg -iMA -kGO -lyE -kLM -iQq -kLM -iQq -iQq -kLM -uqb -ncS -mRc -rdS -aXk -axJ -jFq -huz -qPh -rdS -axJ -axJ -sXt -huz -huz -sax -sax -kAw -kAw -nZA -nZA -nZA -kAw -puZ -puZ +xHv +xHv +uLi +xHv +qEH +kaC +kaC +kaC +xHv +xHv +wXs +asz +abx +abM +abM +abM +ack +asz +aUU +aXh +mYX +bVr +aXh +aXh +bJf +rkc +wnK +rZt +hMY +asz +asz +crF +crF +asz +asz +uzu +kVd +kVd +kVd +kVd +xgc +boW +boW +kVd +ukp +jrg +jrg +amu +lAb +fXX +fXX +fXX +fXX +fXX +fXX +bJj +bJj +gpz +osE +bJj +mwJ +bJj +fXX +fXX +fXX +amu puZ puZ "} @@ -54520,111 +54495,111 @@ lwo lwo lwo lwo -eTV -lwo -eTV -lwo -lwo -eOM -eOM -lwo -eOM -qep -arX -arX -arX -amQ -arX -eOM -arX -arX -ktd -axK -ver -ver -ver -htb -ver -ver -ver -ver -bYd -ktd -ktd -gJo -bIV -bIV -bFg -bFg -bFg -bFg -bFg -bIV -aGb -tzo -qkC -tzo -aGd -fRg -fRg -bKV -bKV -pzj -pzi -kGz -bKV -bKV -bKV -bKV -oYH -bKV -bKV -bKV -bKV -oYH -bKV -bKV -bKV -bKV -iMA -sFR -pvv -pvv -oCG -kjM -tpg -iQq -iQq -iQq -szU -kLM -iQq -iQq -uqb -ncS -pTp -pTp -rdS -axJ -alO -huz -qWL -aut -axJ -kLi -kLi -huz -huz -sax -sax -kAw -kAw -nZA -nZA -kAw -kAw -puZ -puZ +eTV +lwo +eTV +lwo +lwo +eOM +eOM +lwo +eOM +qep +arX +arX +arX +amQ +arX +eOM +arX +arX +ktd +axK +ver +ver +ver +htb +ver +ver +ver +ver +bYd +ktd +ktd +gJo +bIV +bIV +bFg +bFg +bFg +bFg +bFg +bIV +xHv +sFs +xHv +xHv +goe +kaC +xHv +gik +xHv +wXs +asz +asz +asz +asz +asz +asz +asz +rZt +rZt +rZt +gGf +bDx +asz +kXt +asz +wnK +rZt +asz +asz +kPX +rZt +rZt +asz +asz +pLf +hkZ +rAH +ccT +xgc +xgc +rAH +xgc +xgc +jrg +jrg +jrg +amu +igJ +fXX +fXX +fXX +fXX +fXX +osE +gpz +bJj +fXX +bJj +iTQ +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -54722,71 +54697,71 @@ bFg bFg bFg bFg -aGd -tzo -qkC -tzo -aGd -fRg -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -ohE -bKV -uKZ -ahe -fRg -fRg -oYH -uKZ -bwk -cex -cex -cex -uKZ -xHu -pvv -pvv -oCG -wRm -tpg -iQq -iQq -iQq -kLM -aDM -kLM -iQq -huz -huz -avz -avz -axJ -axJ -alO -pJM -rgI -rdS -axJ -kLi -alP -huz -huz -sax -sax -kAw -kAw -nZA -kAw -kAw -kAw -puZ -puZ +xHv +xHv +xHv +sFs +xHv +xHv +xHv +gik +gik +wXs +asz +aNN +afN +afP +fNE +rZt +rZt +rZt +rZt +gGf +rZt +rZt +qVo +wnK +wnK +wnK +rZt +asz +asz +hLB +rZt +rZt +asz +asz +shi +kVd +qEK +pGt +xgc +xgc +rAH +xgc +xgc +npY +rKq +jrg +amu +iTQ +amu +amu +amu +amu +amu +osE +gpz +osE +osE +bJj +gpz +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -54884,71 +54859,71 @@ bFg bFg bFg bIV -aGd -aHd -aIG -tzo -aGd -fRg -fRg -bKV -bKV -aMK -aNl -aNl -aPn -bKV -bKV -tsU -uKZ -ocB -bKV -bKV -bKV -hDW -bzh -fRg -fRg -fRg -qXk -fRg -pvv -khz -fRg -iMA -kIo -lCe -kLM -iQq -iQq -kLM -iQq -iQq -huz -aQq -axJ -axJ -axJ -axJ -jJZ -oXU -axJ -dQq -axJ -axJ -rdS -huz -huz -sax -sax -kAw -kAw -kAw -kAw -kAw -bcV -oFl -puZ +xHv +xHv +xHv +uLi +xHv +xHv +xHv +gik +xHv +wXs +bXo +kxx +bIh +afQ +fNE +rZt +rZt +rZt +rZt +rZt +rZt +rZt +rkc +wnK +rZt +rZt +rZt +asz +asz +hMY +rZt +rZt +asz +asz +pLf +gZi +kVd +kVd +kVd +kVd +rAH +kVd +xgc +xXQ +boW +jrg +xgc +ukp +ukp +ukp +pLf +jrg +amu +osE +gpz +osE +osE +bJj +gpz +amu +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55046,71 +55021,71 @@ bFg bFg bIV kaC -aGe -qkC -tzo -qkC -tGv -dtr -fRg -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -bKV -iMA -vHX -bKV -bKV -bKV -bsC -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -uKZ -uKZ -vqV -kLM -kLM -iQq -iQq -iQq -kLM -huz -pJM -ayZ -rdS -bqO -axJ -bqO -axJ -axJ -axJ -axJ -axJ -axJ -huz -huz -sax -sax -nZA -nZA -nZA -kAw -kAw -rBk -vAU -puZ +xHv +xHv +xHv +sFs +xHv +xHv +uLi +xHv +goe +wXs +lSU +aNL +nmi +afP +asz +asz +aTQ +asz +asz +wnK +dTU +wnK +asz +asz +qkL +fNE +fNE +asz +asz +asz +crF +crF +asz +asz +pLf +kVd +rAH +ccT +uzu +kVd +kVd +kVd +xgc +bkK +xgc +rAH +ukp +kVd +uzu +ukp +ukp +jrg +amu +osE +gpz +gpz +fXX +bJj +gpz +gpz +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55204,75 +55179,75 @@ oQl oQl oQl gJo -bFg -bFg -cZk -kaC -rXn -dsx -dsx -dsx -waS -uji -uji -fRg -fRg -fRg -fRg -fRg -fRg -fRg -bKV -bKV -iMA -vHX -aWX -bKV -bKV -bsC -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -xQa -iMA -avx -uqb -kLM -iQq -iQq -kLM -tpg -exX -alW -arW -anJ -dQq -hmo -rdS -axJ -dQq -axJ -axJ -axJ -axJ -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +bFg +bFg +cZk +kaC +xHv +xHv +xHv +xHv +xHv +goe +xHv +xHv +xHv +wXs +lSU +lSU +afF +sBW +xDq +aSI +afF +aUT +asz +rMI +rMI +rMI +asz +emq +wnK +dTU +wnK +dTU +hfm +asz +rZt +rZq +asz +asz +pIV +jKm +dbO +pGt +kVd +kVd +huF +rAH +rAH +bkK +boW +ukp +ukp +kVd +ukp +ukp +ukp +bJj +iTQ +osE +gpz +gpz +bJj +amu +gpz +gpz +amu +amu +fXX +fXX +amu puZ puZ "} @@ -55375,66 +55350,66 @@ kaC kaC kaC kaC -uji -uji -fRg -aMs -vIk -lJh -loH -ppI -aMs -bKV -bKV -uKZ -nUa -bKV -bKV -bKV -iDW -bAX -fRg -fRg -fRg -fRg -pgh -fRg -ohq -mKB -cLq -iMA -avx -voo -kLM -iQq -iQq -kLM -tpg -exX -qIr -azS -qny -aDu -aut -kfW -axJ -axJ -axJ -axJ -axJ -rdS -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +xHv +xHv +xHv +xHv +wXs +lSU +lSU +tSI +rZt +gLv +rZt +gLv +afF +wBf +wnK +dTU +wnK +asz +kbZ +chU +gTv +sHf +tRq +chU +ogu +rZt +rZt +asz +asz +pLf +pLf +uzu +kVd +uzu +uzu +uzu +boW +eXQ +eWl +boW +ukp +ukp +xgc +ukp +ukp +ukp +bJj +bJj +osE +bJj +bJj +bJj +amu +gpz +gpz +amu +amu +fXX +fXX +pLS puZ puZ "} @@ -55532,71 +55507,71 @@ mIL fQX fQX fQX -kaC -kaC -kaC -kaC -kaC -uji -uji -uji -uji -uKZ -uKZ -uji -uji -uji -qLA -uji -uKZ -aVT -fRg -fRg -oYH -uKZ -bFS -ail -ail -ail -uKZ -uji -uji -iMA -iMA -iMA -uKZ -ehV -aDM -kTP -iQq -iQq -kLM -uqb -huz -cio -ieD -aKR -aDu -huz -axJ -rdS -rti -ieD -axJ -axJ -hIu -huz -huz -sax -sax -nZA -nZA -kAw -kAw -kAw -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +mIL +mIL +gaz +mIL +bme +lSU +lSU +aOv +afF +rZt +rZt +gLv +afF +wBf +wnK +dTU +pkK +asz +emq +chU +kbZ +chU +gTv +chU +fNE +uvU +rZt +asz +asz +pLf +pLf +pLf +ukp +ukp +kVd +uzu +kVd +nEQ +ukp +xgc +ukp +xgc +kVd +ukp +ukp +ukp +bJj +bJj +bJj +qMc +bJj +rbq +osE +gpz +gpz +amu +amu +fXX +fXX +lAb puZ puZ "} @@ -55702,63 +55677,63 @@ oQl oQl oQl oQl -uKZ -hsw -aNp -bfR -oYH -oYH -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -gqe -uji -jkM -bHC -xwo -bHC -lCp -idG -kLM -iQq -iQq -kLM -kLM -huz -huz -huz -huz -huz -huz -mpt -axJ -rxd -sFv -axJ -rdS -hRC -huz -huz -sax -qCr -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +ood +bme +lSU +lSU +lSU +aSI +aRs +uRt +flN +sBW +rZt +nOB +rMI +rMI +asz +tRq +wdy +dTU +bZZ +dTU +twc +fNE +rZt +uvU +asz +asz +pLf +pLf +pLf +pLf +pLf +pLf +pLf +pLf +npY +nij +rAH +ukp +ukp +pLf +pLf +ukp +xgc +bJj +bJj +bJj +bJj +bJj +fXX +osE +gpz +amu +amu +amu +fXX +igJ +fXX puZ puZ "} @@ -55812,115 +55787,115 @@ hkC arX arX arX -bjv -bjv -ecj -ecj -ecj -ecj -ecj -ecj -aaN -agM -arX -aDI -eOM -eOM -pCH -lwo -lwo -eOM -lwo -eOM -arX -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -oQl -mIL -fQX -fQX -fQX -fQX -cKL -oQl -oQl -oQl -oQl -oQl -uKZ -xSk -aNq -oYH -fRg -oYH -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -hGj -iQq -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -iQq -iQq -pKK -iQq -iOu -kLM -huz -rdS -axJ -amH -tbR -axJ -rdS -ixC -huz -huz -sax -hrk -kAw -kAw -kAw -kAw -puZ -puZ -puZ -puZ +bjv +bjv +ecj +ecj +ecj +ecj +ecj +ecj +aaN +agM +arX +aDI +eOM +eOM +pCH +lwo +lwo +eOM +lwo +eOM +arX +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +oQl +mIL +fQX +fQX +fQX +fQX +cKL +oQl +oQl +oQl +oQl +oQl +mIL +bme +lSU +lSU +lSU +lSU +lSU +wBf +kEs +fgB +kEs +flN +asz +asz +asz +asz +asz +asz +tDg +iWX +wZh +asz +rMI +kdy +asz +asz +asz +asz +asz +asz +asz +asz +asz +pLf +uzu +ukp +xgc +ukp +ukp +ukp +pLf +ukp +bJj +fXX +fXX +bJj +gpz +bJj +bJj +fXX +vOb +cuJ +fXX +bJj +fXX +fXX +pLS puZ puZ "} @@ -56026,63 +56001,63 @@ oQl oQl oQl oQl -uKZ -cHB -xSk -afd -fRg -oYH -aSA -gIQ -aTh -aVx -aWI -aYd -baX -bcJ -pvv -pvv -pvv -pvv -pvv -fRg -hGj -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -huz -aut -rdS -aCy -tdc -axJ -axJ -tZW -huz -huz -sax -hrk -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +mIL +bme +lSU +twi +flN +flN +flN +kEs +kEs +flN +eit +vTc +asz +coj +coj +asz +dtE +goj +goj +goj +goj +goj +goj +aiD +goj +asz +agz +asz +asz +asz +asz +asz +asz +pLf +ukp +uzu +fBA +xgc +ukp +ukp +ukp +xgc +bJj +gpz +gpz +bJj +bJj +gpz +rbq +fXX +rbq +mwJ +fXX +fXX +fXX +fXX +pLS puZ puZ "} @@ -56188,63 +56163,63 @@ oQl oQl oQl oQl -uji -uKZ -uKZ -uji -dtr -oYH -pvv -fhv -aUA -aVB -aWQ -aVx -aVx -aVx -bqN -aVx -dbH -dKR -pvv -fRg -hGj -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -aut -rdS -rdS -axJ -axJ -rdS -huz -huz -sax -hrk -kAw -nZA -kAw -kAw -puZ -puZ -puZ -puZ +mIL +mIL +uIE +flN +flN +flN +flN +flN +eit +kEs +kEs +flN +rMI +dTU +dTU +rMI +goj +chU +goj +chU +chU +chU +goj +chU +aiD +asz +twt +agY +aha +arK +arU +asz +asz +pLf +pLf +ukp +uzu +ukp +ukp +xgc +ukp +bJj +fXX +gpz +gpz +vlD +bJj +bJj +bJj +osE +bJj +amu +amu +amu +amu +amu +amu puZ puZ "} @@ -56351,58 +56326,58 @@ oQl oQl oQl mIL -mIL -mIL -uKZ -fRg -oYH -pvv -aTh -aUx -aVU -aWS -aYf -baY -bdk -aWS -bYO -aWQ -dbH -eVG -fRg -hGj -uqb -kLM -kLM -iQq -iQq -ipc -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -rdS -axJ -axJ -axJ -axJ -axJ -huz -huz +fQX +gaz +uIE +flN +flN +gCL +flN +kEs +flN +flN +vTc +rMI +dTU +dTU +rMI +goj +wnK +goj +wnK +wnK +wnK +goj +wnK +goj +fNE +aud +rZt +rZt +rZt +nBh +ajg +asz +qfZ +jrg +jrg +jrg +ukp +ukp +ukp +bJj +bJj +bJj +gpz +bJj +bJj +bJj +bJj +fXX +osE +fXX +amu sax -hrk -nZA -nZA -kAw -kAw puZ puZ puZ @@ -56514,59 +56489,59 @@ oQl mIL mIL ood -ood -uKZ -aQg -oYH -pvv -aTi -aUy -aVL -vVq -aVL -aVL -aVL -aWS -clp -aVU -aUA -gIQ -fRg -hGj -uqb -uqb -uqb -kLM -iQq -ipc -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -eSN -akF -alS -aMW -wHx -dQq -axJ -axJ -huz -huz -huz -hrk -nZA -nZA -nZA -kAw -kAw -bcV -oFl +mIL +lqu +flN +eit +flN +kEs +kEs +fgB +kEs +kOi +lSU +coj +coj +lSU +dtE +rZt +rZt +rZt +rZt +mgT +rZt +uvU +goj +fNE +aud +miD +ptr +ptr +rZt +aCB +aeU +fXX +bJj +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +bJj +bJj +bJj +jrg +amu +gpz +bJj +osE +amu +sax +sax +sax puZ puZ puZ @@ -56668,67 +56643,67 @@ mIL mIL mPu fQX -fQX -fQX +jAL +jAL fQX mIL mIL mIL mIL ood -ood -uKZ -aQg -oYH -pvv -aTj -aUz -aVL -aWS -aYg -bbg -bea -aWS -cbk -aWU -deV -fhv -fRg -hGj -kLM -kLM -iQq -iQq -kLM -vdk -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -tpg -exX -qIr -axJ -axJ -axJ -dQq -axJ -huz -huz -huz -hrk -kAw -kAw -kAw -kAw -kAw -rBk -vAU +pqj +vwn +uIE +flN +kEs +flN +flN +kEs +flN +kOi +lSU +lSU +lSU +lSU +bxW +wnK +goj +aNf +rZt +nBs +goj +txU +goj +fNE +aud +ptr +miD +miD +rZt +ava +asz +qfZ +dVw +gpz +gpz +bJj +bJj +jrg +bJj +bJj +gpz +bJj +bJj +jrg +jrg +amu +rbq +rbq +rbq +amu +sax +sax +sax puZ puZ puZ @@ -56831,64 +56806,64 @@ mIL mIL fQX fQX -fQX -fQX -mIL +jAL +jAL mIL +vJu mIL ood +fQX +jAL mIL -mIL -uKZ -fRg -oYH -pvv -pvv -aUw -aVB -aWU -aVN -aVN -aVN -bqN -aVN -deV -pvv -pvv -gxK -hGj -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -huz -axJ -axJ -rBC -rdS -axJ -axJ -tkm -ncS -hrk -hrk -kAw -kAw -kAw -kAw -kAw +lSU +uIE +flN +kEs +agw +agw +kEs +wXh +lSU +cvn +lSU +wOO +goj +chU +goj +lfk +rZt +uII +aiD +chU +goj +fNE +aud +rZt +rZt +mRU +ptr +aue +asz +jrg +bJj +gpz +gpz +bJj +jrg +jrg +jrg +gpz +gpz +gpz +bJj +osE +jrg +iTQ +rbq +rbq +rbq +amu +sax puZ puZ puZ @@ -56996,61 +56971,61 @@ fQX fQX mIL mIL -mIL +vJu mIL mIL oQl -oQl -uji -fRg -oYH -pvv -pvv -aTj -aVN -aWV -aYx -bbh -beK -pvv -pvv -pvv -pvv -pvv -fRg -hGj -kLM -iQq -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq -kLM -kLM -kLM -huz -krU -axJ -axJ -trX -uLT -wTT -fXB -ncS -hrk -hrk -nZA -kAw -kAw -kAw -kAw +mIL +mIL +lSU +ehO +jis +lSU +acU +acU +lSU +lSU +lSU +fgH +lSU +bYk +goj +chU +dsY +uKo +rZt +wjK +goj +vTj +goj +asz +agm +rZt +rZt +ard +asz +asz +asz +jrg +bJj +bJj +bJj +jrg +jrg +jrg +bJj +gpz +bJj +gpz +bJj +osE +jrg +amu +fXX +fXX +bJj +amu +sax puZ puZ puZ @@ -57153,66 +57128,66 @@ fQX fQX fQX fQX +jAL fQX -fQX -fQX -mIL +jAL mIL +jAL ood ood oQl oQl +ood oQl -uji -dtr -oYH -pvv -aTn -pvv -pvv -pvv -pvv -pvv -bfi -pvv -pvv -pvv -pvv -pvv -fRg -hGj -kLM -iOu -uqb -kJQ -uqb -iQq -iQq -iQq -iQq -kLM -iQq -kLM -uqb -kLM -que -aDM -huz -kys -pef -rdS -axJ -axJ -xvQ -fXB -ncS -kAw -nZA -kAw -kAw -nZA -kAw -hrk +oQl +lSU +dwQ +lSU +lSU +lSU +lSU +lSU +lSU +dwQ +lSU +qRo +goj +wnK +goj +kMJ +rZt +neS +goj +wnK +oag +asz +agl +rZt +rZt +apk +asz +jrg +jrg +jrg +osE +bJj +bJj +jrg +jrg +bJj +bJj +gpz +gpz +bJj +bJj +bJj +gpz +bJj +fXX +bJj +fXX +amu +sax puZ puZ puZ @@ -57324,57 +57299,57 @@ ood mIL oQl oQl +mIL oQl -uji -oYH -ahe -pvv -ugD -pvv -pvv -aWY -pvv -pvv -pvv -pvv -pvv -pvv -pvv -pvv -fRg -uji -aDM -uqb -uqb -uqb -kLM -kLM -iQq -iQq -iQq -iQq -kLM -kLM -sqb -lNg -aDM -aDM -huz -huz -huz -huz -tRN -rdS -xvQ -huz -huz -kAw -kAw -kAw -kAw -nZA -kAw -hrk +oQl +lSU +dwQ +eBG +dwQ +dwQ +elw +rRP +lSU +cvn +lSU +exm +goj +rWS +fVI +rZt +rZt +rZt +goj +chU +goj +aeU +rZt +rZt +rZt +aCB +asz +jrg +jrg +jrg +osE +bJj +bJj +bJj +jrg +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +bJj +bJj +fXX +fXX +iTQ +sax puZ puZ puZ @@ -57475,69 +57450,69 @@ iMb iMb iMb fQX +jAL fQX fQX fQX +jAL +mIL fQX fQX -mIL -mIL -mIL gaz oQl oQl oQl -uji -uKZ -uKZ -uji -uji -uji -uKZ -fRg -fRg -fRg -bfy -fRg -uKZ -uji -dMo -ano -dMo -uji -hzJ -kLM -lNE -uqb -iOu -kLM -iQq -iQq -iQq -iQq -kLM -kLM -uqb -uqb -uqb -hzJ -huz -huz -huz -huz -ncS -ncS -ncS -huz -huz -hrk -kAw -kAw -kAw -kAw -kAw -hrk -hrk +oQl +oQl +lSU +dwQ +dwQ +dwQ +oaO +dwQ +rEW +lSU +lSU +lSU +lSU +bxW +chU +goj +rZt +rZt +rZt +goj +chU +oag +asz +aud +rZt +rZt +tiw +asz +jrg +jrg +jrg +bJj +osE +bJj +bJj +jrg +bJj +osE +bJj +gpz +gpz +gpz +bJj +bJj +gpz +gpz +fXX +jrg +iTQ +sax +sax puZ puZ puZ @@ -57639,67 +57614,67 @@ iMb kri fQX fQX -fQX -fQX -fQX -fQX mIL mIL +jAL +mIL +jAL +mIL mIL oQl oQl oQl oQl -cKL -fQX -oQl -oQl oQl -uKZ -iMA -aYy -bbj -aYy -iMA -uKZ -uji -uji -uji -uji -uji -hzJ -qhm -qhm -kXs -mcH -mcH -mcH -mcH -nEH -mcH -mcH -mcH -pNo -qhm -qhm -hzJ -hzJ -hzJ -hzJ -hzJ -kAw -kAw -kAw -hrk -hrk -kAw -nZA -nZA -kAw -kAw -kAw -kAw -hrk +lSU +lSU +lSU +lSU +dwQ +oaO +dwQ +dwQ +dwQ +bXo +rZt +goj +vuj +goj +eaz +rZt +nwd +goj +wnK +goj +fNE +aud +rZt +rZt +ahT +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +bJj +bJj +bJj +bJj +gpz +gpz +bJj +osE +bJj +gpz +gpz +bJj +jrg +jrg +sax +sax puZ puZ puZ @@ -57800,67 +57775,67 @@ fIT fQX iMb fQX -mIL -mIL -fQX -fQX -fQX +wMh +cQY +kSO +qBM +wMh mIL mIL ood oQl oQl +vJu oQl oQl -fQX -cKL -jAL oQl oQl oQl -jAL -aYF -bbt -jAL -bGk -fQX -snZ -hzJ -hzJ -hzJ -hzJ -kLM -kLM -knI -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -uqb -uqb -uqb -qEB -hzJ -hzJ -hzJ -hzJ -kAw -hrk -kAw -kAw -kAw -kAw -kAw -nZA -kAw -kAw -kAw -kAw +lSU +elw +dwQ +dwQ +dwQ +dwQ +lSU +lQm +goj +chU +goj +dqH +rZt +sCl +onM +chU +goj +fNE +afX +rZt +rZt +ahS +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +osE +bJj +bJj +gpz +bJj +bJj +jrg +osE +bJj +bJj +gpz +bJj +jrg +jrg +sax puZ puZ puZ @@ -57961,68 +57936,68 @@ tPz fIT fQX iMb -mIL -mIL -mIL -fQX -fQX -fQX -fQX +wMh +wMh +cQY +rJI +gso +pcY +gaz mIL gaz oQl oQl +vJu oQl oQl -cKL -jAL -jAL +acb oQl oQl -jAL -jAL -jAL -jAL -bfB -bGx -fQX -snZ -hzJ -hzJ -hzJ -hzJ -uAd -kbK -jpE -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -kLM -qoU -hXB -hzJ -hzJ -hzJ -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw -hrk -hrk +lSU +dwQ +dwQ +lSU +lSU +lSU +lSU +lSU +goj +chU +dsY +hTb +pRH +lpA +goj +chU +goj +fNE +afV +rZt +rZt +aCB +asz +jrg +jrg +jrg +jrg +bJj +bJj +bJj +gpz +gpz +gpz +bJj +bJj +bJj +jrg +gRJ +bJj +osE +gpz +bJj +bJj +jrg +sax puZ puZ puZ @@ -58123,67 +58098,67 @@ aXZ fIT fQX iMb +wMh +wMh +cQY +aNy +xtc +nKD mIL mIL mIL -fQX -fQX -fQX -fQX -mIL -mIL mIL mIL -mhl -fQX -fQX -fQX -fQX -jAL -jAL -fQX -fQX -jAL -jAL -jAL -pqj -jAL -pqj -fKb -kLM -iQq -kLM -kLM -kLM -kLM -uqb -iOu -kLM -iQq -iQq -iQq -iQq -iQq -iOu -iQq -iQq -uqb -hbD -boz -iDy -hzJ -hzJ -xMz -xMz -xMz -xMz -xMz -kAw -nZA -nZA -kAw -kAw -kAw +vJu +oRK +mIx +aca +oQl +oQl +lSU +dwQ +dwQ +lSU +gpb +adC +adC +lSU +goj +wnK +goj +gKE +pue +iYc +onM +wnK +goj +asz +afz +azH +agZ +aUS +asz +jrg +jrg +jrg +jrg +jrg +bJj +gpz +osE +osE +gpz +bJj +bJj +mKF +jrg +jrg +gRJ +sUD +hXH +apD +hXH +czI puZ puZ puZ @@ -58286,66 +58261,66 @@ fIT iMb fQX fQX -mIL -fQX -fQX -fQX -fQX -fQX +wMh +pXU +wMh +wMh +aFO +gaz mIL mIL mIL mIL -wxY -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -pqj -jAL -kvQ -uqb -aDM -iQq -kLM -kLM -iQq -uqb -uqb -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -uqb -lNg -lNg -xvb -uqb -xMz -xMz -xMz -xMz -xMz -xMz -kAw -nZA -kAw -kAw -nZA -kAw +vJu +kbT +skl +skl +ors +lSU +lSU +dwQ +dwQ +lSU +dwQ +dwQ +dwQ +lSU +dtE +rZt +rZt +iXr +pue +wui +rZt +rZt +goj +asz +asz +asz +asz +asz +asz +jrg +jrg +jrg +bJj +bJj +bJj +gpz +osE +osE +bJj +osE +osE +jrg +jrg +jrg +jrg +jrg +flN +fLk +flN +pxA puZ puZ puZ @@ -58447,67 +58422,67 @@ fIT fQX iMb iMb -fQX +jAL fQX fQX fQX fQX cKL -fQX -fQX +ood +cKL mIL mIL rcD -mIL -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -pqj -jAL -fQX -kLM -uqb -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -iQq -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -xMz -xMz -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw +vJu +sgB +skl +skl +ors +dwQ +elw +dwQ +dwQ +adI +adj +dwQ +adH +lSU +goj +wnK +goj +wnK +wnK +wnK +goj +txU +goj +rZt +rZt +flN +asz +jrg +jrg +jrg +osE +osE +osE +osE +bJj +bJj +bJj +bJj +sLj +sLj +tnG +jrg +jrg +jrg +jrg +wBf +flN +dwQ +rZt +pxA puZ puZ puZ @@ -58616,60 +58591,60 @@ fQX cKL fQX fQX -fQX +ood mIL ood mIL -wxY -fQX -fQX -fQX -fQX -fQX -fQX -fQX -fQX -jAL -jAL -pqj -jAL -fQX -jAL -cdh -aDM -uqb -kLM -kLM -uqb -uqb -kLM -kLM -kLM -iQq -bzK -iQq -iQq -kLM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -xMz -xMz -xMz -xMz -xMz -xMz -kAw -kAw -kAw -kAw -kAw -kAw +vJu +abV +skl +skl +ors +elw +dwQ +dwQ +dwQ +lSU +ada +dwQ +dwQ +adI +goj +chU +goj +chU +chU +chU +goj +chU +aiD +rZt +flN +rZt +dwQ +bJj +osE +bJj +osE +osE +osE +gpz +bJj +gpz +gpz +bJj +ciL +gpz +bJj +xuz +jrg +jrg +jrg +pxA +flN +rZt +dwQ +pxA puZ puZ puZ @@ -58782,56 +58757,56 @@ mIL mIL ood mIL -mhl -fQX -cKL -fQX -fQX -cKL -fQX -fQX -fQX -jAL -pqj -fQX -jAL -fQX -jAL -kvQ -kLM -xvb -kLM -kLM -kLM -kLM -kLM -gCx -kJQ -kLM -qkI -iQq -kLM -iOu -kLM -iQq -qkI -lNg -kLM -lNg -uqb -uqb -xMz -xMz -xMz -xMz -xMz -xMz -cwZ -cwZ -kAw -kAw -kAw -kAw +vJu +oQl +abX +ors +ors +lSU +lSU +dwQ +dwQ +lSU +ada +ady +adE +lSU +goj +goj +goj +goj +goj +goj +goj +goj +goj +wnK +wnK +dwQ +flN +fXX +bJj +bJj +osE +bJj +bJj +gpz +gpz +bJj +bJj +xuz +ciL +bJj +bJj +bJj +jrg +jrg +jrg +pxA +dwQ +dwQ +rZt +pxA puZ puZ puZ @@ -58930,7 +58905,7 @@ fQX fQX iMb iMb -fQX +jAL iMb iMb pQE @@ -58940,60 +58915,60 @@ pQE mIL gaz mIL -mIL -ood -gaz -mIL -oQl -oQl -fQX -cKL -fQX -oQl -cKL -fQX -jAL -pqj -fQX -cKL -xMz -xMz -xMz -xMz -aDM -uqb -kLM -gCx -kLM -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -iQq -iQq -kLM -uqb -iQq -iQq -iQq -kLM -xvb -uqb -uCs -xMz -xMz -xMz -xMz -cwZ -cwZ -kAw -kAw -kAw -hrk +mIL +jAL +gaz +mIL +vJu +oQl +oQl +abY +abY +oQl +lSU +dwQ +dwQ +lSU +lSU +lSU +lSU +lSU +shO +gAV +gAV +chU +rZt +rZt +kmO +rZt +rZt +rZt +rZt +rZt +rZt +bJj +bJj +osE +gpz +bJj +bJj +bJj +bJj +bJj +gpz +gpz +rad +fXX +osE +gRJ +jrg +jrg +jrg +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59106,56 +59081,56 @@ ood gaz ood mIL -mIL oQl oQl oQl oQl oQl oQl -fQX -jAL -jAL -cKL -xMz -xMz -xMz -xMz -oqf -uqb -kTP -kLM -kLM -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq -qkI -iQq -uqb -kLM -aDM -xMz -xMz -xMz -iQq -fKb -cwZ -kAw -kAw -kAw -hrk -puZ +lSU +dwQ +dwQ +dwQ +bXo +rZt +dTU +dTU +rZt +gAV +gAV +chU +asz +asz +asz +asz +asz +wnK +wnK +dwQ +wnK +dwQ +bJj +bJj +gpz +gpz +gpz +bJj +osE +osE +gpz +gpz +xTK +fXX +fXX +jrg +jrg +jrg +jrg +pxA +xcE +ggL +xcE +pxA puZ puZ puZ @@ -59267,57 +59242,57 @@ ood ood mIL mIL -mIL -mIL -iMb +jAL oQl oQl oQl oQl -vAp -mhl -jAL -mhl -vAp -xMz -cnt -cnt -uqb -xvb -kLM -gCx -kLM -iQq -cQW -cQW -cQW -iQq -iQq -iQq -gGH -kLM -kLM -cQW -cQW -cQW -cQW -kLM -iQq -iQq -kLM -kLM -lNg -xMz -xMz -iQq -kLM -fKb -cwZ -kAw -kAw -hrk -kAw -puZ +oQl +oQl +lSU +rHO +rHO +fgK +lSU +chU +gAV +gAV +gAV +gAV +gAV +chU +fNE +aeP +miD +aiV +asz +rZt +rZt +rZt +rZt +flN +pxA +fXX +bJj +jrg +bJj +bJj +bJj +bJj +bJj +osE +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59430,56 +59405,56 @@ mIL mIL iMb iMb +oQl +iMb iMb iMb oQl oQl -oQl -oQl -fQX -fQX -jAL -fQX -jAL -xMz -aDM -uqb -uqb -uqb -kLM -gGH -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -cQW -cQW -cQW -kLM -gGH -cQW -kLM -uqb -lNg -erj -kLM -tcp -iQq -fKb -cwZ -kAw -kAw -hrk -sax -puZ +lSU +lSU +lSU +lSU +lSU +chU +gAV +rZt +dTU +dTU +dTU +rZt +fNE +aeC +rZt +aeR +asz +wnK +dwQ +wnK +wnK +wnK +dwQ +bJj +bJj +jrg +jrg +bJj +osE +jrg +jrg +jrg +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +vKu +vKu +vKu +pxA puZ puZ puZ @@ -59589,59 +59564,59 @@ pQE mIL iMb iMb -vpD -vpD -vpD -ccu -ols +iMb +iMb +iMb oQl +iMb +iMb +iMb +iMb oQl oQl oQl -fQX -jAL -pqj -jAL -fQX -xMz -aDM -uqb -uqb -kLM -iQq -iQq -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -iQq -kLM -kLM -wgM -kLM -ath -iQq -fKb -cwZ -kAw -sax -sax -sax -puZ +oQl +oQl +asz +chU +gAV +chU +asz +asz +aed +asz +asz +aez +mRU +aeQ +asz +asz +rZt +flN +rZt +dwQ +flN +flN +amu +bJj +jrg +jrg +jrg +jrg +jrg +jrg +pxA +wnK +wnK +pxA +pxA +pxA +pxA +pxA +mwF +chU +mwF +pxA puZ puZ puZ @@ -59749,61 +59724,61 @@ pQE pQE mIL fQX +jAL +iMb +iMb +iMb +iMb +iMb +iMb +jAL +iMb +iMb iMb iMb -vpD -vpD -qFx -oQl -oQl -oQl oQl oQl oQl -fQX -jAL -pqj -jAL -fQX -xMz -uqb -uqb -uqb -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -kLM -kLM -lNg -uqb -kLM -kLM -fKb -kAw -kAw -sax -sax -sax -puZ +asz +rZH +gAV +chU +adW +aeb +rZt +miD +miD +adi +aCB +asz +asz +asz +asz +wnK +wnK +wnK +wnK +dwQ +flN +jrg +jrg +jrg +jrg +jrg +pxA +pxA +pxA +wnK +wnK +vKu +wnK +hfw +wnK +rZt +mwF +chU +mwF +pxA puZ puZ puZ @@ -59913,60 +59888,60 @@ fQX jAL fQX iMb -ben -vpD -vpD -oQl -oQl -oQl -oQl -oQl -oQl -oQl -fQX jAL -fQX -fQX -xMz -uqb -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -iQq -kLM -kLM -ath -aDM -kLM -sax -sax -sax -sax -sax -sax -sax -puZ -puZ +iMb +iMb +iMb +iMb +jAL +iMb +iMb +iMb +jAL +jAL +iMb +oQl +asz +chU +gAV +chU +adV +rZt +rZt +rZt +rZt +rZt +mOu +asz +asz +asz +asz +asz +rZt +flN +rZt +rZt +dwQ +pxA +pxA +pxA +jrg +jrg +pxA +mWE +pJA +wnK +mwF +mwF +mwF +mwF +vKu +bJi +bJi +chU +mwF +pxA +flN puZ puZ puZ @@ -60069,67 +60044,67 @@ fQX iMb iMb iMb -iMb +jAL fQX jAL fQX jAL jAL -vpD -ben -vpD -oQl -oQl -oQl -oQl -oQl +iMb +jAL +iMb +iMb +iMb +iMb +iMb +iMb +jDv +jDv +jDv +jDv oQl -vAp -mhl -fQX -mhl -vAp -xMz -uqb -kLM -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -boD -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -iQq -iQq -iQq -kLM -lMO -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +asz +chU +gAV +chU +adT +rZt +rZt +rZt +rZt +mRU +aex +asz +nVn +iCJ +pxA +pxA +pxA +wnK +wnK +wnK +wnK +jXM +wnK +pxA +jrg +jrg +pxA +nHH +pDp +wnK +flN +flN +flN +flN +flN +mwF +rZt +rZt +mwF +pxA +kTd +kTd puZ puZ puZ @@ -60240,59 +60215,59 @@ pqj jAL iMb iMb -oQl -oQl -oQl -oQl -oQl -oQl -aUP -fQX -jAL iMb -xMz -xMz -kLM -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -iQq -kLM -kLM -uqb -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +iMb +iMb +iMb +jDv +asz +asz +asz +asz +asz +chU +gAV +chU +adS +aea +ptr +aew +aew +aex +asz +asz +lXy +nxA +vKu +vKu +bUe +rZt +chU +rZt +chU +dwQ +wnK +pxA +pxA +pxA +pxA +nzf +wnK +wnK +aQm +aXc +aXI +bbG +flN +mwF +chU +bJi +bJi +wBf +flN +kTd +kTd puZ puZ puZ @@ -60402,59 +60377,59 @@ pqj jAL jAL iMb -oQl -oQl -oQl -oQl -oQl -aTr +iMb iMb iMb jAL iMb -xMz -xMz -aDM -uqb -kLM -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -kLM -kLM -aDM -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +jDv +asz +dAt +sNX +dAt +rZt +chU +gAV +chU +asz +asz +asz +asz +asz +asz +asz +asz +pxA +vdS +wnK +vKu +pxA +pxA +ahu +wnK +wnK +wnK +wnK +jXM +uYt +pxA +pxA +nrr +wnK +wnK +aPe +act +acA +bah +flN +mwF +chU +bJi +rZt +flN +flN +rZt +flN puZ puZ puZ @@ -60564,59 +60539,59 @@ pqj jAL jAL cKL -jAL -oQl oQl -cKL -cKL -jAL iMb -jAL -jAL -pDH -xMz -xMz -aDM -uqb -uqb -kLM -iQq -iQq -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -kLM -cQW -iQq -kLM -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +iMb +iMb +oQl +asz +gha +rZt +sNX +rZt +chU +gAV +chU +rZt +asz +wqc +tOq +hXQ +asz +goj +goj +pxA +vKu +wnK +wnK +cSn +pxA +pxA +sIX +chU +rZt +chU +rZt +wnK +pxA +pxA +nmT +pve +wnK +aPd +aRz +aXi +bag +flN +mwF +chU +mwF +flN +wBf +pxA +pxA +kTd puZ puZ puZ @@ -60726,60 +60701,60 @@ pqj pqj jAL jAL -fQX -aOk -aQh -rxF -wuw -iMb +oQl +oQl +oQl iMb jAL -onF -qRV -mIL -xMz -xMz -aDM -uqb -kLM -kLM -gGH -iQq -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -cQW -iQq -cQW -cQW -cQW -cQW -kLM -gGH -cQW -iQq -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +asz +dAt +sNX +dAt +rZt +chU +gAV +chU +rZt +bXo +biM +biM +biM +goj +xJA +goj +bXo +vKu +soj +wnK +wnK +cSn +pxA +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +kRV +pEv +wnK +flN +flN +flN +flN +flN +mwF +chU +fww +sNX +dAt +rZt +pxA +kTd +flN puZ puZ puZ @@ -60888,60 +60863,60 @@ pqj pqj pqj iMb -jAL -aOl -oCk -jAL -jJf -jAL -jAL -iMb -iMb -kVs -bbF -xMz -xMz -uqb -uqb -kLM -kLM -gCx -iQq -iQq -cQW -cQW -cQW -iQq -iQq -iQq -gGH -iQq -iQq -cQW -cQW -cQW -cQW -kLM -iQq -iQq -iQq -kLM -uqb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +rZt +bgC +rZt +rZt +chU +gAV +chU +rZt +asz +biM +biM +biM +goj +lpA +uWA +pxA +tNP +lFp +jcv +fqJ +cSn +pxA +pxA +pxA +rZH +rZt +chU +rZt +rZt +pxA +pxA +pxA +wnK +mwF +mwF +mwF +mwF +vKu +mwF +chU +uOR +uuN +acP +flN +pxA +flN +kTd puZ puZ puZ @@ -61050,60 +61025,60 @@ jAL pqj pqj pqj -pqj -jAL -iMb -aRo -jAL -pqj -iMb -jAL -iMb -jAL -jAL -jAL -kvQ -uqb -dgG -kLM -kLM -kLM -kLM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -gCx -kLM -kLM -uqb -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +eaa +rZt +rZt +rZt +chU +gAV +chU +iaK +kTI +biM +xtI +qOd +goj +wnK +goj +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +rZt +vKu +vKu +wnK +vKu +wnK +vKu +wnK +bJi +chU +fww +sNX +dAt +flN +rZt +flN +kTd puZ puZ puZ @@ -61212,61 +61187,61 @@ jAL jAL pqj pqj -pqj -pqj -jAL -jAL -iMb -aTt -iMb -iMb -iMb -fQX -jAL -jAL -kvQ -oUu -uqb -kLM -kLM -uqb -iQq -gCx -kLM -uqb -kLM -iQq -iQq -kLM -kLM -kLM -kLM -kLM -iQq -iQq -kLM -kLM -kLM -uqb -uqb -uqb -kLM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +rZt +byr +rZt +rZt +chU +gAV +chU +iaK +feA +biM +biM +biM +uuv +yhX +goj +pxA +rZt +dTU +osV +dTU +dTU +dTU +rZt +kap +rZt +crF +crF +crF +wnK +vKu +wnK +chU +rZt +chU +rZt +chU +rZt +chU +rZt +chU +mwF +bgC +flN +flN +rZt +flN +kTd +flN puZ puZ "} @@ -61374,61 +61349,61 @@ jAL jAL jAL pqj -pqj -pqj -pqj -pqj -aSF -aTw -iMb -iMb -jAL -pqj -jAL -pqj -iQq -iQq -iQq -iQq -uqb -uqb -uqb -uqb -kLM -kLM -iQq -gCx -uqb -uqb -qkI -iQq -kLM -kLM -kLM -kLM -gCx -kLM -uqb -uqb -aDM -upf -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +wFB +eSt +wFB +dTU +rZt +gAV +rZt +txX +kRj +qOZ +cEj +qOZ +goj +fwv +goj +bXo +chU +kQJ +vKu +wnK +vKu +wnK +vKu +kap +rZt +crF +crF +crF +wnK +vKu +wnK +chU +rZt +chU +rZt +chU +rZt +chU +rZt +chU +mwF +byr +rZt +rZt +xun +flN +kTd +kue puZ puZ "} @@ -61536,61 +61511,61 @@ aKk lyh rxF wcF -pqj -aOp -pqj -pqj -fQX -iMb -iMb -jAL +oQl +oQl +oQl iMb iMb -jAL -jAL -kvQ -iOu -kLM -kLM -kLM -kLM -kLM -uqb -uqb -uqb -uqb -kLM -iQq -uqb -uqb -kLM -kLM -kLM -uqb -uqb -uqb -uqb -kLM -uqb -kLM -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +rib +asz +gha +uuN +sNX +rZt +chU +gAV +chU +rZt +asz +dnH +jft +ghS +asz +goj +goj +pxA +rZH +vKu +ghU +pxA +vQm +vFX +pxA +pxA +wnK +wnK +wnK +wnK +wnK +pxA +rZt +vKu +vKu +wnK +vKu +wnK +vKu +wnK +bJi +chU +fww +gaJ +dAt +rZt +rZt +flN +flN +kTd puZ puZ "} @@ -61694,65 +61669,65 @@ gkv gkv puZ puZ -aKn +jAL rMb iMb jJf -pqj -pqj -cKL -cKL -fQX -iMb -fQX iMb iMb iMb jAL -jAL -kvQ -uqb -aDM -uqb -uqb -uqb -uqb -uqb -uqb -qza -kLM -hXX -kLM -cko -rLu -nMR -kLM -uqb -uqb -aDM -xvb -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +iMb +rib +asz +wFB +eSt +wFB +dTU +rZt +gAV +rZt +dTU +asz +asz +asz +asz +asz +goj +goj +fNE +chU +wnK +pxA +pxA +pxA +pxA +pxA +pxA +mcw +rZt +chU +rZt +chU +pxA +pxA +pxA +wnK +mwF +mwF +mwF +mwF +vKu +mwF +chU +uOR +rZt +acP +flN +pxA +flN +flN +kue puZ puZ "} @@ -61860,61 +61835,61 @@ aKn jAL jAL jAL -pqj -cKL -iMb -fQX -cKL -aTH +jAL iMb iMb -hJd iMb iMb -puZ -puZ -puZ -puZ -eaB -eaB -gJk -hIn -aDM -uqb -uqb -uqb -uqb -mfa -jqx -slO -nNl -nMR -uqb -aDM -kLM -kLM -xvb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +rib +asz +asz +asz +asz +asz +wnK +wnK +wnK +wnK +wnK +rZt +rZt +asz +wTm +biM +biM +fNE +chU +vKu +vQm +pxA +rZt +iQe +wnK +gFb +nMk +chU +rZt +chU +rZt +fNE +mWE +pDu +wnK +flN +flN +flN +flN +flN +mwF +chU +fww +sNX +dAt +flN +pxA +flN +flN +kue puZ puZ "} @@ -62022,61 +61997,61 @@ jAL jAL jAL jAL -pqj jAL iMb -aRp -lyh -rxF -wuw -aVW -fQX iMb -cKL -puZ -puZ -puZ -puZ -slO -slO -slO -aKP -aMn -puZ -kfl -eGe -rnO -qza -mNs -slO -slO -ofl -uqb -xvb -kGW -aDM -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +jAL +jAL +oQl +oQl +oQl +asz +asz +asz +goj +goj +djO +goj +wnK +rZt +rZt +fNE +nPH +biM +biM +fNE +chU +wnK +vFX +pxA +iQe +qaF +chU +kyu +drx +rZt +chU +rZt +chU +fNE +mHU +pDp +wnK +aQm +aXc +aXI +bbG +flN +mwF +chU +mwF +rZt +flN +rZt +flN +flN +flN +kue puZ puZ "} @@ -62184,61 +62159,61 @@ puZ aLD aMv jAL +oQl +oQl +oQl +oQl jAL -iMb -cKL -iMb -rMb -iMb -fqb -jAL -iMb -cKL -iMb -puZ -puZ -puZ -puZ -puZ -slO -slO -slO -slO -puZ -lLv -cQW -rbA -uqb -mNs -xMz -slO -ofl -uqb -uqb -aDM -uqb -uqb -uqb -uqb -riV -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +iqt +rZt +goj +axa +hVs +djO +dBB +rZt +rZt +fNE +sdF +biM +biM +fNE +rZt +vKu +pxA +pxA +rZt +hEE +chU +gFb +sfM +oHF +wnK +wnK +wnK +pxA +lYG +wnK +wnK +aPe +aSJ +aXn +bah +flN +mwF +chU +mwF +flN +rZt +rZt +flN +flN +kTd +kue puZ puZ "} @@ -62346,61 +62321,61 @@ puZ puZ puZ jAL +oQl +oQl +oQl +oQl jAL -cKL -fQX -iMb -aSG -aTL -fQX -iMb -fQX -cKL -puZ -puZ -puZ -puZ -puZ -puZ -slO -slO -slO -puZ -puZ -mev -cQW -rbA -aDM -mOv -niL -niL -oqH -uqb -uqb -uqb -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -jCE -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +bNu +rZt +djO +qCs +pPt +goj +wnK +qyE +wnK +asz +fNE +fNE +fNE +pxA +xvS +xvS +pxA +pxA +iQe +qaF +chU +pxA +pxA +pxA +vKu +vKu +vKu +pxA +lGU +wnK +wnK +aPd +aRz +aXi +bag +flN +mwF +chU +mwF +rZt +flN +flN +pxA +flN +kTd +kue puZ puZ "} @@ -62510,59 +62485,59 @@ puZ puZ puZ puZ -cKL -fQX -iMb -iMb -iMb -cKL -iMb -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -uqb -uqb -uqb -kLM -uqb -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jLx -iWS -jCE -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +oQl +asz +iIe +rZt +goj +fHM +rZt +goj +wnK +rZt +vKu +vKu +vKu +vKu +vKu +vKu +vKu +toN +vKu +vKu +dgF +hEE +wnK +pxA +pxA +pxA +wnK +wnK +wnK +pxA +hQO +pve +wnK +flN +wAP +flN +dJS +flN +mwF +chU +mwF +rZt +rZt +wBf +pxA +kTd +kue +flN puZ puZ "} @@ -62673,57 +62648,57 @@ puZ puZ puZ puZ -cKL -fQX -cKL -cKL -iMb -fQX -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -snN -uqb -uqb -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -oaP -jCE -jCE -jCE -jCE -acO -puZ -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +oQl +oQl +asz +asz +rZt +goj +rZt +rZt +goj +wnK +xEB +vKu +wnK +rZt +rZt +eFQ +rZt +rZt +wnK +vKu +vKu +vKu +vKu +vKu +jqT +pxA +ctk +cVy +chU +mwF +pxA +kRV +kVe +wnK +mwF +mwF +yiS +mwF +vKu +mwF +chU +mwF +rZt +flN +flN +flN +kTd +kTd puZ puZ puZ @@ -62837,55 +62812,55 @@ puZ puZ puZ puZ -fQX -iMb -fQX -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -aDM -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jCE -jCE -acM -jCE -jCE -puZ -puZ -puZ -puZ -puZ +oQl +oQl +oQl +asz +tqs +rZt +goj +rZt +fHM +goj +wnK +rZt +vKu +wnK +rZt +rZt +wnK +rZt +rZt +wnK +vKu +vKu +vKu +vKu +vKu +bqy +pxA +ugP +mwF +chU +mwF +pxA +pxA +pxA +pxA +wnK +vKu +xIL +vKu +wnK +bJi +chU +bJi +rZt +twi +flN +flN +kue +flN puZ puZ puZ @@ -63002,51 +62977,51 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -jCE -jCE -jCE -puZ -puZ -puZ -puZ -puZ +asz +wgp +rZt +goj +qNK +hrb +goj +wnK +rZt +vKu +lkX +ift +sQU +vKu +sQU +ift +lkX +rhS +oqQ +oqQ +lNm +vKu +pxA +pxA +ctk +mwF +chU +bJi +euA +euA +euA +bJi +euA +euA +euA +euA +bJi +bJi +chU +mwF +rZt +twi +kue +kTd +flN puZ puZ puZ @@ -63164,50 +63139,50 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -hFl -hFl -puZ -puZ -puZ -puZ -puZ +asz +fjd +rZt +djO +kts +wAM +djO +asz +pxA +pxA +ift +smI +hUG +vKu +udJ +euA +ift +pKP +nNN +kZy +pKP +vKu +uLu +pxA +pxA +bJi +rZt +dTU +dTU +dTU +dTU +rZt +dTU +dTU +dTU +dTU +rZt +dTU +rZt +mwF +rZt +pxA +kTd +kTd puZ puZ puZ @@ -63326,48 +63301,48 @@ puZ puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +asz +asz +asz +goj +djO +goj +goj +asz +pxA +pxA +lkX +ffw +uim +vKu +uim +ffw +lkX +vKu +vKu +vKu +vKu +vKu +uLu +pxA +pxA +bJi +bJi +euA +vPR +euA +euA +bJi +euA +euA +vPR +euA +bJi +euA +euA +bJi +rZt +pxA puZ puZ puZ @@ -63490,46 +63465,46 @@ puZ puZ puZ puZ +asz +asz +asz +asz +asz +asz puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +pxA +ueu +mMa +euA +vKu +euA +euA +vKu +rhS +oqQ +oqQ +rhS +ueu +pxA +pxA +pxA +pxA +pxA +sym +ctk +ugP +pxA +pxA +xwi +thc +ckI +dTn +pxA +pxA +rZt +rZt +rZt +pxA puZ puZ puZ @@ -63659,39 +63634,39 @@ puZ puZ puZ puZ +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA puZ puZ puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ -puZ +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA +pxA puZ puZ puZ diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index a79ef352f94b..d178ca9faddf 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -62,6 +62,10 @@ "adD" = ( /turf/open/floor/almayer/research/containment/floor1, /area/kutjevo/exterior/lz_dunes) +"adG" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/interior/colony_South) "adX" = ( /obj/item/stack/sheet/wood, /obj/structure/machinery/light, @@ -362,6 +366,15 @@ dir = 4 }, /area/kutjevo/interior/complex/Northwest_Dorms) +"axi" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/gm/river/desert/shallow_edge{ + dir = 9 + }, +/area/kutjevo/exterior/spring) "axK" = ( /obj/item/trash/cigbutt/bcigbutt, /obj/structure/stairs/perspective/kutjevo{ @@ -563,6 +576,10 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) +"aKg" = ( +/obj/structure/tunnel, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/interior/colony_South) "aKl" = ( /obj/structure/machinery/landinglight/ds1{ dir = 1 @@ -679,6 +696,13 @@ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, /area/kutjevo/interior/oob) +"aXU" = ( +/obj/structure/barricade/wooden{ + dir = 1; + pixel_y = 13 + }, +/turf/open/desert/desert_shore/shore_edge1, +/area/kutjevo/exterior/spring) "aXV" = ( /obj/structure/machinery/colony_floodlight_switch, /turf/closed/wall/kutjevo/colony/reinforced, @@ -964,7 +988,7 @@ "bsq" = ( /obj/structure/tunnel, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/interior/colony_central) +/area/kutjevo/interior/colony_north) "bsw" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8 @@ -1958,6 +1982,14 @@ }, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/interior/power) +"cKY" = ( +/obj/structure/prop/brazier/frame/full/campfire, +/obj/item/tool/match/paper{ + pixel_y = -2; + pixel_x = -11 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "cLn" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 1; @@ -2286,6 +2318,11 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) +"dcC" = ( +/turf/open/desert/desert_shore/shore_edge1{ + dir = 1 + }, +/area/kutjevo/exterior/spring) "ddi" = ( /obj/structure/platform/kutjevo, /obj/structure/blocker/invisible_wall, @@ -2418,6 +2455,11 @@ dir = 10 }, /area/kutjevo/interior/colony_South/power2) +"dnd" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 8 + }, +/area/kutjevo/exterior/spring) "dnl" = ( /obj/structure/platform/kutjevo/rock, /turf/open/auto_turf/sand/layer1, @@ -2534,6 +2576,14 @@ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, /area/kutjevo/interior/oob) +"dtV" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = 10; + pixel_y = 10 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/kutjevo/interior/complex/botany/east_tech) "duu" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ name = "\improper South Power Shutters" @@ -2668,6 +2718,15 @@ dir = 8 }, /area/kutjevo/exterior/runoff_river) +"dBt" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + pixel_x = -8; + pixel_y = 10 + }, +/turf/open/gm/river/desert/shallow_edge{ + dir = 5 + }, +/area/kutjevo/exterior/spring) "dBO" = ( /obj/structure/ladder, /obj/structure/blocker/invisible_wall, @@ -2736,6 +2795,12 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_South) +"dGi" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 1 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "dGx" = ( /obj/structure/window/framed/kutjevo, /turf/open/floor/kutjevo/tan, @@ -2859,6 +2924,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) +"dOj" = ( +/turf/open/gm/river/desert/shallow_corner{ + dir = 1 + }, +/area/kutjevo/exterior/spring) "dOJ" = ( /obj/structure/barricade/deployable, /turf/open/floor/kutjevo/colors/purple/edge, @@ -2949,6 +3019,10 @@ }, /turf/open/gm/river/desert/shallow, /area/kutjevo/exterior/runoff_river) +"dUc" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/spring) "dUy" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/kutjevo/multi_tiles{ @@ -3038,6 +3112,15 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/plating/kutjevo, /area/kutjevo/exterior/runoff_dunes) +"eaT" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/interior/colony_South) +"ebv" = ( +/turf/open/desert/desert_shore/shore_corner2{ + dir = 8 + }, +/area/kutjevo/exterior/spring) "ebB" = ( /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_S_East) @@ -3419,6 +3502,9 @@ "evZ" = ( /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/power) +"ewl" = ( +/turf/open/desert/desert_shore/desert_shore1, +/area/kutjevo/exterior/spring) "ewF" = ( /obj/item/phone{ pixel_x = 1; @@ -3540,6 +3626,20 @@ }, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/construction) +"eCE" = ( +/obj/item/clipboard{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/tool/pen{ + name = "stained pen"; + desc = "It's a seemingly normal pen... aside from the faint red fingerprints on the side..."; + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/paper/crumpled/bloody, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "eCY" = ( /obj/structure/machinery/cryo_cell, /turf/open/floor/kutjevo/grey/plate, @@ -3596,6 +3696,10 @@ "eHX" = ( /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/telecomm/lz1_south) +"eIq" = ( +/obj/item/tool/hatchet, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "eIL" = ( /turf/open/floor/kutjevo/colors/cyan/edge{ dir = 4 @@ -3851,6 +3955,9 @@ dir = 4 }, /area/kutjevo/interior/colony_South/power2) +"eVR" = ( +/turf/open/gm/river/desert/deep, +/area/kutjevo/exterior/spring) "eWP" = ( /obj/effect/landmark/corpsespawner/colonist/kutjevo, /turf/open/floor/kutjevo/multi_tiles, @@ -3935,6 +4042,10 @@ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, /area/kutjevo/interior/power) +"fdH" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "fdS" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib1" @@ -4106,6 +4217,10 @@ dir = 4 }, /area/kutjevo/interior/construction) +"fne" = ( +/obj/item/trash/barcardine, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "foE" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/barricade/handrail/kutjevo{ @@ -4403,6 +4518,12 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) +"fMB" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 5 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "fNc" = ( /obj/structure/platform/kutjevo{ dir = 4 @@ -4581,6 +4702,14 @@ /obj/structure/prop/dam/gravestone, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_N_East) +"fYr" = ( +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "fYE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/shuttle/dropship/flight/lz2, @@ -4703,6 +4832,10 @@ dir = 8 }, /area/kutjevo/interior/power/comms) +"giY" = ( +/obj/item/device/flashlight/lamp/tripod/grey, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "giZ" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 28 @@ -4754,7 +4887,7 @@ /area/kutjevo/interior/oob) "gnj" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Dunes Landing Zone" + name = "LZ1: Dunes Landing Zone" }, /turf/open/floor/plating/kutjevo, /area/shuttle/drop1/kutjevo) @@ -4774,6 +4907,13 @@ dir = 10 }, /area/kutjevo/exterior/runoff_dunes) +"gok" = ( +/obj/structure/flora/bush/desert{ + icon_state = "tree_2"; + pixel_y = 14 + }, +/turf/open/desert/desert_shore/desert_shore1, +/area/kutjevo/exterior/spring) "goT" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/runoff_dunes) @@ -4805,6 +4945,15 @@ /obj/item/clipboard, /turf/open/floor/kutjevo/colors/green, /area/kutjevo/interior/complex/botany) +"gsn" = ( +/obj/structure/flora/bush/desert{ + icon_state = "tree_2"; + pixel_y = 14 + }, +/turf/open/desert/desert_shore/desert_shore1{ + dir = 1 + }, +/area/kutjevo/exterior/spring) "gsq" = ( /obj/structure/filingcabinet, /obj/structure/window/reinforced/tinted{ @@ -4948,6 +5097,13 @@ "gBl" = ( /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/oob) +"gBu" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/spring) "gBI" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -5045,6 +5201,9 @@ dir = 8 }, /area/kutjevo/interior/complex/Northwest_Flight_Control) +"gFA" = ( +/turf/open/desert/desert_shore/shore_edge1, +/area/kutjevo/exterior/spring) "gHh" = ( /obj/structure/flora/grass/desert/lightgrass_9, /turf/open/auto_turf/sand/layer0, @@ -5064,6 +5223,15 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/foremans_office) +"gHV" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) +"gJx" = ( +/turf/open/gm/river/desert/shallow_corner{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "gJB" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 8; @@ -5712,6 +5880,11 @@ }, /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) +"hET" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 10 + }, +/area/kutjevo/exterior/spring) "hFi" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -5840,6 +6013,10 @@ icon_state = "platingdmg3" }, /area/kutjevo/interior/complex/Northwest_Dorms) +"hRG" = ( +/obj/structure/prop/dam/boulder/boulder2, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "hSo" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 10 @@ -5953,6 +6130,11 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/exterior/construction) +"hZx" = ( +/obj/structure/flora/grass/tallgrass/desert, +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "iaj" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/lz_river) @@ -6100,6 +6282,12 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/med/triage) +"irb" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 8 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "ird" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo{ @@ -6373,6 +6561,9 @@ /obj/item/storage/box/trackimp, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany/east_tech) +"iNI" = ( +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "iNY" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -6533,6 +6724,13 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) +"jac" = ( +/obj/item/device/radio{ + name = "damp shortwave radio"; + desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional." + }, +/turf/open/desert/desert_shore/shore_corner2, +/area/kutjevo/exterior/spring) "jav" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/item/ammo_box/magazine/nailgun, @@ -6704,6 +6902,16 @@ /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/power/comms) +"jnD" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/obj/structure/barricade/wooden{ + dir = 1; + pixel_y = 13 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "jnS" = ( /obj/structure/window/framed/kutjevo, /turf/open/floor/plating/kutjevo, @@ -7274,6 +7482,10 @@ /obj/structure/platform/kutjevo, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/colony_north) +"kgx" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "khI" = ( /obj/structure/window/framed/kutjevo/reinforced/hull, /turf/open/floor/kutjevo/grey/plate, @@ -7660,6 +7872,9 @@ "kDS" = ( /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) +"kEh" = ( +/turf/open/gm/river/desert/shallow_edge, +/area/kutjevo/exterior/spring) "kEG" = ( /obj/structure/sign/poster{ pixel_y = -32 @@ -7716,6 +7931,10 @@ "kIn" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/exterior/scrubland) +"kIQ" = ( +/obj/structure/prop/dam/large_boulder/boulder2, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "kKb" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -7829,10 +8048,20 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) +"kQa" = ( +/obj/structure/bed/bedroll, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "kQo" = ( /obj/structure/girder, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/construction) +"kQD" = ( +/turf/open/desert/desert_shore/desert_shore1{ + dir = 8 + }, +/area/kutjevo/exterior/spring) "kQU" = ( /obj/structure/platform/kutjevo{ dir = 8 @@ -8091,7 +8320,7 @@ /area/kutjevo/interior/power/comms) "lkY" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "NW Colony Landing Zone" + name = "LZ2: NW Colony Landing Zone" }, /turf/open/floor/plating/kutjevo, /area/shuttle/drop2/kutjevo) @@ -8353,6 +8582,11 @@ /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/complex/med/locks) +"lEf" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 6 + }, +/area/kutjevo/exterior/spring) "lEA" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/colony_central) @@ -8623,11 +8857,9 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/med/auto_doc) "lZT" = ( -/obj/structure/tunnel{ - id = "hole1" - }, -/turf/open/auto_turf/sand/layer2, -/area/kutjevo/interior/colony_north) +/obj/structure/tunnel, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/construction) "lZZ" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 @@ -8674,6 +8906,11 @@ "mbS" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany) +"mct" = ( +/turf/open/gm/river/desert/shallow_corner{ + dir = 8 + }, +/area/kutjevo/exterior/spring) "mcv" = ( /obj/structure/window/framed/kutjevo/reinforced/hull, /obj/structure/blocker/invisible_wall, @@ -8969,6 +9206,10 @@ dir = 6 }, /area/kutjevo/interior/complex/med/locks) +"mvX" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "mwh" = ( /obj/structure/window/framed/kutjevo/reinforced, /turf/open/floor/kutjevo/colors/green/tile, @@ -8988,6 +9229,11 @@ /obj/item/frame/rack, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany/east_tech) +"myk" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "mzn" = ( /obj/structure/platform/kutjevo{ dir = 1 @@ -9007,6 +9253,18 @@ /obj/item/storage/pill_bottle/dexalin/skillless, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med) +"mAD" = ( +/obj/structure/barricade/wooden{ + dir = 1; + pixel_y = 13 + }, +/obj/structure/barricade/wooden{ + desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it..."; + dir = 8; + health = 25000 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "mAH" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/kutjevo_decals/catwalk, @@ -9300,6 +9558,11 @@ color = "#990000" }, /area/kutjevo/interior/oob) +"mNv" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 5 + }, +/area/kutjevo/exterior/spring) "mNM" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/exterior/runoff_bridge) @@ -9535,11 +9798,9 @@ /turf/open/desert/desert_shore/shore_corner2, /area/kutjevo/exterior/runoff_river) "niP" = ( -/obj/structure/tunnel{ - id = "hole3" - }, +/obj/structure/tunnel, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/botany_medical_cave) +/area/kutjevo/exterior/runoff_river) "niT" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 1 @@ -10075,6 +10336,12 @@ /obj/structure/platform/kutjevo/rock, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_central) +"nPq" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 6 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "nPs" = ( /obj/structure/blocker/invisible_wall, /turf/open/auto_turf/sand/layer1, @@ -10088,6 +10355,11 @@ /obj/structure/machinery/iv_drip, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/triage) +"nPX" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 9 + }, +/area/kutjevo/exterior/spring) "nQc" = ( /obj/structure/platform_decoration/kutjevo/rock, /obj/structure/platform_decoration/kutjevo/rock{ @@ -10226,6 +10498,12 @@ /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/med/operating) +"nZC" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/corpsespawner/colonist/kutjevo, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "nZK" = ( /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Flight_Control) @@ -10243,6 +10521,12 @@ }, /turf/open/floor/kutjevo/tan/alt_inner_edge, /area/kutjevo/interior/complex/Northwest_Flight_Control) +"obv" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 10 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "oca" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -10779,6 +11063,10 @@ /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/carpet, /area/kutjevo/interior/oob) +"oQb" = ( +/obj/structure/flora/grass/tallgrass/desert/corner, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "oQc" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/power_pt2_electric_boogaloo) @@ -10982,6 +11270,13 @@ icon_state = "0,5" }, /area/kutjevo/interior/construction) +"pfK" = ( +/obj/structure/barricade/wooden{ + dir = 1; + pixel_y = 13 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "pfR" = ( /obj/structure/platform/kutjevo/rock{ dir = 4 @@ -11108,6 +11403,15 @@ "pmv" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/exterior/complex_border/med_rec) +"pmD" = ( +/obj/structure/flora/bush/ausbushes/grassybush{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/gm/river/desert/shallow_edge{ + dir = 6 + }, +/area/kutjevo/exterior/spring) "pmR" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/auto_turf/sand/layer1, @@ -11678,6 +11982,10 @@ }, /turf/open/floor/kutjevo/colors/cyan/inner_corner, /area/kutjevo/interior/complex/med/triage) +"pVH" = ( +/obj/structure/tunnel, +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/runoff_river) "pWe" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 @@ -11725,6 +12033,11 @@ dir = 4 }, /area/kutjevo/interior/complex/botany/east_tech) +"qaU" = ( +/turf/open/desert/desert_shore/shore_corner2{ + dir = 1 + }, +/area/kutjevo/exterior/spring) "qaY" = ( /obj/structure/blocker/invisible_wall, /turf/open/desert/desert_shore/shore_corner2{ @@ -12094,6 +12407,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_S_East) +"qFh" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 4 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "qFU" = ( /turf/open/desert/desert_shore/shore_corner2{ dir = 8 @@ -12187,11 +12506,9 @@ }, /area/kutjevo/interior/oob) "qLV" = ( -/obj/structure/tunnel{ - id = "hole2" - }, -/turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/stonyfields) +/obj/structure/tunnel, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/interior/colony_S_East) "qMC" = ( /obj/structure/machinery/light{ dir = 4 @@ -12485,6 +12802,10 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/kutjevo/colors/red, /area/kutjevo/interior/complex/botany) +"riT" = ( +/obj/item/stack/sheet/wood/small_stack, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "rjS" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo{ @@ -12653,6 +12974,10 @@ /obj/structure/window/framed/kutjevo/reinforced/hull, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/power) +"rwC" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/interior/colony_South) "rwL" = ( /obj/item/frame/table/almayer, /turf/open/floor/kutjevo/tan, @@ -12731,6 +13056,10 @@ "rCp" = ( /turf/open/desert/desert_shore/desert_shore1, /area/kutjevo/exterior/runoff_bridge) +"rDe" = ( +/obj/structure/prop/dam/boulder/boulder2, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "rDO" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomright" @@ -12990,6 +13319,13 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/botany_medical_cave) +"rUE" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "rUM" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/girder, @@ -13204,6 +13540,9 @@ /obj/effect/spawner/random/tool, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/construction) +"skx" = ( +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "slb" = ( /obj/structure/machinery/light{ dir = 4 @@ -13291,6 +13630,10 @@ }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) +"soL" = ( +/obj/item/stack/sheet/wood/small_stack, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "soP" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -13536,6 +13879,11 @@ }, /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) +"sGS" = ( +/turf/open/desert/desert_shore/shore_edge1{ + dir = 8 + }, +/area/kutjevo/exterior/spring) "sHg" = ( /obj/structure/bed/chair{ dir = 4 @@ -13851,6 +14199,12 @@ "tax" = ( /turf/open/gm/river/desert/shallow_edge, /area/kutjevo/exterior/runoff_dunes) +"tbx" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "tdC" = ( /obj/structure/bed/chair{ dir = 4 @@ -14427,18 +14781,6 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany) -"tRD" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 8 - }, -/obj/structure/platform_decoration/kutjevo{ - dir = 8 - }, -/obj/structure/platform_decoration/kutjevo{ - dir = 8 - }, -/turf/closed/wall/kutjevo/rock, -/area/kutjevo/interior/oob) "tRG" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1; @@ -14535,6 +14877,11 @@ /obj/structure/blocker/invisible_wall, /turf/open/gm/river/desert/deep, /area/kutjevo/interior/oob) +"uaz" = ( +/turf/open/desert/desert_shore/desert_shore1{ + dir = 1 + }, +/area/kutjevo/exterior/spring) "ubm" = ( /obj/structure/machinery/light{ dir = 8 @@ -14562,6 +14909,11 @@ /obj/structure/platform/kutjevo/rock, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_N_East) +"ueM" = ( +/turf/open/desert/desert_shore/shore_corner2{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "ueO" = ( /obj/structure/prop/dam/boulder/boulder1, /turf/open/auto_turf/sand/layer0, @@ -14903,6 +15255,9 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) +"uzJ" = ( +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/spring) "uAh" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/kutjevo/multi_tiles, @@ -15154,6 +15509,10 @@ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, /area/kutjevo/interior/oob) +"uNW" = ( +/obj/structure/prop/dam/boulder/boulder2, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/interior/colony_South) "uNZ" = ( /obj/structure/machinery/colony_floodlight, /obj/structure/platform/kutjevo/smooth{ @@ -15428,6 +15787,10 @@ /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/colors/red, /area/kutjevo/interior/complex/botany) +"vdK" = ( +/obj/item/stack/sheet/wood/small_stack, +/turf/open/desert/desert_shore/desert_shore1, +/area/kutjevo/exterior/spring) "vdV" = ( /obj/structure/blocker/invisible_wall, /obj/structure/filtration/machine_96x96/indestructible{ @@ -15502,6 +15865,10 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/kutjevo/colors/green, /area/kutjevo/interior/complex/botany) +"vhC" = ( +/obj/structure/flora/grass/desert/lightgrass_11, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/spring) "vhQ" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 @@ -15693,11 +16060,9 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/runoff_bridge) "vzy" = ( -/obj/structure/tunnel{ - id = "hole4" - }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/scrubland) +/obj/structure/tunnel, +/turf/open/gm/dirtgrassborder2, +/area/kutjevo/exterior/complex_border/med_park) "vzC" = ( /obj/structure/platform/kutjevo{ dir = 1 @@ -16320,6 +16685,16 @@ }, /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/Northwest_Colony) +"wrO" = ( +/turf/open/gm/river/desert/shallow_edge{ + dir = 1 + }, +/area/kutjevo/exterior/spring) +"wrV" = ( +/turf/open/desert/desert_shore/desert_shore1{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "wsf" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 8 @@ -16347,6 +16722,13 @@ dir = 1 }, /area/kutjevo/interior/foremans_office) +"wtk" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/spring) "wtu" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 @@ -17018,6 +17400,11 @@ dir = 8 }, /area/kutjevo/interior/complex/med/operating) +"xuN" = ( +/turf/open/desert/desert_shore/shore_edge1{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "xuY" = ( /obj/structure/barricade/wooden, /turf/open/floor/kutjevo/multi_tiles{ @@ -17038,6 +17425,9 @@ /obj/structure/window/framed/kutjevo/reinforced, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/med/pano) +"xxf" = ( +/turf/open/gm/river/desert/shallow_corner, +/area/kutjevo/exterior/spring) "xxz" = ( /obj/structure/prop/dam/gravestone{ icon_state = "gravestone3" @@ -17217,6 +17607,12 @@ /obj/structure/barricade/wooden, /turf/open/floor/kutjevo/colors/red/tile, /area/kutjevo/interior/complex/botany) +"xPU" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "communications" + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/construction) "xQz" = ( /turf/open/floor/kutjevo/colors/cyan/inner_corner{ dir = 1 @@ -17485,6 +17881,15 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/tan/alt_inner_edge, /area/kutjevo/interior/complex/Northwest_Flight_Control) +"yic" = ( +/obj/structure/flora/bush/desert{ + icon_state = "tree_2"; + pixel_y = 14 + }, +/turf/open/desert/desert_shore/desert_shore1{ + dir = 4 + }, +/area/kutjevo/exterior/spring) "yir" = ( /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/complex/botany/east) @@ -19695,10 +20100,10 @@ wGH cWV exI nbV -nbV umo nbV nbV +nbV lAI lAI lAI @@ -20767,10 +21172,10 @@ sVF xBm wvX hzN -hzN wqk hzN hzN +hzN ppX ppX ppX @@ -21365,10 +21770,10 @@ wGH cWV uhO bbc -nbV umo nbV nbV +nbV lAI lAI lAI @@ -22437,10 +22842,10 @@ oJE xBm saK hzN -hzN wqk hzN hzN +hzN ppX ppX ppX @@ -27669,7 +28074,7 @@ sYd bXl bXl bXl -vzy +bXl sYd bXl sYd @@ -31165,7 +31570,7 @@ bEp bEp bEp bEp -tKY +niP dic dic dic @@ -33230,7 +33635,7 @@ xJg xJg xJg xJg -qLV +xJg jfQ jfQ xJg @@ -34514,7 +34919,7 @@ jhS jhS jhS wff -niP +wff wff wff jhS @@ -35142,7 +35547,7 @@ dxF mxB mxB mxB -quy +vzy tUm wYp bGV @@ -35813,7 +36218,7 @@ dxF dxF dxF dxF -tRD +dxF dxF dxF dxF @@ -37388,7 +37793,7 @@ nKh nKh nKh wtH -sbX +pVH mtS fPH dTM @@ -39694,7 +40099,7 @@ xWK bKH xWK xWK -xWK +xPU xWK jhx bKH @@ -40558,7 +40963,7 @@ hws qwg vcY jhS -htT +dtV dkE tfx dkE @@ -42331,7 +42736,7 @@ bkR wTt bkR bEH -lZT +bEH hUk hUk hUk @@ -42678,7 +43083,7 @@ hUk hUk hUk hUk -xWK +lZT nlA xWK xWK @@ -43244,11 +43649,11 @@ bpj bpj bpj bpj -dxF -dxF -dxF -dxF -dxF +bpj +bpj +uzJ +skx +hRG dxF dxF dxF @@ -43411,12 +43816,12 @@ bpj bpj bpj bpj -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +skx +skx +skx +skx dxF dxF dxF @@ -43578,14 +43983,14 @@ bpj bpj oXH bpj -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +skx +skx +skx +skx +iNI +iNI dxF dxF dxF @@ -43746,14 +44151,14 @@ npL bpj bpj bpj -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +skx +skx +skx +uzJ +skx +skx +iNI dxF dxF dxF @@ -43913,16 +44318,16 @@ npL bpj bpj bpj +bpj dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +skx +skx +skx +skx +iNI dxF dxF dxF @@ -44084,13 +44489,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +hRG +skx +mvX +uzJ +skx +skx +hRG dxF dxF dxF @@ -44252,14 +44657,14 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +skx +skx +skx +skx +iNI dxF dxF dxF @@ -44419,15 +44824,15 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +iNI +skx +skx +skx +skx +skx +skx +skx +skx dxF dxF dxF @@ -44587,15 +44992,15 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +iNI +skx +skx +uzJ +skx +skx +skx +skx +iNI dxF dxF dxF @@ -44755,14 +45160,14 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +skx +skx +uzJ +uzJ +skx dxF dxF dxF @@ -44924,13 +45329,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +iNI +skx +skx +skx +mvX +skx +iNI dxF dxF dxF @@ -45093,12 +45498,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +rDe +skx +skx +skx +skx +iNI dxF dxF dxF @@ -45261,12 +45666,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +iNI +skx +uzJ +skx +skx +iNI dxF dxF dxF @@ -45428,12 +45833,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +iNI +skx +uzJ +uzJ +skx +skx dxF dxF dxF @@ -45596,15 +46001,15 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +mAD +fYr +riT +fYr +skx +skx +skx +pfK dxF dxF dxF @@ -45764,16 +46169,16 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +eIq +skx +gHV +skx +uzJ +kIQ +skx +skx +skx dxF dxF dxF @@ -45931,17 +46336,17 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +giY +skx +skx +skx +mvX +skx +skx +skx +skx +kQa +vhC dxF dxF dxF @@ -46097,19 +46502,19 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +uzJ +skx +skx +iNI +iNI +fdH +iNI +soL +uzJ +cKY +mvX +hRG dxF dxF dxF @@ -46263,21 +46668,21 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +hRG +skx +skx +skx +iNI +dcC +kQD +kQD +kQD +aXU +nZC +gHV +eCE +skx +fne dxF dxF dxF @@ -46402,7 +46807,7 @@ wXd wXd wXd wXd -mMH +aKg bpj npL bpj @@ -46430,21 +46835,21 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +uzJ +skx +iNI +dcC +qaU +axi +dnd +hET +vdK +wtk +riT +rUE +gBu +rUE dxF dxF dxF @@ -46597,21 +47002,21 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +fMB +mvX +iNI +dcC +qaU +nPX +dOj +eVR +kEh +jac +gFA +iNI +skx +nPq +qFh dxF dxF dxF @@ -46763,23 +47168,23 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +kgx +dGi +uzJ +iNI +gsn +nPX +dOj +eVR +eVR +mct +hET +ewl +iNI +skx +oQb +kgx +dUc dxF dxF dxF @@ -46930,23 +47335,23 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +kgx +dGi +skx +iNI +uaz +wrO +eVR +eVR +eVR +eVR +kEh +gok +iNI +giY +oQb +kgx +kgx dxF dxF dxF @@ -47097,23 +47502,23 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +irb +tbx +skx +iNI +uaz +wrO +eVR +eVR +eVR +eVR +kEh +ewl +iNI +skx +oQb +kgx +kgx dxF dxF dxF @@ -47264,23 +47669,23 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +iNI +uaz +dBt +xxf +eVR +eVR +gJx +pmD +ewl +iNI +skx +obv +dUc +kgx dxF dxF dxF @@ -47431,22 +47836,22 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +vhC +uzJ +skx +iNI +xuN +ebv +mNv +myk +myk +lEf +ueM +sGS +iNI +kIQ +skx +obv dxF dxF dxF @@ -47599,21 +48004,21 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +iNI +xuN +wrV +wrV +yic +wrV +sGS +iNI +skx +skx +skx +skx dxF dxF dxF @@ -47766,21 +48171,21 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +skx +skx +mvX +iNI +iNI +iNI +iNI +iNI +iNI +skx +uzJ +skx +skx +uzJ dxF dxF dxF @@ -47919,24 +48324,8 @@ npL bpj bpj bpj -mMH -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +gBl dxF dxF dxF @@ -47947,6 +48336,22 @@ dxF dxF dxF dxF +iNI +iNI +jnD +skx +skx +uzJ +skx +kIQ +skx +skx +skx +skx +skx +mvX +skx +hRG dxF dxF dxF @@ -48086,6 +48491,8 @@ tCm bpj bpj bpj +bpj +bpj dxF dxF dxF @@ -48095,24 +48502,22 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +rDe +iNI +uzJ +skx +riT +skx +giY +skx +skx +skx +nPq +qFh +qFh +fMB +uzJ +vhC dxF dxF dxF @@ -48252,26 +48657,10 @@ mMH bpj bpj bpj -mMH -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +bpj dxF dxF dxF @@ -48279,6 +48668,22 @@ dxF dxF dxF dxF +iNI +skx +skx +skx +skx +jnD +skx +skx +skx +skx +uzJ +oQb +dUc +kgx +dGi +skx dxF dxF dxF @@ -48325,7 +48730,7 @@ bkR bkR bkR wTt -wTt +bsq hUk hUk hUk @@ -48419,31 +48824,31 @@ wXd npL bpj bpj +bpj +bpj +bpj +bpj +mMH mMH dxF dxF dxF dxF +iNI +skx +mvX +skx +skx +iNI +iNI dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +skx +oQb +kgx +hZx dxF dxF dxF @@ -48586,21 +48991,21 @@ wXd bpj npL bpj -qOP -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +oXH +bpj +bpj +bpj +bpj +bpj +mMH dxF dxF +skx +skx +uzJ +skx +iNI +iNI dxF dxF dxF @@ -48755,18 +49160,18 @@ bpj bpj mMH dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +npL +bpj +bpj +mMH +bpj +bpj +skx +skx +skx +iNI dxF dxF dxF @@ -48923,16 +49328,16 @@ bpj dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +oXH +bpj +bpj +bpj +uzJ +skx +iNI dxF dxF dxF @@ -49091,14 +49496,14 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +bpj +bpj +bpj +skx +skx dxF dxF dxF @@ -49258,12 +49663,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +npL +bpj +mMH dxF dxF dxF @@ -49427,10 +49832,10 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +mMH dxF dxF dxF @@ -49594,11 +49999,11 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +bpj +mMH dxF dxF dxF @@ -49699,7 +50104,7 @@ kZz feg feg feg -bsq +uiK mnT mnT mnT @@ -49761,11 +50166,11 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF +uNW +bpj +bpj +bpj +mMH dxF dxF dxF @@ -49929,10 +50334,10 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF +adG +eaT +rwC +eaT dxF dxF dxF @@ -50096,10 +50501,10 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF +mMH +oXH +bpj +bpj dxF dxF dxF @@ -50263,10 +50668,10 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +bpj dxF dxF dxF @@ -50429,11 +50834,11 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +bpj +mMH dxF dxF dxF @@ -50595,12 +51000,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +npL +bpj +mMH dxF dxF dxF @@ -50760,13 +51165,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +bpj +bpj +bpj +mMH dxF dxF dxF @@ -50927,13 +51332,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +npL +bpj +bpj +bpj +mMH dxF dxF dxF @@ -51093,13 +51498,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +bpj +bpj +bpj +npL dxF dxF dxF @@ -51260,12 +51665,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +oXH +bpj +bpj +bpj dxF dxF dxF @@ -51426,13 +51831,13 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +npL +bpj +bpj +bpj +bpj dxF dxF dxF @@ -51593,12 +51998,12 @@ dxF dxF dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF +mMH +bpj +bpj +bpj +bpj +mMH dxF dxF dxF @@ -51758,13 +52163,13 @@ bpj bpj dxF dxF -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +bpj +npL +bpj +mMH dxF dxF dxF @@ -51924,13 +52329,13 @@ bpj bpj bpj mMH -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +npL +bpj +bpj +bpj +bpj +bpj dxF dxF dxF @@ -52091,13 +52496,13 @@ bpj oXH bpj bpj -dxF -dxF -dxF -dxF -dxF -dxF -dxF +bpj +bpj +oXH +bpj +bpj +mMH +mMH dxF dxF dxF @@ -52258,11 +52663,11 @@ bpj bpj bpj bpj -dxF -dxF -dxF -dxF -dxF +bpj +bpj +bpj +npL +mMH dxF dxF dxF @@ -52426,9 +52831,9 @@ bpj bpj bpj mMH -dxF -dxF -dxF +bpj +bpj +bpj dxF dxF dxF @@ -53905,7 +54310,7 @@ ptY ebB ebB bOc -ptY +qLV dxF dxF dxF diff --git a/maps/map_files/Kutjevo/sprinkles/35.communications.dmm b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm new file mode 100644 index 000000000000..d172399ca564 --- /dev/null +++ b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm @@ -0,0 +1,545 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aA" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"cm" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"cL" = ( +/obj/item/clothing/suit/storage/hazardvest/yellow, +/turf/open/floor/kutjevo/tan, +/area/template_noop) +"cW" = ( +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"di" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"dl" = ( +/obj/structure/girder/displaced, +/obj/item/stack/sheet/metal, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"gD" = ( +/obj/item/stack/rods, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"ix" = ( +/obj/item/tool/warning_cone, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/paper/crumpled{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"lD" = ( +/obj/structure/machinery/door_display{ + desc = "A work schedule monitor. It appears to be broken."; + name = "Schedule Monitor" + }, +/turf/closed/wall/kutjevo/colony, +/area/template_noop) +"lZ" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"mv" = ( +/obj/structure/girder, +/turf/open/floor/plating/kutjevo, +/area/template_noop) +"nn" = ( +/obj/structure/machinery/constructable_frame, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oB" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 8; + layer = 2.8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oK" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oU" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/message_server, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"pP" = ( +/obj/structure/largecrate/random{ + pixel_y = 19; + layer = 3.02 + }, +/obj/structure/largecrate/random{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 4 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"qp" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"qM" = ( +/obj/structure/machinery/light, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"rm" = ( +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"ry" = ( +/obj/item/stack/rods, +/obj/structure/fence, +/turf/open/auto_turf/sand/layer1, +/area/template_noop) +"rG" = ( +/obj/item/stack/rods, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"rP" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"sQ" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"uS" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp/on{ + pixel_x = 9; + pixel_y = 15; + layer = 3.04 + }, +/obj/item/clipboard{ + pixel_x = -6 + }, +/obj/item/tool/pen/blue/clicky{ + pixel_x = 9 + }, +/obj/item/paper_bin{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/paper{ + info = "It has been three weeks since I was relocated to the 'finished' comms office. Me and Paul have been trying to work with this infernal racket going on, but by all that's holy I can't think- let alone recalibrate the new computers. Speaking of, these new computers are all fine and dandy but the sensor uplink tower still hasn't been setup properly after the accident with the apprentice, you know, the one that piled up those debris filled trash bags by Paul's 'desk' and then left. Anyway, like you said the builders didn't lay down the protective matting for the new flooring so there's dirt everywhere. For your sake Jeff, I hope your holiday doesn't end too soon, you still don't even have a desk yet."; + pixel_x = -5; + icon_state = "paper_words"; + name = "I should have gone on holiday" + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"wh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"wC" = ( +/obj/structure/surface/rack, +/obj/item/notepad/blue, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"wO" = ( +/obj/structure/filingcabinet{ + density = 0; + layer = 3.0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/filingcabinet/chestdrawer{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/prop/rock{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/structure/prop/rock{ + layer = 3.1; + pixel_y = 3 + }, +/obj/structure/prop/rock{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/structure/flora/pottedplant/random/unanchored{ + pixel_y = 16; + layer = 3.3 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"yQ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/power/apc/weak{ + dir = 1 + }, +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"zb" = ( +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"zh" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/tool, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Af" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Ca" = ( +/obj/structure/window/framed/kutjevo, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Ci" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"DY" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"EK" = ( +/obj/structure/window/framed/kutjevo, +/turf/open/floor/plating/kutjevo, +/area/template_noop) +"GH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/crumpled{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"IR" = ( +/obj/item/paper/crumpled, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Jg" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Jz" = ( +/obj/item/stack/sheet/metal, +/obj/item/stack/rods, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Ks" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"KC" = ( +/obj/structure/bed/chair/comfy{ + dir = 1; + pixel_y = 11 + }, +/obj/item/paper/crumpled{ + pixel_x = -12; + pixel_y = 14 + }, +/obj/item/paper/crumpled{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = -8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"KD" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/plating/kutjevo, +/area/template_noop) +"LG" = ( +/obj/structure/fence, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"LO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/prop/alien/hugger, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"LR" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"MV" = ( +/obj/structure/largecrate/random{ + pixel_y = 1 + }, +/obj/structure/largecrate/random{ + pixel_y = 19; + layer = 3.02; + pixel_x = -3 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 4 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Nr" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Or" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Pp" = ( +/obj/structure/prop/almayer/computers/sensor_computer1, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Re" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Rj" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/tool/warning_cone, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"RK" = ( +/turf/closed/wall/kutjevo/colony, +/area/template_noop) +"SZ" = ( +/turf/closed/wall/kutjevo/colony/reinforced, +/area/template_noop) +"Ul" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"Um" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Vc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/warning_cone, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"Xi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"Xq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"XS" = ( +/obj/structure/fence{ + desc = "A large metal mesh strewn between two poles. A 'Keep Out! Under Construction' sign dangles from one of the fence posts." + }, +/turf/open/auto_turf/sand/layer1, +/area/template_noop) +"Yo" = ( +/obj/item/clothing/head/hardhat/orange, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"YG" = ( +/obj/structure/machinery/power/port_gen/pacman, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"YO" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"Zf" = ( +/obj/structure/window/framed/kutjevo, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) + +(1,1,1) = {" +SZ +RK +RK +RK +qp +Ul +RK +RK +RK +RK +RK +RK +"} +(2,1,1) = {" +RK +pP +cW +cW +Ci +zb +Ca +Pp +oK +nn +oU +RK +"} +(3,1,1) = {" +KD +Nr +Ks +cW +di +Xi +Zf +uS +KC +IR +Or +RK +"} +(4,1,1) = {" +SZ +MV +Or +rP +Yo +zb +lD +LR +ix +GH +Re +EK +"} +(5,1,1) = {" +EK +wC +rG +LO +sQ +cL +cm +Xq +Xq +cm +cm +YO +"} +(6,1,1) = {" +EK +rm +lZ +nn +Or +Af +Um +Jg +Um +Jz +wh +DY +"} +(7,1,1) = {" +SZ +yQ +oB +wO +gD +zh +Rj +dl +YG +Vc +qM +RK +"} +(8,1,1) = {" +SZ +mv +RK +RK +aA +RK +LG +LG +mv +ry +XS +mv +"} diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm index dac318453cdf..f4b3d26d3e93 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -25,6 +25,15 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, /area/lv522/outdoors/n_rockies) +"abe" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/item/tank/emergency_oxygen/double, +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "abo" = ( /turf/closed/wall/strata_outpost, /area/lv522/oob) @@ -111,10 +120,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor) -"acC" = ( -/obj/structure/largecrate/random, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "acD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat, @@ -188,6 +193,12 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/wall/strata_outpost, /area/lv522/indoors/b_block/bridge) +"aem" = ( +/obj/structure/barricade/plasteel/metal, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "aeD" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -201,14 +212,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) -"afa" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "afn" = ( /obj/item/reagent_container/spray/cleaner/drone{ pixel_x = -3; @@ -418,6 +421,12 @@ "akM" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/oob) +"akP" = ( +/obj/structure/girder, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "akV" = ( /obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/shale/layer1, @@ -456,13 +465,6 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor) -"amy" = ( -/obj/item/toy/farwadoll{ - desc = "A Farwa plush doll. Once soft and comforting now just really wet."; - name = "Soaked farwa plush doll" - }, -/turf/open/gm/river, -/area/lv522/atmos/sewer) "amC" = ( /obj/structure/bed/roller, /obj/effect/landmark/objective_landmark/medium, @@ -618,6 +620,14 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) +"apC" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "apS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -782,6 +792,18 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/n_rockies) +"aue" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 8; + pixel_x = -6; + pixel_y = 6 + }, +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "aut" = ( /turf/open/floor/corsat{ dir = 5; @@ -812,13 +834,6 @@ /obj/item/stack/rods, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) -"awm" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/vehicle/train/cargo/trolley, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "awI" = ( /obj/item/explosive/plastic/breaching_charge{ unacidable = 1 @@ -868,16 +883,6 @@ icon_state = "plate" }, /area/lv522/atmos/reactor_garage) -"ayf" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 8; - pixel_x = -6; - pixel_y = 6 - }, -/obj/vehicle/train/cargo/trolley, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "ayn" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -922,10 +927,6 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/a_block/corpo/glass) -"azJ" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/prison, -/area/lv522/indoors/a_block/admin) "azK" = ( /obj/item/prop/colony/used_flare, /turf/open/floor/prison, @@ -952,12 +953,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"aAX" = ( -/obj/item/ammo_box/magazine/misc/mre/empty, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "aBm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/prop/invuln/lattice_prop{ @@ -1035,7 +1030,7 @@ /area/lv522/outdoors/colony_streets/north_east_street) "aDE" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "Southeast Landing Zone" + name = "LZ2: Southeast Landing Zone" }, /turf/open/floor/plating, /area/shuttle/drop2/lv522) @@ -1196,12 +1191,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) -"aId" = ( -/obj/structure/girder/displaced, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "aIf" = ( /obj/structure/machinery/light{ dir = 1 @@ -1304,10 +1293,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/landing_zone_2) -"aKE" = ( -/obj/item/prop/alien/hugger, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "aKK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green{ @@ -1477,6 +1462,13 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/medical) +"aQf" = ( +/obj/structure/surface/table/almayer, +/obj/item/map/lv522_map, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "aQs" = ( /obj/structure/machinery/telecomms/bus/preset_one, /turf/open/floor/prison{ @@ -1516,6 +1508,13 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) +"aRB" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "aRH" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -1714,6 +1713,17 @@ /obj/structure/ore_box, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"aWd" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Radio Tower Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/t_comm) "aWl" = ( /obj/structure/barricade/wooden, /obj/structure/pipes/standard/simple/hidden/green, @@ -1814,6 +1824,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security) +"aYE" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + id = "East_Lock"; + name = "Emergency Lockdown" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/hallway) "aYF" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal8"; @@ -2053,6 +2078,16 @@ icon_state = "cement4" }, /area/lv522/outdoors/nw_rockies) +"bdY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/item/weapon/gun/launcher/grenade/m81/m79, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "beb" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -2136,10 +2171,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/north) -"bgw" = ( -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "bgJ" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "Sec-Kitchen-Lockdown"; @@ -2251,6 +2282,15 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) +"biZ" = ( +/obj/structure/barricade/sandbags{ + dir = 8 + }, +/obj/item/trash/uscm_mre, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "bjd" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/atmos/sewer) @@ -2649,15 +2689,6 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor) -"byb" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/barricade/wooden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "bye" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -2674,22 +2705,6 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) -"byD" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/obj/effect/decal{ - icon = 'icons/mob/xenos/effects.dmi'; - icon_state = "acid_weak"; - layer = 2; - name = "weak acid"; - pixel_x = -10; - pixel_y = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "byJ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, @@ -2763,13 +2778,6 @@ }, /turf/open/floor/plating, /area/lv522/indoors/a_block/security) -"bAn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "bAo" = ( /obj/item/prop/colony/usedbandage{ dir = 10 @@ -3021,6 +3029,11 @@ icon_state = "white_cyan3" }, /area/lv522/indoors/a_block/medical) +"bHk" = ( +/obj/structure/barricade/sandbags, +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "bHA" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -3164,6 +3177,14 @@ /obj/item/stack/folding_barricade, /turf/open/floor/prison, /area/lv522/atmos/way_in_command_centre) +"bJY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + req_access_txt = "100" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/atmos/way_in_command_centre) "bJZ" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -3181,10 +3202,15 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor) -"bKf" = ( -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) +"bKj" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel/small_stack, +/obj/item/ore/uranium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/lv522/indoors/c_block/mining) "bKk" = ( /turf/open/floor/corsat{ dir = 8; @@ -3206,12 +3232,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) -"bKu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "bKO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -3319,6 +3339,15 @@ icon_state = "wood" }, /area/lv522/indoors/b_block/bar) +"bNy" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Corporate Office Airlock"; + req_access_txt = "100" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo) "bNA" = ( /obj/structure/machinery/light, /turf/open/floor/prison{ @@ -3383,6 +3412,12 @@ icon_state = "floor_plate" }, /area/lv522/indoors/b_block/bar) +"bOX" = ( +/turf/open/floor/plating{ + dir = 8; + icon_state = "platingdmg3" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "bPH" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 6 @@ -3435,6 +3470,10 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) +"bQA" = ( +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "bQC" = ( /obj/structure/bed/chair{ dir = 1 @@ -3464,18 +3503,10 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) -"bQP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_y = -6 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_y = 10 - }, -/obj/structure/barricade/wooden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +"bRv" = ( +/obj/item/trash/uscm_mre, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "bRN" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -3593,6 +3624,10 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) +"bUy" = ( +/obj/structure/cargo_container/wy/left, +/turf/open/floor/plating, +/area/lv522/outdoors/colony_streets/north_east_street) "bUJ" = ( /obj/structure/largecrate/random/mini{ pixel_x = -2; @@ -3689,10 +3724,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) -"bWv" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "bWA" = ( /obj/structure/prop/ice_colony/flamingo{ dir = 4; @@ -3767,16 +3798,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) -"bXU" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper B-Block Bar" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bar) "bXZ" = ( /obj/structure/platform{ dir = 1 @@ -3960,11 +3981,6 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) -"cbb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "cbn" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -4118,6 +4134,18 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/north_east_street) +"cfz" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/bridge) "cfT" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -4142,14 +4170,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"cgG" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Cargo Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/bridge) "chm" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat, @@ -4253,6 +4273,15 @@ }, /turf/open/floor/carpet, /area/lv522/indoors/b_block/bar) +"cjy" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Corporate Office Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/bridges/corpo) "cjE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -4329,6 +4358,17 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) +"cmC" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper A-Block Fitness Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/fitness) "cmF" = ( /obj/structure/prop/vehicles/crawler{ icon_state = "crawler_fuel"; @@ -4516,15 +4556,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/c_block/cargo) -"cqL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "cqP" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -4575,12 +4606,6 @@ icon_state = "marked" }, /area/lv522/atmos/east_reactor) -"csl" = ( -/obj/structure/barricade/plasteel/metal, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "csv" = ( /obj/structure/platform{ dir = 1 @@ -4598,6 +4623,15 @@ icon_state = "browncorner" }, /area/lv522/atmos/east_reactor/south) +"csC" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Garage Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/garage) "csK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -4632,6 +4666,15 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/dorms) +"ctu" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Casino Airlock"; + welded = 1 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/casino) "ctE" = ( /obj/structure/foamed_metal, /turf/open/floor/plating, @@ -4861,6 +4904,10 @@ "czC" = ( /turf/closed/wall/strata_outpost, /area/lv522/atmos/east_reactor/east) +"czE" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "czG" = ( /obj/structure/sign/safety/radio_rad{ pixel_y = 26 @@ -5242,6 +5289,15 @@ icon_state = "browncorner" }, /area/lv522/atmos/east_reactor/east) +"cIo" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper C-Block - Cargo Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/cargo) "cIr" = ( /obj/structure/bed/chair{ dir = 4 @@ -5323,17 +5379,6 @@ icon_state = "brown" }, /area/lv522/oob) -"cJc" = ( -/obj/item/prop/colony/used_flare, -/obj/structure/cargo_container/wy/right, -/turf/open/floor/plating, -/area/lv522/outdoors/colony_streets/north_east_street) -"cJg" = ( -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, -/area/lv522/outdoors/colony_streets/north_street) "cJh" = ( /obj/structure/window/reinforced{ dir = 4 @@ -5367,6 +5412,13 @@ }, /turf/closed/wall/strata_ice/dirty, /area/lv522/oob) +"cJF" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/item/stack/sheet/wood, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "cJW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -5610,6 +5662,18 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor) +"cPg" = ( +/obj/structure/surface/table/almayer, +/obj/item/ashtray/bronze{ + icon_state = "ashtray_full_bl"; + pixel_x = -8; + pixel_y = 7 + }, +/obj/item/toy/plush/farwa, +/turf/open/floor/strata{ + icon_state = "blue1" + }, +/area/lv522/outdoors/colony_streets/windbreaker/observation) "cPi" = ( /obj/effect/spawner/gibspawner/xeno, /obj/effect/decal/cleanable/blood/xeno, @@ -5696,10 +5760,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) -"cQv" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "cQB" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/pipes/standard/simple/hidden/green{ @@ -5780,6 +5840,15 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/west) +"cSf" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Cargo Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/cargo) "cSh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -6255,7 +6324,7 @@ }, /area/lv522/outdoors/colony_streets/central_streets) "dbi" = ( -/obj/item/clothing/suit/storage/marine/leader, +/obj/item/clothing/suit/storage/marine/medium/leader, /obj/item/clothing/head/helmet/marine/leader{ pixel_x = 9; pixel_y = 14 @@ -6388,6 +6457,10 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) +"dcR" = ( +/obj/effect/alien/weeds/node/alpha, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/w_rockies) "ddo" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal{ @@ -6404,15 +6477,6 @@ icon_state = "floor_marked" }, /area/lv522/atmos/cargo_intake) -"ddq" = ( -/obj/structure/surface/rack, -/obj/item/device/analyzer, -/obj/effect/landmark/objective_landmark/close, -/obj/item/stack/sheet/cardboard/full_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/lv522/indoors/c_block/mining) "ddr" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/bottle/davenport{ @@ -6581,6 +6645,16 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) +"dfV" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Dorms And Office Airlock"; + welded = 1 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "dgb" = ( /obj/structure/cryofeed, /turf/open/floor/bluegrid, @@ -6655,12 +6729,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/hallway) -"dhj" = ( -/obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/north_street) "dhH" = ( /turf/open/asphalt/cement{ icon_state = "cement12" @@ -6779,16 +6847,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) -"djL" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 8; - pixel_x = -6; - pixel_y = 6 - }, -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "djM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -6888,20 +6946,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/north_west_street) -"dlM" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "dmm" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_y = -8 @@ -7071,7 +7115,7 @@ /area/lv522/indoors/a_block/dorms) "dos" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Southwest Landing Zone" + name = "LZ1: Southwest Landing Zone" }, /turf/open/floor/plating, /area/shuttle/drop1/lv522) @@ -7289,20 +7333,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"dtl" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper A-Block Canteen Airlock"; - welded = 1 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/kitchen/glass) "dtr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -7325,6 +7355,10 @@ icon_state = "plate" }, /area/lv522/atmos/reactor_garage) +"dtU" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/w_rockies) "dua" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/colony/used_flare, @@ -7349,6 +7383,19 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/west) +"dvn" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "dvp" = ( /obj/structure/largecrate/supply, /obj/structure/largecrate/supply{ @@ -7638,13 +7685,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) -"dBQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/item/prop/colony/used_flare, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "dCx" = ( /obj/structure/closet/crate/radiation, /turf/open/floor/corsat{ @@ -7806,14 +7846,6 @@ dir = 6 }, /area/lv522/indoors/c_block/mining) -"dFE" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/hallway) "dFH" = ( /obj/structure/machinery/power/port_gen/pacman{ layer = 3.1; @@ -7899,14 +7931,6 @@ icon_state = "browncorner" }, /area/lv522/atmos/east_reactor) -"dHx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "dHy" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -8124,19 +8148,6 @@ /obj/effect/spawner/gibspawner/xeno, /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) -"dMo" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "dMp" = ( /obj/structure/machinery/light{ dir = 4 @@ -8456,11 +8467,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/east) -"dSJ" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "dSW" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 1; @@ -8515,16 +8521,6 @@ icon_state = "platebot" }, /area/lv522/indoors/c_block/cargo) -"dUr" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Dorms And Office Airlock"; - welded = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "dUD" = ( /obj/item/prop/colony/proptag{ desc = "A fallen marine's information dog tag. It reads, Ensign Robert 'Roach' Yangley" @@ -8852,6 +8848,10 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/lone_buildings/storage_blocks) +"ebe" = ( +/obj/item/storage/pouch/autoinjector/full, +/turf/open/auto_turf/shale/layer2, +/area/lv522/outdoors/w_rockies) "ebn" = ( /turf/open/floor/prison{ icon_state = "darkredfull2" @@ -8928,6 +8928,16 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) +"edi" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 8; + pixel_x = -6; + pixel_y = 6 + }, +/obj/vehicle/train/cargo/trolley, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "edk" = ( /turf/open/floor/corsat{ dir = 8; @@ -9116,6 +9126,13 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor) +"egj" = ( +/obj/structure/machinery/floodlight, +/turf/open/floor/plating{ + dir = 8; + icon_state = "platingdmg3" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "egt" = ( /obj/structure/powerloader_wreckage, /turf/open/floor/corsat{ @@ -9234,6 +9251,20 @@ icon_state = "brown" }, /area/lv522/oob) +"eiC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "eiP" = ( /obj/structure/coatrack{ pixel_x = -6; @@ -9254,6 +9285,12 @@ icon_state = "greenfull" }, /area/lv522/landing_zone_1/ceiling) +"eiY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "eiZ" = ( /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/north_west_street) @@ -9503,6 +9540,18 @@ }, /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/oob) +"eoi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/barricade/metal{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "eov" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "Marked_1"; @@ -9586,6 +9635,10 @@ icon_state = "plate" }, /area/lv522/atmos/west_reactor) +"epe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "epq" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ @@ -9632,18 +9685,6 @@ icon_state = "white_cyan2" }, /area/lv522/indoors/a_block/medical/glass) -"eqb" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/barricade/deployable, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "eqe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -9691,6 +9732,10 @@ icon_state = "brown" }, /area/lv522/atmos/north_command_centre) +"eqV" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "erw" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/landmark/objective_landmark/close, @@ -9736,13 +9781,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) -"esx" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/item/stack/sheet/wood, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "esB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -9796,6 +9834,20 @@ icon_state = "white_cyan2" }, /area/lv522/indoors/a_block/medical) +"eum" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Canteen Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/kitchen/glass) "eur" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -9821,6 +9873,13 @@ }, /turf/closed/wall/mineral/bone_resin, /area/lv522/oob) +"euT" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/vehicle/train/cargo/engine, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "evu" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 @@ -9863,14 +9922,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/corpo/glass) -"evQ" = ( -/obj/structure/barricade/sandbags, -/obj/item/trash/uscm_mre{ - pixel_x = -8; - pixel_y = 10 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_street) "evS" = ( /obj/structure/platform, /obj/structure/platform{ @@ -10583,6 +10634,16 @@ icon_state = "cement4" }, /area/lv522/landing_zone_2) +"eLl" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 2; + name = "\improper A-Block - Colony Medical Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/medical) "eLx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/floor/corsat{ @@ -10597,13 +10658,19 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "eLK" = ( -/obj/structure/tunnel/maint_tunnel{ - pixel_y = 6 +/obj/structure/showcase{ + desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; + icon = 'icons/mob/humans/species/r_synthetic.dmi'; + icon_state = "Synthetic_Template"; + name = "Display synthetic" }, -/obj/structure/machinery/light/small, -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/obj/structure/window/reinforced, +/obj/structure/sign/safety/synth_storage{ + pixel_x = 23; + pixel_y = 29 + }, +/turf/open/floor/bluegrid, +/area/lv522/indoors/a_block/corpo/glass) "eLN" = ( /obj/structure/machinery/light, /turf/open/floor{ @@ -10689,6 +10756,18 @@ icon_state = "cement12" }, /area/lv522/outdoors/colony_streets/south_street) +"eNc" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Cargo Airlock"; + welded = 1 + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/cargo) "eNf" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/spawner/gibspawner/xeno, @@ -10910,12 +10989,6 @@ icon_state = "platebot" }, /area/lv522/indoors/c_block/cargo) -"eSM" = ( -/obj/effect/spawner/gibspawner/xeno, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, -/area/lv522/outdoors/colony_streets/north_street) "eSO" = ( /obj/structure/largecrate/random, /obj/structure/machinery/light{ @@ -10955,15 +11028,6 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) -"eTw" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_forecon/UD6_Tornado) "eTQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -11013,6 +11077,20 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) +"eUz" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/bridge) "eUO" = ( /turf/open/floor/corsat{ icon_state = "marked" @@ -11278,6 +11356,13 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/south_east_street) +"faJ" = ( +/obj/item/trash/uscm_mre{ + pixel_x = 12; + pixel_y = -7 + }, +/turf/open/floor/prison, +/area/lv522/outdoors/colony_streets/north_street) "faK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -11340,12 +11425,6 @@ icon_state = "cement3" }, /area/lv522/outdoors/colony_streets/south_east_street) -"fbY" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_forecon/UD6_Tornado) "fcd" = ( /obj/vehicle/train/cargo/trolley, /turf/open/floor/prison{ @@ -11382,6 +11461,16 @@ icon_state = "brown" }, /area/lv522/atmos/north_command_centre) +"fdb" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper C-Block - Casino Airlock"; + welded = 1 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/casino) "fdf" = ( /turf/open/asphalt/cement{ icon_state = "cement15" @@ -11773,15 +11862,6 @@ /obj/item/weapon/gun/revolver/m44/custom/pkd_special/k2049, /turf/open/floor/wood, /area/lv522/indoors/a_block/security) -"fmg" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Corporate Office Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/bridges/corpo) "fms" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/dirt, @@ -11958,12 +12038,6 @@ icon_state = "brown" }, /area/lv522/atmos/north_command_centre) -"fpS" = ( -/obj/item/prop/helmetgarb/helmet_nvg/marsoc, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/oob) "fpW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -11991,19 +12065,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) -"frc" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Security Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/kitchen) "frH" = ( /obj/item/clothing/head/hardhat/dblue{ layer = 6.1; @@ -12102,11 +12163,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) -"fto" = ( -/obj/item/storage/belt/grenade, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison, -/area/lv522/outdoors/colony_streets/north_street) "fts" = ( /obj/structure/surface/table/woodentable/fancy, /obj/effect/decal/cleanable/dirt, @@ -12129,6 +12185,14 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"ftD" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper A-Block Fitness Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/fitness/glass) "ftK" = ( /obj/structure/bed/chair, /turf/open/floor/plating, @@ -12176,12 +12240,6 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor/east) -"fvc" = ( -/obj/structure/barricade/sandbags, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, -/area/lv522/outdoors/colony_streets/north_street) "fvk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -12495,6 +12553,15 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"fAY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Fitness Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/fitness) "fBg" = ( /turf/open/floor/corsat{ icon_state = "marked" @@ -12538,6 +12605,12 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) +"fBY" = ( +/obj/item/prop/colony/used_flare, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "fCb" = ( /obj/structure/platform{ dir = 1 @@ -12780,6 +12853,10 @@ icon_state = "marked" }, /area/lv522/indoors/b_block/hydro) +"fGw" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "fGH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -12914,6 +12991,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) +"fJr" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "fKf" = ( /obj/structure/platform{ dir = 1 @@ -13027,6 +13110,16 @@ /obj/structure/prop/dam/crane, /turf/open/floor/prison, /area/lv522/atmos/outdoor) +"fLZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper B-Block Bar" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/bar) "fMd" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 8; @@ -13263,12 +13356,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/admin) -"fRw" = ( -/obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/north_street) "fRP" = ( /obj/structure/prop/vehicles/crawler{ layer = 3.3 @@ -13385,16 +13472,6 @@ icon_state = "brown" }, /area/lv522/atmos/west_reactor) -"fTK" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Corporate Office Airlock"; - req_access_txt = "100" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo) "fTN" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -13416,12 +13493,6 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) -"fUc" = ( -/obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, -/area/lv522/outdoors/colony_streets/north_street) "fUf" = ( /obj/effect/decal{ icon = 'icons/mob/xenos/effects.dmi'; @@ -13444,15 +13515,6 @@ }, /turf/open/floor/wood, /area/lv522/indoors/a_block/executive) -"fUQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "fUT" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; @@ -13469,6 +13531,18 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"fVC" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_y = -6 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_y = 10 + }, +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "fVU" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1 @@ -13494,6 +13568,20 @@ "fWG" = ( /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) +"fWH" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Kitchen Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/kitchen) "fWW" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 1 @@ -13653,6 +13741,15 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) +"fZo" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 8; + pixel_x = -6; + pixel_y = 6 + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "fZy" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -13870,6 +13967,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) +"gdA" = ( +/obj/structure/barricade/deployable, +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "gdJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/floor/corsat{ @@ -13972,6 +14076,13 @@ }, /turf/open/floor/carpet, /area/lv522/indoors/b_block/bar) +"geI" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -12; + pixel_y = 25 + }, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "geP" = ( /obj/structure/machinery/light{ dir = 1 @@ -13997,6 +14108,20 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) +"gfl" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/hallway) +"gfs" = ( +/obj/item/prop/alien/hugger, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "gfu" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, @@ -14119,18 +14244,6 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor/east) -"ghE" = ( -/obj/item/clothing/head/helmet/marine/grenadier{ - armor_bullet = 10; - desc = "Pairs with the M3-G4 heavy grenadier plating. A distant cousin of the experimental B18 defensive helmet. Decorated with a blue stripe the large hole in the side of this helmet somewhat limits its protection."; - name = "\improper damaged M3-G4 grenadier helmet"; - pixel_x = 3; - pixel_y = 13 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "gib" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/stairs/perspective{ @@ -14268,6 +14381,14 @@ icon_state = "floor_plate" }, /area/lv522/indoors/b_block/bar) +"gkH" = ( +/obj/structure/tunnel/maint_tunnel{ + pixel_y = 6 + }, +/obj/structure/machinery/light/small, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "gkY" = ( /obj/structure/closet/bombcloset, /turf/open/asphalt/cement, @@ -14473,6 +14594,15 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/north_west_street) +"gpr" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Cargo Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/cargo) "gpu" = ( /obj/item/fuelCell{ pixel_x = -8; @@ -14583,13 +14713,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/b_block/hydro) -"gsn" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/vehicle/train/cargo/engine, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "gsM" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -14774,53 +14897,14 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/security) -"gvK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/uscm_mre{ - pixel_x = -12; - pixel_y = 7 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "gvT" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/fitness) -"gvU" = ( -/obj/structure/prop/invuln/minecart_tracks, -/obj/structure/closet/crate/miningcar{ - layer = 3.1; - name = "\improper materials storage bin"; - pixel_y = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/ore/slag, -/obj/item/ore/slag, -/obj/item/ore/slag, -/obj/item/ore/slag, -/turf/open/floor/prison, -/area/lv522/indoors/c_block/mining) "gwb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/corpo) -"gwg" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bridge) "gwk" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" @@ -14836,6 +14920,13 @@ /obj/effect/alien/resin/sticky, /turf/closed/wall/strata_ice/dirty, /area/lv522/oob) +"gwH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/prop/colony/used_flare, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "gwK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -14863,18 +14954,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/security) -"gwU" = ( -/obj/structure/barricade/sandbags{ - dir = 8 - }, -/obj/item/prop/alien/hugger{ - pixel_x = 13; - pixel_y = -5 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "gxb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -14893,11 +14972,6 @@ icon_state = "plate" }, /area/lv522/atmos/command_centre) -"gxe" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/spawner/gibspawner/human, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "gxl" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC, @@ -15216,6 +15290,11 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/cargo) +"gEx" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "gEA" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 8; @@ -15293,6 +15372,10 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"gFy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/storage_blocks) "gFD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, @@ -15526,6 +15609,12 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"gKa" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/outdoors/colony_streets/south_east_street) "gKg" = ( /obj/structure/platform, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -15595,25 +15684,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, /area/lv522/indoors/a_block/security) -"gLw" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Security Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Sec-Corpo-Bridge-Lockdown" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) -"gLy" = ( -/obj/structure/surface/table/almayer, -/obj/item/map/lv522_map, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "gLK" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -15682,11 +15752,6 @@ icon_state = "cement9" }, /area/lv522/outdoors/colony_streets/south_west_street) -"gMT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/prop/alien/hugger, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "gMV" = ( /obj/structure/machinery/light{ dir = 1 @@ -15901,13 +15966,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"gRi" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/medium_stack, -/obj/item/ore/uranium, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison, -/area/lv522/indoors/c_block/mining) "gRj" = ( /obj/structure/platform{ dir = 4 @@ -15915,10 +15973,6 @@ /obj/item/prop/colony/used_flare, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) -"gRl" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "gRp" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/prison{ @@ -15955,11 +16009,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) -"gRS" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "gRU" = ( /obj/item/paper_bin/uscm{ pixel_x = -7; @@ -16074,13 +16123,6 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/kitchen) -"gUT" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -12; - pixel_y = 25 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "gUY" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/vomit, @@ -16148,6 +16190,13 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"gWc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "gWg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, @@ -16306,6 +16355,14 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) +"gYH" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Security Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/bridges/op_centre) "gYK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -16372,6 +16429,14 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/hydro) +"gZv" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper A-Block Shared Dorms Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorm_north) "gZJ" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 @@ -16546,6 +16611,16 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_2) +"hbw" = ( +/obj/item/explosive/grenade/high_explosive/m15{ + pixel_x = 8 + }, +/obj/item/prop/alien/hugger{ + pixel_x = -7; + pixel_y = -5 + }, +/turf/open/floor/prison, +/area/lv522/outdoors/colony_streets/north_street) "hbF" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/bed/chair/comfy{ @@ -16577,11 +16652,18 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor/east) -"hbO" = ( -/obj/structure/largecrate/random/case/small, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) +"hcd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "hcv" = ( /obj/structure/fence, /obj/effect/decal/warning_stripes{ @@ -16607,14 +16689,6 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) -"hcG" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "hcO" = ( /obj/structure/platform_decoration, /turf/open/floor/plating, @@ -16626,15 +16700,6 @@ icon_state = "brown" }, /area/lv522/atmos/cargo_intake) -"hcX" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 11 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "hcZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -17049,6 +17114,12 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/garage) +"hkr" = ( +/obj/structure/girder, +/turf/open/asphalt/cement{ + icon_state = "cement4" + }, +/area/lv522/outdoors/colony_streets/north_street) "hku" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/green{ @@ -17273,24 +17344,6 @@ icon_state = "brown" }, /area/lv522/atmos/west_reactor) -"hnG" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - req_access_txt = "100" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/atmos/way_in_command_centre) -"hnX" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper A-Block Dorms And Office Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "hoq" = ( /obj/structure/prop/invuln/ice_prefab/roof_greeble{ icon_state = "vent4"; @@ -17386,15 +17439,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) -"hpO" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Emergency Engineering" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/lone_buildings/engineering) "hqp" = ( /obj/structure/coatrack{ pixel_x = 11 @@ -17403,15 +17447,13 @@ icon_state = "blue1" }, /area/lv522/indoors/a_block/dorm_north) -"hqr" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldpack{ - pixel_y = 2 - }, +"hqB" = ( +/obj/effect/spawner/gibspawner/xeno, +/obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement{ - icon_state = "cement4" + icon_state = "cement3" }, -/area/lv522/outdoors/colony_streets/north_west_street) +/area/lv522/outdoors/colony_streets/north_street) "hqD" = ( /turf/open/floor/corsat{ dir = 1; @@ -17855,6 +17897,16 @@ icon_state = "floor_plate" }, /area/lv522/atmos/way_in_command_centre) +"hAd" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper A-Block Dorms And Office Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "hAg" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1 @@ -18036,6 +18088,18 @@ "hDa" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/command_centre) +"hDe" = ( +/obj/item/tool/lighter/zippo{ + layer = 3.1; + pixel_x = 12; + pixel_y = 18 + }, +/obj/effect/spawner/gibspawner/xeno, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "hDh" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/corsat{ @@ -18233,6 +18297,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"hIz" = ( +/obj/structure/surface/table/almayer, +/obj/item/handcuffs{ + pixel_y = 12 + }, +/obj/item/handcuffs{ + pixel_y = 6 + }, +/obj/item/handcuffs, +/obj/item/weapon/classic_baton, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/indoors/a_block/security/glass) "hIA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, @@ -18525,6 +18603,13 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/mining) +"hNt" = ( +/obj/item/trash/uscm_mre, +/obj/structure/surface/table/almayer, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "hNz" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -18698,16 +18783,6 @@ }, /turf/open/floor/wood/ship, /area/lv522/atmos/way_in_command_centre) -"hPT" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/hallway) "hQh" = ( /obj/structure/largecrate/random, /obj/effect/decal/warning_stripes{ @@ -19139,20 +19214,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/garden_bridge) -"hZf" = ( -/obj/structure/showcase{ - desc = "The display model for a Weyland Yutani generation one synthetic. It almost feels like the eyes on this one follow you."; - icon = 'icons/mob/humans/species/r_synthetic.dmi'; - icon_state = "Synthetic_Template"; - name = "Display synthetic" - }, -/obj/structure/window/reinforced, -/obj/structure/sign/safety/synth_storage{ - pixel_x = 23; - pixel_y = 29 - }, -/turf/open/floor/bluegrid, -/area/lv522/indoors/a_block/corpo/glass) +"hZc" = ( +/obj/item/prop/colony/used_flare, +/obj/structure/cargo_container/wy/right, +/turf/open/floor/plating, +/area/lv522/outdoors/colony_streets/north_east_street) "hZg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/prop/server_equipment/laptop/closed, @@ -19169,6 +19235,13 @@ icon_state = "bcircuit" }, /area/lv522/atmos/east_reactor) +"hZC" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/ore/uranium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, +/area/lv522/indoors/c_block/mining) "hZK" = ( /obj/structure/prop/server_equipment/yutani_server/broken{ pixel_x = 3 @@ -19235,16 +19308,6 @@ icon_state = "plate" }, /area/lv522/atmos/filt) -"iaD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "iaM" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/rods, @@ -19285,10 +19348,6 @@ icon_state = "23" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"ibS" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "ibT" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -19306,6 +19365,11 @@ icon_state = "marked" }, /area/lv522/indoors/b_block/hydro) +"ica" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "ici" = ( /obj/effect/decal/cleanable/vomit{ icon_state = "vomit_4" @@ -19454,6 +19518,22 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor) +"ieE" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/obj/effect/decal{ + icon = 'icons/mob/xenos/effects.dmi'; + icon_state = "acid_weak"; + layer = 2; + name = "weak acid"; + pixel_x = -10; + pixel_y = 4 + }, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "ieW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 6 @@ -19472,6 +19552,15 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) +"ifg" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ifh" = ( /obj/structure/prop/invuln/overhead/flammable_pipe/fly{ dir = 1; @@ -19730,15 +19819,6 @@ icon_state = "wood" }, /area/lv522/indoors/b_block/bar) -"ikp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/item/stack/folding_barricade, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "ikr" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -20242,15 +20322,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) -"iuQ" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Cargo Airlock"; - welded = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/cargo) "iuW" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -20282,16 +20353,6 @@ /obj/item/tool/wet_sign, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"ivs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/spawner/gibspawner/xeno, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "ivy" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/jackhammer, @@ -20319,12 +20380,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"ivY" = ( -/obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "iwb" = ( /obj/structure/stairs/perspective{ dir = 6; @@ -20402,6 +20457,10 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) +"ixV" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "ixW" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -20482,6 +20541,14 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) +"izb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "izj" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 8 @@ -20568,15 +20635,6 @@ /obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) -"iBd" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Garage Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/garage) "iBe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -20693,6 +20751,18 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) +"iDC" = ( +/obj/item/clothing/head/helmet/marine/grenadier{ + armor_bullet = 10; + desc = "Pairs with the M3-G4 heavy grenadier plating. A distant cousin of the experimental B18 defensive helmet. Decorated with a blue stripe the large hole in the side of this helmet somewhat limits its protection."; + name = "\improper damaged M3-G4 grenadier helmet"; + pixel_x = 3; + pixel_y = 13 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "iDD" = ( /obj/item/stack/tile/plasteel{ name = "ceiling tile"; @@ -20721,13 +20791,6 @@ icon_state = "floor_marked" }, /area/lv522/atmos/cargo_intake) -"iFe" = ( -/obj/structure/closet/crate, -/obj/item/weapon/stunprod, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/lv522/landing_zone_2) "iFk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -21137,19 +21200,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) -"iML" = ( -/obj/structure/largecrate/random, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/barricade/metal{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "iMQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red, @@ -21289,6 +21339,17 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) +"iPy" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper A-Block Dorms And Office Airlock"; + welded = 1 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "iPD" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "West LZ Storage"; @@ -21341,6 +21402,10 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/bridge) +"iQt" = ( +/obj/structure/cargo_container/wy/mid, +/turf/open/floor/plating, +/area/lv522/outdoors/colony_streets/north_east_street) "iQF" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -21384,6 +21449,16 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) +"iRW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/spawner/gibspawner/xeno, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "iRY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -21408,6 +21483,10 @@ icon_state = "rasputin8" }, /area/lv522/landing_zone_forecon/UD6_Tornado) +"iSx" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/storage_blocks) "iSF" = ( /obj/structure/surface/table/almayer, /obj/structure/prop/server_equipment/laptop/on, @@ -21425,6 +21504,23 @@ icon_state = "blue_plate" }, /area/lv522/indoors/c_block/mining) +"iTf" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Security Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "iTn" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/corsat{ @@ -21733,6 +21829,12 @@ icon_state = "squares" }, /area/lv522/atmos/cargo_intake) +"iYG" = ( +/obj/item/stack/sandbags_empty/small_stack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "iYL" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -22012,14 +22114,6 @@ icon_state = "squares" }, /area/lv522/atmos/cargo_intake) -"jdI" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Radio Tower Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/t_comm) "jeb" = ( /obj/vehicle/powerloader{ dir = 8 @@ -22034,12 +22128,6 @@ icon_state = "browncorner" }, /area/lv522/atmos/east_reactor/south) -"jeh" = ( -/obj/item/stack/sandbags/small_stack, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "jey" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -22137,6 +22225,11 @@ "jfO" = ( /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) +"jfP" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "jfZ" = ( /obj/structure/platform{ dir = 8 @@ -22334,15 +22427,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) -"jjc" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Electronics Storage" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/lone_buildings/outdoor_bot) "jjg" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -22596,6 +22680,11 @@ "jmG" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/c_block/cargo) +"jmN" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/spawner/gibspawner/human, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/w_rockies) "jmU" = ( /obj/structure/barricade/handrail, /turf/open/floor/coagulation{ @@ -22746,12 +22835,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/garage) -"joV" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "jpa" = ( /obj/structure/bedsheetbin{ pixel_y = 7 @@ -22762,13 +22845,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"jpb" = ( -/obj/structure/closet/crate, -/obj/item/storage/pouch/shotgun/large/slug, -/obj/item/storage/pouch/general/large/m39ap, -/obj/item/storage/pouch/flamertank, -/turf/open/floor/prison, -/area/lv522/landing_zone_2) "jpc" = ( /obj/effect/spawner/gibspawner/xeno, /turf/open/floor/prison, @@ -22830,15 +22906,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) -"jqV" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Corporate Office Airlock"; - req_access_txt = "100" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo) "jrd" = ( /obj/structure/girder/displaced, /turf/open/asphalt/cement, @@ -22856,6 +22923,23 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"jro" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "LV522CIC_1"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/admin) "jru" = ( /obj/structure/platform{ dir = 8 @@ -22884,6 +22968,18 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/kitchen) +"jrE" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "jrJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced/prison, @@ -22916,6 +23012,15 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) +"jsk" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Dorms And Office Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "jsy" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -22984,13 +23089,6 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/corpo/glass) -"jub" = ( -/obj/structure/machinery/floodlight, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "jud" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 @@ -23111,11 +23209,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"jwO" = ( -/obj/structure/largecrate/random/barrel/blue, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) +"jwP" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Garage Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/garage) "jwT" = ( /obj/item/tool/wet_sign, /turf/open/floor/corsat{ @@ -23179,6 +23283,20 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, /area/lv522/atmos/outdoor) +"jxT" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Security Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/kitchen) "jyf" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3; @@ -23317,16 +23435,6 @@ }, /turf/open/floor/plating, /area/lv522/indoors/a_block/admin) -"jAA" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/prison{ - dir = 8; - icon_state = "cell_stripe" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "jAI" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse, @@ -23765,6 +23873,14 @@ }, /turf/open/floor/plating, /area/lv522/landing_zone_1) +"jIA" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/metal/medium_stack, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/lv522/indoors/c_block/garage) "jIG" = ( /obj/item/tool/wet_sign{ pixel_x = -11; @@ -24104,6 +24220,23 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) +"jOx" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/bridge) "jOF" = ( /obj/effect/acid_hole, /turf/closed/wall/shiva/prefabricated/reinforced, @@ -24117,19 +24250,6 @@ }, /turf/open/floor/plating, /area/lv522/oob) -"jPd" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "jPg" = ( /obj/structure/platform_decoration, /obj/structure/stairs/perspective{ @@ -24351,6 +24471,19 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) +"jUc" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/barricade/metal{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "jUe" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -24479,6 +24612,20 @@ /obj/structure/cargo_container/kelland/right, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) +"jVV" = ( +/obj/structure/prop/invuln/minecart_tracks, +/obj/structure/closet/crate/miningcar{ + layer = 3.1; + name = "\improper materials storage bin"; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ore/slag, +/obj/item/ore/slag, +/obj/item/ore/slag, +/obj/item/ore/slag, +/turf/open/floor/prison, +/area/lv522/indoors/c_block/mining) "jWr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, @@ -24547,6 +24694,14 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) +"jYc" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "jYj" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -24863,6 +25018,10 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"kcY" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison, +/area/lv522/indoors/a_block/admin) "kda" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ @@ -24918,6 +25077,20 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"kdw" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Corporate Office Airlock"; + req_access_txt = "100" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo) "kdx" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/auto_turf/shale/layer1, @@ -24960,25 +25133,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) -"keA" = ( -/obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_street) -"kfa" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Security Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "kfi" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, @@ -25166,6 +25320,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) +"khR" = ( +/obj/structure/largecrate/random, +/obj/item/storage/box/packet/high_explosive{ + pixel_x = -5; + pixel_y = -14 + }, +/obj/item/storage/pill_bottle/packet/oxycodone{ + pixel_x = -1; + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "kib" = ( /obj/item/clothing/head/hardhat/white, /obj/item/prop/alien/hugger{ @@ -25458,6 +25626,19 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"kmw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/uscm_mre{ + pixel_x = -12; + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "kmz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -25814,6 +25995,25 @@ icon_state = "plate" }, /area/lv522/indoors/c_block/mining) +"ksO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/barricade/metal{ + dir = 1 + }, +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "kti" = ( /obj/structure/platform, /obj/structure/platform{ @@ -25835,6 +26035,14 @@ }, /turf/open/floor/plating, /area/lv522/indoors/a_block/dorms) +"kua" = ( +/obj/effect/landmark/objective_landmark/close, +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel/large_stack, +/turf/open/floor/plating{ + icon_state = "platebot" + }, +/area/lv522/indoors/c_block/cargo) "kug" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/pistachios, @@ -26004,6 +26212,12 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) +"kxH" = ( +/obj/item/prop/colony/used_flare, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "kxW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -26314,15 +26528,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"kCQ" = ( -/obj/structure/largecrate/random, -/obj/item/explosive/plastic/breaching_charge{ - pixel_y = -2 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "kDH" = ( /obj/structure/machinery/disposal, /turf/open/floor/prison{ @@ -26710,6 +26915,12 @@ icon_state = "2,0" }, /area/lv522/oob) +"kKj" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/outdoors/colony_streets/north_east_street) "kKD" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/pipes/standard/simple/hidden/green, @@ -26856,6 +27067,16 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Tornado) +"kNY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Dorms And Office Airlock"; + welded = 1 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "kOa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -27134,13 +27355,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/admin) -"kSh" = ( -/obj/structure/closet/crate, -/obj/item/storage/pouch/pressurized_reagent_canister/revival, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "kSm" = ( /obj/structure/machinery/light{ dir = 8 @@ -27303,6 +27517,14 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) +"kUM" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Corporate Office Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "kUP" = ( /obj/structure/machinery/light{ dir = 1 @@ -27585,13 +27807,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/kitchen/damage) -"lae" = ( -/obj/effect/spawner/gibspawner/xeno, -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "lag" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/power/apc/weak{ @@ -27619,23 +27834,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) -"laB" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "LV522CIC_1"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/admin) "laX" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8; @@ -27777,6 +27975,13 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) +"ldr" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" + }, +/obj/effect/spawner/gibspawner/xeno, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "ldu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -27870,7 +28075,7 @@ /obj/structure/barricade/deployable{ dir = 8 }, -/obj/item/clothing/suit/storage/marine/rto, +/obj/item/clothing/suit/storage/marine/medium/rto, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -27922,6 +28127,13 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) +"lfA" = ( +/obj/structure/closet/crate, +/obj/item/weapon/classic_baton, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/lv522/landing_zone_2) "lfS" = ( /turf/open/asphalt/cement{ icon_state = "cement2" @@ -27940,10 +28152,6 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) -"lgR" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "lgY" = ( /obj/structure/platform_decoration{ dir = 1 @@ -27967,6 +28175,18 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/admin) +"lhp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/barricade/deployable, +/obj/item/weapon/gun/rifle/m41a{ + current_mag = null + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "lhC" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 5 @@ -28111,15 +28331,6 @@ /obj/item/stack/sheet/metal, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) -"lkr" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Casino Airlock"; - welded = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/casino) "lkH" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -28236,6 +28447,15 @@ icon_state = "floor_plate" }, /area/lv522/indoors/lone_buildings/outdoor_bot) +"lmI" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Dorms And Office Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "lmJ" = ( /obj/structure/prop/dam/crane/cargo, /turf/open/floor/plating, @@ -28246,6 +28466,15 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) +"lmW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "lmY" = ( /turf/closed/wall/strata_outpost, /area/lv522/atmos/east_reactor/south) @@ -28359,11 +28588,6 @@ icon_state = "blue1" }, /area/lv522/outdoors/colony_streets/windbreaker/observation) -"loX" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "lpi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -28407,6 +28631,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/atmos/outdoor) +"lqI" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 9; + pixel_y = 25 + }, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "lqL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/wooden, @@ -29167,16 +29399,6 @@ icon_state = "brown" }, /area/lv522/atmos/filt) -"lFM" = ( -/obj/structure/prop/invuln/pipe_water{ - pixel_x = 3; - pixel_y = 10 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "lFO" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -29275,6 +29497,13 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/c_block/cargo) +"lHk" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "lHl" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/sliceable/cheesewheel{ @@ -29339,6 +29568,19 @@ icon_state = "darkbrownfull2" }, /area/lv522/landing_zone_2) +"lIy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "lIB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -29428,12 +29670,6 @@ icon_state = "platingdmg3" }, /area/lv522/indoors/a_block/admin) -"lKH" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "lLl" = ( /obj/structure/foamed_metal, /obj/structure/pipes/standard/simple/hidden/green, @@ -29624,6 +29860,12 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/north_street) +"lPM" = ( +/obj/structure/girder, +/turf/open/asphalt/cement{ + icon_state = "cement15" + }, +/area/lv522/outdoors/colony_streets/north_street) "lPT" = ( /obj/structure/bed/chair{ dir = 4 @@ -29647,15 +29889,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) -"lQA" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/north_street) "lQS" = ( /obj/structure/prop/vehicles/crawler{ dir = 8; @@ -29664,16 +29897,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) -"lRi" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -12; - pixel_y = -1 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "lRx" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ @@ -29824,14 +30047,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/b_block/hydro) -"lUy" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Shared Dorms Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/outdoors/colony_streets/windbreaker/observation) "lUJ" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -29851,6 +30066,16 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"lUU" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Corporate Office Airlock"; + req_access_txt = "100" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo) "lUV" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -29964,6 +30189,10 @@ icon_state = "marked" }, /area/lv522/atmos/east_reactor) +"lXO" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "lXQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -30305,6 +30534,15 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/a_block/bridges/corpo) +"meK" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper C-Block - Cargo Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/bridge) "mfh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -30335,16 +30573,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"mfS" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper C-Block - Casino Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/casino) "mfV" = ( /obj/structure/machinery/light{ dir = 8 @@ -30448,15 +30676,6 @@ }, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/south_east_street) -"mji" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Corporate Office Airlock"; - req_access_txt = "100" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo/glass) "mjq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ @@ -30569,14 +30788,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) -"mkT" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Security Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/bridges/op_centre) "mkW" = ( /obj/structure/bed/chair{ dir = 4 @@ -30658,20 +30869,6 @@ icon_state = "plate" }, /area/lv522/atmos/reactor_garage) -"mlY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/prop/alien/hugger{ - pixel_x = -7; - pixel_y = -5 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "mlZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -30856,6 +31053,14 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/fitness/glass) +"moQ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper A-Block Shared Dorms Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/outdoors/colony_streets/windbreaker/observation) "moZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ @@ -30869,6 +31074,20 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"mpF" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/bridge) "mpI" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; @@ -31118,6 +31337,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) +"muB" = ( +/obj/structure/girder, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "muO" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -31216,11 +31441,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/south_west_street) -"mwn" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "mwp" = ( /obj/effect/spawner/random/tool, /turf/open/auto_turf/sand_white/layer0, @@ -31233,6 +31453,15 @@ }, /turf/open/floor/plating, /area/lv522/indoors/lone_buildings/engineering) +"mwL" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Corporate Office Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo/glass) "mwT" = ( /obj/structure/prop/dam/truck, /obj/structure/prop/holidays/wreath{ @@ -31250,6 +31479,12 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) +"mxg" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/garden) "mxo" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat, @@ -31373,6 +31608,10 @@ icon_state = "greenfull" }, /area/lv522/landing_zone_1/ceiling) +"mzi" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "mzP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger{ @@ -31558,14 +31797,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) -"mEn" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal/medium_stack, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/lv522/indoors/c_block/garage) "mEp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ @@ -31645,6 +31876,14 @@ /obj/structure/platform/stair_cut/alt, /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) +"mFO" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Radio Tower Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/t_comm) "mFZ" = ( /obj/structure/barricade/handrail/strata{ dir = 8 @@ -31732,12 +31971,6 @@ icon_state = "E"; pixel_x = 1 }, -/obj/structure/reagent_dispensers/fueltank{ - layer = 2.9 - }, -/obj/structure/barricade/metal{ - dir = 4 - }, /turf/open/floor/prison{ icon_state = "darkredfull2" }, @@ -31813,6 +32046,15 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/north_east_street) +"mJG" = ( +/obj/structure/surface/rack, +/obj/item/device/analyzer, +/obj/effect/landmark/objective_landmark/close, +/obj/item/stack/sheet/cardboard/full_stack, +/turf/open/floor/prison{ + icon_state = "darkbrownfull2" + }, +/area/lv522/indoors/c_block/mining) "mJQ" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -31859,14 +32101,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/admin) -"mKK" = ( -/obj/structure/barricade/deployable{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "mKN" = ( /obj/structure/cargo_container/kelland/left, /turf/open/floor/corsat{ @@ -31879,6 +32113,16 @@ icon_state = "squares" }, /area/lv522/atmos/cargo_intake) +"mKZ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 6; + pixel_x = 6; + pixel_y = 6 + }, +/obj/structure/largecrate/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "mLb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -32219,27 +32463,12 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"mPQ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Dorms And Office Airlock"; - welded = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "mPR" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms/glass) -"mPV" = ( -/obj/structure/largecrate/random/barrel, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "mPY" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, @@ -32273,12 +32502,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/landing_zone_2/ceiling) -"mQo" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/floor/prison, -/area/lv522/outdoors/colony_streets/north_street) "mQq" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 8 @@ -32776,16 +32999,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/mining) -"naM" = ( -/obj/item/explosive/grenade/high_explosive/m15{ - pixel_x = 8 - }, -/obj/item/prop/alien/hugger{ - pixel_x = -7; - pixel_y = -5 - }, -/turf/open/floor/prison, -/area/lv522/outdoors/colony_streets/north_street) "naN" = ( /obj/item/stack/rods, /obj/structure/machinery/light{ @@ -32898,18 +33111,15 @@ icon_state = "cement1" }, /area/lv522/outdoors/colony_streets/south_street) -"ncs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"ncp" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper B-Block Bar" }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" +/turf/open/floor/corsat{ + icon_state = "marked" }, -/area/lv522/outdoors/colony_streets/north_street) +/area/lv522/indoors/b_block/bar) "ncv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -33293,11 +33503,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"nkm" = ( -/obj/item/prop/alien/hugger, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "nkt" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -33362,13 +33567,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) -"nlO" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/large_stack, -/turf/open/floor/plating{ - icon_state = "platebot" - }, -/area/lv522/indoors/c_block/cargo) "nlR" = ( /obj/structure/window/reinforced{ dir = 4; @@ -33449,20 +33647,6 @@ /obj/item/prop/alien/hugger, /turf/open/floor/prison, /area/lv522/atmos/outdoor) -"nmL" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Kitchen Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/kitchen) "nmX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -33539,6 +33723,14 @@ icon_state = "browncorner" }, /area/lv522/atmos/east_reactor/south) +"noH" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Casino Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/casino) "noL" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -33853,6 +34045,14 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) +"ntk" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Garage Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/garage) "ntq" = ( /obj/structure/prop/invuln/overhead_pipe{ name = "overhead pipe"; @@ -33913,19 +34113,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security) -"nue" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "nuo" = ( /obj/structure/machinery/light, /turf/open/floor/strata{ @@ -33987,12 +34174,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/bridges/op_centre) -"nvA" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "nvB" = ( /obj/structure/cargo_container/kelland/right, /turf/open/auto_turf/shale/layer1, @@ -34051,11 +34232,27 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"nxu" = ( +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/storage_blocks) "nxF" = ( /obj/structure/machinery/light/small, /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"nxJ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "nxO" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -34090,6 +34287,12 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/south_west_street) +"nyv" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/floor/prison, +/area/lv522/outdoors/colony_streets/north_street) "nyJ" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -34245,10 +34448,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/garden_bridge) -"nDo" = ( -/obj/item/prop/colony/used_flare, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "nDt" = ( /obj/structure/platform_decoration{ dir = 4 @@ -34360,18 +34559,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) -"nFQ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "nGc" = ( /obj/effect/alien/resin/sticky, /turf/open/gm/river, @@ -34439,17 +34626,17 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_1) +"nHl" = ( +/obj/structure/barricade/sandbags, +/turf/open/asphalt/cement{ + icon_state = "cement14" + }, +/area/lv522/outdoors/colony_streets/north_street) "nHA" = ( /turf/open/floor/prison{ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) -"nHM" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/north_street) "nHT" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ @@ -34521,6 +34708,13 @@ /obj/structure/noticeboard, /turf/closed/wall/strata_outpost, /area/lv522/outdoors/colony_streets/windbreaker/observation) +"nJW" = ( +/obj/item/toy/plush/farwa{ + desc = "A Farwa plush doll. Once soft and comforting now just really wet."; + name = "Soaked farwa plush doll" + }, +/turf/open/gm/river, +/area/lv522/atmos/sewer) "nKh" = ( /obj/structure/machinery/camera/autoname{ dir = 8 @@ -34579,13 +34773,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) -"nKZ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "nLe" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/cobweb2, @@ -34701,15 +34888,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/north_street) -"nMP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "nMT" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3; @@ -34890,6 +35068,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"nPn" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_forecon/UD6_Tornado) "nPo" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, @@ -34934,6 +35121,17 @@ icon_state = "cement14" }, /area/lv522/outdoors/colony_streets/north_east_street) +"nQk" = ( +/obj/structure/barricade/deployable{ + dir = 1 + }, +/obj/structure/barricade/deployable{ + dir = 8 + }, +/turf/open/asphalt/cement{ + icon_state = "cement2" + }, +/area/lv522/outdoors/colony_streets/north_street) "nQn" = ( /obj/item/stack/rods, /obj/structure/machinery/light{ @@ -34962,6 +35160,16 @@ /obj/item/stack/sheet/wood, /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) +"nQL" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -12; + pixel_y = -1 + }, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "nQM" = ( /obj/structure/cargo_container/watatsumi/leftmid, /turf/open/asphalt/cement{ @@ -35018,6 +35226,15 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) +"nRI" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "nRJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, @@ -35042,6 +35259,11 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/t_comm) +"nRY" = ( +/obj/structure/largecrate/random/secure, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "nSm" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, @@ -35167,19 +35389,6 @@ icon_state = "browncorner" }, /area/lv522/atmos/filt) -"nUF" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 6; - pixel_y = -6 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/structure/largecrate/random/case/small, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "nUO" = ( /obj/structure/closet/crate/trashcart, /turf/open/auto_turf/shale/layer1, @@ -35221,6 +35430,11 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) +"nVr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "nVN" = ( /obj/item/ammo_magazine/flamer_tank/empty, /obj/effect/decal/cleanable/liquid_fuel, @@ -35383,23 +35597,6 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) -"nXI" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bridge) "nXK" = ( /obj/structure/barricade/wooden{ dir = 8; @@ -35414,6 +35611,18 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) +"nXM" = ( +/obj/structure/barricade/sandbags{ + dir = 8 + }, +/obj/item/prop/alien/hugger{ + pixel_x = 13; + pixel_y = -5 + }, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "nXO" = ( /obj/item/ammo_box/magazine/misc/flares, /turf/open/floor/prison, @@ -35501,14 +35710,6 @@ /obj/effect/decal/cleanable/generic, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) -"nZn" = ( -/obj/effect/landmark/objective_landmark/close, -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel/large_stack, -/turf/open/floor/plating{ - icon_state = "platebot" - }, -/area/lv522/indoors/c_block/cargo) "nZv" = ( /obj/structure/machinery/conveyor{ dir = 4; @@ -35523,15 +35724,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"nZx" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel/small_stack, -/obj/item/ore/uranium, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "darkbrownfull2" - }, -/area/lv522/indoors/c_block/mining) "nZF" = ( /turf/open/floor/prison{ icon_state = "floor_plate" @@ -35639,6 +35831,20 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/corpo/glass) +"oda" = ( +/obj/structure/prop/invuln/minecart_tracks, +/obj/structure/closet/crate/miningcar{ + layer = 3.1; + name = "\improper materials storage bin"; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/metal/small_stack, +/obj/item/ore/slag, +/obj/item/ore/slag, +/obj/item/ore/slag, +/turf/open/floor/prison, +/area/lv522/indoors/c_block/mining) "odg" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/plaincakeslice{ @@ -35651,10 +35857,6 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/kitchen) -"odi" = ( -/obj/effect/spawner/gibspawner/human, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "odt" = ( /obj/structure/window_frame/strata, /obj/item/stack/rods, @@ -35968,12 +36170,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/op_centre) -"oik" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/garden) "oim" = ( /obj/structure/machinery/light{ dir = 4 @@ -36096,6 +36292,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"ojA" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper C-Block - Cargo Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/bridge) "ojW" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -36176,13 +36380,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/hallway) -"omv" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_y = -6 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "omG" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -36260,11 +36457,14 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) -"oow" = ( -/obj/effect/spawner/gibspawner/human, -/obj/item/device/defibrillator/compact, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) +"oox" = ( +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "ooG" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 @@ -36487,6 +36687,15 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) +"osE" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Corporate Office Airlock"; + req_access_txt = "100" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo/glass) "osN" = ( /turf/open/asphalt/cement{ icon_state = "cement4" @@ -36533,12 +36742,6 @@ icon_state = "floor_plate" }, /area/lv522/atmos/sewer) -"otC" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/outdoors/colony_streets/north_east_street) "otH" = ( /obj/structure/surface/table/almayer, /obj/item/prop/colony/proptag{ @@ -36604,10 +36807,6 @@ }, /turf/open/gm/river, /area/lv522/outdoors/colony_streets/south_street) -"ous" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "ouv" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/camera/autoname, @@ -36659,11 +36858,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) -"ovB" = ( +"ovC" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/obj/item/trash/uscm_mre, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ icon_state = "darkredfull2" }, @@ -36993,15 +37192,6 @@ icon_state = "white_cyan4" }, /area/lv522/indoors/a_block/medical) -"oCW" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 8; - pixel_x = -6; - pixel_y = 6 - }, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "oDj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1 @@ -37203,6 +37393,13 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security/glass) +"oHW" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/plating{ + icon_state = "platebot" + }, +/area/lv522/indoors/c_block/cargo) "oIr" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -37471,16 +37668,28 @@ }, /turf/open/floor/wood/ship, /area/lv522/atmos/way_in_command_centre) +"oMt" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Security Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "oML" = ( /turf/open/floor/corsat{ icon_state = "brown" }, /area/lv522/atmos/north_command_centre) -"oMO" = ( -/obj/structure/tent/big, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, +"oMX" = ( +/obj/item/storage/belt/grenade, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison, /area/lv522/outdoors/colony_streets/north_street) "oNd" = ( /obj/effect/decal/cleanable/dirt, @@ -37618,16 +37827,6 @@ /obj/structure/largecrate/random/case, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"oQV" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/item/stack/sandbags/small_stack, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "oQW" = ( /obj/structure/machinery/light{ dir = 8 @@ -37967,6 +38166,12 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) +"oXd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "oXk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -38012,14 +38217,6 @@ /obj/structure/barricade/deployable, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) -"oXV" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Electronics Storage" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/lone_buildings/outdoor_bot) "oXX" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -38218,6 +38415,19 @@ }, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) +"pdq" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper B-Block - Hydroponics Airlock"; + welded = 1 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "pdr" = ( /obj/structure/curtain/red, /obj/effect/decal/cleanable/dirt, @@ -38858,6 +39068,12 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/mining) +"ppX" = ( +/obj/item/prop/colony/used_flare, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "pqj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/spacecash/c1000, @@ -38866,10 +39082,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) -"pqk" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "pqA" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/objective_landmark/close, @@ -38919,26 +39131,11 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/hallway) -"pqX" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/item/lightstick/red/spoke/planted{ - pixel_x = 9; - pixel_y = 25 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "pqZ" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ icon_state = "102" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"prs" = ( -/obj/effect/decal/cleanable/blood/xeno{ - icon_state = "xgib3" - }, -/obj/effect/spawner/gibspawner/xeno, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "prD" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "5" @@ -39119,15 +39316,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) -"pvE" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Cargo Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/cargo) "pvW" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -12; @@ -39148,18 +39336,6 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) -"pwk" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/pouch/medkit/full_advanced, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "pwu" = ( /obj/structure/platform_decoration{ dir = 8 @@ -39194,6 +39370,16 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/south) +"pwF" = ( +/obj/structure/prop/invuln/pipe_water{ + pixel_x = 3; + pixel_y = 10 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_y = -6 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "pwH" = ( /obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delayone{ @@ -39211,6 +39397,15 @@ icon_state = "cell_stripe" }, /area/lv522/indoors/lone_buildings/storage_blocks) +"pwR" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldpack{ + pixel_y = 2 + }, +/turf/open/asphalt/cement{ + icon_state = "cement4" + }, +/area/lv522/outdoors/colony_streets/north_west_street) "pwT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -39236,15 +39431,6 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"pxp" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Dorms And Office Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "pxN" = ( /obj/structure/surface/table/almayer, /turf/open/floor/prison{ @@ -39573,17 +39759,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/kitchen/glass) -"pDG" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper A-Block Fitness Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/fitness) "pDM" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -39852,6 +40027,14 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"pJb" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Fitness Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/fitness) "pJd" = ( /obj/effect/decal/cleanable/cobweb2, /obj/structure/surface/table/almayer, @@ -40000,16 +40183,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) -"pLN" = ( -/obj/structure/machinery/door/airlock/almayer/medical{ - dir = 2; - name = "\improper A-Block - Colony Medical Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/medical) "pLP" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/warning_stripes{ @@ -40029,18 +40202,6 @@ /obj/effect/decal/strata_decals/grime/grime3, /turf/open/floor/plating, /area/lv522/indoors/a_block/security) -"pMc" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 8; - pixel_x = -6; - pixel_y = 6 - }, -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "pMd" = ( /obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ @@ -40070,15 +40231,6 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"pMt" = ( -/obj/structure/machinery/door/airlock/almayer/medical{ - dir = 2; - name = "\improper A-Block - Colony Medical Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/medical) "pMz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -40165,6 +40317,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) +"pOa" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/outdoors/colony_streets/east_central_street) +"pOb" = ( +/obj/item/prop/colony/used_flare, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "pOd" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -40244,6 +40406,21 @@ /obj/structure/largecrate/random, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/outdoors/nw_rockies) +"pPv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/item/weapon/gun/rifle/m41a{ + current_mag = null + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "pPC" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/outdoors/nw_rockies) @@ -40258,6 +40435,11 @@ icon_state = "white_cyan2" }, /area/lv522/indoors/a_block/dorms) +"pQq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "pQx" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/prison{ @@ -40374,24 +40556,6 @@ icon_state = "brown" }, /area/lv522/atmos/cargo_intake) -"pSh" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) -"pSj" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bridge) "pSs" = ( /obj/structure/machinery/light{ dir = 4 @@ -40500,6 +40664,12 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"pUf" = ( +/obj/structure/tent/big, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "pUo" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -40684,6 +40854,10 @@ /obj/structure/cargo_container/kelland/right, /turf/open/floor/prison, /area/lv522/landing_zone_2) +"pXv" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "pXx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -40708,10 +40882,14 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) -"pXH" = ( -/obj/effect/alien/weeds/node/alpha, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) +"pXR" = ( +/obj/structure/barricade/sandbags, +/obj/item/trash/uscm_mre{ + pixel_x = -8; + pixel_y = 10 + }, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_street) "pYf" = ( /obj/structure/machinery/light{ dir = 8 @@ -40911,15 +41089,6 @@ /obj/structure/sign/safety/high_voltage, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"qbL" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Dorms And Office Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "qbW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 @@ -41022,15 +41191,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"qdV" = ( -/obj/structure/barricade/sandbags{ - dir = 8 - }, -/obj/item/trash/uscm_mre, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "qer" = ( /obj/structure/prop/invuln/minecart_tracks{ layer = 2.6 @@ -41101,6 +41261,19 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) +"qfP" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Security Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/kitchen) "qgj" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -41121,10 +41294,6 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/south) -"qhk" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "qhm" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -41507,6 +41676,14 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"qoj" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "qot" = ( /obj/structure/surface/table/almayer, /obj/item/stack/sheet/cardboard/full_stack, @@ -41580,6 +41757,20 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_2/ceiling) +"qpJ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper A-Block Canteen Airlock"; + welded = 1 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "Sec-Kitchen-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/kitchen/glass) "qqc" = ( /obj/structure/filingcabinet, /turf/open/floor/prison{ @@ -41718,6 +41909,11 @@ icon_state = "plate" }, /area/lv522/atmos/filt) +"qrG" = ( +/obj/structure/surface/table/almayer, +/obj/item/map/lv522_map, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "qsd" = ( /obj/structure/pipes/standard/simple/visible{ dir = 10 @@ -41974,10 +42170,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"qxe" = ( -/obj/item/prop/colony/used_flare, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_street) "qxf" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/strata_outpost, @@ -42058,6 +42250,13 @@ icon_state = "cyan2" }, /area/lv522/indoors/a_block/medical) +"qxO" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_y = -6 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "qxX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -42130,8 +42329,10 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "qzp" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - dir = 8 +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + id = "sh_dropship2"; + dir = 2; + name = "\improper Typhoon crew hatch" }, /turf/open/shuttle/dropship{ icon_state = "rasputin3" @@ -42280,10 +42481,6 @@ /obj/item/trash/plate, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"qBH" = ( -/obj/structure/cargo_container/wy/left, -/turf/open/floor/plating, -/area/lv522/outdoors/colony_streets/north_east_street) "qBQ" = ( /obj/structure/prop/invuln/ice_prefab/standalone/trim{ icon_state = "white_trim" @@ -42467,6 +42664,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/bridge) +"qEr" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper C-Block - Casino Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/casino) "qEu" = ( /obj/structure/stairs/perspective{ dir = 10; @@ -42498,6 +42705,21 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/dorms) +"qFc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/reagent_dispensers/fueltank{ + layer = 2.9 + }, +/obj/structure/barricade/metal{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "qFs" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ icon_state = "66" @@ -42631,6 +42853,11 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) +"qIt" = ( +/obj/structure/largecrate/random/barrel/blue, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "qIu" = ( /obj/structure/bed/bedroll{ dir = 1; @@ -43040,6 +43267,12 @@ icon_state = "white_cyan3" }, /area/lv522/indoors/a_block/medical) +"qPm" = ( +/obj/item/ammo_box/magazine/misc/mre/empty, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "qPq" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -43085,14 +43318,6 @@ }, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) -"qPS" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Corporate Office Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "qPT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -43524,6 +43749,14 @@ icon_state = "64" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"qVo" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Electronics Storage" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/lone_buildings/outdoor_bot) "qVN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -43801,6 +44034,15 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) +"rah" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/item/trash/uscm_mre, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "raj" = ( /obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ @@ -44233,18 +44475,15 @@ /obj/structure/platform, /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) -"rgW" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - icon_state = "ashtray_full_bl"; - pixel_x = -8; - pixel_y = 7 +"rgS" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/obj/item/toy/farwadoll, -/turf/open/floor/strata{ - icon_state = "blue1" +/obj/structure/barricade/wooden{ + dir = 1 }, -/area/lv522/outdoors/colony_streets/windbreaker/observation) +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "rhh" = ( /obj/structure/bed/chair/wheelchair, /obj/effect/decal/cleanable/dirt, @@ -44377,18 +44616,6 @@ icon_state = "cement3" }, /area/lv522/outdoors/colony_streets/central_streets) -"rjD" = ( -/obj/item/tool/lighter/zippo{ - layer = 3.1; - pixel_x = 12; - pixel_y = 18 - }, -/obj/effect/spawner/gibspawner/xeno, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "rjJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -44443,15 +44670,6 @@ "rlB" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) -"rlE" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Security Airlock"; - welded = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/bridges/op_centre) "rlI" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -44487,22 +44705,6 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/a_block/bridges) -"rmk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/item/weapon/gun/launcher/grenade/m81/m79, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) -"rmm" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "rmp" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating, @@ -44605,10 +44807,6 @@ icon_state = "cement12" }, /area/lv522/landing_zone_1) -"rnX" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "rod" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -44771,6 +44969,12 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) +"rrB" = ( +/obj/vehicle/powerloader, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rrI" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -44819,6 +45023,14 @@ /obj/item/toy/beach_ball, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) +"rsD" = ( +/obj/structure/stairs/perspective{ + dir = 6; + icon_state = "p_stair_full" + }, +/obj/structure/largecrate/random/barrel, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "rsF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -45150,12 +45362,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/hallway) -"ryb" = ( -/obj/item/prop/colony/used_flare, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "ryj" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -45187,6 +45393,15 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/security) +"ryI" = ( +/obj/structure/largecrate/random, +/obj/item/explosive/plastic/breaching_charge{ + pixel_y = -2 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/outdoors/colony_streets/north_street) "ryO" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/curtain/red, @@ -45207,12 +45422,6 @@ icon_state = "greenfull" }, /area/lv522/landing_zone_1) -"ryW" = ( -/obj/item/stack/sandbags_empty/small_stack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "rza" = ( /turf/open/floor/corsat{ dir = 8; @@ -45262,15 +45471,6 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) -"rAt" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_forecon/UD6_Tornado) "rAu" = ( /obj/structure/platform_decoration, /obj/effect/landmark/lv624/fog_blocker/short, @@ -45296,6 +45496,10 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) +"rAM" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "rAX" = ( /turf/open/floor{ dir = 4; @@ -45308,12 +45512,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_2) -"rBg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_street) "rBy" = ( /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, @@ -45330,6 +45528,11 @@ icon_state = "41" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"rBV" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "rBZ" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "97" @@ -45396,6 +45599,10 @@ icon_state = "cement2" }, /area/lv522/outdoors/colony_streets/south_east_street) +"rCV" = ( +/obj/item/prop/colony/used_flare, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "rDb" = ( /obj/item/device/m56d_post, /turf/open/shuttle/dropship{ @@ -45440,6 +45647,15 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) +"rEj" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 2; + name = "\improper A-Block - Colony Medical Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/medical) "rEm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ @@ -45449,12 +45665,10 @@ icon_state = "floor_plate" }, /area/lv522/indoors/c_block/t_comm) -"rEo" = ( -/obj/structure/machinery/colony_floodlight, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/outdoors/colony_streets/east_central_street) +"rEP" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/auto_turf/shale/layer2, +/area/lv522/outdoors/w_rockies) "rEV" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/corsat{ @@ -45549,18 +45763,6 @@ /obj/item/trash/chips, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) -"rIa" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/farwadoll{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/toy/farwadoll, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/indoors/a_block/fitness/glass) "rIj" = ( /obj/structure/fence{ layer = 2.9 @@ -45652,14 +45854,13 @@ icon_state = "cement15" }, /area/lv522/outdoors/colony_streets/south_west_street) -"rJz" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper A-Block Fitness Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" +"rJB" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" }, -/area/lv522/indoors/a_block/fitness/glass) +/obj/effect/spawner/gibspawner/xeno, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_street) "rJC" = ( /obj/structure/window_frame/strata, /obj/item/shard{ @@ -45668,17 +45869,6 @@ /obj/item/stack/rods, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"rJG" = ( -/obj/structure/barricade/deployable{ - dir = 1 - }, -/obj/structure/barricade/deployable{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, -/area/lv522/outdoors/colony_streets/north_street) "rJH" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/green, @@ -45784,6 +45974,12 @@ icon_state = "marked" }, /area/lv522/indoors/b_block/hydro) +"rLk" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "rLq" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -46073,18 +46269,6 @@ icon_state = "wood" }, /area/lv522/indoors/b_block/bar) -"rRc" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Cargo Airlock"; - welded = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/cargo) "rRm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -46230,17 +46414,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/b_block/bar) -"rSQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/uscm_mre, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "rSW" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 8 @@ -46308,20 +46481,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"rUJ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Security Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/kitchen) "rUX" = ( /obj/structure/shuttle/engine/heater{ dir = 4; @@ -46476,10 +46635,6 @@ }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/north_street) -"rYp" = ( -/obj/effect/spawner/gibspawner/human, -/turf/open/auto_turf/shale/layer2, -/area/lv522/outdoors/w_rockies) "rYq" = ( /obj/structure/platform, /obj/structure/platform{ @@ -46491,6 +46646,14 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) +"rYu" = ( +/obj/structure/barricade/deployable{ + dir = 8 + }, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "rYD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -46585,15 +46748,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/admin) -"sau" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/emergency_oxygen/double, -/obj/item/tank/emergency_oxygen/double, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "say" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -46979,6 +47133,21 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) +"she" = ( +/obj/structure/machinery/floodlight, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/storage_blocks) +"shh" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "sh_dropship2"; + name = "\improper Typhoon crew hatch" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "shm" = ( /obj/structure/machinery/vending/cola, /obj/effect/decal/cleanable/dirt, @@ -47033,6 +47202,14 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/cargo) +"siB" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "siT" = ( /obj/structure/bed/chair{ dir = 1 @@ -47052,6 +47229,12 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) +"sjb" = ( +/obj/item/stack/sandbags/small_stack, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/north_street) "sjd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -47164,17 +47347,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) -"skn" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper A-Block Dorms And Office Airlock"; - welded = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "skC" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/effect/decal/cleanable/dirt, @@ -47187,15 +47359,6 @@ icon_state = "63" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"skQ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Fitness Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/fitness) "skS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -47356,11 +47519,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/c_block/mining) -"snI" = ( -/obj/structure/machinery/floodlight, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "snP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/surface/table/almayer, @@ -47513,12 +47671,6 @@ icon_state = "cement15" }, /area/lv522/outdoors/colony_streets/central_streets) -"sqr" = ( -/obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "sqH" = ( /obj/structure/machinery/door_display/research_cell{ dir = 8; @@ -47571,6 +47723,12 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"srE" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_forecon/UD6_Tornado) "srJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, @@ -47765,15 +47923,6 @@ "svW" = ( /turf/closed/wall/strata_outpost, /area/lv522/atmos/east_reactor) -"swf" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper C-Block - Cargo Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/cargo) "swr" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "45" @@ -47910,6 +48059,18 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) +"szh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/barricade/deployable, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "szo" = ( /obj/structure/platform{ dir = 8 @@ -48095,6 +48256,18 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/north) +"sCP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/pouch/medkit/full_advanced, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "sDa" = ( /obj/structure/machinery/light/small{ dir = 8; @@ -48138,23 +48311,6 @@ "sDS" = ( /turf/open/floor/prison, /area/lv522/outdoors/nw_rockies) -"sDY" = ( -/obj/structure/surface/table/almayer, -/obj/item/handcuffs{ - pixel_y = 12 - }, -/obj/item/handcuffs{ - pixel_y = 6 - }, -/obj/item/handcuffs, -/obj/item/weapon/baton{ - pixel_x = -2; - pixel_y = 10 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/indoors/a_block/security/glass) "sEa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -48426,14 +48582,6 @@ /obj/item/key/cargo_train, /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) -"sJP" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "sKa" = ( /obj/effect/decal/cleanable/blood/xeno, /turf/open/asphalt/cement{ @@ -48634,11 +48782,6 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) -"sLT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "sLU" = ( /obj/structure/sign/safety/synth_storage{ pixel_x = 23; @@ -48920,6 +49063,12 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) +"sPU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "sQb" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -48943,6 +49092,10 @@ icon_state = "cement3" }, /area/lv522/outdoors/n_rockies) +"sQA" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/north_street) "sQD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -49215,18 +49368,6 @@ icon_state = "cell_stripe" }, /area/lv522/indoors/c_block/cargo) -"sUN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/barricade/deployable, -/obj/item/weapon/gun/rifle/m41a{ - current_mag = null - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "sVJ" = ( /obj/structure/barricade/handrail{ layer = 3.7 @@ -49369,6 +49510,11 @@ icon_state = "blue1" }, /area/lv522/indoors/a_block/dorm_north) +"sZz" = ( +/obj/structure/largecrate/random/case/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "taj" = ( /obj/structure/closet/crate, /turf/open/asphalt/cement{ @@ -49675,6 +49821,15 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"teO" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper C-Block - Cargo Airlock"; + welded = 1 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/cargo) "tfb" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -49740,6 +49895,14 @@ /obj/structure/machinery/prop/almayer/CICmap, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) +"tgn" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Dorms And Office Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorms) "tgq" = ( /obj/structure/surface/rack, /turf/open/floor/prison{ @@ -49897,6 +50060,20 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"tku" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper B-Block - Hydroponics Airlock" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "LV_522_Hydro-Lockdown"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/b_block/hydro) "tkx" = ( /obj/structure/machinery/light{ dir = 1 @@ -49915,13 +50092,6 @@ icon_state = "cement1" }, /area/lv522/landing_zone_2) -"tkC" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/largecrate/random, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "tkL" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; @@ -49985,23 +50155,6 @@ /obj/structure/platform, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) -"tlF" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) -"tlM" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Garage Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/garage) "tlR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine{ @@ -50028,11 +50181,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"tms" = ( -/obj/structure/largecrate/random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "tmy" = ( /obj/structure/machinery/light{ dir = 1 @@ -50042,19 +50190,6 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/b_block/bridge) -"tmA" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock"; - welded = 1 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/hydro) "tmC" = ( /obj/structure/platform{ dir = 1 @@ -50150,6 +50285,16 @@ icon_state = "whiteyellowfull" }, /area/lv522/indoors/a_block/corpo/glass) +"tnU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "tog" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -50269,21 +50414,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) -"tqG" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV522CIC_1"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/admin) "tqU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -50450,6 +50580,15 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/lone_buildings/storage_blocks) +"ttE" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Electronics Storage" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/lone_buildings/outdoor_bot) "ttT" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -50747,6 +50886,13 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"tzM" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "tzY" = ( /obj/structure/bed{ layer = 2.7; @@ -50851,6 +50997,15 @@ }, /turf/closed/wall/strata_ice/dirty, /area/lv522/oob) +"tCg" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Emergency Engineering" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/lone_buildings/engineering) "tCh" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -50900,16 +51055,6 @@ icon_state = "rasputin7" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"tDq" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper A-Block Fitness Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/fitness) "tDu" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced/prison, @@ -51072,12 +51217,6 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"tFC" = ( -/obj/structure/barricade/wooden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "tFZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -51110,14 +51249,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_street) -"tGm" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Corporate Liason Office " - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo) "tGo" = ( /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) @@ -51229,11 +51360,16 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/east_central_street) -"tIQ" = ( -/obj/structure/barricade/sandbags, -/obj/effect/decal/cleanable/dirt, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) +"tIS" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "tIT" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -51525,6 +51661,10 @@ /obj/structure/largecrate, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) +"tNS" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/storage_blocks) "tNT" = ( /obj/structure/prop/vehicles/crawler{ icon_state = "crawler_covered_bed"; @@ -51659,6 +51799,16 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"tQe" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper A-Block Corporate Office Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo) "tQi" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/corpo) @@ -51674,20 +51824,6 @@ icon_state = "marked" }, /area/lv522/atmos/east_reactor/west) -"tQE" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Canteen Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/kitchen/glass) "tQF" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "Sec-Corpo-Bridge-Lockdown" @@ -51701,10 +51837,13 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/bridges) -"tRu" = ( -/obj/structure/cargo_container/wy/mid, +"tRs" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/largecrate/random, /turf/open/floor/plating, -/area/lv522/outdoors/colony_streets/north_east_street) +/area/lv522/landing_zone_1/tunnel) "tRI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -51753,10 +51892,6 @@ icon_state = "73" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"tSF" = ( -/obj/item/trash/uscm_mre, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "tSJ" = ( /obj/structure/machinery/light/double{ dir = 8; @@ -51930,14 +52065,19 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/north_east_street) -"tWy" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 +"tWv" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 6; + pixel_y = -6 }, -/turf/open/asphalt/cement{ - icon_state = "cement3" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 6; + pixel_y = 6 }, -/area/lv522/outdoors/colony_streets/north_street) +/obj/structure/largecrate/random/case/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "tWC" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/prison{ @@ -51981,6 +52121,13 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) +"tXc" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/vehicle/train/cargo/trolley, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "tXd" = ( /obj/structure/prop/invuln/lattice_prop{ dir = 1; @@ -52023,14 +52170,6 @@ icon_state = "floor_plate" }, /area/lv522/landing_zone_1/ceiling) -"tXS" = ( -/obj/structure/stairs/perspective{ - dir = 6; - icon_state = "p_stair_full" - }, -/obj/structure/largecrate/random/barrel, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "tXW" = ( /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/south_east_street) @@ -52810,6 +52949,13 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) +"ukT" = ( +/obj/structure/closet/crate, +/obj/item/storage/pouch/pressurized_reagent_canister/revival, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "ulh" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "3" @@ -52859,15 +53005,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/cargo) -"unE" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/hallway) "unM" = ( /obj/structure/platform{ dir = 4 @@ -53275,13 +53412,6 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/corpo/glass) -"uuy" = ( -/obj/effect/decal/cleanable/blood/xeno{ - icon_state = "xgib3" - }, -/obj/effect/spawner/gibspawner/xeno, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_street) "uuA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -53365,18 +53495,16 @@ icon_state = "white_cyan3" }, /area/lv522/indoors/a_block/medical/glass) -"uvJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "uwb" = ( /obj/structure/machinery/light/double, /turf/open/asphalt/cement{ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/north_west_street) +"uwe" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "uwk" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -53462,20 +53590,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/garage) -"uye" = ( -/obj/structure/largecrate/random, -/obj/item/storage/box/packet/high_explosive{ - pixel_x = -5; - pixel_y = -14 - }, -/obj/item/storage/pill_bottle/packet/oxycodone{ - pixel_x = -1; - pixel_y = 8 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/north_street) "uyt" = ( /turf/open/floor/prison{ icon_state = "darkredfull2" @@ -53596,10 +53710,27 @@ }, /turf/open/floor/plating, /area/lv522/indoors/a_block/admin) +"uBd" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/hallway) "uBm" = ( /obj/structure/girder, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/east_central_street) +"uBs" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 8 + }, +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11 + }, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "uBX" = ( /obj/structure/machinery/light{ dir = 1; @@ -53653,13 +53784,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/east) -"uDF" = ( -/obj/item/trash/uscm_mre{ - pixel_x = 12; - pixel_y = -7 - }, -/turf/open/floor/prison, -/area/lv522/outdoors/colony_streets/north_street) "uDM" = ( /obj/structure/machinery/light/double{ dir = 8; @@ -53687,13 +53811,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/bridge) -"uEj" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "uEl" = ( /obj/structure/machinery/conveyor{ dir = 10; @@ -54116,11 +54233,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/kitchen/glass) -"uKk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/random/case, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "uKw" = ( /obj/structure/bed/chair{ dir = 1 @@ -54394,6 +54506,12 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/bridges/corpo_fitness) +"uOP" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/asphalt/cement{ + icon_state = "cement9" + }, +/area/lv522/outdoors/colony_streets/north_street) "uPc" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/atmos/west_reactor) @@ -54451,13 +54569,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/c_block/mining) -"uQa" = ( -/obj/item/trash/uscm_mre, -/obj/structure/surface/table/almayer, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/colony_streets/north_street) "uQf" = ( /obj/structure/platform{ dir = 1 @@ -54478,7 +54589,7 @@ }, /area/lv522/indoors/a_block/corpo/glass) "uQi" = ( -/obj/item/clothing/suit/storage/marine/smooth, +/obj/item/clothing/suit/storage/marine/medium/smooth, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -54625,16 +54736,6 @@ icon_state = "31" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"uSI" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper A-Block Corporate Office Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo) "uSJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -54811,9 +54912,6 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_1) -"uVS" = ( -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "uVU" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/wy{ @@ -54923,6 +55021,18 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"uXZ" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/plush/farwa{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/toy/plush/farwa, +/turf/open/floor/prison{ + dir = 4; + icon_state = "greenfull" + }, +/area/lv522/indoors/a_block/fitness/glass) "uYi" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, @@ -54930,6 +55040,11 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) +"uYk" = ( +/obj/structure/largecrate/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "uYq" = ( /obj/structure/cargo_container/grant/left, /turf/open/floor/plating{ @@ -55180,6 +55295,15 @@ icon_state = "darkbrownfull2" }, /area/lv522/landing_zone_2/ceiling) +"vdz" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper C-Block - Garage Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/c_block/bridge) "vdH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -55227,10 +55351,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) -"veA" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "veD" = ( /obj/structure/surface/rack, /obj/structure/machinery/light{ @@ -55409,23 +55529,6 @@ icon_state = "6" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"vil" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Security Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "Sec-Kitchen-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "vir" = ( /obj/structure/closet/wardrobe/engineering_yellow, /obj/effect/decal/warning_stripes{ @@ -55676,14 +55779,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"vmp" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Casino Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/casino) "vmG" = ( /obj/structure/surface/table/gamblingtable, /obj/item/reagent_container/food/drinks/drinkingglass{ @@ -55701,12 +55796,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) -"vmM" = ( -/obj/structure/girder, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "vmQ" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 6 @@ -55758,15 +55847,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/bridges/op_centre) -"vnB" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Corporate Office Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo/glass) "vnX" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/strata{ @@ -55940,6 +56020,15 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer2, /area/lv522/landing_zone_1) +"vqF" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/north_street) "vqH" = ( /obj/structure/machinery/light{ dir = 1 @@ -56176,12 +56265,6 @@ icon_state = "marked" }, /area/lv522/landing_zone_1/ceiling) -"vuF" = ( -/obj/vehicle/powerloader, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vuH" = ( /obj/structure/largecrate, /obj/effect/landmark/lv624/fog_blocker/short, @@ -56247,13 +56330,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"vwW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/deployable{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "vxa" = ( /obj/structure/closet/crate, /obj/item/clothing/under/colonist, @@ -56323,21 +56399,6 @@ /obj/structure/barricade/wooden, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"vxT" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/closed{ - id = "East_Lock"; - name = "Emergency Lockdown" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/hallway) "vxY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ @@ -56351,15 +56412,6 @@ icon_state = "cyan2" }, /area/lv522/indoors/a_block/medical) -"vyk" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper C-Block - Cargo Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/bridge) "vyz" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating/plating_catwalk/prison, @@ -56454,15 +56506,13 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_west_street) -"vzE" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper B-Block Bar" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bar) +"vzz" = ( +/obj/structure/closet/crate, +/obj/item/storage/pouch/shotgun/large/slug, +/obj/item/storage/pouch/general/large/m39ap, +/obj/item/storage/pouch/flamertank, +/turf/open/floor/prison, +/area/lv522/landing_zone_2) "vzV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ @@ -56573,6 +56623,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) +"vBL" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/asphalt/cement{ + icon_state = "cement9" + }, +/area/lv522/outdoors/colony_streets/north_street) "vBM" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -56586,14 +56642,17 @@ /obj/structure/bed/chair, /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) -"vCv" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper A-Block Shared Dorms Airlock" +"vBV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/uscm_mre, +/turf/open/floor/prison{ + icon_state = "darkredfull2" }, -/area/lv522/indoors/a_block/dorm_north) +/area/lv522/outdoors/colony_streets/north_street) "vCy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -56686,6 +56745,21 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) +"vDT" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV522CIC_1"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/admin) "vDV" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -56786,14 +56860,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"vFS" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Fitness Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/fitness) "vGb" = ( /obj/structure/machinery/colony_floodlight{ density = 0; @@ -56836,6 +56902,15 @@ icon_state = "floor_marked" }, /area/lv522/indoors/lone_buildings/engineering) +"vHd" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "vHo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -57072,20 +57147,6 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/casino) -"vKm" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper B-Block - Hydroponics Airlock" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV_522_Hydro-Lockdown"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/b_block/bridge) "vKA" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/under/redpyjamas, @@ -57182,15 +57243,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) -"vLW" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper C-Block - Cargo Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/cargo) "vMg" = ( /obj/structure/safe, /turf/open/floor/prison{ @@ -57335,19 +57387,6 @@ icon_state = "squares" }, /area/lv522/atmos/command_centre) -"vOR" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Corporate Office Airlock"; - req_access_txt = "100" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo/glass) "vOT" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/shiva{ @@ -57398,6 +57437,12 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/admin) +"vPm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement{ + icon_state = "cement4" + }, +/area/lv522/outdoors/colony_streets/north_street) "vPs" = ( /obj/structure/prop/dam/crane/damaged, /obj/structure/platform, @@ -57410,20 +57455,6 @@ /obj/structure/platform, /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) -"vPA" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block Corporate Office Airlock"; - req_access_txt = "100" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/corpo) "vPO" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 8; @@ -57595,6 +57626,12 @@ icon_state = "cement3" }, /area/lv522/outdoors/colony_streets/north_east_street) +"vTH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "vTK" = ( /obj/structure/prop/vehicles{ icon_state = "van_damaged" @@ -57768,16 +57805,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"vWp" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper C-Block - Casino Airlock"; - welded = 1 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/casino) "vWv" = ( /obj/structure/stairs/perspective{ dir = 5; @@ -57948,6 +57975,12 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/hallway) +"waj" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "wan" = ( /obj/structure/surface/table/almayer, /turf/open/floor/prison{ @@ -58015,6 +58048,10 @@ }, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/engineering) +"wbo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "wbt" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer1, @@ -58094,6 +58131,11 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/corpo/glass) +"wcM" = ( +/obj/structure/largecrate/random/secure, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) "wcO" = ( /obj/structure/machinery/light{ dir = 4 @@ -58128,6 +58170,11 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"wcY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/case, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "wdd" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, @@ -58279,6 +58326,13 @@ /obj/structure/pipes/standard/manifold/fourway/hidden/green, /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) +"wft" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" + }, +/obj/effect/spawner/gibspawner/xeno, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/north_street) "wfC" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -58359,18 +58413,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"whp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/barricade/metal{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "whs" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, @@ -58947,13 +58989,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) -"wtO" = ( -/obj/structure/barricade/deployable, -/obj/effect/decal/cleanable/dirt, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/north_street) "wtT" = ( /obj/structure/cargo_container/grant/rightmid, /turf/open/floor/plating{ @@ -59039,6 +59074,14 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/north) +"wvX" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Shared Dorms Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/outdoors/colony_streets/windbreaker/observation) "wvY" = ( /obj/structure/window/framed/strata/reinforced, /turf/open/floor/plating, @@ -59602,20 +59645,6 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/cargo) -"wFC" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) -"wFL" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 8; - pixel_x = -6; - pixel_y = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "wFP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ @@ -59753,6 +59782,24 @@ /obj/structure/cargo_container/horizontal/blue/middle, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"wHX" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 8; + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/mining) +"wHY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/hallway) "wIi" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3 @@ -59867,6 +59914,16 @@ "wLp" = ( /turf/closed/wall/mineral/bone_resin, /area/lv522/atmos/east_reactor/west) +"wLw" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 8; + pixel_x = -6; + pixel_y = 6 + }, +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "wLN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/coffee, @@ -59956,15 +60013,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/engineering) -"wOq" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper C-Block - Garage Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/bridge) "wOu" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -59995,14 +60043,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) -"wPA" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper A-Block Shared Dorms Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/outdoors/colony_streets/windbreaker/observation) "wPL" = ( /obj/structure/platform_decoration/strata{ dir = 8 @@ -60021,6 +60061,13 @@ icon_state = "wood-broken6" }, /area/lv522/indoors/b_block/bar) +"wPV" = ( +/obj/structure/closet/crate, +/obj/item/storage/xeno_tag_case, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "wQa" = ( /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_2) @@ -60138,19 +60185,6 @@ /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) -"wSz" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "LV522CIC_1"; - name = "\improper Storm Shutters" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/admin) "wSF" = ( /obj/structure/stairs/perspective{ dir = 10; @@ -60158,21 +60192,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) -"wSW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/item/weapon/gun/rifle/m41a{ - current_mag = null - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "wTf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/monkeyburger{ @@ -60764,10 +60783,6 @@ }, /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) -"xfD" = ( -/obj/item/prop/colony/used_flare, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "xfS" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/transmitter/colony_net{ @@ -60882,14 +60897,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security/glass) -"xhz" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/north_street) "xhB" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/prison{ @@ -60925,13 +60932,6 @@ icon_state = "32" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"xig" = ( -/obj/structure/closet/crate, -/obj/item/storage/xeno_tag_case, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "xiu" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -61121,6 +61121,10 @@ }, /turf/open/floor/carpet, /area/lv522/indoors/c_block/garage) +"xlU" = ( +/obj/item/prop/colony/used_flare, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_street) "xlV" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -61285,6 +61289,16 @@ icon_state = "floor_plate" }, /area/lv522/indoors/lone_buildings/storage_blocks) +"xoC" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/hallway) "xpg" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/outdoors/nw_rockies) @@ -61389,17 +61403,6 @@ /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/wood, /area/lv522/indoors/a_block/executive) -"xsi" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Garage Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/garage) "xsq" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 @@ -61416,6 +61419,11 @@ }, /turf/open/gm/river, /area/lv522/atmos/sewer) +"xsN" = ( +/obj/structure/largecrate/random/barrel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel) "xtb" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/fitness) @@ -61443,9 +61451,10 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"xto" = ( -/obj/item/storage/pouch/autoinjector/full, -/turf/open/auto_turf/shale/layer2, +"xtH" = ( +/obj/effect/spawner/gibspawner/human, +/obj/item/device/defibrillator/compact, +/turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "xtO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -61513,6 +61522,19 @@ icon_state = "floor_marked" }, /area/lv522/outdoors/colony_streets/north_west_street) +"xvj" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block - Colony Operations Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "LV522CIC_1"; + name = "\improper Storm Shutters" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/admin) "xvl" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/c_block/bridge) @@ -61564,6 +61586,16 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/hydro) +"xwK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/item/stack/sandbags/small_stack, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/lv522/outdoors/colony_streets/north_street) "xwO" = ( /obj/structure/cargo_container/seegson/left, /turf/open/floor/prison, @@ -61606,16 +61638,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/hallway) -"xxz" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 6; - pixel_x = 6; - pixel_y = 6 - }, -/obj/structure/largecrate/random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/mining) "xxJ" = ( /obj/structure/cargo_container/seegson/mid, /obj/effect/decal/warning_stripes{ @@ -61680,11 +61702,6 @@ icon_state = "cement1" }, /area/lv522/outdoors/colony_streets/central_streets) -"xyU" = ( -/obj/structure/surface/table/almayer, -/obj/item/map/lv522_map, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) "xzj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ @@ -61807,6 +61824,19 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) +"xBi" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper A-Block Corporate Office Airlock"; + req_access_txt = "100" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo/glass) "xBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 1 @@ -61885,10 +61915,6 @@ "xDu" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/corpo/glass) -"xDz" = ( -/obj/effect/spawner/gibspawner/xeno, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_street) "xDC" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1; @@ -62038,6 +62064,16 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"xFH" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper A-Block Fitness Centre Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/fitness) "xGa" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" @@ -62050,6 +62086,18 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) +"xGd" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Security Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Sec-Corpo-Bridge-Lockdown" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "xGf" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, @@ -62084,20 +62132,6 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor/south) -"xHj" = ( -/obj/structure/prop/invuln/minecart_tracks, -/obj/structure/closet/crate/miningcar{ - layer = 3.1; - name = "\improper materials storage bin"; - pixel_y = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal/small_stack, -/obj/item/ore/slag, -/obj/item/ore/slag, -/obj/item/ore/slag, -/turf/open/floor/prison, -/area/lv522/indoors/c_block/mining) "xHr" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/camera/autoname, @@ -62106,6 +62140,20 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) +"xHz" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Corporate Liaison Office " + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/corpo) +"xHO" = ( +/obj/structure/girder, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_street) "xIr" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -62381,15 +62429,6 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"xNw" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper A-Block - Colony Operations Centre Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/hallway) "xNG" = ( /obj/structure/machinery/computer/crew/colony{ density = 0; @@ -62572,13 +62611,11 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/hallway) -"xQZ" = ( -/obj/effect/decal/cleanable/blood/xeno{ - icon_state = "xgib3" +"xQR" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/obj/effect/spawner/gibspawner/xeno, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_street) +/area/lv522/indoors/lone_buildings/storage_blocks) "xRg" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -62665,17 +62702,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) -"xRI" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper C-Block - Radio Tower Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/c_block/t_comm) "xRK" = ( /turf/open/asphalt/cement{ icon_state = "cement2" @@ -62975,11 +63001,6 @@ "xXg" = ( /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) -"xXh" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "xXo" = ( /obj/structure/surface/table/almayer, /obj/structure/bed/chair{ @@ -63507,14 +63528,6 @@ icon_state = "marked" }, /area/lv522/outdoors/colony_streets/windbreaker/observation) -"ygJ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper A-Block Dorms And Office Airlock" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorms) "yhi" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, @@ -63611,6 +63624,15 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/east_central_street) +"yja" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper A-Block Security Airlock"; + welded = 1 + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/bridges/op_centre) "yje" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -63686,25 +63708,6 @@ icon_state = "radiator_tile2" }, /area/lv522/indoors/a_block/bridges/corpo) -"yjD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/barricade/metal{ - dir = 1 - }, -/obj/structure/barricade/metal{ - dir = 4 - }, -/turf/open/floor/prison{ - icon_state = "darkredfull2" - }, -/area/lv522/outdoors/colony_streets/north_street) "yjK" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -66449,7 +66452,7 @@ vtc cpy cpy vZY -pXH +dcR bQq sRA rWS @@ -66457,7 +66460,7 @@ pRK qmM qGQ qTh -qzp +rjP qzp nfq fDg @@ -67379,7 +67382,7 @@ vhd sRA sRA sRA -rYp +rEP ien cpy cpy @@ -67605,8 +67608,8 @@ rFp vhC uiK uiK -gxe -xto +jmN +ebe ien ien ien @@ -67819,8 +67822,8 @@ pUc qst qLz qVl -qzp -qzp +rjP +shh rFp sdE sIx @@ -67832,7 +67835,7 @@ tbl vhJ uiK sRA -odi +dtU ien ien jTJ @@ -67860,7 +67863,7 @@ czW sjY ien lSg -hqr +pwR ylo ylo ylo @@ -68059,7 +68062,7 @@ uEX vhO hPM uiK -oow +xtH ien sON ezH @@ -68089,7 +68092,7 @@ hJZ hJZ sus ylo -pwk +sCP tfZ wHi pYf @@ -68103,7 +68106,7 @@ hYf wHi jZe wky -xig +wPV tyl ylo ien @@ -68329,8 +68332,8 @@ emt pck hYf erS -sau -kSh +abe +ukT ofS ylo ien @@ -68785,9 +68788,9 @@ isG vBM hYf wHi -jAA -loX -aId +tIS +xQR +waj ien ien vXc @@ -69011,10 +69014,10 @@ bZd yfu yfu bZd -loX -rmm -gRl -uVS +xQR +vTH +gFy +nxu ien vXc vXc @@ -69237,11 +69240,11 @@ yfu bZd bZd yfu -cQv -gRl -gRl -xXh -qhk +tNS +gFy +gFy +rBV +iSx ien vXc vXc @@ -69465,10 +69468,10 @@ yfu bZd bZd bZd -nvA -gRl -cQv -loX +bOX +gFy +tNS +xQR ien ien vXc @@ -69693,8 +69696,8 @@ qpc nKj dGK qpc -snI -jub +she +egj ylo ien vXc @@ -70846,7 +70849,7 @@ gcX kvq ivK wng -hpO +tCg ivK xvQ xvQ @@ -71038,7 +71041,7 @@ nLm nLm nLm eBA -qbL +lmI nLm nLm nLm @@ -71714,7 +71717,7 @@ clY sjY sjY oNQ -ygJ +tgn vJT uOs tUM @@ -71723,7 +71726,7 @@ uOs tUM uOs kcS -ygJ +tgn spo yiM yiM @@ -72400,7 +72403,7 @@ nLm nLm pMd eBA -dUr +kNY pMd nLm nLm @@ -72850,14 +72853,14 @@ iIK uUB lLl gcv -skn +iPy xIr pQA jhl sPk dnM pxS -hnX +hAd eIk cDH cDH @@ -74078,7 +74081,7 @@ bPJ bPJ bPJ bPJ -pMc +aue wfP dnO bPJ @@ -74177,7 +74180,7 @@ qNM oiZ rod kvJ -rIa +uXZ seJ xtb myP @@ -74305,11 +74308,11 @@ kEl peM jba bPJ -ayf -aKE +edi +pXv wfP -cbb -sLT +pQq +nVr bPJ cpy cpy @@ -74479,7 +74482,7 @@ mBF mBF mBF oPx -vzE +ncp mBF mBF mBF @@ -74533,10 +74536,10 @@ hTe jFl aQH mJs -ous +czE wfP wfP -uKk +wcY bPJ bPJ cpy @@ -74631,7 +74634,7 @@ qOn qYc rpe bQl -rJz +ftD bQl xtb xWF @@ -74761,10 +74764,10 @@ sHd bPJ eeb wfP -bgw +ixV wfP wfP -pSh +uwe bPJ bPJ cpy @@ -74852,7 +74855,7 @@ ien ien clY bry -vFS +pJb xOb oiZ oiZ @@ -74860,7 +74863,7 @@ jBs oiZ xOb xOb -vFS +pJb xqd uEC xTs @@ -74868,7 +74871,7 @@ xTs uEC uEC pVx -vFS +pJb rZF tYZ kdy @@ -74876,7 +74879,7 @@ kdy kdy tMk lEF -ygJ +tgn vJT oot fjP @@ -74893,14 +74896,14 @@ ktx biY bNJ seG -mPQ +dfV osU uyP esa qvJ jDJ osU -pxp +jsk enP dnM dnM @@ -74916,7 +74919,7 @@ dnM esa gYF kcS -ygJ +tgn qQM vXc wth @@ -74987,7 +74990,7 @@ bPJ bPJ bPJ bPJ -veA +rAM wfP wfP wfP @@ -75218,7 +75221,7 @@ qxf wfP wfP wfP -aKE +pXv sRM bPJ cpy @@ -75669,10 +75672,10 @@ cpy cpy bPJ bPJ -nkm +gfs wfP wfP -vwW +gWc wfP bPJ cpy @@ -75897,9 +75900,9 @@ cpy cpy bPJ bPJ -bQP -omv -lFM +fVC +qxO +pwF bPJ bPJ cpy @@ -75991,7 +75994,7 @@ xtb xtb xtb xyL -pDG +cmC xyL xtb xtb @@ -76353,7 +76356,7 @@ cpy bPJ bPJ wfP -bgw +ixV bPJ bPJ cpy @@ -76581,7 +76584,7 @@ cpy bPJ wfP wfP -bgw +ixV bPJ cpy bMX @@ -76806,7 +76809,7 @@ cpy cpy cpy bPJ -gMT +ica wfP fvn bPJ @@ -77430,7 +77433,7 @@ rAf rAf toF rlI -bXU +fLZ wCJ ghu cbp @@ -77464,7 +77467,7 @@ cpy max max yjT -oXV +qVo oDZ wvt vou @@ -77473,7 +77476,7 @@ lUf lmF aGQ tML -jjc +ttE wzH max cpy @@ -77487,7 +77490,7 @@ max osN bPJ oeN -byb +rgS wfP hiL bPJ @@ -77586,13 +77589,13 @@ rLq siT xTs pVx -vFS +pJb vIe uEC roT uEC xqd -vFS +pJb pVx gvT jLF @@ -77713,8 +77716,8 @@ max max osN bPJ -awm -tFC +tXc +fJr wfP wfP bPJ @@ -77940,8 +77943,8 @@ max max osN aQH -gsn -tFC +euT +fJr wfP bPJ bPJ @@ -78078,7 +78081,7 @@ qDR dnM sPk pxS -pxp +jsk fqD oFr lOi @@ -78168,9 +78171,9 @@ max osN bPJ cLB -esx +cJF wfP -eLK +gkH bPJ cpy bMX @@ -78395,7 +78398,7 @@ pAj fnA bPJ bPJ -uEj +aRB jJF bPJ bPJ @@ -78790,7 +78793,7 @@ tSL ibW tSL tSL -jPd +dvn tSL rdz kTF @@ -78805,7 +78808,7 @@ tSL phn kzT xNR -dMo +nxJ hpq ofi ofi @@ -78983,7 +78986,7 @@ nLm nLm nLm eBA -qbL +lmI nLm nLm nLm @@ -79046,7 +79049,7 @@ fnA wIr wIr vLI -pSj +mpF wIr wIr kmq @@ -79077,7 +79080,7 @@ cpy cpy bPJ wfP -pSh +uwe sRM bPJ cpy @@ -79186,7 +79189,7 @@ xAO xAO xAO xyL -ivY +kxH ugV hNR xhL @@ -79417,7 +79420,7 @@ tvO ugV hNR ugV -cJg +uOP yjm nLm lfe @@ -79427,7 +79430,7 @@ nLm ahP wCC fjr -xfD +rCV fjr fjr bPH @@ -79529,7 +79532,7 @@ vDL wIr wIr bPJ -mPV +xsN wfP wfP bPJ @@ -79629,7 +79632,7 @@ kcw sjp ohP oZC -tDq +xFH oZC cZN rrN @@ -79645,11 +79648,11 @@ ugV hNR ugV ugV -eSM +vBL cHw cHw hhD -dhj +ppX hhD wCC ugV @@ -79756,8 +79759,8 @@ hhI vDL wIr wIr -dSJ -pSh +nRY +uwe wfP bPJ cpy @@ -79871,7 +79874,7 @@ tvO ugV hNR ugV -nDo +pOb ugV fjr fjr @@ -79880,7 +79883,7 @@ fjr ugV ugV ugV -xQZ +wft ugV ugV fjr @@ -79984,7 +79987,7 @@ hhI lBd wIr guh -acC +bQA wfP bPJ cpy @@ -80097,10 +80100,10 @@ xyL tvO ugV spe -hcX +uBs vwi vwi -gRS +gEx vwi vwi vwi @@ -80109,7 +80112,7 @@ vwi vwi vwi vwi -pqX +lqI nQx rvx fZy @@ -80146,7 +80149,7 @@ tBQ yiM yiM fXx -tmA +pdq xNR wnM kzT @@ -80157,7 +80160,7 @@ qNl kzT wnM yfS -nFQ +jrE yfS wnM wnM @@ -80167,16 +80170,16 @@ kzT kzT kzT kDY -nue +lIy xNR yfS yfS kLO -gwg +cfz jmv tkf dgY -gwg +cfz cHb qzQ oLa @@ -80186,7 +80189,7 @@ tkf fTP fTP pCG -gwg +cfz jmv oLa oLa @@ -80199,7 +80202,7 @@ tkf tkf tkf dgY -gwg +cfz cHb oqp oLa @@ -80210,9 +80213,9 @@ qzQ hhI hLx wIr -hcG -lgR -aKE +oox +mzi +pXv bPJ cpy cpy @@ -80322,25 +80325,25 @@ xAO xAO xtb tvO -nDo +pOb ugV hNR -rJG -mKK -tWy -lae -uvJ -gwU -jeh -qdV -byD -sqr +nQk +rYu +siB +hqB +oXd +nXM +sjb +biZ +ieE +akP tNr ugV spe nQx fjr -xfD +rCV crH pQE pQE @@ -80437,9 +80440,9 @@ qzQ aPu jmv ueY -tkC -rnX -acC +tRs +eqV +bQA bPJ cpy cpy @@ -80534,7 +80537,7 @@ xtb xtb xtb rMb -skQ +fAY xtb xtb xtb @@ -80552,18 +80555,18 @@ tEJ fjr ugV hNR -keA -wSW -gvK -nMP -ovB -ikp +hkr +pPv +kmw +ovC +rah +lmW cVR -ivs -nMP -eqb -joV -pqk +iRW +ovC +szh +rLk +epe ugV jXQ nQx @@ -80664,8 +80667,8 @@ fTP aPu pfq wIr -tXS -acC +rsD +bQA wfP bPJ cpy @@ -80779,20 +80782,20 @@ wCC fjr ugV hNR -keA +hkr vCy -ryb -ghE -sJP +fBY +iDC +qoj urY urY -ryW +iYG fIr -sUN -bKu -pqk +lhp +eiY +epe ugV -ibS +lXO jXQ iKF sQL @@ -80832,7 +80835,7 @@ tSL ibW ibW ily -dlM +tku ibW ibW tSL @@ -80891,7 +80894,7 @@ aPu mOJ wIr wIr -lgR +mzi wfP jJF bPJ @@ -81005,23 +81008,23 @@ fjr fjr fjr fjr -fUQ -rBg -whp -uye -naM +vHd +vPm +eoi +khR +hbw uAa -fto -uDF -mQo +oMX +faJ +nyv urY -dHx -wtO +izb +gdA ugV fjr fjr fjr -ibS +lXO miz tRd xvW @@ -81230,22 +81233,22 @@ fjr fjr fjr cpy -bKf +sQA fjr -nKZ -rBg -iML -kCQ -rjD -ryW -tlF +tzM +vPm +jUc +ryI +hDe +iYG +nRI fIr -ryb +fBY urY -dHx -csl +izb +aem ugV -xfD +rCV cpy fjr fjr @@ -81442,14 +81445,14 @@ xtb xtb xtb rMb -skQ +fAY xtb xtb xtb xtb xtb rMb -skQ +fAY xtb xtb tvO @@ -81458,19 +81461,19 @@ fjr cpy cpy cpy -xDz -bAn +fGw +lHk crH -yjD +ksO +qFc +vBV +tnU +bdY +eiC mIa -rSQ -iaD -rmk -mlY -cqL -oQV -ncs -vmM +xwK +hcd +xHO fjr fjr cpy @@ -81543,7 +81546,7 @@ bYV wIr wIr bZV -pSj +mpF wIr wIr rZK @@ -81570,7 +81573,7 @@ srk vLI wIr bPJ -djL +wLw wfP wfP wfP @@ -81686,18 +81689,18 @@ cpy cpy cpy cpy -dBQ +gwH sSn -xhz +jYc hhD -xhz -nHM -oMO +jYc +sPU +pUf hhD hhD -lQA -fRw -fUc +vqF +muB +lPM fjr cpy cpy @@ -81797,7 +81800,7 @@ oIu tOo bPJ bPJ -oCW +fZo wfP wfP wfP @@ -81913,19 +81916,19 @@ cpy cpy cpy fjr -lRi +nQL ugV ugV ugV -xyU -tSF +qrG +bRv ugV ugV -pqk -tIQ +epe +bHk ugV ugV -gUT +geI cpy cpy cpy @@ -82144,16 +82147,16 @@ hNR ugV xRK emH -uQa -gLy -aAX +hNt +aQf +qPm emH -uvJ -fvc +oXd +nHl fjr fjr fjr -prs +ldr cpy fjr fjr @@ -82376,7 +82379,7 @@ sjy sjy sjy sjy -evQ +pXR tNr fjr fjr @@ -82811,7 +82814,7 @@ yjp beB beB uPk -vnB +mwL beB wrC wrC @@ -82819,10 +82822,10 @@ xXR emH emH tNr -dBQ +gwH fjr xRK -uuy +rJB sjy uxn ckT @@ -83259,7 +83262,7 @@ ugV ugV crH beB -hZf +eLK tmC tDQ ueR @@ -83275,7 +83278,7 @@ wrC tvO jDO xRK -qxe +xlU sjy sjy sjy @@ -83505,7 +83508,7 @@ crH sjy sjy mhn -sDY +hIz kTm oHR ort @@ -83615,7 +83618,7 @@ eso sCi jas nQu -tms +uYk jas cpy cpy @@ -83842,7 +83845,7 @@ vpe wHz jas nQu -bWv +wbo jas cpy cpy @@ -84385,14 +84388,14 @@ pSK kgR kwg anb -hnG +bJY jSU xDu xDu xDu raI jSU -mji +osE ijE nTx eHn @@ -84403,10 +84406,10 @@ vBI nTx vNy mvR -jqV +bNy jyx xmN -fTK +lUU kgQ mLO fIr @@ -84434,7 +84437,7 @@ hnk xGf xGf xiG -dtl +qpJ fCl yca jfO @@ -84749,7 +84752,7 @@ hBp eso vpe jas -bWv +wbo nQu jas cpy @@ -84888,7 +84891,7 @@ hnk lxL lxL tVN -dtl +qpJ gDz jfO xXo @@ -84976,7 +84979,7 @@ cwe vpe oCs jas -bWv +wbo nQu jas cpy @@ -85082,7 +85085,7 @@ beB beB beB uam -vOR +xBi wrC sgT sgT @@ -85203,7 +85206,7 @@ yak qbB snR jas -tms +uYk nQu jas cpy @@ -85832,9 +85835,9 @@ jmG jmG jmG khd -rRc +eNc wZy -iuQ +teO khd aZj aZj @@ -85856,7 +85859,7 @@ bYV wIr wIr bZV -pSj +mpF wIr wIr rZK @@ -85990,7 +85993,7 @@ jyx uuA wrC vpO -vPA +kdw wrC sgT sgT @@ -86043,7 +86046,7 @@ wdy rMF jmG six -swf +cIo jmG jmG jmG @@ -86212,7 +86215,7 @@ crH wrC wrC wrC -tGm +xHz wrC wrC wrC @@ -86459,7 +86462,7 @@ sjy sjy sjy nAu -vil +iTf sjy sjy sjy @@ -86481,7 +86484,7 @@ lVp lVp lVp qVb -tQE +eum lVp kqb kqb @@ -86778,7 +86781,7 @@ nax nax fki jas -ddq +mJG eso eso eso @@ -86896,7 +86899,7 @@ tpz tGY uiO uwn -uSI +tQe itl aVD oLu @@ -86931,13 +86934,13 @@ ucM cpJ cLi ycv -frc +qfP ycv uKa ucM uKa ycv -frc +qfP ycv uKa uKa @@ -86948,12 +86951,12 @@ eSY tPs tPs jUI -vLW +cSf grP jze grP grP -vLW +cSf xNd iYt oFU @@ -86976,17 +86979,17 @@ grP aVA xNd xNd -vLW +cSf oFU tPs tPs tPs oFU -pvE +gpr tZc pOs tZc -vKm +eUz vUe hoy qzU @@ -87013,8 +87016,8 @@ xFv bxr iqV iqV -xHj -gvU +oda +jVV boQ vpe tuK @@ -87135,7 +87138,7 @@ nTx nTx nTx mvR -qPS +kUM oGp xxs eUh @@ -87616,7 +87619,7 @@ kqb kqb kqb mUS -nmL +fWH kqb kqb kqb @@ -88086,7 +88089,7 @@ bmg xXg jmG gEk -swf +cIo jmG jmG jmG @@ -88353,7 +88356,7 @@ xzK wIr wIr vLI -nXI +jOx wIr wIr xzK @@ -88488,7 +88491,7 @@ wKg wKg wKg vQT -fmg +cjy wKg wKg wKg @@ -88952,14 +88955,14 @@ opl opl kEN ben -gLw +xGd ygw ndb vbX tjM ndb ygw -kfa +oMt ogf nLD xen @@ -89652,7 +89655,7 @@ sjy kqb kqb mUS -rUJ +jxT kqb kqb pGl @@ -89902,7 +89905,7 @@ cpy tTD tTD lpi -vmp +noH sCr uew xMO @@ -89935,7 +89938,7 @@ jwM ild ild vBd -nZn +kua jmG fEY fWG @@ -90162,7 +90165,7 @@ ild uqP wjF ngL -nlO +oHW jmG fEY fWG @@ -90325,7 +90328,7 @@ ulZ ulZ wIE mVi -oik +mxg tAu hre oTY @@ -90820,7 +90823,7 @@ vNk vNk vNk vKl -vWp +fdb vNk vNk vNk @@ -90878,7 +90881,7 @@ lHS phq aam jas -wFC +wcM aEF jas cpy @@ -91105,7 +91108,7 @@ phq phq qYq jas -bWv +wbo aEF jas cpy @@ -91332,7 +91335,7 @@ eJd ptU jas jas -bWv +wbo aEF jas cpy @@ -91417,7 +91420,7 @@ fSf cZH jDN mqx -amy +nJW hvh eZF lfj @@ -91450,12 +91453,12 @@ xjF xFp dHF xZP -mkT +gYH xAZ xAZ xOw ykT -rlE +yja buI mSe nYF @@ -91465,12 +91468,12 @@ mSe nDn hYV mZj -rlE +yja xAZ qqx pag bia -mkT +gYH lDE tTD tTD @@ -91485,7 +91488,7 @@ cpy cpy rnB plN -rEo +pOa jKb tTD rnB @@ -91729,12 +91732,12 @@ nYW vkD ngx sSG -lkr +ctu cXf qDw ngx wNp -lkr +ctu xgA bsG vOT @@ -91779,8 +91782,8 @@ qHr vpe vxa ppU -bWv -bWv +wbo +wbo nQu nQu nQu @@ -92007,13 +92010,13 @@ vpe ahZ jas jas -mwn -xxz +jfP +mKZ pYO pYO -afa -afa -nUF +apC +apC +tWv jas jas cpy @@ -92113,7 +92116,7 @@ eJR iDH eJR rtX -lUy +wvX tJm vGp vGp @@ -92219,10 +92222,10 @@ xxq xzK jas jas -nZx +bKj vpe eso -gRi +hZC coR jas sjA @@ -92334,7 +92337,7 @@ alI alI alI wDj -rgW +cPg eJR kbH iHD @@ -92464,7 +92467,7 @@ ctE jas aEF nQu -wFC +wcM jas cpy cpy @@ -92637,7 +92640,7 @@ uQr wpd hMT hFG -mfS +qEr osV qAt wMq @@ -92691,7 +92694,7 @@ ctE jas kFd nQu -jwO +qIt jas cpy cpy @@ -92822,7 +92825,7 @@ gUi jHi fkj mVi -oik +mxg tAu mHU fkj @@ -92916,9 +92919,9 @@ ctE ctE ctE jas -wFL +wHX nQu -hbO +sZz jas cpy cpy @@ -93143,7 +93146,7 @@ ctE ctE ctE jas -wFL +wHX nQu fZA jas @@ -93269,7 +93272,7 @@ xAw pKX pKX kIZ -laB +jro pKX pKX pKX @@ -93474,7 +93477,7 @@ iJE rtX vGB ncz -otC +kKj pgp umR qSH @@ -93511,7 +93514,7 @@ gdO gdO gdO ayn -xNw +wHY gdO gdO tTK @@ -93924,7 +93927,7 @@ wDj wDj wDj vGB -wPA +moQ vGB wDj qSH @@ -94462,7 +94465,7 @@ vOT xgA acE kEQ -vyk +meK otS fWG cpy @@ -94626,7 +94629,7 @@ xuk kHP wxZ ldg -tqG +vDT kSb nIa jvu @@ -95103,7 +95106,7 @@ niE seA tNC fyD -pLN +eLl sBy qqk tMl @@ -95288,7 +95291,7 @@ sOL rlB eJR rtX -lUy +wvX nTp qSH qSH @@ -95550,14 +95553,14 @@ hYw hKJ mjT eOl -unE +gfl mMQ mWF njH psT poQ pzs -pMt +rEj vyH rYD aNP @@ -95764,7 +95767,7 @@ tDS tDS thc kIZ -laB +jro thc tDS tDS @@ -96046,7 +96049,7 @@ oNd uuD xXg imT -cgG +ojA ffb xhD bsG @@ -96220,7 +96223,7 @@ dEy iss lbA ufs -wSz +xvj sQb lOk mqv @@ -96648,7 +96651,7 @@ dRL dRL dRL rJf -vCv +gZv rJf dRL dRL @@ -97399,9 +97402,9 @@ uuD uuD uuD uuD -jdI +mFO rWP -xRI +aWd uuD uuD uuD @@ -97673,7 +97676,7 @@ wQa dkX rBd nPb -iFe +lfA rVR hIf rqn @@ -97865,7 +97868,7 @@ wrY xvl xvl lot -wOq +vdz xvl xvl xWO @@ -98080,9 +98083,9 @@ cUG cUG cUG cUG -tlM +ntk wao -xsi +jwP cUG cUG cUG @@ -98489,7 +98492,7 @@ svf rEc wWV kAj -azJ +kcY tgj svo bqo @@ -98537,7 +98540,7 @@ tum tum pRH gEd -iBd +csC pRH pRH pRH @@ -98580,7 +98583,7 @@ hIf qvA qvA bYx -jpb +vzz hbu qvA qvA @@ -99413,7 +99416,7 @@ gdO gdO psC ayn -xNw +wHY psC gdO tTK @@ -99446,7 +99449,7 @@ nKK fzf sHY wao -mEn +jIA tID uaI wqA @@ -99528,7 +99531,7 @@ tiQ joK cPU daL -fpS +xcU dLz xcU edk @@ -99843,7 +99846,7 @@ vGp vGp vGp ncz -otC +kKj pgp umR gMG @@ -99870,7 +99873,7 @@ bHF kpN seA ojW -hPT +xoC gAU lBu ipN @@ -99907,7 +99910,7 @@ xCY bnf cUG cUG -xsi +jwP cUG cUG cUG @@ -100593,7 +100596,7 @@ inA xjO hMz fac -lKH +gKa spW uwT uwT @@ -101002,7 +101005,7 @@ gdO gdO gdO ayn -xNw +wHY gdO gdO gdO @@ -101907,12 +101910,12 @@ aoi aoi dcc vxG -vxT +aYE vCG vUj puJ pej -dFE +uBd lDE rnB rnB @@ -103711,9 +103714,9 @@ dqn dic uDM tth -eTw +nPn lVs -qBH +bUy lAn krH nTp @@ -103937,10 +103940,10 @@ tCR fTm uKQ uKQ -vuF -fbY +rrB +srE qUL -tRu +iQt lAn krH nTp @@ -104165,9 +104168,9 @@ vbk xNu vjs tIF -rAt +ifg gOZ -cJc +hZc lAn krH nTp diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index 4d94b662c589..becac81a1897 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -283,6 +283,9 @@ /area/lv624/ground/caves/west_caves) "abH" = ( /obj/effect/landmark/good_item, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "abI" = ( @@ -398,7 +401,7 @@ "aco" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) "acp" = ( /turf/closed/wall/cult, @@ -506,7 +509,7 @@ /obj/structure/tunnel{ id = "hole1" }, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) "acL" = ( /obj/item/tool/shovel, @@ -581,6 +584,9 @@ /area/lv624/lazarus/crashed_ship_containers) "acY" = ( /obj/effect/landmark/hunter_primary, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "acZ" = ( @@ -1119,8 +1125,10 @@ }, /area/lv624/ground/barrens/containers) "afu" = ( -/obj/structure/machinery/floodlight, /obj/item/ammo_casing, +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/plating{ dir = 9; icon_state = "warnplate" @@ -1154,7 +1162,9 @@ }, /area/lv624/ground/barrens/central_barrens) "afy" = ( -/obj/structure/machinery/floodlight, +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/plating{ dir = 5; icon_state = "warnplate" @@ -1205,11 +1215,6 @@ /obj/item/ammo_casing, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) -"afM" = ( -/obj/structure/machinery/floodlight, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/lv624/ground/barrens/central_barrens) "afN" = ( /obj/item/ammo_casing, /turf/open/floor/plating, @@ -1389,10 +1394,6 @@ "agA" = ( /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/south_east_caves) -"agC" = ( -/obj/structure/machinery/floodlight, -/turf/open/floor/plating, -/area/lv624/ground/barrens/central_barrens) "agD" = ( /obj/structure/surface/table/reinforced{ dir = 8; @@ -1407,8 +1408,10 @@ /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) "agF" = ( -/obj/structure/machinery/floodlight, /obj/item/ammo_casing, +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) "agG" = ( @@ -1585,7 +1588,9 @@ }, /area/lv624/ground/barrens/west_barrens/ceiling) "ahM" = ( -/obj/structure/machinery/floodlight, +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -1625,7 +1630,9 @@ }, /area/lv624/ground/barrens/central_barrens) "ahT" = ( -/obj/structure/machinery/floodlight, +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -2580,6 +2587,13 @@ /obj/structure/flora/jungle/alienplant1, /turf/open/gm/river, /area/lv624/ground/river/west_river) +"amI" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "amK" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -2707,6 +2721,10 @@ icon_state = "whiteyellowcorner" }, /area/lv624/lazarus/corporate_dome) +"anM" = ( +/obj/structure/flora/bush/ausbushes/var3/sparsegrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "anP" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/grass/grass1, @@ -4034,7 +4052,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = -6; pixel_y = 7 @@ -5844,7 +5862,7 @@ /area/lv624/ground/river/west_river) "aBo" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "Robotics Landing Zone" + name = "LZ2: Robotics Landing Zone" }, /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz2) @@ -7922,6 +7940,12 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_jungle) +"aIA" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "aIB" = ( /obj/structure/closet, /turf/open/floor{ @@ -7929,6 +7953,17 @@ icon_state = "purple" }, /area/lv624/lazarus/sleep_female) +"aIE" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 11; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "aIH" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/clothing/mask/cigarette/cigar, @@ -8555,7 +8590,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aLz" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "Nexus Landing Zone" + name = "LZ1: Nexus Landing Zone" }, /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz1) @@ -9194,12 +9229,6 @@ /obj/effect/landmark/crap_item, /obj/effect/landmark/crap_item, /obj/item/clothing/suit/armor/vest/security, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = 25; - pixel_y = 5 - }, /turf/open/floor{ icon_state = "cult" }, @@ -9531,6 +9560,14 @@ icon_state = "chapel" }, /area/lv624/lazarus/chapel) +"aPM" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "aPN" = ( /obj/structure/window_frame/colony/reinforced, /turf/open/floor/plating, @@ -10444,6 +10481,12 @@ /obj/item/shard, /turf/open/floor/plating, /area/lv624/lazarus/captain) +"aTy" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "aTB" = ( /obj/structure/machinery/light/small, /turf/open/floor{ @@ -11150,32 +11193,11 @@ /obj/item/ore/silver, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) -"aWb" = ( -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = 25; - pixel_y = 5 - }, -/obj/structure/machinery/door_control{ - id = "secure_outer_blast"; - name = "Secure Outer Doors"; - pixel_x = 25; - pixel_y = -5 - }, -/turf/open/floor/greengrid, -/area/lv624/lazarus/secure_storage) "aWc" = ( /obj/structure/computerframe{ anchored = 1 }, -/obj/structure/machinery/door_control{ - id = "secure_outer_blast"; - name = "Secure Outer Doors"; - pixel_x = 25; - pixel_y = -5 - }, -/turf/open/floor/greengrid, +/turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "aWd" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, @@ -11293,24 +11315,7 @@ /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) -"aWu" = ( -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "secure_inner_blast"; - layer = 3.3; - name = "\improper Secure Armory Blast Door"; - unacidable = 1 - }, -/turf/open/floor/greengrid, -/area/lv624/lazarus/secure_storage) "aWv" = ( -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "secure_outer_blast"; - layer = 3.3; - name = "\improper Secure Armory Blast Door"; - unacidable = 1 - }, /turf/open/floor/plating{ icon_state = "platebotc" }, @@ -11910,6 +11915,11 @@ icon_state = "red" }, /area/lv624/lazarus/security) +"aYI" = ( +/turf/open/gm/dirt{ + icon_state = "desert0" + }, +/area/lv624/ground/caves/south_west_caves) "aYJ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/trash/chips, @@ -12265,6 +12275,13 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"bak" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "bav" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/up, /turf/open/gm/dirt, @@ -12343,6 +12360,29 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/west_central_jungle) +"bcb" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) +"bcU" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) +"bdu" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "bdL" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal{ @@ -12413,9 +12453,21 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"bje" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "bkG" = ( /turf/open/gm/coast/beachcorner/north_west, /area/lv624/ground/river/central_river) +"bkK" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "bkP" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -12433,7 +12485,7 @@ "bnz" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; - name = "\improper Corporate Liason" + name = "\improper Corporate Liaison" }, /turf/open/floor{ icon_state = "white" @@ -12443,6 +12495,12 @@ /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"bnM" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "bnX" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/coast/beachcorner/south_west, @@ -12475,6 +12533,10 @@ /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"brC" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "bsR" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/south_west_jungle) @@ -12547,6 +12609,17 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) +"bvj" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) +"bvS" = ( +/obj/structure/flora/bush/ausbushes/var3/ywflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) +"bvX" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "bwc" = ( /turf/open/gm/coast/beachcorner2/north_east, /area/lv624/ground/barrens/west_barrens) @@ -12557,6 +12630,12 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"bxb" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "byl" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -12600,6 +12679,14 @@ "bBu" = ( /turf/open/gm/coast/beachcorner2/south_west, /area/lv624/ground/jungle/west_jungle) +"bBT" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "bCe" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/south_east_jungle) @@ -12613,6 +12700,14 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"bEj" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "bEq" = ( /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/barrens/south_eastern_barrens) @@ -12666,6 +12761,12 @@ /obj/effect/landmark/corpsespawner/wygoon, /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) +"bJQ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "bLs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, @@ -12702,6 +12803,15 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"bOm" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "bOy" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -12716,6 +12826,17 @@ }, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_east_jungle) +"bPE" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"bQz" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "bQA" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -12827,6 +12948,10 @@ icon_state = "white" }, /area/lv624/lazarus/medbay) +"cdw" = ( +/obj/effect/landmark/objective_landmark/science, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "cdF" = ( /obj/effect/landmark/nightmare{ insert_tag = "lv-centralcaves" @@ -12842,6 +12967,11 @@ "cfD" = ( /turf/closed/wall/r_wall/unmeltable, /area/lv624/lazarus/quartstorage/outdoors) +"cfL" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/gm/grass/grass1/weedable, +/area/lv624/ground/caves/north_east_caves) "cfN" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/north_jungle) @@ -12884,6 +13014,16 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) +"chi" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "cij" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -12913,6 +13053,13 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"clO" = ( +/obj/effect/landmark/crap_item, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "cmf" = ( /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, @@ -12935,6 +13082,12 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"cop" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "cpQ" = ( /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/caves/sand_temple) @@ -12953,6 +13106,14 @@ /obj/structure/flora/jungle/vines/light_1, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/north_west_jungle) +"cqC" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "cqE" = ( /obj/structure/barricade/wooden, /obj/structure/flora/jungle/vines/light_2, @@ -12961,6 +13122,23 @@ icon_state = "warning" }, /area/lv624/lazarus/landing_zones/lz1) +"cqH" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"cqN" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"crn" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "crF" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /obj/structure/flora/jungle/vines/heavy, @@ -12993,13 +13171,17 @@ icon_state = "desert_dug" }, /area/lv624/ground/barrens/west_barrens) +"cxi" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "cys" = ( /obj/structure/foamed_metal, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_central_jungle) "czq" = ( /obj/effect/landmark/objective_landmark/science, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) "czu" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, @@ -13047,6 +13229,11 @@ "cCr" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_jungle) +"cCP" = ( +/turf/open/gm/dirt{ + icon_state = "desert1" + }, +/area/lv624/ground/caves/south_west_caves) "cDr" = ( /obj/structure/girder, /turf/open/gm/grass/grass1, @@ -13071,6 +13258,12 @@ /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"cEi" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "cEn" = ( /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, @@ -13083,6 +13276,12 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"cHW" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "cIL" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, @@ -13095,6 +13294,9 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "cJw" = ( @@ -13130,6 +13332,12 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/river/west_river) +"cMG" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "cNH" = ( /obj/structure/surface/rack, /obj/item/storage/box/beakers, @@ -13155,6 +13363,10 @@ "cPV" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"cQB" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "cQJ" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -13180,6 +13392,12 @@ /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"cSL" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "cTi" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, @@ -13201,6 +13419,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_nexus_road) +"cWs" = ( +/obj/structure/flora/bush/ausbushes/var3/sunnybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "cXd" = ( /obj/effect/landmark/monkey_spawn, /obj/structure/flora/jungle/vines/heavy, @@ -13228,6 +13450,14 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/mineral/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"daY" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "dbA" = ( /obj/structure/xenoautopsy/tank, /turf/open/shuttle{ @@ -13264,7 +13494,7 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/scientist, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) "dhp" = ( /obj/structure/flora/bush/ausbushes/reedbush, @@ -13315,9 +13545,18 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"dmT" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "dmZ" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_east_jungle) +"doe" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "dop" = ( /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, @@ -13375,6 +13614,13 @@ icon_state = "green" }, /area/lv624/lazarus/hydroponics) +"dtr" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "dvf" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -13437,6 +13683,31 @@ }, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/caves/sand_temple) +"dzM" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) +"dAu" = ( +/obj/effect/landmark/crap_item, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"dBS" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"dCD" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "dCL" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2 @@ -13481,6 +13752,9 @@ "dFz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "dGc" = ( @@ -13494,6 +13768,10 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"dHg" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "dHo" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, @@ -13504,6 +13782,18 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/medbay) +"dIj" = ( +/obj/structure/flora/bush/ausbushes/reedbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"dIu" = ( +/obj/structure/flora/bush/ausbushes/genericbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) +"dIv" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "dID" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor/strata{ @@ -13525,6 +13815,10 @@ "dKg" = ( /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"dKl" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "dLd" = ( /obj/structure/bookcase, /obj/item/book/manual/research_and_development, @@ -13536,6 +13830,13 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"dLm" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "dLn" = ( /obj/effect/acid_hole, /turf/closed/wall/r_wall, @@ -13546,9 +13847,19 @@ }, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/east_jungle) +"dLW" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "dLY" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"dMc" = ( +/obj/structure/flora/jungle/planttop1, +/turf/open/gm/dirtgrassborder/south, +/area/lv624/ground/jungle/south_central_jungle) "dMF" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -13577,11 +13888,19 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"dOb" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/angel, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "dOf" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/landmark/crap_item, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"dOA" = ( +/obj/structure/flora/bush/ausbushes/grassybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "dOC" = ( /obj/structure/kitchenspike, /obj/effect/decal/cleanable/blood, @@ -13640,12 +13959,18 @@ /area/lv624/lazarus/crashed_ship_containers) "dWM" = ( /obj/effect/landmark/monkey_spawn, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) "dXq" = ( /obj/structure/platform_decoration/mineral/sandstone/runed, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"dYx" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "dYE" = ( /obj/structure/fence, /turf/open/gm/dirt, @@ -13669,6 +13994,14 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) +"eaI" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "eaJ" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -13678,10 +14011,21 @@ icon_state = "bot" }, /area/lv624/lazarus/landing_zones/lz1) +"ebr" = ( +/turf/open/gm/dirtgrassborder/east, +/area/lv624/ground/jungle/south_central_jungle) "ebS" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/colony/south_nexus_road) +"ecn" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "ecy" = ( /turf/closed/wall/sulaco, /area/lv624/lazarus/crashed_ship_containers) @@ -13708,9 +14052,27 @@ "efp" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"eft" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "efX" = ( /turf/open/gm/coast/east, /area/lv624/ground/river/east_river) +"egc" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) +"egU" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "ehy" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "Hydroponics" @@ -13742,6 +14104,14 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_jungle) +"ejp" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "ejx" = ( /obj/structure/disposalpipe/segment, /obj/structure/window/framed/colony, @@ -13773,6 +14143,22 @@ icon_state = "green" }, /area/lv624/lazarus/hydroponics) +"elp" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) +"enn" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "eny" = ( /obj/structure/flora/grass/tallgrass/jungle, /turf/open/gm/grass/grass1, @@ -13787,6 +14173,10 @@ icon_state = "whitebluecorner" }, /area/lv624/lazarus/medbay) +"eoW" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "epG" = ( /obj/structure/showcase, /obj/structure/window/reinforced{ @@ -13816,6 +14206,10 @@ icon_state = "whitebluefull" }, /area/lv624/lazarus/medbay) +"eqS" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "erx" = ( /turf/open/gm/coast/beachcorner/south_east, /area/lv624/ground/jungle/west_jungle) @@ -13830,6 +14224,10 @@ icon_state = "cult" }, /area/lv624/ground/caves/south_west_caves) +"etU" = ( +/obj/structure/flora/bush/ausbushes/var3/fernybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "euh" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/gm/dirt, @@ -13988,6 +14386,12 @@ icon_state = "floor4" }, /area/lv624/lazarus/crashed_ship_containers) +"eMe" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "eNK" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/lv624/ground/jungle/south_east_jungle) @@ -14025,6 +14429,9 @@ /obj/structure/largecrate/random, /turf/open/floor, /area/lv624/lazarus/landing_zones/lz1) +"eQL" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "eSg" = ( /obj/structure/flora/jungle/vines/heavy, /turf/closed/wall/strata_ice/jungle, @@ -14045,6 +14452,10 @@ icon_state = "cult" }, /area/lv624/ground/caves/south_west_caves) +"eYb" = ( +/obj/structure/flora/bush/ausbushes/var3/sunnybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "eYh" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, @@ -14058,6 +14469,10 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/river, /area/lv624/ground/river/east_river) +"eZg" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "eZC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -14089,6 +14504,16 @@ /obj/structure/flora/jungle/planttop1, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/east_jungle) +"fcQ" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -5; + pixel_y = -5; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "fdl" = ( /turf/open/floor, /area/lv624/lazarus/hydroponics) @@ -14195,12 +14620,25 @@ icon_state = "asteroidfloor" }, /area/lv624/lazarus/corporate_dome) +"fmV" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) +"fmW" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "fpn" = ( /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/barrens/east_barrens) "fqh" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/east_jungle) +"fqi" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "fqM" = ( /obj/structure/machinery/power/apc{ start_charge = 0 @@ -14210,6 +14648,12 @@ icon_state = "asteroidwarning" }, /area/lv624/ground/colony/telecomm/sw_lz2) +"frV" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "fsa" = ( /obj/structure/surface/table, /turf/open/floor{ @@ -14217,6 +14661,12 @@ icon_state = "barber" }, /area/lv624/lazarus/kitchen) +"fsc" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "fsu" = ( /obj/structure/machinery/light{ dir = 8 @@ -14312,10 +14762,18 @@ icon_state = "warning" }, /area/lv624/lazarus/landing_zones/lz1) +"fDE" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "fDO" = ( /obj/structure/flora/jungle/alienplant1, /turf/open/gm/river, /area/lv624/ground/barrens/west_barrens) +"fDT" = ( +/turf/open/gm/dirt{ + icon_state = "desert_dug" + }, +/area/lv624/ground/caves/south_west_caves) "fEn" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, @@ -14356,6 +14814,11 @@ icon_state = "asteroidfloor" }, /area/lv624/ground/colony/telecomm/cargo) +"fGn" = ( +/obj/effect/decal/grass_overlay/grass1, +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "fGO" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -14390,12 +14853,24 @@ /obj/structure/window/framed/colony/reinforced, /turf/open/floor, /area/lv624/lazarus/medbay) +"fIW" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "fJQ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"fKc" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) +"fLh" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/angel, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "fMl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -14421,6 +14896,14 @@ "fQL" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) +"fRD" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) +"fRU" = ( +/obj/structure/flora/bush/ausbushes/genericbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "fSX" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/east_jungle) @@ -14440,6 +14923,14 @@ "fTM" = ( /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) +"fTN" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"fUj" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "fXr" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, @@ -14453,6 +14944,10 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"fYG" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "fZO" = ( /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/north_west_jungle) @@ -14486,6 +14981,16 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_central_jungle) +"gcB" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "gcI" = ( /obj/effect/landmark/crap_item, /turf/open/shuttle{ @@ -14571,6 +15076,16 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"gnt" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -5; + pixel_y = -5; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "gnx" = ( /turf/open/floor{ icon_state = "white" @@ -14580,6 +15095,10 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/colony/north_nexus_road) +"gos" = ( +/obj/structure/flora/bush/ausbushes/var3/fernybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "gpC" = ( /obj/structure/flora/jungle/vines/light_2, /obj/structure/flora/jungle/vines/heavy, @@ -14598,10 +15117,21 @@ /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"grW" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "grZ" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) +"gsq" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "gss" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/shuttle{ @@ -14641,6 +15171,17 @@ /obj/structure/flora/jungle/vines/heavy, /turf/closed/wall/mineral/sandstone/runed/decor, /area/lv624/ground/jungle/south_west_jungle/ceiling) +"gvm" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) +"gvr" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "gwP" = ( /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) @@ -14659,6 +15200,12 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"gze" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "gzo" = ( /turf/open/gm/dirt{ icon_state = "desert3" @@ -14670,6 +15217,10 @@ icon_state = "dark" }, /area/lv624/lazarus/quartstorage) +"gzH" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "gzW" = ( /obj/effect/landmark/hunter_secondary, /turf/open/gm/dirt, @@ -14745,12 +15296,22 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"gPu" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "gPN" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/barrens/south_eastern_barrens) "gQr" = ( /turf/open/gm/coast/beachcorner/south_east, /area/lv624/ground/caves/sand_temple) +"gRk" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "gRm" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/dirtgrassborder/north, @@ -14758,6 +15319,12 @@ "gRx" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/south_medbay_road) +"gTj" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "gTu" = ( /obj/structure/filingcabinet{ density = 0; @@ -14790,6 +15357,18 @@ "gUq" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/south_east_jungle) +"gVw" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"gVR" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "gWf" = ( /obj/structure/surface/rack, /obj/item/stack/sandbags/large_stack{ @@ -14805,6 +15384,12 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"gWE" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/floor/sandstone/runed, +/area/lv624/ground/caves/south_east_caves) "gWI" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -14830,6 +15415,16 @@ /obj/structure/prop/brazier, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/caves/sand_temple) +"han" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"hav" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "haN" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -14881,6 +15476,16 @@ icon_state = "asteroidwarning" }, /area/lv624/lazarus/landing_zones/lz2) +"hez" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "heC" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -14913,6 +15518,11 @@ }, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/west_jungle) +"hhs" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "hhv" = ( /turf/open/floor{ dir = 8; @@ -14928,6 +15538,12 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/colony/west_tcomms_road) +"hjo" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "hke" = ( /obj/structure/platform/mineral/sandstone/runed, /obj/structure/stairs/perspective{ @@ -14937,6 +15553,25 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"hkT" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"hmq" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"hmJ" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "hmK" = ( /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, @@ -14952,6 +15587,16 @@ icon_state = "bot" }, /area/lv624/ground/caves/north_central_caves) +"hpK" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "hpN" = ( /obj/structure/surface/table, /obj/effect/landmark/good_item, @@ -14987,6 +15632,15 @@ "hsc" = ( /turf/closed/wall/r_wall, /area/lv624/ground/river/central_river) +"htV" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "huH" = ( /obj/structure/flora/jungle/planttop1, /obj/structure/flora/jungle/vines/light_3, @@ -15006,6 +15660,13 @@ /obj/effect/decal/remains/xeno, /turf/open/gm/grass/grass1, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"hyF" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "hyK" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/grass/grass1, @@ -15041,6 +15702,10 @@ /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, /area/lv624/ground/colony/west_tcomms_road) +"hEe" = ( +/obj/effect/landmark/crap_item, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "hEl" = ( /obj/structure/flora/jungle/vines/light_2, /turf/closed/wall/strata_ice/jungle, @@ -15105,6 +15770,10 @@ }, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/east_jungle) +"hKP" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "hLu" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/south_central_jungle) @@ -15142,6 +15811,10 @@ /obj/item/clothing/under/colonist, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"hNT" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "hPV" = ( /obj/effect/decal/remains/xeno{ pixel_x = 31 @@ -15158,6 +15831,18 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"hRy" = ( +/turf/open/gm/dirt{ + icon_state = "desert3" + }, +/area/lv624/ground/caves/south_west_caves) +"hRB" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "hRI" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -15183,6 +15868,10 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_central_jungle) +"hTR" = ( +/obj/structure/flora/bush/ausbushes/var3/ywflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "hUs" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_west_jungle) @@ -15260,8 +15949,12 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"icd" = ( +/obj/structure/flora/bush/ausbushes/grassybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "idz" = ( -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = 6; pixel_y = 7 }, @@ -15288,10 +15981,24 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) +"ieN" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "ifk" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"ifr" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "ifF" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/jungle/south_east_jungle) @@ -15302,6 +16009,11 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"igN" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "ihS" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/lemon_lime{ @@ -15318,6 +16030,10 @@ /obj/effect/landmark/queen_spawn, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) +"ikA" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "ilf" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, @@ -15325,6 +16041,13 @@ /obj/structure/flora/jungle/planttop1, /turf/open/floor/plating, /area/lv624/lazarus/corporate_dome) +"ilF" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "ilO" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/device/flashlight/lantern{ @@ -15354,6 +16077,13 @@ }, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) +"isL" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "isR" = ( /obj/effect/landmark/objective_landmark/medium, /obj/structure/largecrate/random, @@ -15368,6 +16098,13 @@ icon_state = "asteroidwarning" }, /area/lv624/lazarus/landing_zones/lz2) +"iuf" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "iuO" = ( /turf/open/gm/dirtgrassborder{ icon_state = "desert3" @@ -15399,6 +16136,12 @@ icon_state = "multi_tiles" }, /area/lv624/ground/caves/sand_temple) +"iye" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "iyr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -15451,6 +16194,11 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/west_nexus_road) +"iDX" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "iFp" = ( /obj/structure/flora/jungle/vines/light_1, /obj/structure/barricade/wooden{ @@ -15461,10 +16209,19 @@ icon_state = "warning" }, /area/lv624/lazarus/landing_zones/lz1) +"iGf" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "iGn" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"iGx" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "iHQ" = ( /obj/structure/xenoautopsy/tank/broken, /turf/open/gm/dirt, @@ -15513,6 +16270,10 @@ /obj/structure/ore_box, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_west_barrens) +"iNJ" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "iOz" = ( /obj/structure/barricade/handrail/strata{ dir = 4 @@ -15554,6 +16315,14 @@ /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"iTQ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "iUm" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, @@ -15580,6 +16349,10 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/colony/west_nexus_road) +"iXX" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/angel, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "iYJ" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/grass/grass1, @@ -15612,6 +16385,12 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"jcn" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "jdi" = ( /obj/structure/flora/jungle/vines/heavy, /obj/structure/flora/jungle/vines/light_3, @@ -15624,10 +16403,30 @@ "jga" = ( /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) +"jgj" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) +"jgy" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "jgJ" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/colony/south_nexus_road) +"jhj" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "jhG" = ( /obj/structure/barricade/handrail/strata{ dir = 8 @@ -15651,6 +16450,12 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/dirt, /area/lv624/ground/colony/north_tcomms_road) +"jlt" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "jnG" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -15674,6 +16479,21 @@ icon_state = "whitebluecorner" }, /area/lv624/lazarus/corporate_dome) +"jpX" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"jqr" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "jrC" = ( /obj/structure/curtain/red, /turf/open/shuttle{ @@ -15698,6 +16518,12 @@ /obj/structure/cargo_container/lockmart/mid, /turf/open/floor, /area/lv624/ground/barrens/containers) +"jvQ" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "jwW" = ( /turf/open/floor/plating{ dir = 6; @@ -15773,6 +16599,19 @@ icon_state = "floor6" }, /area/lv624/ground/caves/sand_temple) +"jBl" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) +"jCO" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 13 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "jDY" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/limb, /turf/open/gm/dirt, @@ -15797,6 +16636,12 @@ /obj/structure/flora/bush/ausbushes/var3/brflowers, /turf/open/gm/dirt, /area/lv624/ground/jungle/south_west_jungle/ceiling) +"jGU" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "jGW" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/central_jungle) @@ -15820,6 +16665,16 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"jJg" = ( +/obj/structure/flora/bush/ausbushes/var3/sparsegrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) +"jKc" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "jKu" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /obj/structure/flora/jungle/vines/heavy, @@ -15849,6 +16704,12 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_central_jungle) +"jLY" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "jMk" = ( /obj/structure/lattice{ layer = 2.9 @@ -15864,6 +16725,12 @@ icon_state = "warnplate" }, /area/lv624/lazarus/engineering) +"jMD" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "jMH" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; @@ -15938,6 +16805,16 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/gm/dirt, /area/lv624/ground/jungle/north_west_jungle) +"jRL" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "jRM" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /obj/effect/landmark/lv624/fog_blocker, @@ -16000,6 +16877,20 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"jZX" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"kae" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "kbn" = ( /obj/structure/machinery/sensortower, /turf/open/floor{ @@ -16022,6 +16913,10 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/closed/wall/rock/brown, /area/lv624/ground/river/west_river) +"kdj" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "keS" = ( /turf/open/floor/plating, /area/lv624/ground/barrens/east_barrens/ceiling) @@ -16048,6 +16943,18 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/east_jungle) +"klD" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) +"kmH" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "kmP" = ( /obj/item/stool, /turf/open/gm/dirt, @@ -16067,6 +16974,12 @@ /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"kpx" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "kqx" = ( /obj/structure/flora/jungle/plantbot1, /obj/structure/flora/jungle/vines/light_3, @@ -16076,10 +16989,26 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"krs" = ( +/turf/open/gm/dirt{ + icon_state = "desert2" + }, +/area/lv624/ground/caves/south_west_caves) +"ksc" = ( +/obj/structure/flora/bush/ausbushes/var3/sunnybush{ + icon_state = "fernybush_2"; + pixel_y = 10 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "ksB" = ( /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/caves/sand_temple) +"ksM" = ( +/obj/structure/flora/bush/ausbushes/var3/sparsegrass, +/turf/open/gm/dirtgrassborder/south, +/area/lv624/ground/jungle/south_central_jungle) "ksQ" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical{ @@ -16102,6 +17031,12 @@ }, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/lv624/ground/barrens/south_eastern_barrens) +"ktr" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "kuP" = ( /obj/item/tool/hatchet{ pixel_x = 6; @@ -16132,12 +17067,25 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"kxv" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "kxI" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) "kyc" = ( /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/river/central_river) +"kyt" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "kyN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -16159,6 +17107,12 @@ icon_state = "green" }, /area/lv624/lazarus/hydroponics) +"kzn" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "kzu" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -16167,6 +17121,10 @@ /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"kzw" = ( +/obj/structure/flora/bush/ausbushes/var3/sunnybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "kzE" = ( /obj/structure/cargo_container/lockmart/right, /turf/open/floor, @@ -16198,6 +17156,14 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"kBq" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, +/area/lv624/ground/jungle/south_west_jungle) +"kCD" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "kFx" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, @@ -16220,6 +17186,10 @@ "kHU" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/caves/sand_temple) +"kIM" = ( +/obj/structure/flora/bush/ausbushes/reedbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "kJm" = ( /turf/open/gm/coast/beachcorner2/north_east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) @@ -16231,11 +17201,31 @@ /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"kKa" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) +"kLl" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "kLP" = ( /obj/structure/flora/jungle/plantbot1, /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"kML" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "kNm" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/grass/grass1, @@ -16302,6 +17292,12 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/colony/north_tcomms_road) +"kVG" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "kVP" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, @@ -16317,6 +17313,10 @@ }, /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz2) +"kWV" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "kWX" = ( /turf/open/floor{ dir = 8; @@ -16360,6 +17360,11 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"lav" = ( +/turf/open/gm/dirt{ + icon_state = "desert_dug" + }, +/area/lv624/ground/caves/west_caves) "laY" = ( /obj/structure/flora/jungle/vines/light_1, /turf/closed/wall/strata_ice/jungle, @@ -16367,12 +17372,23 @@ "lbd" = ( /turf/open/gm/coast/beachcorner/north_west, /area/lv624/ground/barrens/west_barrens) +"lbt" = ( +/obj/effect/landmark/hunter_primary, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "lbX" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 }, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/east_jungle) +"ldi" = ( +/obj/structure/flora/bush/ausbushes/grassybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "ldB" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 4 @@ -16390,6 +17406,24 @@ /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"lhE" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) +"lhH" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"liI" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "lju" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/central_river) @@ -16401,6 +17435,11 @@ /obj/structure/inflatable/popped/door, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"lkq" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "lkF" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -16412,6 +17451,10 @@ icon_state = "warning" }, /area/lv624/lazarus/landing_zones/lz1) +"lnr" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "lnK" = ( /obj/structure/flora/bush/ausbushes/genericbush, /obj/effect/landmark/nightmare{ @@ -16427,6 +17470,16 @@ /obj/effect/landmark/hunter_primary, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/jungle/south_east_jungle) +"loP" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/obj/structure/flora/bush/ausbushes/genericbush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "lpV" = ( /turf/open/floor/plating{ icon_state = "platebotc" @@ -16490,6 +17543,19 @@ "lyS" = ( /turf/closed/wall/r_wall/unmeltable, /area/lv624/lazarus/quartstorage) +"lyZ" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) +"lzf" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/obj/structure/flora/bush/ausbushes/grassybush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "lzE" = ( /turf/open/gm/dirt{ icon_state = "desert0" @@ -16499,6 +17565,12 @@ /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"lBl" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "lBq" = ( /obj/structure/barricade/handrail/strata, /obj/structure/barricade/handrail/strata{ @@ -16581,6 +17653,13 @@ icon_state = "dark" }, /area/lv624/lazarus/quartstorage) +"lIL" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "lIU" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/lv624/ground/jungle/south_central_jungle) @@ -16620,6 +17699,16 @@ icon_state = "warning" }, /area/lv624/lazarus/landing_zones/lz2) +"lKl" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "lKF" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/barrens/containers) @@ -16627,12 +17716,23 @@ /obj/structure/shuttle/engine/propulsion, /turf/open/gm/dirt, /area/lv624/ground/barrens/north_east_barrens) +"lLK" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "lLO" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"lLU" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/obj/structure/flora/bush/ausbushes/genericbush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "lNe" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor{ @@ -16640,6 +17740,16 @@ icon_state = "whitebluecorner" }, /area/lv624/lazarus/corporate_dome) +"lNG" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "lPJ" = ( /turf/open/gm/dirtgrassborder{ icon_state = "desert" @@ -16677,6 +17787,23 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"lSA" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) +"lSN" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) +"lTv" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "lTZ" = ( /obj/item/tool/shovel, /turf/open/gm/dirt, @@ -16698,6 +17825,25 @@ /obj/structure/prop/brazier/torch, /turf/closed/wall/rock/brown, /area/lv624/ground/caves/sand_temple) +"lUQ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"lWh" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"lWl" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "lWw" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -16710,6 +17856,12 @@ "lWO" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/south_west_jungle) +"lYt" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "lYB" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, @@ -16757,6 +17909,16 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) +"mca" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "mdQ" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/west_caves) @@ -16764,6 +17926,16 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"mfn" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "mfu" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 8 @@ -16778,6 +17950,12 @@ /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"mgi" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "mgs" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 8; @@ -16819,6 +17997,9 @@ icon_state = "grass1" }, /area/lv624/ground/barrens/south_eastern_barrens) +"mkn" = ( +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "mko" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/north, @@ -16889,6 +18070,11 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirt, /area/lv624/ground/river/east_river) +"mrg" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "mrQ" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -16981,6 +18167,12 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"mEo" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "mEw" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/south, @@ -16989,10 +18181,22 @@ /obj/effect/landmark/crap_item, /turf/open/gm/dirt, /area/lv624/ground/colony/north_nexus_road) +"mFZ" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "mGG" = ( /obj/structure/window_frame/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/corporate_dome) +"mHk" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "mHM" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/colony/south_medbay_road) @@ -17007,6 +18211,10 @@ icon_state = "whiteyellowcorner" }, /area/lv624/lazarus/corporate_dome) +"mJF" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "mKf" = ( /turf/open/gm/dirt, /area/lv624/ground/colony/west_nexus_road) @@ -17016,6 +18224,10 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"mLv" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "mMq" = ( /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, @@ -17035,6 +18247,12 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"mNl" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "mNz" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, @@ -17051,6 +18269,10 @@ /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"mOL" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "mPt" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/barrens/south_eastern_jungle_barrens) @@ -17127,6 +18349,10 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"mVr" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "mVK" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -17137,6 +18363,10 @@ "mWe" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/jungle/south_west_jungle) +"mWA" = ( +/obj/structure/flora/bush/ausbushes/var3/fernybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "mXR" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/colony/north_nexus_road) @@ -17167,10 +18397,22 @@ icon_state = "asteroidwarning" }, /area/lv624/lazarus/landing_zones/lz2) +"ndk" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "ndK" = ( /obj/structure/flora/jungle/vines/light_1, /turf/closed/wall/r_wall, /area/lv624/lazarus/corporate_dome) +"ner" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "nfD" = ( /obj/effect/landmark/survivor_spawner, /turf/open/gm/dirt, @@ -17185,6 +18427,14 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"nha" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "nhi" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, @@ -17281,6 +18531,15 @@ }, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"nrR" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "nsk" = ( /turf/open/gm/dirt, /area/lv624/ground/river/west_river) @@ -17378,6 +18637,12 @@ icon_state = "whiteyellowcorner" }, /area/lv624/lazarus/corporate_dome) +"nys" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "nzw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -17534,6 +18799,12 @@ /obj/structure/flora/grass/tallgrass/jungle, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"nLF" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "nLH" = ( /obj/structure/prop/tower, /turf/open/floor{ @@ -17555,6 +18826,16 @@ /obj/structure/flora/jungle/vines/heavy, /turf/closed/wall/r_wall, /area/lv624/lazarus/corporate_dome) +"nNu" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "nNw" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -17586,6 +18867,16 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"nQH" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "nRb" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -17597,6 +18888,13 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/caves/sand_temple) +"nRA" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 13 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "nSg" = ( /obj/structure/window/framed/colony, /turf/open/floor{ @@ -17646,6 +18944,10 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"nUZ" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "nVC" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -17776,10 +19078,21 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"ofg" = ( +/turf/open/gm/dirt{ + icon_state = "desert1" + }, +/area/lv624/ground/caves/west_caves) "ofv" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) +"ogJ" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "ogM" = ( /turf/open/gm/dirt, /area/lv624/ground/river/east_river) @@ -17793,6 +19106,21 @@ /obj/structure/flora/bush/ausbushes/var3/stalkybush, /turf/open/gm/dirt, /area/lv624/ground/river/central_river) +"oha" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"ohf" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 13 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "ohE" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/reagent_container/food/snacks/tomatomeat, @@ -17816,6 +19144,10 @@ "omK" = ( /turf/open/gm/coast/beachcorner/south_east, /area/lv624/ground/barrens/west_barrens) +"onP" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "onU" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/west_caves) @@ -17852,6 +19184,20 @@ icon_state = "asteroidwarning" }, /area/lv624/ground/colony/telecomm/cargo) +"osf" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 11; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"otl" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "oua" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, @@ -17871,9 +19217,21 @@ /obj/item/stack/sheet/wood, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"owe" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "owQ" = ( /turf/open/gm/coast/east, /area/lv624/ground/barrens/east_barrens) +"owZ" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "oxY" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -17935,6 +19293,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"oDE" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "oDY" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 4 @@ -17975,6 +19337,14 @@ "oFf" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/river/east_river) +"oFJ" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "oFO" = ( /obj/structure/platform_decoration/mineral/sandstone/runed{ dir = 1 @@ -18078,6 +19448,10 @@ icon_state = "loadingarea" }, /area/lv624/lazarus/landing_zones/lz1) +"oQm" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "oRH" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/north_east_jungle) @@ -18247,6 +19621,10 @@ }, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, /area/lv624/ground/barrens/south_eastern_barrens) +"pgc" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "pgf" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -18280,6 +19658,15 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"pkU" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "plf" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, @@ -18318,6 +19705,13 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"poX" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "ppR" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/colony/north_nexus_road) @@ -18365,6 +19759,11 @@ icon_state = "floor4" }, /area/lv624/lazarus/crashed_ship_containers) +"ptm" = ( +/turf/open/gm/dirt{ + icon_state = "desert0" + }, +/area/lv624/ground/caves/west_caves) "ptr" = ( /obj/structure/flora/bush/ausbushes/palebush, /turf/open/gm/grass/grass1, @@ -18414,10 +19813,18 @@ icon_state = "white" }, /area/lv624/lazarus/medbay) +"pAE" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "pBk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"pBH" = ( +/obj/structure/flora/jungle/plantbot1, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "pDh" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -18456,6 +19863,12 @@ /obj/effect/landmark/hunter_primary, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) +"pET" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "pEV" = ( /turf/open/floor/strata{ color = "#5e5d5d"; @@ -18465,10 +19878,24 @@ "pFe" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/south_east_jungle) +"pFB" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "pGD" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"pGL" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "pHn" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/gm/dirt, @@ -18484,6 +19911,12 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"pIl" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "pIy" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/north, @@ -18492,6 +19925,10 @@ /obj/structure/platform_decoration/mineral/sandstone/runed, /turf/open/floor/sandstone/runed, /area/lv624/ground/barrens/south_eastern_barrens) +"pIB" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "pIC" = ( /obj/effect/landmark/hunter_secondary, /turf/open/gm/grass/grass1, @@ -18525,6 +19962,15 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/colony/west_nexus_road) +"pLv" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "pMM" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/gm/dirtgrassborder/east, @@ -18565,12 +20011,16 @@ "pQn" = ( /obj/structure/machinery/door/airlock/almayer/generic{ locked = 1; - name = "\improper Corporate Liason" + name = "\improper Corporate Liaison" }, /turf/open/floor{ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"pQV" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "pRe" = ( /obj/item/storage/firstaid/adv/empty, /obj/structure/machinery/door_control{ @@ -18617,9 +20067,21 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"pRD" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "pRT" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/sand_temple) +"pSe" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "pSt" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, @@ -18634,6 +20096,15 @@ "pUm" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/east_caves) +"pVZ" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "pXI" = ( /obj/structure/flora/grass/tallgrass/jungle, /turf/open/gm/grass/grass1, @@ -18674,6 +20145,12 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"qdx" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "qdQ" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -18706,9 +20183,25 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/floor, /area/lv624/lazarus/landing_zones/lz2) +"qfK" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "qgA" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/south_east_jungle) +"qhl" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) +"qiL" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "qjf" = ( /turf/open/floor, /area/lv624/ground/barrens/containers) @@ -18738,6 +20231,14 @@ "qqJ" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/caves/sand_temple) +"qrH" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "qsM" = ( /obj/structure/platform/mineral/sandstone/runed{ dir = 1 @@ -18747,6 +20248,14 @@ "qtj" = ( /turf/open/gm/dirt, /area/lv624/ground/jungle/south_central_jungle) +"qtK" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "qtS" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -18931,6 +20440,12 @@ /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"qJE" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "qKl" = ( /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/colony/north_nexus_road) @@ -18973,6 +20488,14 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/caves/sand_temple) +"qPY" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "qRj" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, @@ -18983,6 +20506,16 @@ }, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"qSG" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"qSS" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "qSZ" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 @@ -19005,9 +20538,32 @@ "qUM" = ( /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/jungle/west_central_jungle) +"qVh" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) +"qVi" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) +"qVN" = ( +/obj/structure/flora/bush/ausbushes/ausbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "qWf" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/colony/west_nexus_road) +"qWI" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "qXo" = ( /obj/structure/surface/rack, /obj/item/explosive/grenade/incendiary/molotov, @@ -19024,6 +20580,10 @@ /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_west_jungle) +"qYS" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "qZv" = ( /obj/structure/flora/grass/tallgrass/jungle, /turf/open/gm/grass/grass1, @@ -19046,6 +20606,16 @@ icon_state = "desert1" }, /area/lv624/ground/barrens/west_barrens) +"rbs" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"rby" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "rck" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 5 @@ -19102,10 +20672,26 @@ /obj/structure/flora/jungle/vines/heavy, /turf/closed/wall/r_wall, /area/lv624/lazarus/corporate_dome) +"rgj" = ( +/obj/effect/decal/remains/xeno, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "rgQ" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"rhi" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "rit" = ( /turf/open/gm/coast/south, /area/lv624/ground/river/central_river) @@ -19126,10 +20712,37 @@ icon_state = "dark" }, /area/lv624/lazarus/engineering) +"rmt" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"rmW" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 11; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "rox" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"roQ" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"rpx" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "rpR" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/floor{ @@ -19185,6 +20798,9 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/wygoon, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) "rwB" = ( @@ -19198,6 +20814,11 @@ icon_state = "desert_dug" }, /area/lv624/ground/barrens/south_eastern_barrens) +"ryp" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "ryJ" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -19212,6 +20833,12 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"rze" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "rzT" = ( /obj/structure/flora/jungle/vines/light_3, /obj/item/stack/sheet/wood{ @@ -19234,6 +20861,16 @@ icon_state = "asteroidfloor" }, /area/lv624/lazarus/corporate_dome) +"rAU" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "rBF" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, @@ -19252,6 +20889,13 @@ "rCV" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_central_jungle) +"rER" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/obj/structure/flora/bush/ausbushes/reedbush, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "rGd" = ( /obj/structure/girder/displaced, /obj/structure/shuttle/engine/propulsion, @@ -19270,6 +20914,16 @@ }, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"rGE" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 6; + pixel_y = -8; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "rGW" = ( /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirtgrassborder/south, @@ -19283,11 +20937,34 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"rHV" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"rIc" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"rIm" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "rIq" = ( /obj/structure/flora/jungle/vines/light_1, /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"rID" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "rJd" = ( /obj/structure/bed/alien{ color = "#aba9a9" @@ -19380,6 +21057,13 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/north_tcomms_road) +"rTT" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"rUX" = ( +/obj/structure/flora/bush/ausbushes/genericbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "rVH" = ( /obj/structure/transmitter/colony_net{ phone_category = "Lazarus Landing"; @@ -19392,6 +21076,12 @@ icon_state = "brown" }, /area/lv624/lazarus/comms) +"rWs" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "rWW" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/river, @@ -19401,6 +21091,11 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"rYe" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "rYA" = ( /obj/structure/platform/mineral/sandstone/runed{ dir = 1 @@ -19433,6 +21128,12 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"scs" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "sdh" = ( /obj/structure/barricade/sandbags/wired, /turf/open/floor/wood, @@ -19466,6 +21167,16 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/lv624/ground/colony/north_nexus_road) +"sgU" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) +"shb" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "shq" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 10 @@ -19496,6 +21207,15 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"snc" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "sne" = ( /obj/item/ammo_casing/bullet{ icon_state = "cartridge_10_1" @@ -19517,10 +21237,26 @@ icon_state = "cult" }, /area/lv624/lazarus/armory) +"soz" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) +"soY" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "spm" = ( /obj/structure/flora/jungle/alienplant1, /turf/open/gm/river, /area/lv624/ground/barrens/east_barrens) +"spK" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "sqj" = ( /turf/open/gm/river, /area/lv624/ground/river/central_river) @@ -19550,6 +21286,12 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/caves/sand_temple) +"srn" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "ssc" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/jungle/east_central_jungle) @@ -19557,6 +21299,11 @@ /obj/structure/flora/jungle/vines/light_3, /turf/closed/wall/mineral/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"stt" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "suv" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass2, @@ -19574,9 +21321,21 @@ /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_jungle) +"sxl" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "sxn" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/barrens/south_eastern_barrens) +"sxo" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "sxY" = ( /obj/structure/surface/rack, /obj/item/moneybag, @@ -19594,6 +21353,16 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/colony/south_medbay_road) +"sAh" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) +"sAI" = ( +/obj/structure/flora/jungle/planttop1, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "sBg" = ( /obj/structure/machinery/vending/cigarette, /obj/structure/machinery/light{ @@ -19612,6 +21381,9 @@ /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"sBY" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "sCg" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -19641,10 +21413,23 @@ /obj/structure/flora/bush/ausbushes/var3/brflowers, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"sET" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "sFc" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, /turf/open/gm/river, /area/lv624/ground/river/west_river) +"sFD" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "sFY" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Workshop Storage"; @@ -19698,6 +21483,19 @@ /obj/effect/landmark/structure_spawner/xvx_hive/xeno_core, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"sLT" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"sLU" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "sLX" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -19715,6 +21513,12 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"sNq" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "sOp" = ( /obj/structure/flora/jungle/planttop1, /turf/open/gm/grass/grass1, @@ -19738,6 +21542,10 @@ /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"sPK" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/angel, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "sRH" = ( /obj/structure/flora/bush/ausbushes/palebush, /turf/open/gm/grass/grass1, @@ -19772,6 +21580,19 @@ /obj/structure/window/framed/colony/reinforced, /turf/open/floor, /area/lv624/lazarus/hydroponics) +"sVx" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"sWk" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/secure_storage) "sWy" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/grass/grass1, @@ -19803,6 +21624,16 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"sXg" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "sXi" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 @@ -19832,6 +21663,16 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"tcF" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"tde" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "tdX" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -19884,8 +21725,18 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/coast/north, /area/lv624/ground/river/west_river) +"thk" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -5; + pixel_y = -5; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "thn" = ( -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = -6; pixel_y = 7 }, @@ -19912,6 +21763,13 @@ icon_state = "multi_tiles" }, /area/lv624/ground/caves/sand_temple) +"thI" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "thS" = ( /obj/structure/barricade/handrail/strata{ dir = 8 @@ -19919,12 +21777,6 @@ /obj/structure/barricade/handrail/strata, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/barrens/south_eastern_barrens) -"tiw" = ( -/mob/living/simple_animal/bat, -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/turf/open/gm/dirt, -/area/lv624/ground/caves/north_west_caves) "tka" = ( /obj/item/ammo_casing/bullet{ icon_state = "casing_9_1" @@ -19937,6 +21789,10 @@ }, /turf/open/gm/dirt, /area/lv624/ground/jungle/north_west_jungle) +"tlk" = ( +/obj/structure/flora/bush/ausbushes/reedbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "tlD" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/river, @@ -19960,6 +21816,11 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"tnY" = ( +/turf/open/gm/dirt{ + icon_state = "desert3" + }, +/area/lv624/ground/caves/west_caves) "toz" = ( /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/gm/grass/grass1, @@ -19989,6 +21850,10 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"tqQ" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "trs" = ( /obj/item/tool/shovel, /turf/open/gm/dirt, @@ -20011,6 +21876,13 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/colony/north_nexus_road) +"tti" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 13 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "ttu" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, @@ -20026,6 +21898,16 @@ /obj/structure/barricade/handrail/strata, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/barrens/south_eastern_barrens) +"tuJ" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -5; + pixel_y = -5; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "tuX" = ( /obj/effect/landmark/crap_item, /turf/open/floor/wood{ @@ -20101,6 +21983,14 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"tEm" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "tEn" = ( /obj/structure/flora/jungle/vines/light_3, /turf/open/floor{ @@ -20200,10 +22090,38 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/barrens/south_eastern_barrens) +"tMQ" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "tOS" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) +"tOV" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) +"tPH" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"tQU" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "tRu" = ( /obj/effect/landmark/hunter_primary, /obj/structure/flora/jungle/vines/heavy, @@ -20213,9 +22131,20 @@ /obj/effect/decal/cleanable/blood/gibs/xeno, /turf/open/gm/dirt, /area/lv624/ground/jungle/north_west_jungle) +"tRM" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "tSd" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/lazarus/quartstorage/outdoors) +"tSi" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "tSN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -20230,6 +22159,12 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"tVw" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "tWw" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor{ @@ -20253,8 +22188,17 @@ /area/lv624/lazarus/crashed_ship_containers) "tYx" = ( /obj/effect/landmark/objective_landmark/medium, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"tYW" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "tZa" = ( /obj/structure/flora/bush/ausbushes/var3/stalkybush, /turf/open/gm/coast/beachcorner/south_east, @@ -20266,6 +22210,10 @@ "tZD" = ( /turf/closed/wall/r_wall, /area/lv624/lazarus/landing_zones/lz2) +"uaL" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "uaP" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, @@ -20390,6 +22338,14 @@ icon_state = "desert1" }, /area/lv624/ground/barrens/south_eastern_barrens) +"ukY" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "ukZ" = ( /turf/open/floor{ dir = 1; @@ -20431,6 +22387,10 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_jungle) +"uop" = ( +/obj/structure/flora/bush/ausbushes/reedbush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "upM" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -20448,6 +22408,10 @@ }, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) +"uqm" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "urR" = ( /turf/open/floor/corsat{ dir = 1; @@ -20478,6 +22442,12 @@ "uvh" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/barrens/south_eastern_barrens) +"uwG" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "uxh" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, /turf/open/gm/grass/grass1, @@ -20487,6 +22457,16 @@ /obj/effect/landmark/corpsespawner/security/liaison, /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) +"uxL" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 11; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "uxT" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/coast/east, @@ -20497,6 +22477,12 @@ "uya" = ( /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"uyn" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "uzH" = ( /turf/open/floor/plating{ dir = 8; @@ -20506,6 +22492,11 @@ "uAp" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/barrens/south_eastern_barrens) +"uBR" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "uDd" = ( /obj/structure/showcase{ desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it."; @@ -20567,6 +22558,12 @@ icon_state = "whitebluecorner" }, /area/lv624/lazarus/corporate_dome) +"uHc" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "uHI" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/gm/grass/grass2, @@ -20589,11 +22586,17 @@ }, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_jungle) +"uMd" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "uMz" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) "uMD" = ( /obj/structure/flora/jungle/vines/light_3, @@ -20604,6 +22607,20 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/caves/sand_temple) +"uOl" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"uOu" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/libertycap, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) +"uOD" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "uOK" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor{ @@ -20614,6 +22631,10 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"uRe" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "uRE" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/lazarus/landing_zones/lz2) @@ -20686,12 +22707,19 @@ "uWJ" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/south_west_caves) +"uXV" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_central_jungle) "uXW" = ( /obj/structure/barricade/sandbags/wired, /turf/open/floor/wood{ icon_state = "wood-broken" }, /area/lv624/ground/caves/north_central_caves) +"uYj" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "uYC" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 6 @@ -20738,10 +22766,22 @@ }, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) +"vbK" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "vcY" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"vdt" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "vdy" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -20800,6 +22840,19 @@ /obj/structure/girder, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship_containers) +"vih" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"viC" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "vjH" = ( /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, @@ -20827,6 +22880,25 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/gm/dirt, /area/lv624/ground/jungle/south_central_jungle) +"vkS" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) +"vle" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "vly" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -20865,6 +22937,14 @@ /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/grass/grass1, /area/lv624/ground/barrens/south_eastern_barrens) +"vtk" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "vtt" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, @@ -20899,6 +22979,13 @@ }, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"vxj" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "vxU" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, @@ -20910,6 +22997,25 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"vAg" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) +"vAB" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"vAT" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) +"vBd" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "vBe" = ( /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/east_central_jungle) @@ -20956,6 +23062,19 @@ }, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) +"vGj" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"vGy" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "vHe" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/plasteel{ @@ -21005,10 +23124,23 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"vNs" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) "vNP" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"vNT" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "vNW" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -21020,6 +23152,14 @@ "vOF" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/south_central_jungle) +"vPo" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "vPu" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor, @@ -21027,10 +23167,18 @@ "vPV" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/east_jungle) +"vQR" = ( +/obj/structure/flora/bush/ausbushes/var3/sunnybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "vSG" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"vUj" = ( +/obj/structure/flora/bush/ausbushes/var3/sparsegrass, +/turf/open/gm/dirtgrassborder/south, +/area/lv624/ground/jungle/south_west_jungle) "vUw" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/dirt, @@ -21044,6 +23192,9 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) +"vVe" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, +/area/lv624/ground/jungle/south_central_jungle) "vVf" = ( /turf/open/floor{ dir = 5; @@ -21068,6 +23219,12 @@ /obj/structure/flora/jungle/vines/light_3, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/east_jungle) +"vXP" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "vXW" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, @@ -21077,6 +23234,18 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"waw" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) +"wbg" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "wbK" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, @@ -21132,6 +23301,16 @@ }, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/caves/sand_temple) +"whk" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_west_caves) "whr" = ( /obj/item/ammo_magazine/smg/mp5, /obj/item/ammo_magazine/smg/mp5, @@ -21148,6 +23327,10 @@ icon_state = "desert2" }, /area/lv624/ground/barrens/south_eastern_barrens) +"whx" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "whQ" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush{ desc = "The oranges aren't done yet... this sucks."; @@ -21226,7 +23409,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = 6; pixel_y = 7 @@ -21242,9 +23425,19 @@ icon_state = "multi_tiles" }, /area/lv624/ground/caves/sand_temple) +"woT" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "wpw" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"wpY" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) "wqy" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/dirt, @@ -21266,6 +23459,10 @@ /obj/structure/flora/jungle/vines/light_2, /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/north_east_jungle) +"wty" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "wtK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/cigarettes/wypacket{ @@ -21299,18 +23496,16 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) -"wAe" = ( -/obj/effect/decal/cleanable/blood/splatter, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = -25; - pixel_y = 5 - }, -/turf/open/floor{ - icon_state = "white" +"wzI" = ( +/obj/structure/flora/bush/ausbushes/var3/ywflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"wAF" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 }, -/area/lv624/lazarus/research) +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "wAI" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/dirtgrassborder/south, @@ -21323,6 +23518,12 @@ /obj/item/clothing/suit/armor/yautja_flavor, /turf/open/floor/sandstone/runed, /area/lv624/ground/barrens/south_eastern_barrens) +"wCs" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "wEO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -21348,12 +23549,28 @@ icon_state = "wood-broken3" }, /area/lv624/ground/caves/north_central_caves) +"wHh" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "wHp" = ( /turf/open/floor/plating{ dir = 1; icon_state = "asteroidfloor" }, /area/lv624/lazarus/landing_zones/lz2) +"wHE" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -1; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "wJA" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/window/framed/colony/reinforced, @@ -21388,10 +23605,24 @@ icon_state = "asteroidwarning" }, /area/lv624/lazarus/landing_zones/lz2) +"wLT" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_east_caves) "wMk" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) +"wMr" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "wNp" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/gm/dirt, @@ -21434,6 +23665,18 @@ /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_west_jungle) +"wQK" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) +"wRb" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "wSg" = ( /obj/structure/inflatable/popped, /turf/open/gm/dirt, @@ -21567,6 +23810,18 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"wYz" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) +"wYB" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_east_caves) "wZc" = ( /obj/structure/flora/bush/ausbushes/var3/brflowers, /turf/open/gm/grass/grass1, @@ -21584,6 +23839,10 @@ }, /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) +"xar" = ( +/obj/effect/decal/grass_overlay/grass1/inner, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "xbu" = ( /obj/item/shard, /turf/open/floor{ @@ -21598,6 +23857,10 @@ /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"xdb" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "xdO" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/south_west_jungle) @@ -21634,6 +23897,17 @@ "xgE" = ( /turf/closed/wall/r_wall, /area/lv624/lazarus/corporate_dome) +"xhc" = ( +/mob/living/simple_animal/bat, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/north_west_caves) +"xhv" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "xhC" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/barrens/south_eastern_barrens) @@ -21644,6 +23918,10 @@ icon_state = "whiteyellow" }, /area/lv624/lazarus/corporate_dome) +"xmK" = ( +/obj/structure/flora/bush/ausbushes/grassybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "xov" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/dirt, @@ -21712,6 +23990,10 @@ "xwr" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/west_barrens) +"xwN" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/east_caves) "xwQ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/handcuffs/cable/white{ @@ -21731,6 +24013,14 @@ icon_state = "whiteyellow" }, /area/lv624/lazarus/corporate_dome) +"xyH" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "xyI" = ( /obj/item/ammo_magazine/rifle/nsg23{ current_rounds = 0 @@ -21754,6 +24044,10 @@ "xBm" = ( /turf/open/gm/river, /area/lv624/ground/barrens/west_barrens) +"xBO" = ( +/obj/structure/flora/bush/ausbushes/palebush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_west_caves) "xCF" = ( /obj/item/ammo_magazine/smg/mp5, /obj/item/weapon/gun/smg/mp5, @@ -21785,10 +24079,23 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"xGL" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 + }, +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/east_caves) "xHa" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"xHW" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/west_caves) "xJA" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/river, @@ -21807,14 +24114,36 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/west_jungle) +"xKL" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/west_caves) "xLi" = ( /obj/structure/surface/rack, /obj/item/storage/box/lights/mixed, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"xLT" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) +"xNi" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) "xNK" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/containers) +"xNQ" = ( +/obj/structure/flora/bush/ausbushes/var3/sparsegrass, +/turf/open/gm/dirtgrassborder/east, +/area/lv624/ground/jungle/south_central_jungle) "xPk" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/colony/south_medbay_road) @@ -21843,12 +24172,22 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"xRe" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "xRo" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 1 }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"xSk" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/north_east_caves) "xSA" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -21882,6 +24221,12 @@ "xVN" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/south_central_jungle) +"xWy" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "xXB" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/grass/grass1, @@ -21893,6 +24238,12 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) +"xYD" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_west_caves) "xZE" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -21921,8 +24272,14 @@ /area/lv624/ground/barrens/south_eastern_jungle_barrens) "ydz" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) +"yfe" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_east_caves) "yfH" = ( /turf/open/shuttle{ icon_state = "floor4" @@ -21960,6 +24317,11 @@ icon_state = "purple" }, /area/lv624/lazarus/sleep_female) +"yhT" = ( +/turf/open/gm/dirt{ + icon_state = "desert2" + }, +/area/lv624/ground/caves/west_caves) "yhY" = ( /obj/structure/inflatable/door, /turf/open/gm/dirt, @@ -21992,6 +24354,10 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, /area/lv624/ground/colony/west_tcomms_road) +"yjs" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "yjN" = ( /obj/structure/flora/jungle/vines/heavy, /obj/structure/machinery/door/airlock/sandstone/runed/destroyable{ @@ -23263,7 +25629,7 @@ mdQ mdQ gwP gwP -gwP +yhT mdQ mdQ mdQ @@ -23715,10 +26081,10 @@ gwP gwP gwP tOS -gwP -gwP -gwP -tOS +vle +qdx +qdx +hyF gwP gwP gwP @@ -23941,18 +26307,18 @@ gwP gwP gwP gwP +vle +qdx +cHW +dOA +dmT +grW +xKL gwP -gwP -gwP -gwP -gwP -gwP -gwP -gwP -gwP +yhT tOS gwP -gwP +ptm gwP gwP gwP @@ -24164,19 +26530,19 @@ mdQ mdQ mdQ gwP +ptm gwP -gwP -gwP +tnY tOS gwP -gwP -gwP -gwP -gwP -gwP -gwP -gwP -gwP +wQK +cQB +dmT +dmT +rmW +ndk +grW +xKL gwP gwP gwP @@ -24212,7 +26578,7 @@ amy ane ane ane -ahF +krs ahF ane ane @@ -24397,14 +26763,14 @@ gwP gwP gwP gwP -gwP +wQK mdQ mdQ onU onU -gwP -gwP -gwP +owe +dmT +uRe gwP gwP gwP @@ -24432,7 +26798,7 @@ nBh afV ahF ahF -ahF +aYI ahF ahF ahF @@ -24622,23 +26988,23 @@ gwP gwP gwP gwP -gwP -gwP -gwP +vle +qdx +qdx mdQ mdQ mdQ onU onU mdQ -gwP -tOS +dmT +igN gwP gwP mdQ gwP gwP -gwP +yhT gwP gwP gwP @@ -24849,9 +27215,9 @@ mdQ gwP gwP tOS -gwP -gwP -gwP +vle +amI +dmT mdQ mdQ onU @@ -24859,8 +27225,8 @@ onU onU mdQ mdQ -gwP -gwP +bcb +wHh gwP gwP mdQ @@ -24897,7 +27263,7 @@ ahF ahF ahF ahF -ahF +cCP ahF ane ane @@ -25077,8 +27443,8 @@ gwP gwP gwP gwP -gwP -gwP +wQK +dmT mdQ mdQ onU @@ -25301,13 +27667,13 @@ mdQ mdQ mdQ mdQ +ofg gwP gwP gwP -gwP -gwP -gwP -gwP +wQK +dmT +fRU onU onU onU @@ -25316,7 +27682,7 @@ mdQ gwP gwP gwP -gwP +ptm gwP gwP mdQ @@ -25335,8 +27701,8 @@ afV afV afV afV -ahF -ahF +hRy +aYI ahF afV afV @@ -25529,18 +27895,18 @@ gwP mdQ mdQ gwP +ptm gwP gwP gwP -gwP -gwP -gwP -gwP -gwP -gwP +wQK +dmT +dmT +nRA +htV onU mdQ -gwP +uRe gwP gwP gwP @@ -25561,6 +27927,7 @@ ahF ahF ahF ahF +aYI ahF ahF ahF @@ -25571,8 +27938,7 @@ ahF ahF ahF ahF -ahF -ahF +krs ahF ane ane @@ -25756,19 +28122,19 @@ gwP gwP mdQ mdQ +lav gwP gwP +ofg gwP -gwP -gwP -gwP -tOS -gwP -gwP -gwP -gwP -gwP -gwP +hjo +gvm +qJE +dmT +dmT +dmT +fLh +uRe gwP tOS gwP @@ -25795,7 +28161,7 @@ ahF ahF ahF ahF -ahF +fDT ahF ahF ahF @@ -25991,12 +28357,12 @@ gwP gwP gwP gwP -gwP -gwP -gwP -tOS -gwP -gwP +hjo +qJE +tlk +gRk +owZ +wHh gwP gwP gwP @@ -26021,7 +28387,7 @@ ahF ahF ahF ahF -ahF +krs ahF ahF ahH @@ -26029,14 +28395,14 @@ ahF ahF ahF ahF -ahF +cCP ahF ane +fDT ahF ahF ahF -ahF -ahF +aYI ahF ahF ane @@ -26212,6 +28578,7 @@ gwP gwP gwP aca +ptm gwP gwP gwP @@ -26219,14 +28586,13 @@ gwP gwP gwP gwP +hjo +qhl +qhl +wHh gwP -gwP -gwP -gwP -gwP -gwP -gwP -gwP +ptm +yhT gwP mdQ mdQ @@ -26245,10 +28611,10 @@ ahF ahF ahV ahF -ahF -ahH -ahF -ahF +xYD +gTj +gTj +nys ahF ahF ahF @@ -26471,13 +28837,13 @@ ane ane ahF ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF +xYD +hmq +lYt +chi +fmW +rHV +nys ePu ahF ahF @@ -26492,9 +28858,9 @@ ane ahF ahF ahF -ahF -ahF -ahF +hRy +hRy +fDT afV ane ane @@ -26639,7 +29005,7 @@ mdQ mdQ mdQ mdQ -gwP +uRe gwP gwP gwP @@ -26698,19 +29064,19 @@ ane ane ane ane -ahF -ahF -ahF -ahF +xYD +lYt +fmW +fmW uWJ +ilF +fmW +rHV +nys ahF ahF ahF -ahF -ahF -ahF -ahF -ahF +aYI ahF ahH ahF @@ -26826,9 +29192,9 @@ abB abB abB abN -abN -abN -abN +pSe +kzn +tcF amk amk amk @@ -26837,7 +29203,7 @@ abM abM abM abM -abN +qVh abN abN abN @@ -26865,9 +29231,9 @@ amk onU onU mdQ -tOS -gwP -gwP +gRk +dmT +uRe gwP gwP gwP @@ -26926,16 +29292,16 @@ ane ane ane ahF -ahF -ahF -ahF +wAF +aIE +fmW uWJ uWJ uWJ -ahF -ahF -ahF -ahF +fmW +fmW +vGj +nys ahF ahF ahF @@ -27051,21 +29417,21 @@ abM abM abB abB -tiw -abN -abN -abN -abN +abB +tgL abN abN +lTv +pLv +sBY amk amk amk amk amk abM -abN -abN +qiL +qVh abQ abN abN @@ -27086,16 +29452,16 @@ abN abN abN abN -abN -abN -abN -abN +cMG +waw +cWs +sBY onU onU onU -gwP -gwP -gwP +lKl +tRM +uRe gwP gwP gwP @@ -27110,11 +29476,11 @@ gwP gwP gwP gwP -gwP -gwP -gwP -gwP -gwP +vle +jvQ +jvQ +jvQ +xKL gwP gwP gwP @@ -27154,20 +29520,20 @@ ane ane ahF ahF -ahF -ahF +wAF +fmW uWJ uWJ uWJ +eoW +fmW +fmW +fmW +rHV +vXP +nys ahF -ahF -ahH -ahF -ahF -ahF -ahF -ahF -ahF +aYI ahF ahF ahF @@ -27283,17 +29649,17 @@ abN abN abN abN -abN -abN -abN -abN -abN +pSe +kzn +sBY +sBY +sBY amk amk -abN -abN -abN -abN +gnt +qVN +sBY +qVh abN abN abN @@ -27313,17 +29679,17 @@ abN abN abN abQ -abN -abN -abN -abN -abN -aca -gwP -gwP -gwP -gwP -gwP +cMG +waw +sBY +sBY +sBY +iGf +dKl +dmT +dmT +owZ +wHh gwP gwP gwP @@ -27336,14 +29702,14 @@ gwP aYC gwP gwP -gwP -gwP -gwP -tOS -gwP -gwP -gwP -gwP +vle +jvQ +pkU +gRk +lLK +dmT +grW +xKL gwP gwP gwP @@ -27381,19 +29747,19 @@ ane ane ahF ahF -ahH -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF ahF +doe +pIl +eZg +fmW +fmW +fmW +fmW +fmW +fmW +fmW +fmW +rHV ahF ahF ane @@ -27512,16 +29878,16 @@ abN abN abN abN -abQ -abN -abN -abN -abN -abN -abN -abN -abN -abN +bak +kzn +iXX +sBY +sBY +iNJ +sBY +sBY +frV +klD abN abN abN @@ -27540,17 +29906,17 @@ abN abN abN abN -abN -abN -abN -abN -abQ -abN -aca -gwP -tOS -gwP -gwP +cMG +waw +sBY +sBY +fTN +sBY +iGf +dmT +gRk +owZ +wHh gwP gwP gwP @@ -27564,15 +29930,15 @@ gwP aca gwP gwP -gwP -xZE -xZE -xZE -gwP -gwP -gwP -gwP -gwP +jGU +hhs +hhs +hhs +htV +dOA +fRU +grW +xKL gwP gwP gwP @@ -27608,20 +29974,20 @@ ane ane ane ahF +aYI ahF ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF -ahF +doe +pIl +uqm +fmW +fmW +fmW +ikA +fmW +fmW +wty +chi ane ane ane @@ -27634,7 +30000,7 @@ ane ahF ahF ahH -ahF +cCP ahF ane ane @@ -27736,19 +30102,19 @@ abN abN abN abN -abQ -abN -abN -abN -abN -abN -abN -abN -abN -abN -abN -abQ -abN +vNs +bdu +bdu +bdu +jKc +pSe +jLY +jLY +jLY +jLY +jLY +kKa +klD abN abN abN @@ -27767,17 +30133,17 @@ abM abB abN abN -abN -abN -abN -abN -abN -abN -abN -aca -gwP -gwP -gwP +cMG +waw +gvr +uOu +sBY +iNJ +sBY +iGf +owZ +qhl +wHh gwP qaE gwP @@ -27797,11 +30163,11 @@ mdQ onU onU onU -xZE -xZE -xZE -gwP -gwP +hhs +hhs +hhs +grW +jvQ gwP gwP tOS @@ -27840,22 +30206,22 @@ ahF vZT ahF ahF -ahF -ahF -ahF +doe +qSS +pIl dWM -ahF -ahF -ahF -ahF -ahF -ahF +fmW +fmW +fmW +fmW +sAI +pBH ane ane afV afV -ahF -ahF +hRy +krs afV afV ane @@ -27961,16 +30327,16 @@ abN abN abN abN -abN -abN -abN -abN -abN -abN -abN -abN -abN -abN +cMG +bdu +bdu +waw +tcF +sBY +sBY +mgi +bdu +jKc abQ abN abN @@ -27994,11 +30360,11 @@ abN abN dhD abN -abQ -abN -abN -abN -abN +vNs +waw +sBY +sBY +sBY amk abM abM @@ -28027,11 +30393,11 @@ onU onU onU onU -xZE -xZE -xZE -gwP -gwP +hhs +hhs +hhs +grW +xKL gwP gwP gwP @@ -28068,13 +30434,13 @@ ane ane ane ahF +fDT ahF -ahF -ahF -ahF -ahF -ahF -ahF +wAF +fmW +fmW +snc +fmW uWJ uWJ uWJ @@ -28082,7 +30448,7 @@ ane ane afV ahF -ahF +aYI ahF ahF afV @@ -28188,17 +30554,17 @@ abM abN abN abN -abQ -abN -abN -abN -abN -abN -abN -abN -abN -abN -abN +vNs +waw +dIj +sBY +sBY +sBY +sBY +pLv +sBY +sBY +hKP abN abN abN @@ -28221,12 +30587,12 @@ abN abN abQ dhD -abN -abN -abN -abN -abN -abN +cMG +waw +sBY +sBY +sBY +sBY amk amk abM @@ -28257,9 +30623,9 @@ onU onU onU onU -xZE -xZE -gwP +hhs +hhs +uRe gwP gwP gwP @@ -28297,12 +30663,12 @@ afV afV afV ahF -ahF -ahH -ahF -ahF -ahF -ahF +cCP +wAF +fmW +fmW +jCO +uqm uWJ ane ane @@ -28416,17 +30782,17 @@ abM abN abN abN -abN -abN -abN -abN +vGy +sBY +whk +sBY amk amk amk amk -abN -abN -abN +sBY +sBY +hKP abN abN abN @@ -28449,11 +30815,11 @@ abN abN abN dhD -abN -abN -abN -abN -abN +vGy +sBY +sBY +gnt +sBY amk amk amk @@ -28521,14 +30887,14 @@ ahF ahF ahF ahF -ahF +cCP ahF afJ -ahF -ahF -ahF -ahF -ahF +xYD +vXP +lYt +dIu +fmW ane ane ane @@ -28541,7 +30907,7 @@ ahF ahF ahF ahF -ahF +cCP ahF ahF ahF @@ -28644,7 +31010,7 @@ abN abN abN abN -abN +vGy abM abM amk @@ -28677,10 +31043,10 @@ abN abN abN dhD -abN -abN -abN -abN +vGy +qVN +sBY +ksc amk amk amk @@ -28743,7 +31109,7 @@ acp ane ane ahF -ahF +fDT ahF ahF ahH @@ -28752,10 +31118,10 @@ ahF ahF ahF afJ -ahF -ahF -ahF -ahF +wAF +fmW +fmW +fmW ane ane ane @@ -28871,8 +31237,8 @@ abM abN abN abN -abN -abN +cMG +waw abM abM abM @@ -28975,13 +31341,13 @@ ahF ahF ahF ahF -ahF -ahF -ahF -ahF +gTj +gTj +gTj +nys afV -ahF -ahF +wAF +tQU uWJ uWJ ane @@ -28998,7 +31364,7 @@ ahF ahF ahF ahF -ahF +krs ahF ahF ahF @@ -29035,7 +31401,7 @@ aZP aOB oOB aRg -aRg +aCi aRg aRg aRg @@ -29053,7 +31419,7 @@ aRg aRg aRg aRg -aRg +aCi aRg odw aRg @@ -29098,9 +31464,9 @@ abM abN abN abQ -abN -abN -abN +cMG +waw +tcF abM abM abM @@ -29202,11 +31568,11 @@ afV ahF isF ahF -ahF -ahF -ahF -ahF -ahF +lYt +fmW +gos +fmW +lWl afV afV uWJ @@ -29265,7 +31631,6 @@ aTv aRg aRg aRg -aCi aRg aRg aRg @@ -29280,7 +31645,8 @@ aRg aRg aRg aRg -aCi +aRg +aRg aKO aRg aEw @@ -29326,8 +31692,8 @@ abM abN abN abN -abN -abN +vGy +sBY abM abM abM @@ -29429,13 +31795,13 @@ ane vUx vMV vMV -vMV -vMV +lUQ +bJQ uWJ -ahF -ahF -ahF -ahF +nQH +fmW +lWl +krs afV ane ane @@ -29449,7 +31815,7 @@ ahF ahF ahF ahF -ahF +krs ahF ahV ahF @@ -29553,9 +31919,9 @@ abM abM abN abN -abN -abN -abN +cMG +waw +pLv abM abM abM @@ -29657,12 +32023,12 @@ ane afV ahF ahF -ahF -ahF +wAF +fmW uWJ -ahF -ahF -ahF +dIu +fmW +lWl ahF afV afV @@ -29673,7 +32039,7 @@ afV ahF ahF ahF -ahF +fDT ahF ahH ahF @@ -29683,7 +32049,7 @@ ahF ahF ahF ahF -ahF +aYI ahF ane ane @@ -29780,9 +32146,9 @@ abM abM abN abN -abN -abN -abN +cMG +waw +sBY amk abM abM @@ -29885,16 +32251,16 @@ ane ane ahF ahF -ahH -pmt +thI +cdw uWJ uWJ +dOb +lWl +aYI ahF ahF -ahF -ahF -ahF -ahF +krs ahF ahF ahF @@ -30008,9 +32374,9 @@ abM abM abN abN -abN -abQ -abN +vGy +fTN +sLT amk amk abM @@ -30111,20 +32477,20 @@ acp ane ane ane +krs ahF -ahF -ahF -ahF +wAF +fmW uWJ uWJ +kzw +kyt +nys ahF ahF ahF ahF -ahF -ahF -ahF -ahF +krs ahF ahF ahF @@ -30236,8 +32602,8 @@ abM abN abN abN -tgL -abN +xhc +sBY amk amk amk @@ -30341,15 +32707,14 @@ ane ane ahF ahF -ahF -ahF -ahF +wAF +tOV +fKc uWJ -ahF -ahF -ahF -ahF -ahH +jCO +fmW +rHV +nys ahF ahF ahF @@ -30357,6 +32722,7 @@ ahF ahF ahF ahF +krs ahF ahF ahF @@ -30464,8 +32830,8 @@ abM abN abN abN -abN -abN +vGy +sBY amk amk abM @@ -30569,17 +32935,17 @@ afV afV ahF ahF -ahF -ahF -ahF +doe +pIl +fmW uWJ ane uWJ +fmW +qSG ahF ahF -ahF -ahF -ahF +cCP ahF ahH ahF @@ -30692,9 +33058,9 @@ abM abN abN abN -abN -abN -abN +vGy +sBY +bPE amk abM abM @@ -30794,18 +33160,18 @@ acp ane ane ahF +cCP ahF ahF ahF -ahF -ahF -ahF +wYz +chi uWJ ane uWJ -ahF -ahF -ahF +fmW +rHV +nys ahF ahF ahF @@ -30920,11 +33286,11 @@ abM abN abN abN -abN -abN -abN -abN -abB +pSe +kzn +sBY +dBS +stt abM abM abM @@ -30995,8 +33361,8 @@ mdQ mdQ mdQ mdQ -gwP -gwP +qdx +xKL gwP gwP gwP @@ -31026,15 +33392,15 @@ ahF ane ane ahF -ahH ahF +pIl ane ane uWJ -ahF -ahF -ahF -ahF +tOV +fmW +rHV +nys ahF ahF ahF @@ -31089,7 +33455,7 @@ aTv aRg aRg aRg -aCi +aRg aRg aRg aRg @@ -31104,7 +33470,7 @@ aRg aRg aRg aRg -aCi +aRg aRg aRg aEw @@ -31121,10 +33487,10 @@ aTf aTf aTf aUQ -aWb aUQ aUQ aUQ +sWk aUQ aUQ aTf @@ -31149,12 +33515,12 @@ abM abN abN abN -abQ -abN -abN -abB -abB -abB +bak +kzn +qYS +stt +stt +stt abM abM abM @@ -31222,9 +33588,9 @@ mdQ mdQ mdQ mdQ -gwP -gwP -gwP +tlk +dmT +uRe gwP gwP acS @@ -31255,16 +33621,16 @@ ane ane ane ahF -ahF -ahF -ahF +doe +pIl +fmW uWJ uWJ ane -ahF -ahF -ahF -ahF +eZg +rHV +gTj +nys isF ahF ahF @@ -31315,7 +33681,7 @@ aZP aOB kvE aRg -aRg +aCi aRg aRg aRg @@ -31333,7 +33699,7 @@ aRg aRg aRg aRg -aRg +aCi aRg byK aRg @@ -31350,11 +33716,11 @@ aTf aTf aTf aTf -aWu -aWu -aWu -aTf -aTf +mkn +xLT +mkn +xLT +sWk aTf aTf aXh @@ -31378,12 +33744,12 @@ abM abN abN abN -abN -abN -abN -abN -abN -abB +pSe +jLY +jLY +jLY +jLY +qrH abM abM abM @@ -31451,8 +33817,8 @@ mdQ mdQ mdQ mdQ -gwP -tOS +dmT +igN gwP gwP gwP @@ -31484,20 +33850,20 @@ ane ane ahF ahF -ahF -ahF -ahF +doe +pIl +fcQ uWJ ane ane -ahF -ahH -ahF -ahF +fmW +fmW +lWl ahF ahF ahF ahF +krs ahF ahF ahF @@ -31578,13 +33944,13 @@ efp aTf aTf aWc -aUQ -aUQ -aUQ -aTf -aTf -aTf -cWm +mkn +mkn +sWk +mkn +mkn +xLT +kBq aXh aXh aKb @@ -31678,9 +34044,9 @@ mdQ mdQ mdQ onU -gwP -gwP -gwP +dmT +dmT +uRe gwP gwP gwP @@ -31706,26 +34072,26 @@ mdQ ane afV ahF +aYI +krs ahF ahF ahF ahF ahF -ahF -ahF -ahF -ahF -ahF +wYz +fmW +fmW uWJ uWJ uWJ +fmW +lWl ahF -ahF -ahF -ahF -ahF -ahF -ahF +hRy +hRy +hRy +hRy ahF ahF ahF @@ -31806,13 +34172,13 @@ efp efp aTf aTf +xLT aWv aWv -aWv -aTf -aXh -aXh -aXh +xLT +xTT +xTT +vUj qGH aLj aXk @@ -31906,9 +34272,9 @@ mdQ mdQ onU onU -gwP -gwP -sMx +dmT +dmT +kVG sMx gwP gwP @@ -31939,16 +34305,16 @@ ahF ahF ahF ahF +fDT ahF ahF -ahF -ahH -ahF +pIl +fmW uWJ uWJ -ahF -ahF -ahF +wHE +fmW +lWl ahF ahF ahF @@ -32037,10 +34403,10 @@ uSq qIO qIO qIO -ntL -mnK -kxI -wkP +qIO +uXV +qtj +dMc knp iIU kZw @@ -32134,9 +34500,9 @@ mdQ mdQ onU onU -gwP -gwP -sMx +dmT +xHW +kVG sMx gwP gwP @@ -32170,13 +34536,13 @@ ahF ahF ahF ahF -ahF -ahF +wYz +sgU uWJ ane -ahF -ahF -ahF +xBO +lWh +dYx ahF ahH ahF @@ -32265,10 +34631,10 @@ uSq njC qIO qIO -ntL -kxI -tsa -kxI +qIO +qtj +qtj +ksM rox wqz kZw @@ -32361,10 +34727,10 @@ mdQ mdQ mdQ onU -gwP -gwP -gwP -gwP +lKl +dmT +dmT +uRe gwP gwP gwP @@ -32393,17 +34759,17 @@ ahF ane ane ane +hRy +hRy +hRy ahF ahF -ahF -ahF -ahF -ahF -ahF +doe +pIl ane ane -ahF -ahF +lWh +dYx ahH ahF ahF @@ -32494,9 +34860,9 @@ hDX qIO qIO aXH -kxI -gGd -kxI +ebr +xNQ +vVe kxI wbK rHp @@ -32584,15 +34950,15 @@ mdQ mdQ onU onU -gwP -gwP -xZE -xZE +ieN +kWV xZE -gwP -gwP -gwP -gwP +xyH +hhs +ndk +dmT +dmT +uRe tOS gwP sMx @@ -32621,7 +34987,7 @@ ahF ahF ane ane -ahF +krs afV afV afV @@ -32808,19 +35174,19 @@ mdQ mdQ mdQ mdQ -gwP -gwP +jGU +ndk onU +dmT +dmT +kWV gwP -gwP -gwP -gwP -gwP -aca -gwP -abO -gwP -gwP +hjo +qtK +qhl +clO +qhl +wHh gwP gwP sMx @@ -32849,20 +35215,20 @@ ahF ahF ane ane -ahF +cCP afV ahF ahF ahF ahF ane -ahF +aYI ahF ahF ane ahF -ahF -ahF +aYI +fDT ahF ane ane @@ -33036,20 +35402,20 @@ gwP mdQ gwP gwP -gwP -gwP -aca -gwP -gwP -gwP +jGU +dmT +iGf +dmT +owZ +wHh tOS gwP aca gwP gwP -gwP -gwP -gwP +vle +qdx +xKL gwP gwP gwP @@ -33264,22 +35630,22 @@ gwP gwP gwP gwP -gwP -tOS -aca -gwP -gwP +hjo +kML +ukY +soY +wHh gwP gwP gwP aca -gwP -gwP -gwP -gwP -gwP -gwP -gwP +vle +qdx +cHW +dmT +grW +qdx +xKL gwP gwP gwP @@ -33502,15 +35868,15 @@ gwP gwP mdQ mdQ -xZE -xZE -xZE -gwP -gwP -gwP +hhs +hhs +hhs +fLh +dmT +grW acp acp -gwP +xKL gwP gwP abO @@ -33732,14 +36098,14 @@ mdQ mdQ onU onU -xZE -xZE -xZE -gwP -gwP -xZE -xZE -gwP +hhs +hhs +hhs +dmT +dmT +hhs +eft +xKL gwP oMZ oMZ @@ -33962,13 +36328,13 @@ mdQ onU onU acK -gwP -gwP -gwP -gwP -xZE -aca -aca +dmT +dmT +kCD +dmT +hhs +soz +jqr dFz oMZ aca @@ -34190,15 +36556,15 @@ mdQ mdQ onU onU -gwP -gwP -gwP -gwP -aYC -eGD -eGD -eGD -eGD +htV +dmT +dmT +dmT +sNq +rTT +rTT +nLF +rbs eGD eGD eGD @@ -34422,11 +36788,11 @@ onU onU onU onU -xZE -eGD -eGD -eGD -acq +hhs +rTT +aIA +lhH +lkq eGD eGD eGD @@ -34652,10 +37018,10 @@ iIB iIB iIB iIB -eGD -eGD -eGD -ufG +rTT +rTT +nLF +liI eGD eGD ufG @@ -34880,10 +37246,10 @@ abS iIB iIB iIB -eGD -adc -eGD -ufG +rTT +dAu +hkT +shb eGD eGD gIe @@ -35071,8 +37437,8 @@ mdQ mdQ mdQ mdQ -aca -xZE +jqr +sxl xZE acp acu @@ -35108,10 +37474,10 @@ abS abS iIB iIB -eGD -eGD -eGD -ufG +rmt +rTT +tde +vtk eGD acq eGD @@ -35299,8 +37665,8 @@ mdQ mdQ mdQ mdQ -gwP -gwP +fLh +uRe acp acu acu @@ -35336,9 +37702,9 @@ abS abS abS iIB -eGD -eGD -eGD +rTT +rTT +onP ufG eGD eGD @@ -35527,8 +37893,8 @@ mdQ mdQ mdQ onU -tOS -gwP +gRk +uRe acu acu acu @@ -35564,9 +37930,9 @@ abS abS abS abS -eGD -eGD -eGD +wzI +tde +uwG eGD eGD eGD @@ -35755,8 +38121,8 @@ mdQ mdQ onU onU -gwP -gwP +dmT +uRe acp acu acy @@ -35792,8 +38158,8 @@ abS ady ady ady -eGD -eGD +tde +uwG ufG hzR eGD @@ -35983,8 +38349,8 @@ acf onU onU onU -gwP -gwP +dmT +grW xZE acp acu @@ -36019,8 +38385,8 @@ abS abS ady eGD -eGD -eGD +fqi +uwG eGD ufG hzR @@ -36211,8 +38577,8 @@ acf onU onU onU -gwP -gwP +dOA +dmT xZE xZE acp @@ -36439,10 +38805,10 @@ acf mdQ onU mdQ -gwP -gwP -gwP -gwP +htV +dmT +grW +xKL xZE xZE xZE @@ -36480,11 +38846,11 @@ adP eGD acq eGD -eGD -eGD -acq -eGD -eGD +bje +gVw +vih +gVw +rbs eGD eGD eGD @@ -36667,10 +39033,10 @@ acf mdQ mdQ mdQ -uSF -gwP -gwP -gwP +iGx +dmT +cQB +uRe gwP gwP gwP @@ -36706,14 +39072,14 @@ eGD adP adP adP -eGD -eGD -eGD -eGD -eGD -eGD -eGD -eGD +bje +gVw +tMQ +rTT +mJF +rTT +nLF +rbs eGD ady ady @@ -36895,14 +39261,14 @@ acf acf mdQ mdQ -xZE -xZE -gwP -tOS -gwP +hhs +hhs +uaL +iuf +jvQ abH -gwP -gwP +jvQ +xKL gwP gwP gwP @@ -36933,15 +39299,15 @@ eGD eGD eGD adP -adP -adP -eGD -eGD -eGD -eGD -eGD -eGD -eGD +daY +tPH +rTT +pIB +rTT +hpK +rTT +ohf +onP eGD ady abS @@ -37124,15 +39490,15 @@ acf acf mdQ mdQ -xZE -xZE -xZE -xZE -gwP -gwP -gwP -gwP -gwP +hhs +hhs +hhs +hhs +dmT +dmT +grW +jvQ +xKL gwP gwP gwP @@ -37161,15 +39527,15 @@ acq eGD eGD eGD -adP -adP -eGD -eGD +sVx +iDX +kdj +rTT iIB iIB iIB -eGD -eGD +uOD +onP abS abS abS @@ -37357,10 +39723,10 @@ mdQ onU onU onU -gwP -gwP -gwP -gwP +sXg +dmT +tlk +uRe gwP acf acf @@ -37388,10 +39754,10 @@ eGD eGD eGD eGD -eGD -eGD -eGD -eGD +bje +tMQ +rTT +rTT iIB iIB abS @@ -37587,8 +39953,8 @@ uxU uxU uxU uxU -dGQ -any +ryp +vbK dGQ acf acf @@ -37616,7 +39982,7 @@ eGD adc eGD eGD -eGD +fqi abS iIB iIB @@ -37811,12 +40177,12 @@ acf acf acf acf -abl -abl -abl -abl -abl -abl +fDE +pAE +fDE +vAB +fDE +nUZ abl acf acf @@ -38036,15 +40402,15 @@ acf acf acf acf -abl -abl -abl -abl -abl -abl -abl -abl -abl +pAE +fDE +fDE +sPK +ogJ +scs +scs +scs +jgy abl abl abl @@ -38263,12 +40629,12 @@ acf izh izh izh -izh -abl -abv -abl -abl -abl +ejp +scs +rIc +scs +scs +jgy abl abl abl @@ -38517,10 +40883,10 @@ abS abS eGD eGD -eGD -eGD -eGD -eGD +bje +gVw +gVw +rbs eGD acO eGD @@ -38743,13 +41109,13 @@ abl abl abl dGQ -eGD -eGD -acY -eGD -eGD -eGD -eGD +bje +gVw +lbt +rTT +rTT +nLF +rbs acO eGD acq @@ -38971,13 +41337,13 @@ abl abl abl dGQ -eGD -acq -eGD -eGD -eGD -eGD -eGD +wbg +xdb +rTT +mca +rTT +rTT +onP acO eGD eGD @@ -39199,13 +41565,13 @@ abl abl abl dGQ -eGD -eGD -eGD +wbg +rTT +rTT iIB iIB abS -eGD +onP acO eGD eGD @@ -39287,7 +41653,7 @@ auV atU avE atp -wAe +awr atU axH aum @@ -40123,8 +42489,8 @@ abS abS abS abS -eGD -acq +gVw +jpX eGD abS abS @@ -40351,8 +42717,8 @@ abS abS abS abS -acO -acO +bBT +rze acO abS abS @@ -40579,9 +42945,9 @@ abS abS abS abS -eGD -eGD -eGD +rTT +nLF +rbs eGD xTa abS @@ -40806,10 +43172,10 @@ abS abS abS iIB -eGD -eGD -eGD -eGD +rTT +kdj +rTT +onP eGD eGD abS @@ -41034,10 +43400,10 @@ abS abS iIB iIB -eGD -eGD -eGD -eGD +rTT +rTT +rTT +onP eGD eGD abS @@ -41057,7 +43423,7 @@ ajW afI ajW ajW -agC +ajW afN ajW ajW @@ -41262,10 +43628,10 @@ abS iIB iIB iIB -eGD -eGD -eGD -eGD +mca +rTT +tde +uwG eGD eGD abS @@ -41488,11 +43854,11 @@ abS abS abS iIB -eGD -eGD -eGD -eGD -eGD +rTT +rTT +rTT +rTT +onP acq eGD eGD @@ -41717,11 +44083,11 @@ abS abS abS abS -eGD -acq -eGD +rTT +xdb +rTT acY -eGD +rbs eGD eGD abS @@ -41944,12 +44310,12 @@ abS abS abS abS -eGD -eGD -eGD -eGD -eGD -eGD +wzI +aIA +rTT +rTT +rTT +onP eGD eGD abS @@ -42174,10 +44540,10 @@ abS abS abS iIB -eGD -eGD -eGD -eGD +rTT +rTT +rTT +onP eGD eGD abS @@ -42192,7 +44558,7 @@ jaa wVk wVk afx -afM +agf ajW agi ajW @@ -42202,7 +44568,7 @@ agT ahh ahl afN -agC +ajW ahS afk wVk @@ -42403,9 +44769,9 @@ abS abS iIB iIB -eGD -eGD -eGD +rTT +uxL +onP eGD abS abS @@ -42631,9 +44997,9 @@ abS abS abS iIB -eGD -eGD -eGD +rTT +rTT +onP eGD abS abS @@ -42859,9 +45225,9 @@ abS abS abS iIB -eGD -eGD -eGD +rTT +cxi +onP eGD abS abS @@ -43087,10 +45453,10 @@ abS abS abS abS -eGD -eGD -eGD -eGD +rTT +rTT +nLF +rbs eGD abS abS @@ -43314,11 +45680,11 @@ abS abS abS abS -eGD -eGD -eGD -acq -eGD +rTT +rTT +hpK +xdb +onP eGD abS abS @@ -43337,7 +45703,7 @@ ajW agl ajW ajW -agC +ajW ajW afN eah @@ -43541,12 +45907,12 @@ abS abS abS abS -xTa -eGD -eGD -eGD -eGD -eGD +brC +rTT +rTT +rTT +rTT +onP eGD abS abS @@ -43737,12 +46103,12 @@ abl abl abl abl -abl -abl -abl -abl -abl -abl +gPu +jcn +jcn +jcn +jcn +jcn acf acf acf @@ -43769,12 +46135,12 @@ abS abS abS abS -eGD -eGD -acq -eGD -eGD -eGD +rTT +rTT +xdb +rTT +lnr +onP eGD abS abS @@ -43965,12 +46331,12 @@ abv abl abl abl -abl -abl -abl -abl -abl -abl +xWy +cqH +fDE +bvX +fDE +fDE acf acf acf @@ -43998,11 +46364,11 @@ abS abS abS abS -eGD -eGD -eGD -eGD -eGD +rTT +mOL +rTT +tde +uwG eGD abS abS @@ -44196,9 +46562,9 @@ abl acf acf uxU -dGQ +ryp uMz -dGQ +ryp acf acf acf @@ -44226,10 +46592,10 @@ abS abS abS abS -eGD -eGD -eGD -eGD +ohf +rTT +rTT +onP eGD abS abS @@ -44425,9 +46791,9 @@ acf acf uxU uxU -abl -abl -abl +fDE +gcB +fDE acf acf acf @@ -44454,10 +46820,10 @@ abS abS abS iIB -eGD -eGD -acq -eGD +rTT +rTT +xdb +onP eGD abS abS @@ -44653,9 +47019,9 @@ acf acf acf uxU -abl -abl -abl +fDE +tti +fDE acf acf acf @@ -44682,10 +47048,10 @@ abS abS iIB iIB -eGD -eGD -eGD -eGD +rTT +rmt +rTT +onP abS abS abS @@ -44881,14 +47247,14 @@ acf acf acf uxU -abl -abv -abl -abl +fDE +otl +fDE +fDE acf acf uxU -abl +fDE acf acf acf @@ -44898,7 +47264,7 @@ abl abl abv abl -abl +gPu abS abS abS @@ -44910,10 +47276,10 @@ abS iIB iIB iIB -eGD -eGD -eGD -eGD +rTT +rTT +rTT +onP abS abS abS @@ -45109,16 +47475,16 @@ acf acf acf acf -abl -abl -abl -abl +fDE +fDE +fDE +fDE uxU uxU uxU -abl -abl -abl +hez +fDE +spK acf acf acf @@ -45126,7 +47492,7 @@ acf abl abl abl -abl +kxv abS abS abS @@ -45138,8 +47504,8 @@ abS abS iIB iIB -cIU -cIU +hav +hav cIU abS abS @@ -45338,15 +47704,15 @@ acf acf acf acf -abl -abl -abl +fDE +fDE +fDE czq uxU uxU -abl -abl -abl +rUX +fDE +spK abl acf acf @@ -45354,8 +47720,8 @@ acf abl abl abl -abl -abl +kxv +han abS abS abS @@ -45366,9 +47732,9 @@ abS abS abS abS -pDt -pDt -pDt +aTy +aTy +tYW abS pDt pDt @@ -45567,14 +47933,14 @@ acf acf acf acf -abl -abl -abl +fDE +fDE +fDE uxU -izh -abl -abv -abl +mrg +fDE +poX +jgy acf acf acf @@ -45582,8 +47948,8 @@ abl abl abl abl -abl -abl +uMd +bvX iIB abS abS @@ -45795,13 +48161,13 @@ acf acf acf acf -izh -abl -abl -abv -dGQ -abl -abl +mrg +fDE +fDE +otl +ryp +ogJ +jgy abl acf acf @@ -45809,8 +48175,8 @@ acf abl abl abl -abl -abl +kxv +fDE iIB iIB abS @@ -46023,12 +48389,12 @@ acf acf acf acf -izh -abl -abl -abl -izh -abl +mrg +sPK +fDE +fDE +mrg +spK abl abl abl @@ -46038,16 +48404,16 @@ abl abv abl abl -abl +uOl ydz -pDt -pDt -pDt -pDt +eQL +eQL +eQL +pgc iIB iIB -pDt -pDt +bOm +xhv abS pDt pDt @@ -46252,11 +48618,11 @@ acf acf acf acf -abl -abl -abl -izh -abl +fDE +fDE +fDE +mrg +spK abl abl abl @@ -46266,16 +48632,16 @@ abl abl abl abl -abl -ydz -pDt -qRj -pDt -pDt -pDt -pDt -pDt -pDt +bnM +lIL +aTy +xNi +aTy +bxb +eQL +eQL +eQL +xhv pDt pDt pDt @@ -46481,29 +48847,29 @@ acf acf acf uxU +tti +fDE +ryp +spK abl -abl -dGQ -abl -abl -abl -abl -dGQ -abl -abl -abl -abl -abl -abl -ydz -pDt -pDt -pDt -pDt -pDt -pDt +gPu +jcn +ner +jcn +jcn +jcn +jcn +jcn +jcn +dLm +kae pDt pDt +kpx +aTy +aTy +aTy +tYW pDt pDt pDt @@ -46709,29 +49075,29 @@ acf uxU uxU uxU -abl -abl -acf -abl -abl -abv -abl -dGQ -abl -abl -abl -abl -abl -abl +fDE +fDE +acf +xRe +kLl +cqN +fDE +ryp +fDE +fDE +fDE +fDE +osf +hNT ydz +xhv pDt pDt -pDt -pDt -pDt -pDt -pDt -qRj +dCD +hmJ +hmJ +hmJ +enn pDt pDt pDt @@ -46935,31 +49301,31 @@ acf acf uxU uxU -abl -abl -abl -abl +fDE +fDE +fDE +fDE acf acf -abl -abl -abl +fDE +icd +fDE uxU uxU -abl -abl -abl -abv -abl +fDE +fDE +han +otl +fDE acf +xhv pDt -pDt -pDt -pDt -pDt -pDt -pDt -pDt +dCD +cEi +wpY +eQL +eQL +xhv pDt oeN oeN @@ -47158,36 +49524,36 @@ abv abl abl acf -abl -abl +xWy +fDE acf uxU -abl -abl -abl -abl -abl +fDE +fDE +yjs +fDE +fDE acf acf -abl -abl -abl +fDE +cSL +fDE uxU acf acf -abl -abl +fDE +mVr uxU uxU acf +tYW pDt -pDt -pDt -pDt -pDt +crn +eQL +eQL ntr -iZG -pDt +hEe +xhv pDt oeN adC @@ -47386,36 +49752,36 @@ abl abl abl abl -abl -abl -dGQ -abl -abl -abl -abl -abl +xWy +cSL +ryp +fDE +fDE +pVZ +fDE +fDE acf acf uxU -abl -abl -abl -abl +fDE +fDE +fDE +fDE acf acf -abl -abl +fDE +fDE uxU acf acf nbw pDt -pDt +crn nbw ntr ntr -pDt -pDt +nNu +xhv pDt oeN adD @@ -47614,20 +49980,20 @@ abl abl abl abl -abl -abl -dGQ -abl -abl -abl -abl -abl -abl +bnM +uOl +ryp +fDE +fDE +fDE +fDE +ogJ +jgy acf uxU uxU -abl -abl +fDE +ogJ tYx acf acf @@ -47641,9 +50007,9 @@ nbw nbw nbw nbw -pDt -pDt -pDt +eQL +eQL +xhv pDt oeN adE @@ -47843,19 +50209,19 @@ abl abl abv abl -abl -dGQ -abl -abl -abl -abv -abl +bnM +oha +rWs +rWs +rWs +vBd +jgy abl acf uxU -abl -abl -abv +osf +fDE +qWI abl acf acf @@ -47868,10 +50234,10 @@ acf nbw nbw nbw -pDt -pDt -pDt -qRj +aTy +aTy +aTy +hRB pDt oeN abt @@ -48081,9 +50447,9 @@ abl abl acf acf -abl -abl -abl +fDE +ogJ +jgy abl acf acf @@ -48303,14 +50669,14 @@ acf acf acf acf -abl -abl -abl +kLl +kLl +kLl abl acf acf acf -abl +jgy abl abl acf @@ -48531,10 +50897,10 @@ acf acf acf uxU -abl -abl -abl -abl +fDE +roQ +fDE +spK abl acf abl @@ -48759,10 +51125,10 @@ acf acf uxU uxU -izh -abl -abl -abv +mrg +fDE +fDE +qWI abl abl abl @@ -48987,10 +51353,10 @@ acf acf uxU uxU -izh -abl -abl -abl +mrg +thk +ogJ +jgy abl abl abl @@ -49215,9 +51581,9 @@ acf acf uxU acf -izh -abl -abl +mrg +kIM +spK abl abl abv @@ -49443,9 +51809,9 @@ acf acf acf acf -izh -abl -abl +mrg +fDE +spK abl abl abl @@ -49670,10 +52036,10 @@ acf acf acf acf -izh -izh -abl -abl +mrg +mrg +ogJ +jgy abl abl abl @@ -49898,9 +52264,9 @@ acf acf acf acf -izh -abl -abl +iTQ +rWs +jgy abv abl abl @@ -50126,7 +52492,7 @@ acf acf acf acf -izh +jZX abl abl abl @@ -51267,8 +53633,8 @@ acf acf acf acf -dGQ -any +oFJ +sLU dGQ acf acf @@ -51495,9 +53861,9 @@ pUm pUm pUm vVC -acg -acg -acg +bvj +mHk +egU pUm whU whU @@ -51714,8 +54080,8 @@ acf vVC pUm pUm -acg -aaN +iye +dtr acg pUm pUm @@ -51723,9 +54089,9 @@ pUm pUm vVC vVC -acg -acg -acg +uop +bvj +xar pUm whU whU @@ -51941,19 +54307,19 @@ acf uxU vVC vVC -acg -acg -acg -acg +fYG +bvj +mHk +iye pUm pUm pUm pUm vVC vVC -acg -acg -acg +rhi +etU +xar pUm whU whU @@ -52169,29 +54535,29 @@ vVC vVC vVC vVC -acg -acg -acg -acg +bvj +jRL +bvj +bvj pUm pUm pUm pUm vVC -acg -acg -aaN -acg +bvj +bvj +jgj +dLW pUm whU whU whU whU fTM -fTM -fTM -fTM -fTM +lSA +yfe +yfe +uyn fTM fTM fTM @@ -52396,19 +54762,19 @@ pUm vVC vVC vVC -acg -acg -acg -acg +bvj +bvj +pQV +bvj pUm pUm pUm pUm pUm vVC -acg -acg -acg +xwN +wCs +dLW acg pUm whU @@ -52417,20 +54783,20 @@ whU whU whU whU -fTM -fTM -fTM -fTM -akL -fTM -fTM -fTM -fTM +vAT +wLT +lBl +yfe +bQz fTM fTM fTM fTM fTM +lSA +eMe +eMe +uyn vCG pDt pDt @@ -52624,9 +54990,9 @@ pUm vVC vVC vVC -acg -aaN -acg +bvj +oQm +bvj pUm pUm pUm @@ -52634,8 +55000,8 @@ pUm pUm pUm pUm -acg -acg +bvj +xar acg pUm pUm @@ -52646,19 +55012,19 @@ whU whU whU unp -fTM -fTM -fTM -fTM -fTM +vAT +lNG +vAT +lBl +uyn jMS jMS fTM -fTM -fTM -fTM -fTM -fTM +lSA +bkK +vAT +vAT +lBl vCG pDt pDt @@ -52851,10 +55217,10 @@ pUm pUm pUm vVC -acg -acg -acg -acg +bvj +mfn +bvj +bvj pUm pUm pUm @@ -52862,8 +55228,8 @@ pUm pUm pUm pUm -gkC -nzw +nha +tEm gkC pUm pUm @@ -52876,16 +55242,16 @@ whU unp unp unp -fTM -fTM -fTM -jMS -jMS -akL -fTM -fTM -fTM -fTM +wLT +vAT +lBl +vAg +pGL +tSi +bkK +vAT +jJg +nrR whU whU pDt @@ -53063,7 +55429,7 @@ aag pZb pZb pZb -aag +uYj xpR xpR xpR @@ -53079,10 +55445,10 @@ pUm pUm pUm pUm -acg -acg -acg -acg +bvj +bvj +bvj +ifr pUm nzw nzw @@ -53105,12 +55471,12 @@ whU whU unp unp -fTM -fTM -fTM -fTM -fTM -fTM +vAT +vAT +vAT +vAT +vAT +vAT whU unp unp @@ -53280,21 +55646,21 @@ aag aag aag aag -aag -aag -aag -aag -aag +tVw +srn +srn +srn +pRD aag aag aag pZb pZb pZb -aag -aag -aag -aag +uYj +eqS +uYj +tuJ xpR xpR xpR @@ -53306,12 +55672,12 @@ pZb pUm pUm pUm -acg -acg -acg -acg -acg -acg +rID +woT +woT +woT +woT +dLW acg acg acg @@ -53332,12 +55698,12 @@ whU whU whU whU -fTM -fTM -akL -fTM -fTM -fTM +vAT +sxo +rby +vAT +vAT +jMD whU whU unp @@ -53508,24 +55874,24 @@ aag aag aag aag -aag -aag -aag -aai -aag -aag +dzM +uYj +tuJ +gzH +qfK +pRD aag aag aag pZb pZb -aag -aag -aag -aag -aag -aag -aag +uYj +uYj +uYj +mWA +uYj +uYj +uYj pZb pZb pZb @@ -53559,13 +55925,13 @@ whU whU whU whU -fTM -fTM -fTM -fTM -fTM -fTM -fTM +jlt +jlt +jlt +jlt +jlt +jlt +pET whU whU whU @@ -53735,27 +56101,27 @@ aai aag aag aag -aag -aai -aag -aag -aag -aag -aag +tVw +vxj +uYj +uYj +dHg +uYj +rIm aag aai aag vly -aag -aag -aag -aag -aag -aag -aag -aag -aag -aag +wYB +pFB +pFB +fsc +uYj +uYj +uYj +dIv +uYj +uYj pZb pZb pZb @@ -53798,9 +56164,9 @@ whU whU whU whU -fTM -fTM -fTM +yfe +yfe +uyn fTM fTM fTM @@ -53962,14 +56328,14 @@ aag aag aag aag -aag -aag -aag -aag +tVw +uHc +uYj +uYj xpR -aag -aag -aag +uYj +uYj +rIm aag aag aag @@ -53977,15 +56343,15 @@ vly aag aai aag -aag -aag -aai -aag -aag -aag -aag -aag -aag +wYB +pFB +sET +pFB +pFB +pFB +pFB +pFB +mFZ vly acg acg @@ -54027,8 +56393,8 @@ whU whU whU whU -fTM -fTM +vAT +fIW fTM fTM fTM @@ -54189,15 +56555,15 @@ aag aag aag aag -aag -aag -aag -aag +tVw +uHc +uYj +eYb xpR xpR -aag -aag -aag +uYj +uYj +rIm aag aag aag @@ -54215,11 +56581,11 @@ aag aag aag vly -acg -acg -acg -acg -acg +cop +iye +iye +iye +egU acg acg acg @@ -54255,8 +56621,8 @@ whU whU whU whU -fTM -fTM +fUj +fIW aeT fTM fTM @@ -54417,15 +56783,15 @@ aag aag aag aag -aag -aag -aab +dzM +uYj +rYe xpR xpR xpR -aag -aag -aag +uYj +uYj +rIm aag aag aag @@ -54441,14 +56807,14 @@ aag aag aag aag -aag -vly -acg -acg -acg -acg -acg -acg +tVw +cqC +kmH +mLv +bvj +bvj +elp +egU acg acg acg @@ -54482,9 +56848,9 @@ whU whU whU unp -fTM -fTM -fTM +vAT +vAT +fIW fTM sIH fTM @@ -54645,15 +57011,15 @@ aag aag aag aai -aag -aab -aab +dzM +rYe +rYe xpR xpR -aab -aag -aag -aag +rYe +uYj +anM +rIm aag aag aag @@ -54669,15 +57035,15 @@ aag aag aai aag -aag -vly -acg -acg -aaN -acg -acg -acg -acg +jBl +vdt +bvj +bvj +oQm +bvj +mfn +mHk +egU acg acg acg @@ -54711,8 +57077,8 @@ whU whU unp unp -fTM -fTM +vAT +fIW fTM agd afE @@ -54873,15 +57239,15 @@ aag aag aag aag -aab -aab +eaI +rYe pZb xpR pZb -aab -aag -aag -aag +rYe +tuJ +uYj +rIm aag aag aag @@ -54897,15 +57263,15 @@ aag aag aag aag -aag -aci +jBl +xSk vVC vVC vVC vVC -acg -acg -acg +bvj +fmV +oDE acg acg pUm @@ -54939,8 +57305,8 @@ whU whU whU unp -fTM -fTM +rGE +fIW akL adZ fTM @@ -55101,15 +57467,15 @@ aag aag aag aag -aab +eaI pZb pZb pZb pZb -aab -aag -aag -aag +rYe +ktr +sFD +mFZ aag aag aag @@ -55125,15 +57491,15 @@ aag aag aag aag -aag +wYB pZb pUm vVC vVC vVC vVC -xSA -nzw +lyZ +lhE gkC pUm pUm @@ -55167,8 +57533,8 @@ whU whU whU unp -fTM -fTM +vAT +fIW fTM adH fTM @@ -55318,10 +57684,10 @@ pZb pZb pZb pZb -aab -aab -aag -aag +vPo +vPo +wRb +pRD aag aag aag @@ -55334,8 +57700,8 @@ pZb pZb pZb pZb -aag -aag +ktr +mFZ aag aag aai @@ -55360,8 +57726,8 @@ pUm vVC vVC pUm -acg -acg +fYG +oDE acg pUm pUm @@ -55394,9 +57760,9 @@ whU whU whU whU -fTM -fTM -fTM +vQR +vAT +fIW aeT aek agA @@ -55546,11 +57912,11 @@ pZb pZb pZb pZb -aab -aag -aag -aag -aag +rYe +fRD +uYj +lLU +pRD aag aag aag @@ -55562,7 +57928,7 @@ pZb pZb pZb pZb -aag +mFZ aag aag aag @@ -55588,8 +57954,8 @@ pUm pUm pUm pUm -acg -acg +wCs +dLW acg pUm pUm @@ -55622,9 +57988,9 @@ whU fTM whU whU -fTM -fTM -fTM +sAh +sAh +pET fTM adH fTM @@ -55718,7 +58084,6 @@ aGz aGz aDJ ank -ank ano ank ank @@ -55727,6 +58092,7 @@ ank ank ank ank +ank ano ank ank @@ -55774,11 +58140,11 @@ pZb pZb pZb xpR -aab -aag -aai -aag -aag +rYe +uYj +gzH +mEo +rpx aag aag aag @@ -55816,8 +58182,8 @@ pUm pUm pUm pUm -acg -acg +xGL +egU acg pUm pUm @@ -56003,10 +58369,10 @@ pZb pZb xpR xpR -aag -aag -aag -aag +uYj +wMr +uYj +rpx aag aag aag @@ -56045,8 +58411,8 @@ pUm pUm pUm pUm -acg -aaN +mHk +dtr pUm pUm pUm @@ -56231,10 +58597,10 @@ pZb pZb xpR xpR -aag -aag -aag -aag +uYj +uYj +uYj +rpx aag aai aag @@ -56273,9 +58639,9 @@ pUm pUm pUm vVC -acg -acg -acg +bvj +mHk +egU abj pUm acg @@ -56311,9 +58677,9 @@ vCG fTM akL fTM -fTM -aeT -agA +lSA +rgj +gWE ahv ahv slW @@ -56459,10 +58825,10 @@ pZb pZb pZb xpR -aag -aag -aag -aag +bvS +uYj +ktr +mFZ aag aag aag @@ -56501,10 +58867,10 @@ pUm pUm vVC vVC -acg -acg -acg -acg +xmK +bvj +mHk +egU abo acg acg @@ -56539,9 +58905,9 @@ vCG fTM fTM fTM -fTM -fTM -fTM +vNT +vAT +vkS ahv ahv slW @@ -56687,9 +59053,9 @@ pZb pZb pZb pZb -aag -aag -aag +uYj +ktr +mFZ aag aag aag @@ -56729,10 +59095,10 @@ pUm pUm vVC vVC -acg -acg -acg -acg +rhi +bvj +mNl +oDE acg acg acg @@ -56766,10 +59132,10 @@ fTM whU whU fTM -fTM -fTM -fTM -fTM +lSA +bkK +vAT +vAT ahv ahv aeg @@ -56915,8 +59281,8 @@ pZb pZb pZb pZb -aab -aag +aPM +mFZ aag aag aag @@ -56957,10 +59323,10 @@ pUm pUm vVC vVC -acg -acg -acg -acg +bvj +bvj +wCs +dLW acg vjL acg @@ -56984,10 +59350,10 @@ whU jMS jMS fTM -fTM -fTM -fTM -fTM +lSA +eMe +eMe +uyn jMS jMS fTM @@ -56995,8 +59361,8 @@ whU ajc vCG whU -fTM -fTM +vAT +hTR pRT ahv ahv @@ -57185,9 +59551,9 @@ pUm pUm pUm pUm -acg -acg -acg +bvj +rER +dLW iiK acg acg @@ -57211,13 +59577,13 @@ whU whU whU whU -fTM -fTM -fTM -fTM -fTM -fTM -akL +eMe +bkK +ldi +vAT +lBl +loP +bQz fTM wEO fTM @@ -57412,9 +59778,9 @@ pUm pUm pUm pUm -acg -acg -acg +woT +woT +dLW acg acg acg @@ -57440,13 +59806,13 @@ whU whU whU aco -fTM -fTM -fTM -fTM -fTM -fTM -fTM +vAT +vAT +bcU +vAT +whx +lBl +uyn wEO fTM fTM @@ -57671,10 +60037,10 @@ whU unp unp unp -fTM -fTM -fTM -fTM +vAT +vAT +vAT +tqQ eFS fTM fTM @@ -57901,8 +60267,8 @@ whU unp unp unp -wEO -wEO +gsq +viC wEO fTM fTM @@ -57998,7 +60364,6 @@ btF aDi aDL ank -ank ano ank ank @@ -58007,6 +60372,7 @@ ank ank ank ank +ank ano ank ank @@ -58128,9 +60494,9 @@ whU whU whU whU -jMS -fTM -fTM +vAg +vAT +lSN fTM akL fTM @@ -58286,12 +60652,12 @@ pZb pZb pZb pZb -aab -aab -aag -aag -aag -aag +vPo +vPo +lzf +wRb +wRb +pRD aag aag aai @@ -58356,9 +60722,9 @@ whU whU whU whU -jMS -fTM -fTM +ecn +jlt +pET fTM fTM diW @@ -58515,15 +60881,15 @@ pZb pZb pZb pZb -aab -aab -aag -aai -aag -aag -aag -aag -aag +rYe +rYe +uYj +gzH +qfK +wRb +wRb +wRb +pRD aag aag aag @@ -58744,15 +61110,15 @@ pZb pZb pZb pZb -aab -aab -aag -aag -aag -aag -aag -aag -aag +cfL +rYe +uYj +qVi +egc +uYj +mEo +isL +pRD aag aag aai @@ -58777,7 +61143,7 @@ pZb pZb vVC vVC -nzw +uBR aaQ aaR aaR @@ -58977,10 +61343,10 @@ xpR xpR xpR xpR -aab -aab -aag -aag +rYe +rYe +uYj +rpx aag aag aag @@ -59005,8 +61371,8 @@ pZb pZb vVC vVC -nzw -nzw +uBR +uBR aaQ aaQ aaQ @@ -59206,9 +61572,9 @@ xpR xpR xpR xpR -aab -aab -aab +rYe +rYe +gze aab aab aab @@ -59233,8 +61599,8 @@ pZb pZb vVC vVC -acg -nzw +bvj +uBR nzw nzw nzw @@ -59461,240 +61827,240 @@ pZb pZb vVC vVC +bvj +bvj +mHk +egU +acg +aaN +acg +acg +acg +acg +acg +acg acg acg acg acg +iye +iye +bEj +acg +aaN +acg +acg +acg +acg +acg +aaQ +pUm +whU +whU +whU +whU +whU +jMS +fIt +akL +wEO +fTM +fTM +akL +diW +fTM +fTM +fTM +agX +kff +boe +agX +agX +agX +ivu +lJo +lJo +aev +agX +boe +boe +boe +aji +jFc +ahv +ahv +ahv +ahv +xch +xch +rGZ +xch +xch +eGg +xch +dGc +dNj +uve +uve +txp +tqe +tqe +uve +uve +uve +uve +uve +uve +uve +git +uve +uve +iJs +nWe +hba +ajw +qcz +ajI +ajI +ajI +alz +ajI +ajI +ajI +ajI +ajI +ajI +arQ +vPV +fqh +fSX +dLY +dLY +dLY +btS +qns +oUa +oUa +oUa +jik +oUa +oUa +oUa +oUa +jik +oUa +oUa +oUa +cCr +djI +dZY +djI +apu +apu +apu +apu +apu +apu +apu +pab +apu +apu +apu +apu +apu +apu +apu +apu +apu +apu +apu +apu +apu +apN +apQ +aqf +asM +aqf +apQ +apN +apu +jzZ +wYp +meP +wpw +wpw +aYr +wpw +lBw +eNK +pFe +tvC +bCe +wpw +lBw +lBw +lBw +aac +aaa +aaa +aaa +aaa +"} +(166,1,1) = {" +aac +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +pZb +vVC +vVC +vVC +bvj +bvj +mHk +egU acg -aaN -acg -acg -acg -acg -acg -acg -acg -acg -acg -acg -acg -acg -nzw -acg -aaN -acg -acg -acg -acg -acg -aaQ -pUm -whU -whU -whU -whU -whU -jMS -fIt -akL -wEO -fTM -fTM -akL -diW -fTM -fTM -fTM -agX -kff -boe -agX -agX -agX -ivu -lJo -lJo -aev -agX -boe -boe -boe -aji -jFc -ahv -ahv -ahv -ahv -xch -xch -rGZ -xch -xch -eGg -xch -dGc -dNj -uve -uve -txp -tqe -tqe -uve -uve -uve -uve -uve -uve -uve -git -uve -uve -iJs -nWe -hba -ajw -qcz -ajI -ajI -ajI -alz -ajI -ajI -ajI -ajI -ajI -ajI -arQ -vPV -fqh -fSX -dLY -dLY -dLY -btS -qns -oUa -oUa -oUa -jik -oUa -oUa -oUa -oUa -jik -oUa -oUa -oUa -cCr -djI -dZY -djI -apu -apu -apu -apu -apu -apu -apu -pab -apu -apu -apu -apu -apu -apu -apu -apu -apu -apu -apu -apu -apu -apN -apQ -aqf -asM -aqf -apQ -apN -apu -jzZ -wYp -meP -wpw -wpw -aYr -wpw -lBw -eNK -pFe -tvC -bCe -wpw -lBw -lBw -lBw -aac -aaa -aaa -aaa -aaa -"} -(166,1,1) = {" -aac -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -pZb -vVC -vVC -vVC -acg -acg -acg -acg -acg nzw bfY nzw @@ -59705,9 +62071,9 @@ nzw nzw nzw pUm -acg -acg -nzw +pQV +bvj +lhE acg acg acg @@ -59918,11 +62284,11 @@ pZb pUm vVC vVC -acg -acg -aaN -acg -acg +bvj +bvj +oQm +mHk +egU nzw nHq jAo @@ -59931,11 +62297,11 @@ acg umb iyr eZC -nzw +uBR pUm vVC -acg -nzw +rAU +lhE acg acg acg @@ -60147,11 +62513,11 @@ pUm vVC vVC vVC -acg -acg -acg -acg -nzw +bvj +bvj +bvj +mHk +bEj jAo acg gkC @@ -60159,12 +62525,12 @@ acg gkC acg jAo -nzw +uBR vVC vVC aaQ -nzw -acg +qPY +egU acg acg acg @@ -60377,9 +62743,9 @@ vVC vVC vVC pUm -acg -acg -nzw +bvj +bvj +gVR umb umb umb @@ -60387,12 +62753,12 @@ aaN umb umb umb -nzw +uBR vVC vVC vVC -nzw -acg +uBR +oDE acg acg acg @@ -60605,9 +62971,9 @@ pUm vVC vVC vVC -acg -acg -nzw +bvj +bvj +qPY rwx acg gkC @@ -60615,12 +62981,12 @@ acg gkC acg dfJ -nzw +uBR pUm vVC vVC -nzw -acg +uBR +oDE acg acg acg @@ -60835,21 +63201,21 @@ vVC vVC vVC pUm -nzw -rPK +uBR +jhj upQ umb acg umb fAD rPK -nzw +uBR pUm pUm vVC -nzw -acg -aaN +uBR +mHk +dtr acg acg acg @@ -61063,8 +63429,8 @@ pUm vVC pUm pUm -nzw -nzw +uBR +gVR nzw nzw nzw @@ -61075,9 +63441,9 @@ nzw pUm pUm pUm -nzw -acg -acg +uBR +bvj +fGn acg acg aaQ diff --git a/maps/map_files/LV624/armory/10.cheese.dmm b/maps/map_files/LV624/armory/10.cheese.dmm index 26bfd92837f3..cee714b1c170 100644 --- a/maps/map_files/LV624/armory/10.cheese.dmm +++ b/maps/map_files/LV624/armory/10.cheese.dmm @@ -182,12 +182,6 @@ pixel_x = 8; pixel_y = -4 }, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = 25; - pixel_y = 5 - }, /turf/open/floor{ icon_state = "cult" }, diff --git a/maps/map_files/LV624/armory/10.extra.dmm b/maps/map_files/LV624/armory/10.extra.dmm index f9c0f47729c5..7086e945d1ad 100644 --- a/maps/map_files/LV624/armory/10.extra.dmm +++ b/maps/map_files/LV624/armory/10.extra.dmm @@ -187,12 +187,6 @@ /obj/effect/landmark/crap_item, /obj/item/ammo_magazine/smg/m39/extended, /obj/item/weapon/gun/smg/m39, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = 25; - pixel_y = 5 - }, /turf/open/floor{ icon_state = "cult" }, diff --git a/maps/map_files/LV624/armory/10.looted.dmm b/maps/map_files/LV624/armory/10.looted.dmm index 478a3db3ea48..b81e0660816d 100644 --- a/maps/map_files/LV624/armory/10.looted.dmm +++ b/maps/map_files/LV624/armory/10.looted.dmm @@ -186,18 +186,6 @@ icon_state = "cult" }, /area/lv624/lazarus/armory) -"K" = ( -/obj/item/stack/sheet/metal, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = 25; - pixel_y = 5 - }, -/turf/open/floor{ - icon_state = "cult" - }, -/area/lv624/lazarus/armory) "T" = ( /obj/structure/machinery/door_control{ id = "garage_blast"; @@ -272,7 +260,7 @@ i w w w -K +w p i "} diff --git a/maps/map_files/LV624/centralcaves/10.T.dmm b/maps/map_files/LV624/centralcaves/10.T.dmm index 7433f2f6131d..56c54485e09e 100644 --- a/maps/map_files/LV624/centralcaves/10.T.dmm +++ b/maps/map_files/LV624/centralcaves/10.T.dmm @@ -1,4 +1,22 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"b" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"c" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "d" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/central_caves) @@ -16,7 +34,7 @@ /area/lv624/ground/caves/central_caves) "h" = ( /obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/gm/dirt, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) "i" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -24,6 +42,10 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"j" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) "k" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/north_east_barrens) @@ -53,48 +75,136 @@ icon_state = "warning" }, /area/lv624/ground/barrens/containers) +"s" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"t" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) +"u" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"v" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "w" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/gm/dirt, /area/lv624/ground/barrens/west_barrens) -"z" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/gm/dirt, -/area/lv624/ground/caves/central_caves) "A" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"B" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "C" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"D" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"E" = ( +/turf/closed/wall/strata_ice/jungle, +/area/lv624/ground/caves/south_central_caves) +"F" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) "G" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"H" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) +"I" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) +"K" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"M" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) +"N" = ( +/obj/effect/landmark/hunter_primary, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"O" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) "Q" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"R" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"S" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"U" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) "V" = ( /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) +"Z" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) (1,1,1) = {" f -z -V -V -V -V -G -V -V +g +B +b +N +S +S +s +F Q V V @@ -111,13 +221,13 @@ l (2,1,1) = {" f g -V -V -V -V -V -V -V +R +U +S +K +S +S +v Q V V @@ -134,14 +244,14 @@ l (3,1,1) = {" f g -V -G -V -V +R +S +S +E +E l -l -n -n +v +Q V G V @@ -157,10 +267,10 @@ w (4,1,1) = {" f A -V -C l l +E +E l l l @@ -709,9 +819,9 @@ o (28,1,1) = {" f e -V -V -V +D +D +D l l l @@ -731,9 +841,9 @@ p "} (29,1,1) = {" f -f -V -V +O +S +S l l l @@ -754,8 +864,8 @@ p "} (30,1,1) = {" f -f -f +O +j l l l @@ -777,9 +887,9 @@ p "} (31,1,1) = {" f -f -f -l +c +Z +E l l l @@ -799,16 +909,16 @@ k p "} (32,1,1) = {" -f -f -l -l -l -l +O +u +E +E l l l l +E +E l l l @@ -823,16 +933,16 @@ p "} (33,1,1) = {" f -f +a h -k -k -k -k -l -l -k -k +H +H +H +M +E +E +t +I l k k diff --git a/maps/map_files/LV624/centralcaves/10.qc.dmm b/maps/map_files/LV624/centralcaves/10.qc.dmm index 1e84fde00653..5f63ae797e02 100644 --- a/maps/map_files/LV624/centralcaves/10.qc.dmm +++ b/maps/map_files/LV624/centralcaves/10.qc.dmm @@ -1,838 +1,1065 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"e" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"aD" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"bV" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"dd" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 9 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"gU" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) -"f" = ( +"hJ" = ( +/obj/effect/decal/grass_overlay/grass1, /turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"hP" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 11; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"hW" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 9; + icon_state = "warning" + }, +/area/lv624/ground/barrens/containers) +"iS" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"kc" = ( +/obj/structure/flora/bush/ausbushes/pointybush, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"ks" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 2; + pixel_y = 7; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"lp" = ( +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) -"g" = ( +"lq" = ( +/turf/closed/wall/rock/brown, +/area/lv624/ground/barrens/west_barrens) +"mN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) +"oB" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/amanita, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) -"h" = ( +"oJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) -"k" = ( -/turf/open/gm/dirt, +"pd" = ( +/obj/structure/flora/bush/ausbushes/var3/ywflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"pC" = ( +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) -"l" = ( -/turf/closed/wall/rock/brown, +"pR" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet{ + pixel_x = 8; + pixel_y = 13 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"qK" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"ry" = ( +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) -"m" = ( +"sL" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"sO" = ( +/turf/closed/wall/strata_ice/jungle, +/area/lv624/ground/caves/south_central_caves) +"vC" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 6 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"vR" = ( +/obj/structure/flora/bush/ausbushes/var3/fullgrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"wk" = ( +/turf/closed/wall/rock/brown, +/area/lv624/ground/caves/south_central_caves) +"wL" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) -"n" = ( +"yv" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) -"o" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +"yD" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/north_east_barrens) -"q" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 9; - icon_state = "warning" +"yO" = ( +/obj/effect/decal/grass_overlay/grass1, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) +"zh" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 6 }, -/area/lv624/ground/barrens/containers) -"r" = ( +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"An" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"AL" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"DG" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"ER" = ( +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"GE" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/barrens/north_east_barrens) +"GR" = ( +/obj/effect/landmark/hunter_primary, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 10 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"Is" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"Jf" = ( +/obj/structure/flora/bush/ausbushes/var3/brflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"JB" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"JX" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"JZ" = ( /obj/structure/fence, /turf/open/floor{ dir = 1; icon_state = "warning" }, /area/lv624/ground/barrens/containers) -"w" = ( +"KX" = ( +/turf/open/gm/dirt, +/area/lv624/ground/barrens/west_barrens) +"Od" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/south_central_caves) +"Oe" = ( +/obj/structure/flora/bush/ausbushes/ppflowers, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/central_caves) +"Pd" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/effect/decal/grass_overlay/grass1{ + dir = 1 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) -"x" = ( -/obj/effect/landmark/objective_landmark/close, +"PB" = ( /turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"Rx" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) -"y" = ( -/turf/closed/wall/rock/brown, -/area/lv624/ground/barrens/west_barrens) -"C" = ( -/turf/open/gm/dirt, +"Tu" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/decal/grass_overlay/grass1{ + dir = 8 + }, +/turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) -"O" = ( +"Uu" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = 4; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"UB" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 1 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) +"Vd" = ( /obj/effect/landmark/hunter_primary, +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 9 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) -"P" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, +"VY" = ( +/obj/item/reagent_container/food/snacks/grown/mushroom/glowshroom{ + pixel_x = -10; + pixel_y = -2; + light_on = 1; + light_range = 1; + light_system = 1 + }, +/turf/open/auto_turf/strata_grass/layer1, +/area/lv624/ground/caves/south_central_caves) +"Xj" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 10 + }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) -"Y" = ( +"XV" = ( /turf/open/gm/dirt, -/area/lv624/ground/barrens/west_barrens) +/area/lv624/ground/caves/south_central_caves) +"ZM" = ( +/obj/effect/decal/grass_overlay/grass1{ + dir = 4 + }, +/turf/open/gm/dirt, +/area/lv624/ground/barrens/north_east_barrens) +"ZU" = ( +/obj/effect/decal/grass_overlay/grass1/inner{ + dir = 5 + }, +/turf/open/gm/dirt, +/area/lv624/ground/caves/central_caves) (1,1,1) = {" -f -n -C -C -O -C -C -C -C -n -C -g -C -C -l -l -l -l -l -l -l +PB +qK +dd +DG +Vd +ER +ER +wL +Xj +qK +XV +sL +XV +XV +wk +wk +wk +wk +wk +wk +wk "} (2,1,1) = {" -f -n -C -g -C -C -C -g -C -n -C -C -C -C -C -l -l -l -l -y -Y +PB +qK +JB +Rx +ER +ks +ER +ER +hJ +qK +XV +XV +XV +XV +XV +wk +wk +wk +wk +lq +KX "} (3,1,1) = {" -f -n -C -C -l -l -l -w -w -w -C -C -C -C -C -C -l -l -l -Y -Y +PB +qK +JB +ER +ER +sO +sO +wk +hJ +qK +XV +XV +XV +XV +XV +XV +wk +wk +wk +KX +KX "} (4,1,1) = {" -f -w -l -l -l -l -l -l -l -l -l -C -C -C -C -C -l -l -l -Y -Y +PB +aD +wk +wk +sO +sO +wk +wk +wk +wk +wk +XV +XV +XV +XV +XV +wk +wk +wk +KX +KX "} (5,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -C -C -C -C -C -C -l -l -y -Y +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +XV +XV +XV +XV +XV +XV +wk +wk +lq +KX "} (6,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -l -C -C -C -C -C -l -y -Y +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +XV +XV +XV +XV +XV +wk +lq +KX "} (7,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -l -l -C -g -C -C -l -l -y +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +Tu +yv +qK +qK +wk +wk +lq "} (8,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -l -l -n -n -n -n -l -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +ER +wL +Xj +XV +AL +wk +wk "} (9,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -l -l -C -C -C -C -C -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +ER +kc +ER +hJ +XV +XV +wk +wk "} (10,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -l -P -C -C -C -C -C -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +ER +ER +ER +hJ +XV +XV +wk +wk "} (11,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -P -P -C -C -C -C -l -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +sO +ks +ER +bV +zh +XV +XV +wk +wk "} (12,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -P -P -C -C -C -C -l -l -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +sO +sO +ER +ER +hJ +sL +XV +XV +wk +wk "} (13,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -P -C -C -C -C -g -l -l -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +ER +ER +Rx +ER +GR +Xj +XV +XV +wk +wk "} (14,1,1) = {" -l -l -l -l -l -l -l -l -l -l -l -l -C -C -C -O -C -l -l -l -l +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +ER +ER +ER +ER +hJ +XV +XV +wk +wk "} (15,1,1) = {" -l -l -l -l -l -l -C -C -l -l -l -l -l -C -C -C -C -C -l -l -l +wk +wk +wk +wk +wk +wk +XV +XV +wk +wk +wk +pd +iS +ER +ER +ER +hJ +XV +XV +wk +wk "} (16,1,1) = {" -l -l -l -l -l -C -C -C -C -l -l -l -l -l -C -C -C -C -C -l -l +wk +wk +wk +wk +wk +XV +XV +XV +XV +wk +wk +wk +sO +sO +ER +hP +hJ +XV +wk +wk +wk "} (17,1,1) = {" -l -l -l -C -C -C -C -C -C -C -l -l -l -C -C -g -C -x -l -l -l +wk +wk +wk +XV +XV +XV +XV +XV +XV +XV +wk +wk +wk +sO +ER +ER +hJ +XV +wk +wk +wk "} (18,1,1) = {" -l -l -l -C -C -g -C -C -C -g -C -C -l -C -C -C -C -P -l -l -l +wk +wk +wk +XV +XV +sL +XV +XV +XV +sL +XV +XV +wk +sO +ER +Jf +hJ +XV +wk +wk +wk "} (19,1,1) = {" -l -l -C -C -C -C -C -C -C -C -C -C -n -C -C -C -C -P -l -l -l +wk +wk +XV +XV +XV +XV +XV +XV +XV +XV +XV +XV +Od +ER +ER +ER +wL +Xj +XV +wk +wk "} (20,1,1) = {" -l -C -C -C -C -C -l -l -C -C -C -C -n -C -C -C -C -P -P -l -l +wk +XV +XV +XV +XV +XV +wk +wk +XV +XV +XV +XV +Od +ER +ER +VY +Rx +hJ +XV +wk +wk "} (21,1,1) = {" -f -C -C -C -C -C -l -l -C -C -C -g -w -C -C -C -g -C -P -l -l +PB +XV +XV +XV +XV +XV +wk +wk +XV +XV +XV +sL +Pd +ER +ER +ER +ER +hJ +XV +wk +wk "} (22,1,1) = {" -f -C -g -C -C -l -l -l -l -C -C -C -n -C -C -C -C -C -P -l -l +PB +XV +sL +XV +XV +wk +wk +wk +wk +XV +XV +XV +Od +ER +Rx +ER +JX +hJ +XV +wk +wk "} (23,1,1) = {" -f -f -C -C -l -l -l -l -l -l -C -C -n -C -C -C -C -C -P -l -l +PB +PB +XV +XV +wk +wk +wk +wk +wk +wk +XV +XV +Od +ER +ry +ER +bV +zh +XV +wk +wk "} (24,1,1) = {" -f -f -C -C -l -l -l -l -l -l -l -l -l -C -C -C -C -C -C -l -l +PB +PB +XV +XV +wk +wk +wk +wk +wk +wk +wk +wk +wk +pR +ER +ER +hJ +XV +wk +wk +wk "} (25,1,1) = {" -f -f -C -l -l -l -l -l -l -l -l -l -C -C -C -C -C -C -l -l -l +PB +PB +XV +wk +wk +wk +wk +wk +wk +wk +sO +sO +ER +ER +ER +Rx +hJ +XV +wk +wk +wk "} (26,1,1) = {" -f -f -C -l -l -l -l -l -l -l -l -x -C -C -C -g -C -C -l -l -l +PB +PB +XV +wk +wk +wk +wk +wk +wk +wk +sO +ER +ER +ER +Uu +ER +hJ +wk +wk +wk +wk "} (27,1,1) = {" -f -f -l -l -l -l -l -l -l -l -l -l -C -C -C -C -C -l -l -l -q +PB +PB +wk +wk +wk +wk +wk +wk +wk +wk +sO +sO +ER +ER +ER +ER +hJ +wk +wk +wk +hW "} (28,1,1) = {" -f -h -l -l -l -l -l -l -l -l -l -l -l -C -C -C -C -l -l -l -r +PB +oJ +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +ER +ER +ER +wk +wk +wk +wk +JZ "} (29,1,1) = {" -f -f -l -l -l -l -l -l -l -l -l -l -l -m -m -m -l -l -l -l -r +PB +UB +wk +wk +wk +wk +wk +wk +wk +wk +wk +sO +sO +An +An +vC +wk +wk +wk +wk +JZ "} (30,1,1) = {" -f -f -l -l -l -l -l -l -l -l -l -l -l -k -k -k -l -l -k -k -r +PB +UB +oB +wk +wk +wk +wk +wk +wk +wk +wk +wk +wk +ZM +ZM +ZM +wk +wk +yD +yD +JZ "} (31,1,1) = {" -f -f -f -l -l -l -l -l -l -l -l -l -k -k -k -k -k -k -k -k -r +PB +gU +Oe +sO +wk +wk +wk +wk +wk +wk +wk +wk +yD +yD +yD +yD +yD +yD +yD +yD +JZ "} (32,1,1) = {" -h -f -l -l -l -l -l -l -l -l -l -l -l -k -k -k -k -k -o -k -r +UB +lp +sO +sO +wk +wk +wk +wk +sO +sO +wk +wk +wk +yD +yD +yD +yD +yD +mN +yD +JZ "} (33,1,1) = {" -f -e -e -k -k -k -l -l -l -k -k -l -k -k -k -k -k -k -k -k -r +PB +ZU +Is +pC +pC +pC +vR +sO +sO +GE +yO +wk +yD +yD +yD +yD +yD +yD +yD +yD +JZ "} diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm index 84e9ebb5c814..09eb12287a58 100644 --- a/maps/map_files/LV624/hydro/30.destroyed.dmm +++ b/maps/map_files/LV624/hydro/30.destroyed.dmm @@ -164,8 +164,8 @@ /area/lv624/lazarus/hydroponics) "mK" = ( /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth{ - desc = "A modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, offering protection and storage while not restricting movement. This set seems damaged..."; - name = "damaged M4 synthetic PMC armor"; + desc = "A serious modification of the standard Armat Systems M3 armor. This variant was designed for PMC Support Units in the field, with every armor insert removed. It's designed with the idea of a high speed lifesaver in mind. This set seems damaged..."; + name = "damaged M4 Synthetic PMC armor"; pixel_x = -5; pixel_y = -5 }, diff --git a/maps/map_files/LV624/maintemple/1.intact.dmm b/maps/map_files/LV624/maintemple/1.intact.dmm index 9289d3454327..8f7c741d80c6 100644 --- a/maps/map_files/LV624/maintemple/1.intact.dmm +++ b/maps/map_files/LV624/maintemple/1.intact.dmm @@ -474,7 +474,7 @@ /turf/open/gm/dirt, /area/lv624/ground/barrens/south_eastern_barrens) "iN" = ( -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = -6; pixel_y = 7 }, @@ -885,7 +885,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = 6; pixel_y = 7 @@ -1132,7 +1132,7 @@ /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple/powered) "BI" = ( -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = 6; pixel_y = 7 }, @@ -1215,7 +1215,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = -6; pixel_y = 7 @@ -1257,7 +1257,7 @@ dir = 4; health = 80 }, -/obj/item/weapon/claymore/mercsword/machete{ +/obj/item/weapon/sword/machete{ desc = "This machete seems not standard issue, indeed it seems to be an ancient military design. Smells like the jungle."; name = "\improper Dutch's Machete" }, diff --git a/maps/map_files/LV624/maintemple/2.flooded.dmm b/maps/map_files/LV624/maintemple/2.flooded.dmm index bcbf6a54774c..8643676807fc 100644 --- a/maps/map_files/LV624/maintemple/2.flooded.dmm +++ b/maps/map_files/LV624/maintemple/2.flooded.dmm @@ -260,7 +260,7 @@ /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/barrens/south_eastern_barrens) "hu" = ( -/obj/item/weapon/claymore/mercsword, +/obj/item/weapon/sword, /turf/open/gm/coast/beachcorner2/north_west, /area/lv624/ground/caves/sand_temple) "hA" = ( @@ -686,7 +686,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = 6; pixel_y = 7 @@ -1012,7 +1012,7 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) "BI" = ( -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ pixel_x = 6; pixel_y = 7 }, @@ -1096,7 +1096,7 @@ icon_state = "Synthetic_Template"; name = "Eternal guardian" }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ layer = 3.1; pixel_x = -6; pixel_y = 7 diff --git a/maps/map_files/LV624/science/10.yautja.dmm b/maps/map_files/LV624/science/10.yautja.dmm index c77bacd35202..04e671be3259 100644 --- a/maps/map_files/LV624/science/10.yautja.dmm +++ b/maps/map_files/LV624/science/10.yautja.dmm @@ -538,18 +538,6 @@ icon_state = "white" }, /area/lv624/lazarus/research) -"WJ" = ( -/obj/effect/landmark/crap_item, -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = -25; - pixel_y = 5 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/lv624/lazarus/research) "Zw" = ( /obj/structure/surface/table, /obj/item/storage/fancy/vials/random, @@ -670,7 +658,7 @@ al ar aJ Lo -WJ +gd ar aZ CC diff --git a/maps/map_files/LV624/science/40.fullylocked.dmm b/maps/map_files/LV624/science/40.fullylocked.dmm index 8e523f6c7e9c..933de359a481 100644 --- a/maps/map_files/LV624/science/40.fullylocked.dmm +++ b/maps/map_files/LV624/science/40.fullylocked.dmm @@ -417,17 +417,6 @@ "bF" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/jungle/central_jungle) -"gu" = ( -/obj/structure/machinery/door_control{ - id = "secure_inner_blast"; - name = "Secure Inner Doors"; - pixel_x = -25; - pixel_y = 5 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/lv624/lazarus/research) "ky" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor{ @@ -608,7 +597,7 @@ ay au aQ Kl -gu +ak au bp ay diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index 4c53a79e90d7..10a6618c681d 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -127,6 +127,16 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/gm/dirt, /area/lv624/lazarus/crashed_ship) +"eD" = ( +/obj/structure/surface/table/woodentable, +/obj/effect/spawner/random/toolbox, +/obj/item/toy/deck/uno{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/wood, +/area/lv624/lazarus/crashed_ship) "eG" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/gm/dirt, @@ -288,6 +298,21 @@ /obj/item/weapon/gun/smg/fp9000, /turf/open/floor/plating, /area/lv624/lazarus/crashed_ship) +"hZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/obj/item/weapon/gun/pistol/heavy, +/obj/item/ammo_magazine/pistol/heavy, +/obj/item/ammo_magazine/pistol/heavy, +/obj/item/ammo_magazine/pistol/heavy, +/obj/item/ammo_magazine/pistol/heavy, +/obj/item/clothing/accessory/storage/webbing, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/lv624/lazarus/crashed_ship) "id" = ( /turf/open/floor/plating{ dir = 5; @@ -406,6 +431,19 @@ icon_state = "platingdmg1" }, /area/lv624/lazarus/crashed_ship) +"kO" = ( +/obj/structure/bed, +/obj/item/bedsheet/green, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/obj/item/toy/plush/farwa, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/lv624/lazarus/crashed_ship) "kY" = ( /obj/structure/machinery/door/airlock/almayer/generic, /turf/open/floor{ @@ -453,13 +491,6 @@ "lr" = ( /turf/open/floor/plating/plating_catwalk, /area/lv624/lazarus/crashed_ship) -"lv" = ( -/obj/item/stack/rods, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/lv624/lazarus/crashed_ship) "lC" = ( /obj/item/ammo_magazine/sniper/svd, /turf/open/floor/plating, @@ -544,19 +575,6 @@ icon_state = "platingdmg1" }, /area/lv624/lazarus/crashed_ship) -"ox" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/obj/item/toy/farwadoll, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/lv624/lazarus/crashed_ship) "oI" = ( /obj/item/stack/rods, /obj/effect/landmark/corpsespawner/clf, @@ -662,19 +680,6 @@ icon_state = "green" }, /area/lv624/lazarus/crashed_ship) -"sI" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/effect/spawner/random/toolbox, -/obj/structure/transmitter/clf_net/rotary{ - phone_category = "CR-116"; - phone_color = "yellow"; - phone_id = "Engineering" - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/lv624/lazarus/crashed_ship) "sO" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -958,6 +963,13 @@ icon_state = "whitebluefull" }, /area/lv624/lazarus/crashed_ship) +"zJ" = ( +/obj/item/stack/rods, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/crashed_ship) "Aa" = ( /obj/effect/vehicle_spawner/van/fixed{ color = "#4a9eed"; @@ -1056,16 +1068,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/lv624/lazarus/crashed_ship) -"Cs" = ( -/obj/structure/surface/table/almayer, -/obj/item/tank/oxygen/red, -/obj/item/storage/bag/trash, -/obj/item/tool/screwdriver, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/lv624/lazarus/crashed_ship) "Ct" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 8; @@ -1131,6 +1133,15 @@ icon_state = "green" }, /area/lv624/lazarus/crashed_ship) +"DO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/regular, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "emerald" + }, +/area/lv624/lazarus/crashed_ship) "DS" = ( /obj/structure/surface/table/woodentable, /obj/item/storage/firstaid/regular{ @@ -1246,16 +1257,6 @@ icon_state = "emerald" }, /area/lv624/lazarus/crashed_ship) -"GO" = ( -/obj/structure/surface/table/woodentable, -/obj/effect/spawner/random/toolbox, -/obj/item/toy/deck/uno{ - pixel_x = -3; - pixel_y = 4 - }, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/wood, -/area/lv624/lazarus/crashed_ship) "GQ" = ( /obj/effect/landmark/corpsespawner/engineer, /turf/open/floor/plating, @@ -1270,21 +1271,6 @@ icon_state = "platingdmg1" }, /area/lv624/lazarus/crashed_ship) -"GY" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/obj/item/weapon/gun/pistol/heavy, -/obj/item/ammo_magazine/pistol/heavy, -/obj/item/ammo_magazine/pistol/heavy, -/obj/item/ammo_magazine/pistol/heavy, -/obj/item/ammo_magazine/pistol/heavy, -/obj/item/clothing/accessory/storage/webbing, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/lv624/lazarus/crashed_ship) "Hg" = ( /obj/structure/cargo_container/arious/rightmid, /turf/open/floor{ @@ -1595,6 +1581,19 @@ /obj/structure/machinery/floodlight, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"OZ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/toolbox, +/obj/structure/transmitter/clf_net/rotary{ + phone_category = "CR-116"; + phone_color = "yellow"; + phone_id = "Engineering" + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/lv624/lazarus/crashed_ship) "Pu" = ( /obj/effect/landmark/corpsespawner/clf, /turf/open/floor{ @@ -1819,6 +1818,16 @@ icon_state = "emeraldcorner" }, /area/lv624/lazarus/crashed_ship) +"Up" = ( +/obj/structure/surface/table/almayer, +/obj/item/tank/oxygen/red, +/obj/item/storage/bag/trash, +/obj/item/tool/screwdriver, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/crashed_ship) "Uv" = ( /obj/item/ammo_magazine/smg/fp9000, /turf/open/floor/plating{ @@ -1956,15 +1965,6 @@ icon_state = "warnplate" }, /area/lv624/lazarus/crashed_ship) -"Xa" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/regular, -/obj/effect/landmark/objective_landmark/science, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" - }, -/area/lv624/lazarus/crashed_ship) "Xm" = ( /turf/open/floor/plating{ icon_state = "platingdmg3" @@ -2485,7 +2485,7 @@ xh wV lr gQ -sI +OZ Xq Qj lr @@ -2534,7 +2534,7 @@ lr DY HR Xq -Xa +DO Ud lr ch @@ -2571,7 +2571,7 @@ te UV Ro Sy -Cs +Up ok dN Bc @@ -2954,7 +2954,7 @@ wx LG ln Bg -GO +eD uX Xq Mz @@ -3187,7 +3187,7 @@ vo lr RS Xq -ox +kO Dv sH IG @@ -3199,7 +3199,7 @@ jr Xq ou dN -lv +zJ Qf Hg dN @@ -3377,7 +3377,7 @@ Ab Ab Ab Ns -GY +hZ IP Xq Nw diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index e03bf8cdcbe4..a56328df85f0 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -86,10 +86,6 @@ icon_state = "multi_tiles" }, /area/varadero/interior/medical) -"ade" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/turf/open/gm/dirt, -/area/varadero/exterior/lz2_near) "adw" = ( /turf/closed/wall/r_wall, /area/varadero/interior/cargo) @@ -788,7 +784,7 @@ /area/varadero/exterior/pool) "aAX" = ( /obj/docking_port/stationary/marine_dropship/lz2{ - name = "LZ2 - Palm Airfield" + name = "LZ2: Palm Airfield" }, /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) @@ -4928,7 +4924,7 @@ "dhQ" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/colonist, -/obj/item/weapon/katana, +/obj/item/weapon/sword/katana, /turf/open/floor/carpet, /area/varadero/interior/chapel) "dhV" = ( @@ -5652,12 +5648,6 @@ icon_state = "red" }, /area/varadero/interior/hall_N) -"dKm" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, -/area/varadero/interior/bunks) "dKy" = ( /obj/structure/closet/crate/freezer/cooler/oj, /obj/item/reagent_container/food/drinks/cans/beer, @@ -7259,15 +7249,6 @@ }, /turf/open/gm/dirt, /area/varadero/exterior/monsoon) -"eKW" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/item/toy/farwadoll, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "snow_mat" - }, -/area/varadero/interior/security) "eLE" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/brigdoor/westleft, @@ -7371,9 +7352,6 @@ /obj/item/circuitboard/airlock, /turf/open/floor/shiva, /area/varadero/interior/technical_storage) -"eOK" = ( -/turf/open/floor/plating, -/area/varadero/interior_protected/caves/central) "eOZ" = ( /obj/structure/bed/chair{ dir = 1 @@ -8588,28 +8566,6 @@ icon_state = "yellow" }, /area/varadero/interior/electrical) -"fDn" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/toy/farwadoll, -/turf/open/floor/wood, -/area/varadero/interior/bunks) "fDB" = ( /obj/structure/machinery/light{ dir = 4 @@ -10632,11 +10588,6 @@ icon_state = "asteroidplating" }, /area/varadero/interior/maintenance) -"gPE" = ( -/turf/open/floor/shiva{ - icon_state = "multi_tiles" - }, -/area/varadero/interior_protected/caves/central) "gPG" = ( /turf/open/gm/dirt{ icon_state = "desert2" @@ -12337,14 +12288,6 @@ icon_state = "asteroidfloor" }, /area/varadero/interior/comms1) -"ias" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/obj/structure/machinery/landinglight/ds1/spoke{ - pixel_y = -5; - pixel_x = 13 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/exterior/lz2_near) "iat" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -13981,6 +13924,13 @@ icon_state = "blue" }, /area/varadero/interior/maintenance) +"jab" = ( +/obj/structure/closet/secure_closet/scientist, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "purple" + }, +/area/varadero/interior/research) "jai" = ( /obj/structure/filingcabinet/security, /obj/effect/landmark/objective_landmark/far, @@ -15343,6 +15293,12 @@ "jTR" = ( /turf/open/gm/coast/beachcorner/south_west, /area/varadero/exterior/monsoon) +"jTY" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/shiva{ + icon_state = "multi_tiles" + }, +/area/varadero/interior/bunks) "jUt" = ( /obj/item/tool/weldingtool/experimental, /turf/open/floor/plating/icefloor{ @@ -15547,6 +15503,9 @@ icon_state = "multi_tiles" }, /area/varadero/interior/electrical) +"kce" = ( +/turf/open/floor/plating, +/area/varadero/interior_protected/caves/central) "kcn" = ( /obj/item/stack/sandbags_empty/full, /turf/open/auto_turf/sand_white/layer1, @@ -16148,33 +16107,6 @@ icon_state = "asteroidplating" }, /area/varadero/interior/comms2) -"kxW" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/purple{ - pixel_y = 13 - }, -/obj/item/bedsheet/hos{ - layer = 3.1 - }, -/turf/open/floor/wood, -/area/varadero/interior/bunks) "kyh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ @@ -18183,6 +18115,14 @@ /obj/effect/spawner/random/attachment, /turf/open/floor/carpet, /area/varadero/interior/administration) +"lIW" = ( +/obj/structure/machinery/landinglight/ds1/spoke{ + pixel_y = -5; + pixel_x = 13 + }, +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/exterior/lz2_near) "lJo" = ( /obj/structure/machinery/light{ dir = 8 @@ -18298,6 +18238,15 @@ icon_state = "asteroidplating" }, /area/varadero/exterior/eastbeach) +"lNq" = ( +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/item/toy/plush/farwa, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "snow_mat" + }, +/area/varadero/interior/security) "lNw" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/prop/server_equipment/laptop/closed{ @@ -20096,6 +20045,28 @@ }, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/central) +"mSc" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/toy/plush/farwa, +/turf/open/floor/wood, +/area/varadero/interior/bunks) "mSf" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/shiva{ @@ -21745,14 +21716,6 @@ icon_state = "asteroidplating" }, /area/varadero/interior/hall_NW) -"nYi" = ( -/obj/structure/machinery/sensortower{ - pixel_x = -9 - }, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/varadero/interior_protected/caves/central) "nYx" = ( /obj/structure/machinery/storm_siren{ dir = 8; @@ -23257,7 +23220,7 @@ /area/varadero/interior/security) "oXw" = ( /obj/docking_port/stationary/marine_dropship/lz1{ - name = "LZ1 - Pontoon Dock" + name = "LZ1: Pontoon Dock" }, /turf/open/floor/plating/icefloor, /area/varadero/exterior/lz1_near) @@ -24509,6 +24472,31 @@ icon_state = "multi_tiles" }, /area/varadero/interior/morgue) +"pMy" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/toy/plush/farwa, +/obj/structure/machinery/light, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/varadero/interior/medical) "pMG" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor{ @@ -26679,9 +26667,6 @@ }, /turf/open/gm/dirt, /area/varadero/exterior/lz2_near) -"raW" = ( -/turf/closed/wall, -/area/varadero/interior_protected/caves/central) "rbd" = ( /obj/item/stack/sheet/wood/small_stack, /turf/open/floor/plating/icefloor{ @@ -27543,10 +27528,6 @@ icon_state = "asteroidplating" }, /area/varadero/interior/maintenance/north) -"rAt" = ( -/obj/structure/window/framed/colony, -/turf/open/floor/plating, -/area/varadero/interior_protected/caves/central) "rAy" = ( /obj/structure/bedsheetbin, /turf/open/floor/shiva{ @@ -28194,6 +28175,14 @@ icon_state = "white" }, /area/varadero/interior/toilets) +"rWG" = ( +/obj/structure/machinery/sensortower{ + pixel_x = -9 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/varadero/interior_protected/caves/central) "rWJ" = ( /obj/item/stool, /turf/open/floor/shiva{ @@ -28331,6 +28320,14 @@ }, /turf/open/floor/wood, /area/varadero/interior/beach_bar) +"sbP" = ( +/obj/structure/machinery/landinglight/ds1/spoke{ + pixel_y = -5; + pixel_x = -13 + }, +/obj/structure/machinery/camera/autoname/lz_camera, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/exterior/lz2_near) "sbX" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -28406,6 +28403,33 @@ icon_state = "snow_mat" }, /area/varadero/interior/medical) +"seZ" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/purple{ + pixel_y = 13 + }, +/obj/item/bedsheet/hos{ + layer = 3.1 + }, +/turf/open/floor/wood, +/area/varadero/interior/bunks) "sff" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/shiva{ @@ -29185,13 +29209,6 @@ dir = 1 }, /area/varadero/interior/cargo) -"sCK" = ( -/obj/structure/closet/secure_closet/scientist, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "purple" - }, -/area/varadero/interior/research) "sCV" = ( /obj/structure/machinery/alarm{ dir = 8; @@ -30659,6 +30676,10 @@ icon_state = "asteroidplating" }, /area/varadero/interior/maintenance/security) +"tCl" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/plating, +/area/varadero/interior_protected/caves/central) "tCA" = ( /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, @@ -32260,6 +32281,9 @@ icon_state = "floor3" }, /area/varadero/interior/security) +"uIR" = ( +/turf/closed/wall, +/area/varadero/interior_protected/caves/central) "uIW" = ( /turf/open/gm/coast/north, /area/varadero/exterior/lz2_near) @@ -32351,31 +32375,6 @@ icon_state = "yellow" }, /area/varadero/interior/technical_storage) -"uMN" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/toy/farwadoll, -/obj/structure/machinery/light, -/turf/open/floor/shiva{ - icon_state = "floor3" - }, -/area/varadero/interior/medical) "uMQ" = ( /obj/item/ammo_casing/shell{ icon_state = "cartridge_1_1" @@ -35970,6 +35969,11 @@ default_name = "shallow ocean" }, /area/varadero/exterior/pool) +"wSM" = ( +/turf/open/floor/shiva{ + icon_state = "multi_tiles" + }, +/area/varadero/interior_protected/caves/central) "wSX" = ( /obj/structure/platform_decoration/kutjevo{ dir = 8 @@ -36538,14 +36542,6 @@ icon_state = "blue" }, /area/varadero/interior/technical_storage) -"xpL" = ( -/obj/structure/machinery/camera/autoname/lz_camera, -/obj/structure/machinery/landinglight/ds1/spoke{ - pixel_y = -5; - pixel_x = -13 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/exterior/lz2_near) "xpP" = ( /turf/closed/wall/r_wall, /area/varadero/interior/comms1) @@ -42760,7 +42756,7 @@ rQV rQV nuQ lKS -sCK +jab cjU nLw fay @@ -49842,7 +49838,7 @@ wQd sWp dBB maN -uMN +pMy qcN oHo qqA @@ -49964,8 +49960,7 @@ wMw pbp sHV bZU -bZU -bZU +rtm bZU bZU bZU @@ -49983,6 +49978,7 @@ bZU bZU bZU bZU +rtm bZU xsH mrC @@ -50148,7 +50144,7 @@ irk bZU bZU bZU -rtm +bZU bZU bZU bZU @@ -50163,7 +50159,7 @@ bZU bZU bZU qOh -rtm +bZU bZU bZU bwP @@ -51604,7 +51600,7 @@ irk bZU bZU bZU -rtm +bZU bZU bZU bZU @@ -51619,7 +51615,7 @@ qOh bZU bZU bZU -rtm +bZU bZU bZU bwP @@ -51784,8 +51780,7 @@ wMw pbp cYZ bZU -bZU -bZU +rtm bZU bZU bZU @@ -51803,6 +51798,7 @@ bZU bZU bZU bZU +rtm bZU miF mrC @@ -53340,9 +53336,9 @@ etv xxk xxk mCF -raW -rAt -rAt +uIR +tCl +tCl cty hoC mCF @@ -53522,9 +53518,9 @@ toU cto xxk meS -eOK -gPE -gPE +kce +wSM +wSM cty cty mCF @@ -53704,9 +53700,9 @@ etv xxk xxk aOg -eOK -gPE -nYi +kce +wSM +rWG cty aOg aOg @@ -53885,9 +53881,9 @@ ixr toU xxk xxk -eOK +kce mCF -gPE +wSM cty cty aOg @@ -54068,7 +54064,7 @@ mMZ xxk xxk mCF -eOK +kce cty cty cty @@ -54589,7 +54585,7 @@ tcq jyw xya ydx -fDn +mSc wpX qQt jNT @@ -54958,7 +54954,7 @@ yhy sJq iwo tMY -dKm +jTY xxo uLP xNR @@ -55681,7 +55677,7 @@ pbt qvQ bLy ydx -kxW +seZ pbd mnm kWj @@ -60799,7 +60795,7 @@ lxy qhZ bUg vpV -eKW +lNq obS ryD wXs @@ -63426,7 +63422,7 @@ wlB lTg lTg lTg -lTg +emP pXT lTg lTg @@ -63435,16 +63431,16 @@ wlB wlB lTg lTg -lTg emP lTg +lTg wlB wlB wlB wlB wlB lTg -pXT +lIW pXT rhu wlB @@ -63610,7 +63606,7 @@ eia lTg lTg lTg -ade +wlB wlB wlB wlB @@ -63625,7 +63621,7 @@ wlB wlB wlB nFX -ias +pXT lTg wlB lTg @@ -65066,7 +65062,7 @@ lTg lTg lTg lTg -ade +wlB wlB wlB wlB @@ -65081,7 +65077,7 @@ nFX wlB wlB wlB -xpL +uHD lTg wlB lTg @@ -65246,7 +65242,7 @@ lTg lTg wlB lTg -lTg +emP uHD lTg lTg @@ -65255,16 +65251,16 @@ wlB wlB lTg lTg -lTg emP lTg +lTg wlB wlB wlB wlB wlB lTg -uHD +sbP uHD lTg lTg diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 334c7e71f8b6..84355a59b16d 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -7794,7 +7794,9 @@ }, /area/strata/ag/interior/outpost/engi) "axf" = ( -/obj/structure/surface/table/reinforced/prison, +/obj/structure/tunnel/maint_tunnel{ + pixel_y = 16 + }, /turf/open/floor/strata, /area/strata/ag/interior/outpost/engi) "axg" = ( @@ -10464,11 +10466,13 @@ }, /area/strata/ag/interior/outpost/canteen) "aFC" = ( -/obj/structure/tunnel{ - id = "hole3" +/obj/structure/machinery/light/small, +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/strata{ + dir = 10; + icon_state = "multi_tiles" }, -/turf/open/auto_turf/snow/brown_base/layer0, -/area/strata/ag/exterior/paths/north_outpost) +/area/strata/ag/interior/outpost/engi/drome) "aFD" = ( /turf/closed/wall/strata_ice/jungle, /area/strata/ag/interior/outpost/maint/canteen_e_1) @@ -16510,11 +16514,9 @@ /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/interior/disposals) "bad" = ( -/obj/structure/tunnel{ - id = "hole4" - }, -/turf/open/auto_turf/snow/brown_base/layer2, -/area/strata/ag/exterior/north_lz_caves) +/obj/structure/tunnel, +/turf/open/auto_turf/strata_grass/layer1, +/area/strata/ug/interior/jungle/deep/tearlake) "bae" = ( /obj/structure/prop/almayer/computers/mapping_computer, /turf/open/floor/strata{ @@ -18476,12 +18478,9 @@ }, /area/strata/ug/interior/outpost/jung/dorms/admin4) "bgX" = ( -/obj/structure/flora/bush/ausbushes/grassybush, -/obj/structure/tunnel{ - id = "hole2" - }, -/turf/open/auto_turf/strata_grass/layer1, -/area/strata/ug/exterior/jungle/deep/carplake_center) +/obj/structure/tunnel, +/turf/open/auto_turf/ice/layer1, +/area/strata/ag/exterior/marsh/center) "bha" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /turf/open/auto_turf/snow/brown_base/layer1, @@ -21979,11 +21978,9 @@ /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/marsh/center) "bui" = ( -/obj/structure/tunnel{ - id = "hole1" - }, -/turf/open/auto_turf/snow/brown_base/layer3, -/area/strata/ag/exterior/tcomms/tcomms_deck) +/obj/structure/tunnel, +/turf/open/auto_turf/strata_grass/layer1, +/area/strata/ug/interior/jungle/deep/minehead) "bul" = ( /obj/item/tool/shovel/snow, /turf/open/auto_turf/snow/brown_base/layer1, @@ -34633,6 +34630,12 @@ "lbh" = ( /turf/open/asphalt/cement, /area/strata/ag/exterior/tcomms/tcomms_deck) +"lbW" = ( +/obj/structure/tunnel/maint_tunnel, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/admin) "lcq" = ( /obj/item/clothing/suit/storage/militia, /obj/item/clothing/suit/storage/snow_suit/doctor, @@ -36226,6 +36229,10 @@ }, /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/hotsprings) +"nPr" = ( +/obj/structure/tunnel, +/turf/open/auto_turf/strata_grass/layer1, +/area/strata/ug/interior/jungle/deep/east_carp) "nPJ" = ( /obj/structure/pipes/standard/manifold/hidden/cyan, /turf/open/floor/strata, @@ -37410,12 +37417,14 @@ }, /area/strata/ag/interior/tcomms) "pMU" = ( -/obj/structure/flora/bush/ausbushes/grassybush, -/obj/structure/tunnel{ - id = "hole1" +/obj/structure/tunnel/maint_tunnel{ + pixel_y = 16 }, -/turf/open/auto_turf/strata_grass/layer1, -/area/strata/ug/interior/jungle/platform/east/scrub) +/turf/open/floor/strata{ + dir = 10; + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/outpost/canteen/personal_storage) "pNL" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; @@ -44406,7 +44415,7 @@ aac aac acX acX -acX +uvZ acX aSj hkA @@ -44991,7 +45000,7 @@ acX acX acX acX -acX +uvZ acX acX aac @@ -49411,7 +49420,7 @@ aXP aYd aac aac -bad +aYd aYd aXP aXP @@ -49825,7 +49834,7 @@ aac aac rsm coC -coC +bgX coC wrw aac @@ -55882,7 +55891,7 @@ aac aac aac aac -bui +btX btq btq btv @@ -60485,7 +60494,7 @@ ayr ayr aCu aAb -aFC +ayw ayw aAR awJ @@ -64616,7 +64625,7 @@ biK blQ biH bsC -bll +lbW cik bCo bGO @@ -69514,7 +69523,7 @@ bvz gUj snV srk -pMU +wij wZZ htD wZZ @@ -69706,7 +69715,7 @@ bgO bht bzl cfg -ppA +aFC snV tnM srk @@ -73738,7 +73747,7 @@ awb agR agR aiM -bPZ +pMU bPZ bPZ bSv @@ -74254,7 +74263,7 @@ jLb jLb sKX jLb -jLb +bad aad aad aad @@ -78846,7 +78855,7 @@ cpg cpg cpg cpg -bgX +kvY piY piY cwD @@ -84455,7 +84464,7 @@ aad aad bHj bHj -vVK +bui bon bon bon @@ -86083,7 +86092,7 @@ sKg sKg sKg daq -daq +nPr daq daq sKg diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 32937d821d60..26c9816ca0c3 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -51,15 +51,6 @@ "aai" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/upper_hull) -"aaj" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "aak" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -164,7 +155,7 @@ }, /area/almayer/hallways/repair_bay) "aau" = ( -/turf/closed/wall/almayer/outer, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/pilotbunks) "aav" = ( /obj/vehicle/powerloader, @@ -178,16 +169,6 @@ icon_state = "cargo" }, /area/almayer/hallways/repair_bay) -"aaw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aax" = ( /obj/effect/projector{ name = "Almayer_Down2"; @@ -247,16 +228,6 @@ allow_construction = 0 }, /area/almayer/stair_clone) -"aaG" = ( -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "aaH" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -268,34 +239,6 @@ icon_state = "plate" }, /area/almayer/stair_clone/upper) -"aaI" = ( -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) -"aaJ" = ( -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "aaK" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -336,19 +279,6 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"aaW" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) "aaY" = ( /obj/structure/lattice, /turf/open/space, @@ -409,16 +339,6 @@ /obj/structure/window/reinforced/toughened, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) -"abl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "abp" = ( /obj/effect/step_trigger/clone_cleaner, /turf/closed/wall/almayer, @@ -426,21 +346,6 @@ "abs" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north1) -"abt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"abu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "abw" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -463,20 +368,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"abC" = ( -/obj/structure/stairs{ - dir = 1; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down1"; - vector_x = 19; - vector_y = -98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "abE" = ( /turf/closed/wall/almayer, /area/almayer/living/basketball) @@ -518,26 +409,13 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"abM" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "abQ" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, /obj/item/device/radio/intercom{ freerange = 1; name = "General Listening Channel"; pixel_y = 28 }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -567,19 +445,31 @@ icon_state = "tcomms" }, /area/almayer/shipboard/weapon_room) -"acf" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/living/starboard_garden) -"acg" = ( -/obj/effect/step_trigger/clone_cleaner, +"acc" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + access_modified = 1; + dir = 2; + name = "\improper Security Checkpoint"; + req_access = null; + req_one_access_txt = "3;19" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) +"acd" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/sprays, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "W" }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "orange" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/workshop/hangar) +"acf" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/living/starboard_garden) "ach" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door/airlock/almayer/maint, @@ -734,17 +624,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"act" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "acu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -763,6 +642,15 @@ "acx" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/north2) +"acy" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "acz" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -788,12 +676,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) -"acE" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) "acF" = ( /obj/structure/machinery/light{ dir = 1 @@ -803,28 +685,6 @@ icon_state = "green" }, /area/almayer/hallways/starboard_hallway) -"acG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "acI" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -892,36 +752,20 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"acO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"acS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -29 }, -/area/almayer/hallways/aft_hallway) -"acT" = ( -/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "silver" }, -/area/almayer/lifeboat_pumps/north2) +/area/almayer/command/cichallway) "acU" = ( /obj/structure/closet/basketball, /turf/open/floor/almayer{ @@ -1017,12 +861,6 @@ "adg" = ( /turf/open/floor/almayer, /area/almayer/hallways/repair_bay) -"adi" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "adj" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -1089,19 +927,6 @@ "adu" = ( /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"adv" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"ady" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "adC" = ( /obj/structure/surface/rack, /obj/item/stock_parts/manipulator/nano{ @@ -1177,12 +1002,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"adQ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "adR" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; @@ -1199,24 +1018,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices/flight) -"adT" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"adZ" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "aea" = ( /obj/structure/machinery/light{ dir = 1 @@ -1288,18 +1089,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"aeo" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet{ - name = "secure evidence locker"; - req_access_txt = "3" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/evidence_storage) "aep" = ( /turf/closed/wall/almayer, /area/almayer/engineering/airmix) @@ -1318,16 +1107,6 @@ "aet" = ( /turf/closed/wall/almayer, /area/almayer/living/starboard_garden) -"aew" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/closet/secure_closet/bar{ - name = "Success Cabinet"; - req_access_txt = "1" - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "aex" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = 6; @@ -1335,19 +1114,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"aey" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aez" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -1576,13 +1342,6 @@ icon_state = "redfull" }, /area/almayer/shipboard/starboard_missiles) -"afc" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "afd" = ( /obj/structure/largecrate/random/barrel/white, /obj/structure/sign/safety/bulkhead_door{ @@ -1640,29 +1399,6 @@ icon_state = "outerhull_dir" }, /area/space) -"afo" = ( -/obj/structure/safe, -/obj/item/moneybag, -/obj/item/clothing/glasses/monocle, -/obj/item/weapon/telebaton, -/obj/item/book/codebook, -/obj/item/coin/silver{ - desc = "A small coin, bearing the falling falcons insignia."; - name = "falling falcons challenge coin" - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"afq" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "afr" = ( /turf/open/floor/almayer{ dir = 9; @@ -1928,11 +1664,6 @@ "agj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/commandbunks) -"agl" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "agn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -1973,6 +1704,24 @@ "agu" = ( /turf/open/floor/almayer, /area/almayer/living/officer_study) +"agv" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ + access_modified = 1; + dir = 2; + name = "\improper Requisitions Break Room"; + req_one_access_txt = "19;21" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/req) "agw" = ( /obj/structure/machinery/light{ dir = 8 @@ -2057,14 +1806,6 @@ }, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"agN" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/disposalpipe/down/almayer{ - dir = 1; - id = "almayerlink" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "agO" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -2114,18 +1855,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_officer) -"aha" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - access_modified = 1; - name = "\improper Commanding Officer's Quarters"; - req_access = null; - req_access_txt = "31" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/commandbunks) "ahb" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -2249,20 +1978,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"ahv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"ahw" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "ahx" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -2309,20 +2024,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/starboard_atmos) -"ahH" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "ahJ" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -2370,49 +2071,6 @@ icon_state = "bluecorner" }, /area/almayer/living/offices/flight) -"ahX" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"ahY" = ( -/obj/structure/machinery/light, -/obj/structure/surface/table/woodentable/fancy, -/obj/item/clothing/shoes/laceup{ - desc = "The height of fashion, and they're pre-polished! The name 'Bob' is written on the inside."; - pixel_y = -5 - }, -/obj/effect/landmark/map_item, -/obj/item/device/flashlight/lamp/green, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"ahZ" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/obj/structure/machinery/door_control{ - id = "ARES StairsLock"; - name = "ARES Exterior Lockdown Override"; - pixel_x = 8; - pixel_y = -24; - req_one_access_txt = "90;91;92" - }, -/obj/structure/machinery/door_control{ - id = "ARES Emergency"; - name = "ARES Emergency Lockdown Override"; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/obj/structure/machinery/door_control{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown Override"; - pixel_x = -8; - pixel_y = -24; - req_access_txt = "1;3" - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "aia" = ( /turf/open/floor/almayer{ dir = 8; @@ -2624,14 +2282,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"aiF" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"aiG" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "aiH" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -2654,8 +2304,9 @@ }, /area/almayer/living/starboard_garden) "aiQ" = ( -/obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2708,7 +2359,13 @@ }, /area/almayer/hull/upper_hull/u_f_s) "aiW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) "aiX" = ( @@ -2756,8 +2413,6 @@ /area/almayer/medical/upper_medical) "ajm" = ( /obj/structure/closet/secure_closet/securecom, -/obj/item/storage/box/kit/honorguard, -/obj/item/storage/box/kit/honorguard, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -2782,18 +2437,6 @@ icon_state = "silver" }, /area/almayer/hallways/repair_bay) -"ajq" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "ajr" = ( /turf/open/floor/almayer{ dir = 1; @@ -2983,13 +2626,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/stern_hallway) -"ajS" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "ajT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -3049,7 +2685,6 @@ /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_a_s) "ake" = ( -/obj/structure/largecrate/random/barrel/white, /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "plate" @@ -3062,67 +2697,14 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) -"akk" = ( -/obj/structure/machinery/door/window/westright{ - dir = 4 - }, -/obj/structure/machinery/shower{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/commandbunks) -"akl" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/commandbunks) -"akm" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Bathroom" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/commandbunks) -"akn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "ako" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"akp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"akr" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"aks" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/device/binoculars, -/turf/open/floor/wood/ship, +/turf/open/floor/carpet, /area/almayer/living/commandbunks) "akt" = ( /obj/structure/cable/heavyduty{ @@ -3345,39 +2927,12 @@ icon_state = "red" }, /area/almayer/living/starboard_garden) -"akX" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "akY" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/starboard_garden) -"alb" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/commandbunks) -"alc" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/commandbunks) "ald" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -3416,15 +2971,6 @@ icon_state = "bluecorner" }, /area/almayer/hallways/aft_hallway) -"alj" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper, -/obj/item/device/whistle, -/obj/structure/sign/safety/bathunisex{ - pixel_x = -17 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "alk" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -3442,20 +2988,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"alm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"alo" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_18" - }, -/obj/structure/machinery/light, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "alp" = ( /turf/open/floor/almayer{ dir = 9; @@ -3476,12 +3008,6 @@ icon_state = "bluecorner" }, /area/almayer/hallways/aft_hallway) -"alu" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/megaphone, -/obj/item/device/radio, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "alw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -3521,6 +3047,27 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"alF" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Brig Maintenance"; + closeOtherId = "brigmaint_s" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "perma_lockdown_2"; + name = "\improper Perma Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/perma) "alG" = ( /turf/open/floor/almayer{ dir = 4; @@ -3684,6 +3231,15 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/repair_bay) +"ams" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "amw" = ( /turf/open/floor/almayer{ dir = 9; @@ -3715,10 +3271,10 @@ }, /area/almayer/hallways/aft_hallway) "amE" = ( -/obj/structure/closet/secure_closet/guncabinet/red, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -3946,23 +3502,11 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) "anp" = ( -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/structure/sign/safety/hazard{ pixel_x = 15; pixel_y = 32 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -3973,31 +3517,27 @@ name = "General Listening Channel"; pixel_y = 28 }, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/medical/upper_medical) "anr" = ( -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/structure/sign/safety/intercom{ pixel_x = 8; pixel_y = 32 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -4322,15 +3862,6 @@ icon_state = "bluecorner" }, /area/almayer/hallways/aft_hallway) -"aox" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/command/cichallway) "aoy" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -4571,10 +4102,6 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"aoZ" = ( -/obj/structure/sign/prop1, -/turf/closed/wall/almayer/reinforced, -/area/almayer/living/commandbunks) "apa" = ( /obj/structure/surface/rack, /obj/item/tool/screwdriver, @@ -4726,14 +4253,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"apA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/rewire{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "apB" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/wrapped/booniebars{ @@ -4789,27 +4308,6 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) -"apM" = ( -/obj/structure/machinery/autolathe/armylathe/full, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"apO" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"apP" = ( -/obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "apR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -4847,16 +4345,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) -"apT" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) "apU" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -4871,12 +4359,6 @@ dir = 8 }, /area/almayer/medical/containment/cell) -"apV" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "apW" = ( /obj/structure/machinery/telecomms/server/presets/common, /turf/open/floor/almayer{ @@ -4930,19 +4412,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"aqd" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/machinery/disposal/delivery{ - density = 0; - desc = "A pneumatic delivery unit. Sends items to the requisitions."; - icon_state = "delivery_engi"; - name = "Requisitions Delivery Unit"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "aqe" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -5097,22 +4566,6 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"aqD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "MTline"; - name = "Next button"; - pixel_x = 5; - pixel_y = 10; - req_one_access_txt = "2;7" - }, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aqF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_10" @@ -5196,19 +4649,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"aqT" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler{ - pixel_x = 7 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = -6 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aqU" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/airoom) @@ -5220,14 +4660,6 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) -"aqW" = ( -/obj/structure/filingcabinet, -/obj/item/folder/yellow, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aqY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -5236,30 +4668,6 @@ "arb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"ard" = ( -/obj/structure/filingcabinet, -/obj/item/folder/yellow, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"are" = ( -/obj/structure/machinery/computer/demo_sim{ - dir = 4; - pixel_x = -17; - pixel_y = 8 - }, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "arf" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -5406,23 +4814,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"arC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"arE" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "arF" = ( /obj/structure/machinery/light{ dir = 1 @@ -5447,16 +4838,6 @@ icon_state = "redfull" }, /area/almayer/engineering/upper_engineering) -"arJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "arK" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -5515,13 +4896,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) -"arZ" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "asc" = ( /turf/open/floor/almayer{ dir = 1; @@ -5546,23 +4920,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"asi" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/obj/structure/transmitter{ - dir = 8; - name = "OT Telephone"; - phone_category = "Almayer"; - phone_id = "Ordnance Tech"; - pixel_x = 14 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -5582,12 +4939,6 @@ icon_state = "silver" }, /area/almayer/hallways/aft_hallway) -"ask" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asl" = ( /obj/structure/machinery/light{ dir = 1 @@ -5618,12 +4969,6 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"aso" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asp" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -5633,39 +4978,25 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"ast" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +"asr" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "asu" = ( -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/structure/sign/safety/hazard{ pixel_x = 32; pixel_y = -8 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"asv" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asw" = ( /obj/structure/machinery/light{ dir = 8 @@ -5675,39 +5006,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"asx" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"asy" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"asB" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/bombcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asD" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ @@ -5721,9 +5023,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"asE" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engineering_workshop/hangar) "asF" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ access_modified = 1; @@ -5851,12 +5150,6 @@ icon_state = "plate" }, /area/almayer/medical/morgue) -"asV" = ( -/obj/structure/machinery/floodlight/landing, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) "asW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -5920,23 +5213,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"atd" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/sprays, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"ate" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "atf" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -5948,27 +5224,6 @@ /obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"ath" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = -24 - }, -/obj/structure/surface/rack, -/obj/item/reagent_container/glass/bucket/janibucket, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"ati" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "atj" = ( /obj/effect/projector{ name = "Almayer_Down3"; @@ -6069,18 +5324,8 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"atw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "atx" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -6099,16 +5344,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"atA" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - dir = 1; - name = "\improper Spare Bomb Suit"; - req_one_access = null; - req_one_access_txt = "35" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "atC" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -6123,27 +5358,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"atE" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OTStore"; - name = "\improper Secure Storage"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"atF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OTStore"; - name = "\improper Secure Storage"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) "atG" = ( /obj/structure/bed/chair/comfy/beige{ dir = 4 @@ -6166,12 +5380,6 @@ allow_construction = 0 }, /area/almayer/hallways/aft_hallway) -"atJ" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "atK" = ( /turf/open/floor/almayer{ dir = 10; @@ -6260,38 +5468,6 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"atW" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) -"atY" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) -"atZ" = ( -/obj/structure/machinery/door_control{ - id = "OTStore"; - name = "Shutters"; - pixel_y = 24 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aua" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "aub" = ( /obj/structure/machinery/light{ dir = 1 @@ -6317,14 +5493,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"aud" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "aue" = ( /obj/effect/projector{ name = "Almayer_Up3"; @@ -6347,19 +5515,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"auh" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) "aui" = ( /obj/structure/machinery/telecomms/hub/preset, /turf/open/floor/almayer{ @@ -6443,51 +5598,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"aup" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/freezer/industry, -/obj/item/reagent_container/glass/beaker/silver, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aur" = ( -/obj/structure/reagent_dispensers/oxygentank{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aus" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"aut" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "auu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6506,31 +5616,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"auw" = ( -/obj/structure/reagent_dispensers/pacidtank{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"aux" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "auy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -6550,21 +5635,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"auC" = ( -/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ - anchored = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auD" = ( /obj/structure/bed/chair{ dir = 8 @@ -6580,19 +5650,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"auE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"auF" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "auG" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -6622,18 +5679,6 @@ icon_state = "test_floor4" }, /area/almayer/command/telecomms) -"auI" = ( -/obj/structure/reagent_dispensers/acidtank, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"auJ" = ( -/obj/structure/machinery/floodlight/landing, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "auK" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -6657,22 +5702,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"auM" = ( -/obj/structure/reagent_dispensers/ammoniatank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"auN" = ( -/obj/structure/reagent_dispensers/fueltank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -6680,25 +5709,10 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"auP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "auQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/command/cic) -"auR" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/rifle/m41aMK1/ap, -/obj/item/ammo_magazine/rifle/m41aMK1/ap, -/obj/item/weapon/gun/rifle/m41aMK1/ap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "auS" = ( /obj/item/tool/warning_cone, /obj/item/tool/warning_cone, @@ -6746,14 +5760,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/port_point_defense) -"auY" = ( -/obj/structure/reagent_dispensers/watertank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "auZ" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, @@ -6761,32 +5767,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"ava" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"avb" = ( -/obj/structure/reagent_dispensers/fueltank/gas/methane{ - anchored = 1 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "avc" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -6804,45 +5784,11 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"ave" = ( -/obj/item/reagent_container/glass/bucket/janibucket, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_y = 11 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"avi" = ( -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "avj" = ( /turf/open/floor/almayer{ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"avk" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - dir = 1; - req_one_access = null; - req_one_access_txt = "35" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop/hangar) "avl" = ( /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) @@ -6897,13 +5843,6 @@ }, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"avz" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/general_equipment) "avB" = ( /turf/open/floor/almayer{ dir = 8; @@ -7063,12 +6002,6 @@ icon_state = "red" }, /area/almayer/command/cic) -"avT" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "avU" = ( /obj/effect/landmark/start/crew_chief, /turf/open/floor/plating/plating_catwalk, @@ -7286,9 +6219,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"awE" = ( -/turf/closed/wall/almayer, -/area/almayer/command/corporateliason) "awF" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/numbertwobunks) @@ -7609,6 +6539,16 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"axR" = ( +/obj/structure/machinery/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/door/window/tinted{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "axV" = ( /obj/structure/machinery/telecomms/server/presets/command, /turf/open/floor/almayer{ @@ -7773,7 +6713,8 @@ name = "\improper Combat Information Center Blast Door" }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center" + name = "\improper Combat Information Center"; + closeOtherId = "ciclobby_n" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -7807,28 +6748,6 @@ icon_state = "redcorner" }, /area/almayer/shipboard/navigation) -"ayy" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = 15 - }, -/obj/structure/machinery/light, -/obj/structure/transmitter/rotary{ - name = "Bravo Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Bravo Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "ayz" = ( /obj/structure/bed/chair/office/dark{ dir = 8; @@ -7863,22 +6782,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/port_hallway) -"ayG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"ayH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "ayI" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical{ @@ -8093,13 +6996,7 @@ }, /area/almayer/engineering/upper_engineering) "azp" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -8330,15 +7227,6 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"aAb" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "aAd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -8395,7 +7283,8 @@ }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ id_tag = "cic_exterior"; - name = "\improper Combat Information Center" + name = "\improper Combat Information Center"; + closeOtherId = "ciclobby_n" }, /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -8477,47 +7366,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"aAD" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door_control{ - id = "CIC Lockdown"; - name = "CIC Lockdown"; - pixel_x = -7; - pixel_y = 9; - req_access_txt = "1" - }, -/obj/structure/machinery/door_control{ - id = "Hangar Lockdown"; - name = "Hangar Lockdown"; - pixel_x = -7; - pixel_y = 2; - req_access_txt = "1" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4; - icon_state = "exposed01-supply" - }, -/obj/structure/machinery/door_control{ - id = "bot_armory"; - name = "Armory Lockdown"; - pixel_x = -7; - pixel_y = -5; - req_one_access_txt = "1;4" - }, -/obj/structure/transmitter/rotary{ - name = "Combat Information Center Telephone"; - phone_category = "Command"; - phone_id = "Combat Information Center"; - pixel_x = 5; - pixel_y = 4 - }, -/obj/structure/machinery/door/window/westright{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "aAE" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -8907,17 +7755,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"aBN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Railguns and Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "aBP" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ access_modified = 1; @@ -8944,30 +7781,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"aBV" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = -17 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/transmitter/rotary{ - name = "Charlie Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Charlie Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "aBW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -9103,23 +7916,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) -"aCu" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) -"aCv" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "cl_shutters 2"; - name = "\improper Privacy Shutters" - }, -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/command/corporateliason) "aCw" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -9161,14 +7957,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) -"aCX" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "aCZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -9207,15 +7995,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"aDf" = ( -/obj/structure/machinery/shower{ - pixel_y = 16 - }, -/obj/item/tool/soap, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDg" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -9429,6 +8208,16 @@ icon_state = "silver" }, /area/almayer/command/cic) +"aDM" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/lobby) "aDO" = ( /turf/open/floor/almayer{ dir = 8; @@ -9439,6 +8228,15 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/command/lifeboat) +"aDS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "aDU" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -9515,30 +8313,6 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) -"aEk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 4; - pixel_y = 17 - }, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 4 - }, -/obj/structure/machinery/computer/card{ - dir = 4; - pixel_y = -16 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "aEm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/working_joe{ @@ -9548,6 +8322,15 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"aEo" = ( +/obj/structure/closet/emcloset{ + pixel_x = 8 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "aEp" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -9605,17 +8388,6 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"aEJ" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "aEK" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -9709,6 +8481,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"aFe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "aFf" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/research, @@ -9738,17 +8520,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"aFj" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/numbertwobunks) "aFl" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -9784,14 +8555,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"aFo" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/numbertwobunks) "aFp" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -9931,20 +8694,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"aFN" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "aFV" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -10043,9 +8792,14 @@ "aGr" = ( /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"aGt" = ( -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +"aGs" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/item/seeds/goldappleseed, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "aGv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -10063,6 +8817,17 @@ }, /turf/open/floor/plating, /area/almayer/engineering/port_atmos) +"aGA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "aGC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -10111,20 +8876,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"aGR" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aGS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -10178,24 +8929,6 @@ "aHe" = ( /turf/closed/wall/almayer, /area/almayer/command/lifeboat) -"aHk" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sink{ - pixel_y = 16 - }, -/obj/structure/mirror{ - pixel_y = 21 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/numbertwobunks) "aHl" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine, @@ -10265,7 +8998,11 @@ name = "\improper Engineering Storage"; no_panel = 1; req_one_access = null; - req_one_access_txt = "2;7" + req_one_access_txt = "2;7"; + unacidable = 1 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft{ + id = "engie_store" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -10285,7 +9022,11 @@ name = "\improper Engineering Storage"; no_panel = 1; req_one_access = null; - req_one_access_txt = "2;7" + req_one_access_txt = "2;7"; + unacidable = 1 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/antitheft{ + id = "engie_store" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -10398,6 +9139,9 @@ icon_state = "orange" }, /area/almayer/hull/upper_hull/u_f_p) +"aId" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "aIe" = ( /turf/open/floor/almayer{ dir = 5; @@ -10577,19 +9321,7 @@ }, /area/almayer/engineering/upper_engineering) "aIV" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -10606,15 +9338,6 @@ "aIZ" = ( /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_m_s) -"aJa" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/aft_hallway) "aJc" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Commanding Officer's Mess" @@ -10635,19 +9358,6 @@ icon_state = "test_floor4" }, /area/almayer/living/captain_mess) -"aJd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aJf" = ( /obj/structure/machinery/floodlight, /obj/structure/machinery/floodlight, @@ -10763,19 +9473,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"aJz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "aJG" = ( /obj/structure/bed/chair/office/dark{ dir = 8; @@ -10856,6 +9553,11 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"aKk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "aKn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -10962,27 +9664,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"aKB" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aKC" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aKE" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -11036,22 +9717,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"aKJ" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "aKN" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/accessory/red, @@ -11115,6 +9780,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"aLc" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "aLd" = ( /turf/closed/wall/almayer, /area/almayer/hull/lower_hull) @@ -11147,16 +9825,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) -"aLt" = ( -/obj/structure/surface/rack, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/living/numbertwobunks) "aLB" = ( /turf/closed/wall/almayer, /area/almayer/hallways/starboard_hallway) @@ -11194,12 +9862,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"aLQ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "aLS" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -11218,17 +9880,6 @@ "aLW" = ( /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) -"aLX" = ( -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "aLZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -11441,13 +10092,6 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) "aMM" = ( -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, /turf/open/floor/almayer{ dir = 4; icon_state = "red" @@ -11505,14 +10149,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"aNe" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) "aNi" = ( /turf/closed/wall/almayer, /area/almayer/living/chapel) @@ -11530,6 +10166,19 @@ icon_state = "plating" }, /area/almayer/hull/lower_hull/l_f_s) +"aNk" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_s) "aNl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -11871,16 +10520,6 @@ icon_state = "kitchen" }, /area/almayer/engineering/upper_engineering) -"aOY" = ( -/obj/structure/bed/chair, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "aPa" = ( /obj/structure/machinery/light{ dir = 8 @@ -12030,6 +10669,24 @@ /obj/structure/sign/nosmoking_1, /turf/closed/wall/almayer, /area/almayer/squads/alpha) +"aPS" = ( +/obj/structure/machinery/power/port_gen/pacman, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"aPT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"aPU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "aPX" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, @@ -12052,9 +10709,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "aQg" = ( /obj/structure/bed/chair/office/dark{ @@ -12144,11 +10799,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"aQA" = ( -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "aQF" = ( /turf/closed/wall/almayer, /area/almayer/living/offices) @@ -12270,14 +10920,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) -"aRk" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "aRo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -12366,11 +11008,6 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"aRD" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) "aRE" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -12499,6 +11136,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"aSk" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/almayer/engineering/lower/engine_core) "aSl" = ( /obj/structure/machinery/light, /obj/structure/machinery/cm_vending/sorted/medical, @@ -12542,6 +11188,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"aSp" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "aSq" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda, @@ -12679,18 +11348,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) -"aSP" = ( -/obj/structure/filingcabinet, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"aSS" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) "aSY" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -12748,6 +11405,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) +"aTl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/command/cichallway) "aTm" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) @@ -12921,14 +11583,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"aTV" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/cells) "aTW" = ( /obj/structure/bed/chair{ dir = 8 @@ -13072,9 +11726,6 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"aUx" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/engineering/lower_engineering) "aUC" = ( /obj/structure/machinery/light{ dir = 4 @@ -13174,9 +11825,6 @@ icon_state = "bluefull" }, /area/almayer/living/captain_mess) -"aVl" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/lower_engineering) "aVo" = ( /obj/structure/machinery/light{ dir = 1 @@ -13184,12 +11832,6 @@ /obj/structure/machinery/portable_atmospherics/canister/empty, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"aVp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "aVr" = ( /obj/structure/closet/secure_closet/freezer/meat, /obj/structure/sign/safety/fridge{ @@ -13317,6 +11959,13 @@ dir = 4; pixel_x = -17 }, +/obj/structure/machinery/door_control/brbutton{ + id = "engie_store"; + name = "Emergency Storage"; + pixel_x = -2; + pixel_y = 26; + req_one_access_txt = "6" + }, /turf/open/floor/almayer{ dir = 1; icon_state = "orangecorner" @@ -13348,6 +11997,24 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) +"aWg" = ( +/obj/structure/machinery/door_control{ + id = "CMP Office Shutters"; + name = "CMP Office Shutters"; + pixel_y = 32; + req_one_access_txt = "24;31" + }, +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_y = 24; + req_access_txt = "3" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "aWk" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -13405,10 +12072,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"aWr" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/engineering/lower_engineering) "aWs" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -13452,25 +12115,6 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) -"aWA" = ( -/obj/structure/toilet{ - pixel_y = 13 - }, -/obj/item/paper_bin/uscm{ - pixel_x = 9; - pixel_y = -3 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/item/prop/magazine/dirty{ - pixel_x = -6; - pixel_y = -10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/captain_mess) "aWD" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -13510,24 +12154,10 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"aWN" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "aWR" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"aWS" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_17"; - pixel_x = -5; - pixel_y = 10 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "aWT" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -13616,20 +12246,15 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) +"aXD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "aXE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/stern_hallway) -"aXQ" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "aXS" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -13688,17 +12313,6 @@ icon_state = "plate" }, /area/almayer/hallways/aft_hallway) -"aYp" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "cl_shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/plating, -/area/almayer/command/corporateliason) "aYq" = ( /turf/open/floor/almayer{ dir = 6; @@ -13772,6 +12386,10 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"aYH" = ( +/obj/structure/safe/cl_office, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "aYI" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -13817,10 +12435,6 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) -"aYU" = ( -/obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "aYV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -13977,13 +12591,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/stern_hallway) -"aZJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "aZK" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -14071,19 +12678,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"baa" = ( -/obj/structure/surface/table/almayer, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/obj/structure/machinery/faxmachine/corporate/liaison, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bac" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bad" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -14166,10 +12760,6 @@ icon_state = "silver" }, /area/almayer/hallways/aft_hallway) -"baD" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "baG" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer, @@ -14185,6 +12775,12 @@ "baI" = ( /turf/open/floor/plating, /area/almayer/hallways/hangar) +"baJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "baM" = ( /obj/structure/machinery/landinglight/ds2/delaythree{ dir = 8 @@ -14332,16 +12928,6 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_umbilical) -"bbp" = ( -/obj/effect/projector{ - name = "Almayer_Down4"; - vector_x = 19; - vector_y = -104 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "bbr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -14412,26 +12998,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"bbI" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - layer = 1.9 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"bbJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "bbL" = ( /turf/open/floor/almayer{ dir = 8; @@ -14457,18 +13023,6 @@ "bbS" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) -"bbU" = ( -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_x = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bbV" = ( /obj/structure/machinery/light{ dir = 8 @@ -14602,20 +13156,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"bcB" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/chemistry) "bcC" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/medbay, @@ -14659,6 +13199,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) +"bcM" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "bcP" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -14765,37 +13315,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"bdo" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bdp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"bdq" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernortheast"; - name = "\improper North East Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "bdr" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) @@ -15073,12 +13592,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) -"beO" = ( +"beL" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/engineering/lower/engine_core) "beP" = ( /obj/item/stack/catwalk, /obj/structure/disposalpipe/segment{ @@ -15139,12 +13668,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"bfa" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) "bfb" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, @@ -15188,12 +13711,6 @@ icon_state = "redcorner" }, /area/almayer/living/cryo_cells) -"bfs" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) "bft" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -15250,17 +13767,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bfA" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/toolbox/electrical, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bfC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -15315,6 +13821,21 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bfO" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/photocopier{ + anchored = 0 + }, +/obj/structure/sign/poster{ + desc = "A large piece of cheap printed paper. This one proudly demands that you REMEMBER IO!"; + icon_state = "poster14"; + name = "propaganda poster"; + pixel_y = 32 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "bfP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -15509,12 +14030,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) -"bgF" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "bgG" = ( /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, @@ -15633,16 +14148,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"bht" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bhw" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "bhx" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 @@ -15651,9 +14156,6 @@ icon_state = "plate" }, /area/almayer/living/chapel) -"bhB" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engine_core) "bhC" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -15662,15 +14164,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"bhD" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bhG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -15680,6 +14173,16 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"bhI" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "bhJ" = ( /obj/structure/machinery/cm_vending/clothing/staff_officer{ density = 0; @@ -15689,18 +14192,6 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"bhM" = ( -/obj/structure/safe, -/obj/item/coin/platinum, -/obj/item/spacecash/c1000/counterfeit, -/obj/item/spacecash/c1000/counterfeit, -/obj/item/clothing/accessory/storage/holster, -/obj/item/weapon/gun/pistol/es4, -/obj/item/ammo_magazine/pistol/es4, -/obj/item/ammo_magazine/pistol/es4, -/obj/item/clothing/suit/armor/bulletproof, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bhT" = ( /obj/structure/cargo_container/lockmart/mid{ layer = 3.1; @@ -15795,6 +14286,22 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"biJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/command/lifeboat) "biL" = ( /obj/structure/platform{ dir = 4 @@ -15812,56 +14319,31 @@ }, /area/almayer/living/starboard_garden) "biV" = ( -/obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 + dir = 8 }, +/obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/starboard_garden) -"bja" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "bjb" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"bjd" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) -"bje" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +"bjk" = ( +/obj/structure/machinery/door_control{ + id = "perma_lockdown_2"; + name = "Maint Lockdown Shutters"; + pixel_y = -20; + req_one_access_txt = "24;31" }, -/area/almayer/engineering/lower_engineering) -"bjg" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bjl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bjn" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "bjs" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -15875,13 +14357,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"bjy" = ( -/obj/docking_port/stationary/emergency_response/port3, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "bjA" = ( /turf/open/floor/almayer{ dir = 9; @@ -15958,6 +14433,13 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_umbilical) +"bjQ" = ( +/obj/structure/machinery/shower{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "bjR" = ( /obj/structure/cargo_container/arious/right, /turf/open/floor/almayer, @@ -15992,6 +14474,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bko" = ( +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "bks" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 @@ -16000,18 +14491,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bkt" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bky" = ( /obj/structure/machinery/cryo_cell, /obj/structure/pipes/standard/cap/hidden, @@ -16139,9 +14618,6 @@ icon_state = "green" }, /area/almayer/hallways/starboard_hallway) -"bkZ" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop) "blb" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 15; @@ -16151,12 +14627,6 @@ icon_state = "mono" }, /area/almayer/hallways/stern_hallway) -"bld" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) "blf" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -16168,6 +14638,16 @@ icon_state = "plate" }, /area/almayer/living/offices) +"bli" = ( +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 6"; + name = "Cell 6" + }, +/obj/structure/sign/safety/six{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "blj" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, @@ -16184,18 +14664,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"blm" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bln" = ( /obj/structure/sign/safety/cryo{ pixel_x = 3; @@ -16206,12 +14674,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"blo" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "blp" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -16394,6 +14856,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_lobby) +"bmp" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "bmr" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -16481,26 +14952,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"bmM" = ( -/obj/structure/machinery/vending/coffee, -/obj/structure/sign/safety/coffee{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/rewire{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bmN" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) "bmO" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -16513,23 +14964,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"bmP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bmR" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "bmW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -16544,23 +14978,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"bnc" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 9" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bne" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bng" = ( /obj/structure/machinery/vending/cigarette{ density = 0; @@ -16778,6 +15195,16 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) +"boc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "bof" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -16798,19 +15225,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"bop" = ( -/obj/structure/machinery/cm_vending/clothing/military_police{ - density = 0; - pixel_y = 16 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/general_equipment) "boq" = ( /obj/structure/bed/chair/comfy/alpha, /turf/open/floor/almayer{ @@ -16880,55 +15294,9 @@ /obj/structure/barricade/handrail, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) -"boH" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"boI" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) "boL" = ( /turf/open/floor/almayer, /area/almayer/living/starboard_garden) -"boN" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/engineering_particle_accelerator, -/obj/item/folder/yellow, -/obj/structure/machinery/keycard_auth{ - pixel_x = -8; - pixel_y = 25 - }, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 14; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"boU" = ( -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "boV" = ( /obj/structure/cargo_container/wy/left, /obj/structure/prop/almayer/minigun_crate{ @@ -16993,25 +15361,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"bpf" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) -"bph" = ( -/obj/structure/bed/chair/comfy/orange, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "bpj" = ( /obj/structure/dropship_equipment/fulton_system, /turf/open/floor/almayer{ @@ -17041,6 +15390,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"bpw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "bpz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -17048,6 +15406,18 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) +"bpA" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) "bpC" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) @@ -17063,6 +15433,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"bpI" = ( +/obj/structure/closet/secure_closet/fridge/dry/stock, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) "bpJ" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, @@ -17133,78 +15509,12 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_umbilical) -"bpX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop) -"bpY" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bpZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/cell/crap, -/obj/item/tool/crowbar, -/obj/structure/machinery/cell_charger, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bqa" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bqe" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"bqf" = ( -/obj/structure/machinery/autolathe, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "bqm" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/gym) -"bqo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bqp" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) -"bqw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bqy" = ( -/obj/structure/sign/poster/hero/voteno{ - pixel_y = 32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bqF" = ( /obj/structure/dropship_equipment/fuel/fuel_enhancer, /turf/open/floor/almayer{ @@ -17254,6 +15564,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) +"bqP" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 5" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "bqR" = ( /turf/open/floor/almayer{ dir = 6; @@ -17286,11 +15604,37 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"bqY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "bqZ" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/briefing) +"bra" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "brb" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -17352,18 +15696,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"brw" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"brx" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "bry" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -17386,15 +15718,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"brC" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/atmos_alert{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "brH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -17406,28 +15729,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"brI" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"brJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "brO" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -17460,12 +15761,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"brT" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "brW" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -17482,49 +15777,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bsc" = ( -/obj/structure/machinery/computer/skills{ - req_one_access_txt = "200" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"bsd" = ( -/obj/item/device/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/structure/machinery/door_control{ - id = "cl_shutters"; - name = "Privacy Shutters"; - pixel_x = -5; - pixel_y = 6; - req_access_txt = "200" - }, -/obj/structure/machinery/door_control{ - id = "RoomDivider"; - name = "Room Divider"; - pixel_x = -5; - pixel_y = -3; - req_access_txt = "200" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"bse" = ( -/obj/structure/machinery/computer/arcade, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"bsf" = ( -/obj/structure/largecrate/random, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "bsj" = ( /obj/structure/machinery/line_nexter/med{ dir = 4 @@ -17546,6 +15798,15 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) +"bsp" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "bst" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_one) @@ -17729,14 +15990,6 @@ icon_state = "orangecorner" }, /area/almayer/hallways/starboard_hallway) -"bsZ" = ( -/obj/structure/machinery/power/monitor{ - name = "Main Power Grid Monitoring" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "btc" = ( /obj/structure/bed/chair{ dir = 8; @@ -17777,21 +16030,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"btm" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"btn" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "btp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -17821,15 +16059,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"btz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "btC" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -17933,18 +16162,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) -"buk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "buq" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -18015,14 +16232,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"buK" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/lightreplacer, -/obj/item/device/radio, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "buM" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/bravo, /turf/open/floor/almayer{ @@ -18048,15 +16257,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"buQ" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/working_joe{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "buS" = ( /obj/structure/machinery/cm_vending/gear/engi, /turf/open/floor/almayer{ @@ -18072,43 +16272,12 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"buW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"buX" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "bvb" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"bvc" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/sign/poster{ - desc = "Koorlander Golds, lovingly machine rolled for YOUR pleasure."; - icon_state = "poster10"; - name = "Koorlander Gold Poster"; - pixel_x = 29; - pixel_y = 6; - serial_number = 10 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bvd" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -18128,10 +16297,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bvl" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "bvr" = ( /obj/structure/bed/chair/office/dark, /obj/effect/decal/warning_stripes{ @@ -18142,12 +16307,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"bvx" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "bvz" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ @@ -18164,41 +16323,23 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bvI" = ( +"bvH" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bvK" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/obj/structure/machinery/recharger, +/obj/item/tool/hand_labeler{ + pixel_x = -8; + pixel_y = 3 }, -/area/almayer/engineering/engineering_workshop) -"bvL" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/engineering/engineering_workshop) +/area/almayer/shipboard/brig/general_equipment) "bvO" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"bvQ" = ( -/obj/structure/pipes/unary/outlet_injector, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bvS" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -18213,19 +16354,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_umbilical) -"bvU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Liasion's Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) "bvV" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -18235,18 +16363,14 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_umbilical) -"bvY" = ( -/obj/structure/machinery/door_control{ - id = "cl_shutters 2"; - name = "Quarters Shutters"; - pixel_x = -25; - pixel_y = 23; - req_access_txt = "200" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"bvX" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/upper_hull/u_m_p) +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/window, +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) "bwc" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -18314,16 +16438,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"bwj" = ( -/obj/structure/pipes/standard/simple/visible, -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bwl" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -18484,37 +16598,22 @@ icon_state = "redfull" }, /area/almayer/living/cryo_cells) -"bxo" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bxr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"bxs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bxx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) +"bxA" = ( +/obj/structure/machinery/power/apc/almayer/hardened, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) "bxB" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -18527,53 +16626,36 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"bxD" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bxE" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bxF" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"bxC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bxG" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 6 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, -/area/almayer/engineering/lower_engineering) -"bxH" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 +/area/almayer/living/port_emb) +"bxD" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering/lower_engineering) -"bxI" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/hallways/starboard_hallway) +"bxN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "bxX" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -18625,50 +16707,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"byg" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byh" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byk" = ( -/obj/structure/pipes/valve/digital/open{ - dir = 4 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"byl" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 9 - }, -/obj/structure/machinery/meter, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) "bym" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -18686,19 +16724,6 @@ /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"byp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) -"byq" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "byr" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ @@ -18741,16 +16766,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"byz" = ( -/obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"byA" = ( -/obj/structure/machinery/alarm/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) "byC" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -18758,12 +16773,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"byD" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "byF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -18784,71 +16793,6 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) -"byJ" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byK" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 5 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byL" = ( -/obj/structure/machinery/meter, -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"byM" = ( -/obj/structure/pipes/standard/simple/hidden/universal{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byO" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Deck Waste Tank Control" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byQ" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byR" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"byY" = ( -/obj/structure/bed, -/obj/item/toy/farwadoll{ - pixel_x = 5 - }, -/obj/item/clothing/under/redpyjamas, -/obj/item/bedsheet/orange, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bzg" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -18858,27 +16802,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) -"bzj" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "bzo" = ( /obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"bzs" = ( -/obj/structure/machinery/shower{ - dir = 8 - }, -/obj/structure/machinery/door/window/westright, -/obj/structure/window/reinforced/tinted/frosted, -/obj/item/tool/soap/deluxe, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/corporateliason) "bzy" = ( /turf/closed/wall/almayer, /area/almayer/hallways/vehiclehangar) @@ -18914,19 +16843,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"bzG" = ( -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bzH" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -18949,15 +16865,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"bzP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) "bzQ" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/plating_catwalk, @@ -18976,15 +16883,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"bzU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bzV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -19002,21 +16900,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"bzX" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bzY" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -19045,18 +16928,6 @@ dir = 1 }, /area/almayer/command/lifeboat) -"bAf" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Atmospherics Wing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) "bAg" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -19093,10 +16964,6 @@ icon_state = "test_floor4" }, /area/almayer/command/securestorage) -"bAF" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "bAH" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -19121,18 +16988,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"bAM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "bAN" = ( /obj/structure/machinery/light{ dir = 1 @@ -19229,16 +17084,6 @@ icon_state = "greencorner" }, /area/almayer/hallways/starboard_hallway) -"bBc" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bBd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -19273,67 +17118,12 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"bBi" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/liaison_suit/formal, -/obj/item/clothing/under/liaison_suit, -/obj/item/clothing/under/liaison_suit/outing, -/obj/item/clothing/under/liaison_suit/suspenders, -/obj/item/clothing/under/blackskirt{ - desc = "A stylish skirt, in a business-black and red colour scheme."; - name = "liaison's skirt" - }, -/obj/item/clothing/under/suit_jacket/charcoal{ - desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; - name = "liaison's black suit" - }, -/obj/item/clothing/under/suit_jacket/navy{ - desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; - name = "liaison's navy suit" - }, -/obj/item/clothing/under/suit_jacket/trainee, -/obj/item/clothing/under/liaison_suit/charcoal, -/obj/item/clothing/under/liaison_suit/outing/red, -/obj/item/clothing/under/liaison_suit/blazer, -/obj/item/clothing/suit/storage/snow_suit/liaison, -/obj/item/clothing/gloves/black, -/obj/item/clothing/gloves/marine/dress, -/obj/item/clothing/glasses/sunglasses/big, -/obj/item/clothing/accessory/blue, -/obj/item/clothing/accessory/red, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bBl" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"bBm" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) -"bBp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bBq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "bBu" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -19453,21 +17243,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"bCf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/almayer/security{ - access_modified = 1; - dir = 2; - name = "\improper Security Checkpoint"; - req_access = null; - req_one_access_txt = "3;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/briefing) "bCg" = ( /obj/structure/machinery/light{ dir = 8 @@ -19611,24 +17386,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull) -"bCI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"bCJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "bCM" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -19641,18 +17398,6 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"bCO" = ( -/obj/item/tool/kitchen/tray{ - layer = 2.9 - }, -/obj/item/reagent_container/food/snacks/carpmeat{ - layer = 3.3 - }, -/obj/item/reagent_container/food/snacks/carpmeat{ - layer = 3.3 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "bCP" = ( /obj/structure/bed/chair{ dir = 1 @@ -19668,13 +17413,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"bCR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "bCS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -19948,12 +17686,6 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"bEj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bEl" = ( /obj/structure/machinery/computer/supply_drop_console/limited, /turf/closed/wall/almayer, @@ -19965,20 +17697,6 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"bEn" = ( -/obj/structure/stairs/perspective{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bEo" = ( /obj/structure/bed/sofa/south/grey/right{ pixel_y = 12 @@ -20234,19 +17952,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"bEU" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bEV" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bFa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20259,43 +17964,6 @@ /obj/structure/foamed_metal, /turf/open/floor/plating, /area/almayer/medical/lower_medical_medbay) -"bFc" = ( -/obj/structure/closet/emcloset{ - pixel_x = 8 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bFe" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/item/frame/fire_alarm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bFf" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/atmospipes, -/obj/item/circuitboard/airalarm, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bFg" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/fire_alarm, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bFj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20380,6 +18048,19 @@ /obj/docking_port/stationary/marine_dropship/almayer_hangar_1, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"bGa" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/starboard) "bGb" = ( /turf/closed/wall/almayer, /area/almayer/hallways/port_hallway) @@ -20511,6 +18192,9 @@ /area/almayer/squads/req) "bGz" = ( /obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/almayer{ dir = 9; icon_state = "green" @@ -20715,57 +18399,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"bHu" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Engineering Hallway" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bHv" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/obj/structure/machinery/cell_charger, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bHy" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/glasses/welding, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bHz" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bHB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20816,15 +18449,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"bHM" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) "bHP" = ( /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) @@ -20966,17 +18590,6 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"bIu" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/generic{ - access_modified = 1; - name = "Storage"; - req_one_access = "2;21" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/req) "bIw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -21007,28 +18620,6 @@ }, /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) -"bIz" = ( -/mob/living/simple_animal/cat/Jones{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) -"bIA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 29 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/auxiliary_officer_office) "bII" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 8; @@ -21066,9 +18657,6 @@ /obj/structure/bed/chair/office/dark, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) -"bIO" = ( -/turf/closed/wall/almayer/outer, -/area) "bIR" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -21153,18 +18741,6 @@ icon_state = "orangecorner" }, /area/almayer/hallways/starboard_hallway) -"bJj" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bJk" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bJl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; @@ -21223,12 +18799,6 @@ icon_state = "orangecorner" }, /area/almayer/squads/bravo) -"bJF" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) "bJH" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black{ @@ -21236,38 +18806,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"bJI" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bJK" = ( -/obj/structure/closet/radiation, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering/engine_core) -"bJM" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bJN" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "bJO" = ( /obj/structure/machinery/light/small, /obj/structure/sign/safety/nonpress_0g{ @@ -21281,32 +18819,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/port_umbilical) -"bJP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bJQ" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bJR" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bJS" = ( /obj/structure/surface/rack, /obj/item/tool/wrench, @@ -21434,21 +18946,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"bKo" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/machinery/disposal/broken, -/obj/item/reagent_container/food/drinks/cans/beer{ - layer = 3.1; - pixel_x = -7; - pixel_y = 16 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "bKp" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -21520,50 +19017,12 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"bKO" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop) "bKQ" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"bKT" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bKU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bKV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bKW" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bKX" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, @@ -21584,41 +19043,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_p) -"bLc" = ( -/obj/structure/machinery/light, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bLd" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"bLe" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bLf" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bLg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bLh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -21944,15 +19368,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"bMB" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) "bMC" = ( /turf/open/floor/almayer{ dir = 9; @@ -21969,15 +19384,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"bMF" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bMJ" = ( /obj/structure/machinery/light, /obj/structure/machinery/portable_atmospherics/canister/oxygen, @@ -21993,13 +19399,6 @@ /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine, /area/almayer/engineering/airmix) -"bMM" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"bMN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bMO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/CICmap, @@ -22014,14 +19413,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bMQ" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 1" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bMR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -22065,38 +19456,21 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bMV" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 7" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bMW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 13" - }, -/obj/structure/sign/safety/rad_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"bMY" = ( +/obj/structure/mirror{ + pixel_x = 28 }, -/area/almayer/engineering/engine_core) -"bMX" = ( -/obj/structure/machinery/light/small{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, /obj/effect/decal/warning_stripes{ - icon_state = "W" + icon_state = "S" }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "dark_sterile" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hull/upper_hull/u_a_s) "bNa" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, @@ -22243,15 +19617,6 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"bNz" = ( -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) "bNA" = ( /obj/structure/machinery/computer/ordercomp, /obj/structure/sign/safety/galley{ @@ -22281,10 +19646,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"bND" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) "bNE" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -22373,24 +19734,6 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) -"bNZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) -"bOc" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bOe" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -22407,68 +19750,6 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) -"bOh" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 16" - }, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOi" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bOk" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 2" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOl" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 8" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOm" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 14" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bOn" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Exterior Airlock"; - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bOo" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "bOq" = ( /obj/structure/prop/almayer/cannon_cables, /turf/open/floor/almayer{ @@ -22640,20 +19921,6 @@ icon_state = "emeraldcorner" }, /area/almayer/squads/charlie) -"bPd" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 3" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bPe" = ( -/obj/structure/machinery/portable_atmospherics/powered/pump, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bPg" = ( /obj/vehicle/powerloader, /obj/structure/machinery/light{ @@ -22795,6 +20062,19 @@ icon_state = "plate" }, /area/almayer/shipboard/weapon_room) +"bPH" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "bPJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -22833,14 +20113,6 @@ icon_state = "logo_c" }, /area/almayer/living/briefing) -"bPR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) "bPS" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ @@ -22871,77 +20143,31 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"bPZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bQa" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) -"bQe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bQi" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engine_core) -"bQk" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/machinery/status_display{ - pixel_y = 30 +"bQc" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 }, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 32; - pixel_y = -8 +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 6"; + name = "\improper Courtyard Divider" }, -/turf/open/floor/almayer{ - icon_state = "tcomms" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/engineering/engine_core) -"bQm" = ( -/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "test_floor4" }, -/area/almayer/engineering/engine_core) +/area/almayer/shipboard/brig/cells) "bQt" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"bQu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "bQz" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -23026,9 +20252,7 @@ /turf/closed/wall/almayer, /area/almayer/squads/req) "bQS" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo{ - icon_state = "req_ammo_wall" - }, +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, /turf/open/floor/almayer{ icon_state = "green" }, @@ -23087,61 +20311,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"bRi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bRj" = ( -/obj/structure/ladder{ - height = 1; - id = "engineeringladder" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engineering_workshop) -"bRk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bRm" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) -"bRo" = ( -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"bRr" = ( -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bRs" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/bridge{ @@ -23155,20 +20324,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/aft_hallway) -"bRu" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) "bRx" = ( /obj/structure/machinery/door/poddoor/railing{ id = "vehicle_elevator_railing_aux" @@ -23217,9 +20372,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) -"bRH" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) "bRK" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -23339,34 +20491,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"bSk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) -"bSl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"bSm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangefull" - }, -/area/almayer/engineering/engineering_workshop) "bSn" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -23378,31 +20502,9 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"bSt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bSv" = ( /turf/closed/wall/almayer, /area/almayer/living/tankerbunks) -"bSx" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engine_core) -"bSy" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "bSD" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = -4; @@ -23422,12 +20524,15 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"bSG" = ( -/obj/structure/machinery/power/smes/buildable, +"bSH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "tcomms" + dir = 1; + icon_state = "orange" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower) "bSJ" = ( /turf/closed/wall/almayer, /area/almayer/squads/delta) @@ -23515,24 +20620,6 @@ }, /turf/open/space, /area/space) -"bTi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bTl" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 4" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bTn" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -23546,12 +20633,6 @@ icon_state = "cargo" }, /area/almayer/living/tankerbunks) -"bTp" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "bTq" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Evacuation Airlock PL-3"; @@ -23580,12 +20661,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"bTw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "bTx" = ( /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) @@ -23595,15 +20670,6 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"bTz" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) "bTA" = ( /turf/open/floor/almayer, /area/almayer/squads/delta) @@ -23753,8 +20819,14 @@ }, /area/almayer/living/briefing) "bUc" = ( -/obj/structure/foamed_metal, -/turf/open/floor/plating, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Secretroom"; + indestructible = 1; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/almayer/hull/lower_hull/l_m_s) "bUd" = ( /turf/open/floor/almayer{ @@ -23797,13 +20869,6 @@ }, /area/almayer/squads/charlie_delta_shared) "bUo" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, /obj/structure/sign/safety/ammunition{ pixel_x = 15; pixel_y = -32 @@ -23811,6 +20876,7 @@ /obj/structure/sign/safety/hazard{ pixel_y = -32 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -23885,17 +20951,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"bUA" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver, -/obj/item/prop/helmetgarb/gunoil{ - pixel_x = -7; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "bUE" = ( /turf/open/floor/almayer{ dir = 4; @@ -23913,31 +20968,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"bUI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) -"bUJ" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bUL" = ( -/obj/structure/platform_decoration, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bUM" = ( /turf/open/floor/almayer{ dir = 8; @@ -23968,19 +20998,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_m_s) -"bUR" = ( -/obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "bUT" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -23996,43 +21013,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"bUW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 5" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUX" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 11" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUY" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 17" - }, -/obj/structure/sign/safety/rad_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bUZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "bVb" = ( /turf/open/floor/almayer{ icon_state = "blue" @@ -24084,18 +21064,16 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"bVt" = ( -/obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"bVs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"bVv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "bVw" = ( /turf/open/floor/almayer{ dir = 4; @@ -24109,38 +21087,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"bVB" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 2; - name = "\improper Weyland-Yutani Office" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "cl_shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) -"bVC" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "cmp_armory"; - name = "\improper Armory Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Armory" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/armory) "bVE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -24182,6 +21128,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"bVN" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "bVR" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -24192,11 +21144,17 @@ }, /area/almayer/hull/lower_hull/l_f_p) "bVT" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 }, -/area/almayer/hull/upper_hull/u_f_p) +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_s) "bVU" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/port_point_defense) @@ -24292,46 +21250,6 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) -"bWs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bWw" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"bWy" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bWC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/aft_hallway) -"bWE" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "bWJ" = ( /obj/structure/machinery/shower{ dir = 4 @@ -24351,9 +21269,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"bWM" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "bWP" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -24366,16 +21281,6 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"bWS" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket/mopbucket, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "bWT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -24401,19 +21306,6 @@ icon_state = "orange" }, /area/almayer/hallways/port_hallway) -"bWZ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) "bXe" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) @@ -24425,42 +21317,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"bXl" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXm" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXn" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "bXo" = ( /obj/structure/ladder{ height = 1; @@ -24474,41 +21330,12 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"bXr" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 6" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "bXs" = ( /obj/structure/machinery/light{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) -"bXt" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 12" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXu" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 18" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXv" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bXw" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 @@ -24517,19 +21344,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) -"bXx" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_18"; - pixel_y = 7 - }, -/obj/structure/machinery/door_control{ - id = "cl_shutters 3"; - name = "Quarters Shutters"; - pixel_x = -25; - req_access_txt = "200" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bXz" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, @@ -24543,89 +21357,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"bXP" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) -"bXQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXR" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_sn_full_cap" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"bXS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) -"bXU" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXV" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bXW" = ( -/obj/structure/machinery/door_control{ - id = "cl_shutters 3"; - name = "Quarters Shutters"; - pixel_x = 25; - req_access_txt = "200" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bXX" = ( /obj/structure/machinery/light{ dir = 8 @@ -24650,9 +21381,7 @@ /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) "bYa" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo{ - icon_state = "req_guns_wall" - }, +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, /turf/open/floor/almayer{ dir = 10; icon_state = "green" @@ -24662,10 +21391,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/aft_hallway) -"bYd" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "bYe" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -24699,9 +21424,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"bYj" = ( -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bYn" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/port) @@ -24737,18 +21459,6 @@ /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"bYy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "bYz" = ( /obj/structure/sign/safety/south{ pixel_x = 32; @@ -24773,87 +21483,13 @@ icon_state = "orangecorner" }, /area/almayer/hallways/port_hallway) -"bYI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bYK" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"bYM" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) -"bYO" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bYP" = ( +"bYF" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bYQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bYS" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engine_core) -"bYU" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) -"bYV" = ( -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bYW" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "bYY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -24944,50 +21580,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"bZA" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Engineering Hallway" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower_engineering) -"bZD" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) -"bZE" = ( -/obj/structure/pipes/binary/pump/on{ - dir = 4 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "bZH" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -25018,14 +21610,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) -"bZN" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) "bZO" = ( /obj/structure/machinery/light{ dir = 8 @@ -25118,6 +21702,9 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"cak" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/evidence_storage) "cal" = ( /turf/open/floor/almayer{ dir = 6; @@ -25130,6 +21717,18 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) +"car" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 + }, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "cat" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -25178,42 +21777,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_umbilical) -"cay" = ( -/obj/structure/closet/emcloset{ - pixel_x = 8 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caz" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/book/manual/engineering_guide, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caA" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/fire, -/obj/item/device/lightreplacer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"caB" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight, -/obj/item/storage/firstaid/rad, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "caC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25247,15 +21810,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_p) -"caF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "caM" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -25420,51 +21974,12 @@ icon_state = "test_floor4" }, /area/almayer/hallways/port_hallway) -"cbG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"cbH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "cbM" = ( /obj/structure/closet/crate, /obj/item/clothing/glasses/welding, /obj/item/circuitboard, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"cbN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"cbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cbQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -25562,31 +22077,34 @@ icon_state = "red" }, /area/almayer/living/cryo_cells) -"ccd" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +"ccc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/living/cryo_cells) -"cce" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Atmospherics Wing" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/door/airlock/almayer/research/reinforced{ + dir = 8; + name = "\improper Containment Airlock"; + closeOtherId = "containment_n" + }, +/obj/structure/machinery/door/poddoor/almayer/biohazard/white{ + dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/engineering/lower_engineering) -"ccf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, +/area/almayer/medical/containment) +"ccd" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ - icon_state = "redfull" + dir = 5; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/living/cryo_cells) "ccg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -25661,95 +22179,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"ccx" = ( -/obj/structure/surface/table/almayer, -/obj/structure/largecrate/random/case/small{ - pixel_y = 5 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccy" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccB" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Oxygen Supply Console" - }, -/obj/structure/pipes/standard/simple/hidden/universal{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Nitrogen Control Console" - }, -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccD" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 10 - }, -/obj/structure/machinery/meter, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"ccE" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - name = "Lower Mixed Air Control" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "ccG" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ @@ -25784,32 +22213,6 @@ /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"ccR" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 6 - }, -/obj/structure/machinery/meter, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccS" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccT" = ( -/obj/structure/pipes/trinary/mixer{ - dir = 4; - name = "Gas mixer N2/O2" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "ccU" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -25817,38 +22220,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"ccV" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 10 - }, -/obj/structure/machinery/meter, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccW" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccX" = ( -/obj/structure/pipes/binary/pump/high_power/on{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) -"ccY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cdb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -25881,15 +22252,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"cdk" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "cdm" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, @@ -25924,24 +22286,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"cdr" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) -"cdu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cdw" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, @@ -25967,6 +22311,13 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"cdB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "cdE" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -26071,27 +22422,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"ceo" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/closet/cabinet, -/obj/item/clipboard, -/obj/item/storage/lockbox/loyalty, -/obj/item/storage/briefcase, -/obj/item/reagent_container/spray/pepper, -/obj/item/device/eftpos{ - eftpos_name = "Weyland-Yutani EFTPOS scanner" - }, -/obj/item/device/portable_vendor/corporate, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"cer" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/lower_engineering) "ces" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -26378,12 +22708,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_umbilical) -"cgI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cgJ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -26404,15 +22728,30 @@ }, /area/almayer/shipboard/brig/cic_hallway) "cgT" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"chb" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "chf" = ( /obj/structure/window/reinforced{ dir = 4; @@ -26467,6 +22806,10 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) +"chv" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "chC" = ( /obj/structure/platform_decoration, /turf/open/floor/plating/plating_catwalk, @@ -26699,16 +23042,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"ciF" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ciN" = ( /turf/open/floor/almayer{ dir = 6; @@ -26787,6 +23120,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) +"cjk" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 6"; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/cells) "cjl" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/poddoor/almayer{ @@ -26822,6 +23166,11 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) +"cjt" = ( +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "cjw" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/light{ @@ -26835,6 +23184,17 @@ icon_state = "red" }, /area/almayer/hallways/port_hallway) +"cjz" = ( +/obj/structure/bed/chair/bolted{ + dir = 1 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "cjA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -26991,13 +23351,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_a_s) -"ckD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) "ckI" = ( /obj/structure/disposalpipe/segment, /obj/item/device/radio/intercom{ @@ -27058,6 +23411,10 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/main_office) +"ckW" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/engineering/lower) "ckX" = ( /turf/open/floor/almayer{ dir = 1; @@ -27346,15 +23703,9 @@ }, /area/almayer/hull/lower_hull/l_m_p) "clR" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" - }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "blue" }, /area/almayer/hallways/port_hallway) "clS" = ( @@ -27415,29 +23766,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"cmb" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cmc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "cmd" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -27506,13 +23834,33 @@ icon_state = "plating" }, /area/almayer/shipboard/port_point_defense) -"cmp" = ( -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +"cmo" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/tool, +/obj/item/packageWrap, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/squads/req) "cmq" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"cmv" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/processing) "cmC" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -27565,7 +23913,8 @@ access_modified = 1; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19" + req_one_access_txt = "3;19"; + closeOtherId = "astroladder_n" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -27577,7 +23926,8 @@ access_modified = 1; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19" + req_one_access_txt = "3;19"; + closeOtherId = "astroladder_s" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -27594,6 +23944,17 @@ /obj/docking_port/stationary/escape_pod/west, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_m_p) +"cna" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "cnd" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -27604,6 +23965,20 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"cnn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "cno" = ( /obj/structure/stairs, /obj/effect/projector{ @@ -27834,19 +24209,27 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"com" = ( +/obj/structure/largecrate/supply/weapons/pistols, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_m_s) "cop" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/tankerbunks) -"cos" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"cov" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food, +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32; + pixel_y = 7 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/shipboard/brig/general_equipment) "coB" = ( /obj/structure/bed/chair{ dir = 4 @@ -27855,12 +24238,29 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"coD" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 12 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "coG" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"coH" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "coJ" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 10 @@ -27968,18 +24368,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"cqn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "bot_armory"; - name = "\improper Armory Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/armory) "cqz" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black, @@ -28040,6 +24428,16 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"crp" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "crD" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -28066,19 +24464,6 @@ icon_state = "greencorner" }, /area/almayer/hallways/starboard_hallway) -"csw" = ( -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "csz" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -28115,11 +24500,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) -"ctn" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/lobby) "cts" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -28162,17 +24542,22 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) -"cuk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ +"ctT" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 1; name = "\improper Cryogenics Bay" }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cryo) +"cuq" = ( +/obj/structure/machinery/computer/arcade, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "cus" = ( /obj/docking_port/stationary/lifeboat_dock/starboard, /turf/open/floor/almayer_hull{ @@ -28194,6 +24579,18 @@ "cuC" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/starboard) +"cuN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "cuY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28214,12 +24611,18 @@ icon_state = "plate" }, /area/almayer/squads/req) -"cvj" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ +"cvH" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/light{ dir = 1 }, /turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/area/almayer/shipboard/brig/cells) "cvZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -28229,18 +24632,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"cwd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "cwo" = ( /obj/structure/largecrate/random/mini/chest{ pixel_x = 4 @@ -28257,6 +24648,20 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"cwQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/port_hallway) "cwS" = ( /obj/structure/blocker/invisible_wall, /turf/open/floor/almayer/no_build{ @@ -28282,13 +24687,6 @@ icon_state = "tcomms" }, /area/almayer/command/airoom) -"cxe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) "cxk" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -28311,6 +24709,14 @@ icon_state = "green" }, /area/almayer/squads/req) +"cyy" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "cyE" = ( /obj/structure/platform_decoration{ dir = 8 @@ -28343,18 +24749,6 @@ "czu" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/upper_hull/u_m_p) -"czB" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"czG" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "czJ" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = 8; @@ -28379,6 +24773,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"cAy" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "cAF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -28474,6 +24876,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) +"cBw" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "cBA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28514,18 +24922,48 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) +"cBZ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutters"; + pixel_x = 6; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_x = -6; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "courtyard window"; + name = "Courtyard Window Shutters"; + pixel_x = -6; + pixel_y = 9; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "Cell Privacy Shutters"; + name = "Cell Privacy Shutters"; + pixel_x = 6; + pixel_y = 9; + req_access_txt = "3" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "cCa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"cCd" = ( -/obj/structure/bookcase{ - icon_state = "book-5" - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "cCD" = ( /obj/structure/platform{ dir = 8; @@ -28552,12 +24990,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"cDj" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "cDn" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass{ @@ -28596,6 +25028,21 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) +"cDH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/computer/cameras/wooden_tv/prop{ + pixel_y = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"cDN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "cDW" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ @@ -28640,15 +25087,6 @@ icon_state = "plating" }, /area/almayer/command/cic) -"cEx" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "cEC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28716,13 +25154,15 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"cFO" = ( -/obj/structure/disposalpipe/segment, +"cFC" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + dir = 9; + icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/processing) "cFP" = ( /obj/structure/sign/safety/outpatient{ pixel_x = -17; @@ -28732,17 +25172,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"cFX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"cGe" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/engineering/lower/engine_core) "cGr" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/aft_hallway) +"cGI" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "cGV" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" @@ -28777,6 +25225,11 @@ "cHu" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell/cl) +"cHB" = ( +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "cHE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -28786,14 +25239,21 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"cHO" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 +"cHG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"cHP" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N" }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering/lower_engineering) +/area/almayer/hull/upper_hull/u_f_s) "cIe" = ( /obj/structure/machinery/light{ dir = 4 @@ -28821,6 +25281,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"cIx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "cIG" = ( /obj/structure/closet/emcloset, /obj/item/clothing/mask/gas, @@ -28829,31 +25296,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"cII" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/airlock{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) -"cIK" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) "cIU" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -28871,6 +25313,15 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"cJh" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 8; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/cells) "cJu" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -28983,19 +25434,18 @@ icon_state = "cargo_arrow" }, /area/almayer/command/airoom) -"cLp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"cLq" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 + icon_state = "W" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/stern_point_defense) "cLA" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -29020,6 +25470,23 @@ icon_state = "cargo" }, /area/almayer/living/bridgebunks) +"cLV" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_p) +"cMb" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_y = 7 + }, +/obj/item/tool/pen, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "cMl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29029,6 +25496,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"cMz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "cMN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -29091,6 +25562,29 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell/cl) +"cNK" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) +"cNM" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "cNX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29100,13 +25594,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) -"cNY" = ( -/obj/structure/machinery/computer/crew, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "cOi" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ @@ -29147,6 +25634,18 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"cPK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "cQc" = ( /turf/open/floor/almayer{ dir = 1; @@ -29184,6 +25683,13 @@ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_f_s) +"cQL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/lobby) "cQN" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -29193,6 +25699,16 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"cQW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "cRb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29235,6 +25751,19 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"cRL" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) +"cSa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) "cSk" = ( /obj/structure/machinery/door/window/southleft, /turf/open/floor/almayer{ @@ -29263,20 +25792,16 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"cSN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"cSK" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, +/obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/engineering/engineering_workshop/hangar) +/area/almayer/hull/lower_hull/l_m_s) "cSQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29310,16 +25835,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"cUb" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop/hangar) "cUv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -29328,6 +25843,18 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_f_p) +"cVb" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) +"cVq" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "cVs" = ( /obj/structure/platform_decoration{ dir = 8 @@ -29345,12 +25872,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"cVJ" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cVK" = ( /obj/structure/surface/rack, /obj/structure/sign/safety/rewire{ @@ -29407,17 +25928,13 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/shipboard/brig/main_office) -"cWt" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "red" }, -/area/almayer/engineering/lower_engineering) +/area/almayer/shipboard/brig/main_office) "cWv" = ( /turf/open/floor/almayer{ dir = 8; @@ -29437,6 +25954,16 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_s) +"cWE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/port) "cWI" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -29447,25 +25974,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) -"cWN" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/filingcabinet/security{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "cXi" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -29545,6 +26053,14 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"cYN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "cYT" = ( /obj/structure/machinery/light{ dir = 8 @@ -29570,23 +26086,27 @@ }, /turf/open/floor/plating, /area/almayer/command/cichallway) +"cZj" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "cZm" = ( /obj/structure/machinery/light{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"cZs" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/shipboard/brig/chief_mp_office) -"cZJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - name = "\improper Core Hatch" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "cZV" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, @@ -29622,35 +26142,36 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"cZZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"daj" = ( -/obj/structure/machinery/iv_drip, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"dav" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +"dac" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/starboard_hallway) "daz" = ( /turf/closed/wall/almayer/white/hull, /area/almayer/command/airoom) +"dbc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "dbe" = ( /obj/structure/largecrate/random/case/double, /obj/structure/machinery/camera/autoname/almayer{ @@ -29726,13 +26247,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"dci" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "dck" = ( /obj/structure/bed/stool, /turf/open/floor/almayer{ @@ -29740,18 +26254,26 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"dco" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "dcp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"dcP" = ( -/obj/structure/machinery/body_scanconsole{ - dir = 8 - }, +"dcy" = ( /turf/open/floor/almayer{ - icon_state = "dark_sterile" + dir = 1; + icon_state = "red" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/shipboard/brig/perma) "dcS" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -29769,51 +26291,37 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) -"ddj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +"ddf" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "ddk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/living/briefing) +"ddw" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "ddz" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"ddG" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"ddK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"deb" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Perma 2"; - pixel_y = -24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) +"ddM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) "deg" = ( /obj/structure/platform_decoration{ dir = 1 @@ -29837,6 +26345,18 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) +"deT" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "emerald" + }, +/area/almayer/living/port_emb) "dfa" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, @@ -29874,15 +26394,9 @@ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "greenfull" + icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"dfp" = ( -/obj/structure/machinery/keycard_auth{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "dfC" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -29920,7 +26434,23 @@ icon_state = "plate" }, /area/almayer/living/gym) +"dgq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_p) "dgx" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 13 + }, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ dir = 8; icon_state = "red" @@ -29937,21 +26467,36 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"dhQ" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = -17 +"dha" = ( +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/surface/table/almayer, -/obj/item/clipboard{ - pixel_x = -4 +/area/almayer/command/combat_correspondent) +"dhd" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 }, -/obj/item/device/taperecorder{ - pixel_x = 3; - pixel_y = 3 +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/device/camera, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + icon_state = "plating_striped" + }, +/area/almayer/shipboard/brig/execution) +"dho" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "dhR" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; @@ -29993,21 +26538,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) -"diF" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 14; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "diJ" = ( /obj/structure/window/reinforced{ dir = 8; @@ -30021,60 +26551,18 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"djm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"djp" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/plastic{ - amount = 5 - }, -/obj/item/stack/sheet/glass{ - amount = 50; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/plasteel{ - amount = 30; - pixel_x = 4; - pixel_y = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) -"djL" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" +"diP" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"djM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/reagentgrinder/industrial{ - pixel_y = 8 +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Lobby"; + closeOtherId = "brignorth" }, /turf/open/floor/almayer{ - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/engineering/engineering_workshop/hangar) +/area/almayer/shipboard/brig/lobby) "djQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -30145,19 +26633,13 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"dkS" = ( -/obj/structure/machinery/shower, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 2 - }, -/obj/item/clothing/mask/cigarette/weed, -/turf/open/floor/prison{ - icon_state = "kitchen" +"dkX" = ( +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "bluefull" }, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/living/briefing) "dll" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -30171,14 +26653,6 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"dls" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_x = -30 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "dmg" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -30230,6 +26704,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) +"dmZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 1"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) "dnk" = ( /obj/structure/largecrate/supply/generator, /obj/item/reagent_container/food/drinks/bottle/whiskey{ @@ -30274,18 +26767,6 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) -"dnJ" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/command/lifeboat) "dnS" = ( /obj/structure/safe, /turf/open/floor/almayer{ @@ -30349,24 +26830,25 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"dpn" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, +"doU" = ( +/obj/structure/surface/rack, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) +"dpo" = ( /obj/structure/machinery/light{ dir = 1 }, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/structure/transmitter{ - name = "Kitchen Telephone"; - phone_category = "Almayer"; - phone_id = "Kitchen"; - pixel_x = -8; - pixel_y = 29 +/obj/structure/sign/safety/waterhazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 14; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" }, -/area/almayer/living/grunt_rnr) +/area/almayer/lifeboat_pumps/north1) "dpy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30388,13 +26870,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) -"dpV" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "dqb" = ( /obj/structure/sign/safety/security{ pixel_x = -16 @@ -30405,6 +26880,13 @@ /obj/structure/largecrate/random/secure, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) +"dqg" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/starboard) "dqj" = ( /turf/open/floor/almayer{ dir = 4; @@ -30457,28 +26939,9 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"dqV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/vending/coffee, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_y = 24; - req_access_txt = "3" - }, -/obj/structure/sign/safety/coffee{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) +"dqZ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) "drj" = ( /obj/structure/window/reinforced{ dir = 4; @@ -30547,15 +27010,13 @@ icon_state = "red" }, /area/almayer/hull/upper_hull/u_a_p) -"dsw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, +"dsA" = ( +/obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "redcorner" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/shipboard/brig/execution) "dtH" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -30568,12 +27029,6 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"dtN" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "dtZ" = ( /obj/structure/platform_decoration{ dir = 4 @@ -30587,7 +27042,8 @@ }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ id_tag = "cic_exterior"; - name = "\improper Combat Information Center" + name = "\improper Combat Information Center"; + closeOtherId = "ciclobby_s" }, /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -30639,6 +27095,15 @@ icon_state = "mono" }, /area/almayer/living/starboard_garden) +"duz" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "duF" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/almayer{ @@ -30695,16 +27160,6 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"dvF" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/ot{ - pixel_y = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"dvT" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/general_equipment) "dwl" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -30736,13 +27191,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"dxm" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/general_equipment) "dxu" = ( /obj/structure/sink{ dir = 1; @@ -30786,31 +27234,28 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"dxL" = ( -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/structure/reagent_dispensers/ethanoltank{ - anchored = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "dxT" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/rewire{ + pixel_x = 32 }, -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"dya" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 2"; + name = "\improper cell shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Isolation Cell" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/lobby) +/area/almayer/shipboard/brig/perma) "dyb" = ( /obj/structure/machinery/smartfridge/chemistry, /obj/item/device/radio/intercom{ @@ -30833,6 +27278,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"dyj" = ( +/obj/structure/closet/secure_closet/commander, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/device/whistle, +/obj/item/device/megaphone, +/obj/item/device/radio, +/obj/item/clothing/shoes/laceup, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "dyp" = ( /obj/structure/machinery/ares/cpu, /turf/open/floor/almayer/no_build{ @@ -30856,22 +27310,6 @@ icon_state = "plating" }, /area/almayer/squads/req) -"dyF" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/machinery/door_control{ - id = "cl_shutters 2"; - name = "Quarters Shutters"; - pixel_x = 25; - req_access_txt = "200" - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "dyK" = ( /obj/structure/machinery/light{ dir = 8 @@ -30881,6 +27319,26 @@ icon_state = "orange" }, /area/almayer/engineering/ce_room) +"dzp" = ( +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"dzF" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) +"dzG" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "dAb" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -30899,6 +27357,16 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"dAQ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) "dAX" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -30944,6 +27412,28 @@ /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, /area/almayer/medical/lower_medical_medbay) +"dBI" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_y = 4 + }, +/obj/item/trash/USCMtray{ + pixel_y = 6 + }, +/obj/item/trash/USCMtray{ + pixel_y = 8 + }, +/obj/item/trash/USCMtray{ + pixel_y = 10 + }, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "dBO" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -30953,6 +27443,23 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) +"dBQ" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) +"dBS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "dCe" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -31044,15 +27551,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"dCS" = ( -/obj/structure/sign/safety/rad_shield{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "dDp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -31098,14 +27596,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"dDQ" = ( +"dDM" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/light{ + dir = 8 + }, /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/engineering/lower/workshop/hangar) "dEm" = ( /obj/structure/machinery/power/apc/almayer, /obj/effect/decal/warning_stripes{ @@ -31147,6 +27650,22 @@ icon_state = "greencorner" }, /area/almayer/hallways/starboard_hallway) +"dEG" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"dEJ" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/lifeboat_pumps/north2) "dEQ" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco, @@ -31161,18 +27680,22 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"dEX" = ( +/obj/structure/closet/secure_closet/guncabinet/riot_control, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "dFk" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "redcorner" }, /area/almayer/command/lifeboat) -"dFC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) "dFF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" @@ -31185,6 +27708,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"dFU" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) "dFV" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/cell_charger, @@ -31225,16 +27754,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"dGw" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "dGz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -31253,39 +27772,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"dGD" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Spare Restraints"; - req_one_access_txt = "3" - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/glasses/sunglasses/blindfold, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) -"dGW" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - access_modified = 1; - dir = 2; - name = "\improper Security Checkpoint"; - req_access = null; - req_one_access_txt = "3;19" +"dGU" = ( +/obj/structure/sign/poster/propaganda{ + pixel_x = -27 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, /area/almayer/living/briefing) "dHd" = ( @@ -31312,18 +27807,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"dHr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "dHu" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -31336,20 +27819,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"dHv" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv, -/obj/item/device/defibrillator, -/obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "dHV" = ( /obj/structure/machinery/light{ dir = 1 @@ -31391,6 +27860,25 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"dID" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/command/lifeboat) +"dIH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/engineering/lower/workshop) "dII" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo, /obj/effect/decal/warning_stripes{ @@ -31413,6 +27901,32 @@ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_m_s) +"dJI" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/arcturianstopsign{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"dKa" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hull/upper_hull/u_f_s) +"dKc" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 9" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "dKm" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -31445,6 +27959,16 @@ dir = 4 }, /area/almayer/medical/containment/cell/cl) +"dKK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "dKL" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/airmix) @@ -31455,6 +27979,24 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"dLe" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/command/cichallway) +"dLi" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 4" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "dLt" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -31479,6 +28021,20 @@ icon_state = "silver" }, /area/almayer/hallways/aft_hallway) +"dMf" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/photo_album{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/folder/black{ + pixel_x = 7; + pixel_y = -3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "dMB" = ( /turf/open/floor/almayer{ dir = 8; @@ -31519,10 +28075,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"dNx" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) "dNB" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ @@ -31548,6 +28100,18 @@ icon_state = "redfull" }, /area/almayer/command/cic) +"dOe" = ( +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/reagent_dispensers/ethanoltank{ + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "dOl" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigar, @@ -31558,10 +28122,6 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"dOL" = ( -/obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "dPm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31576,21 +28136,38 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"dPH" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"dPQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/pen, +/obj/item/paper_bin/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"dPT" = ( +/obj/structure/machinery/brig_cell/cell_2{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/processing) "dPU" = ( /obj/structure/sign/safety/nonpress_ag{ pixel_x = 32 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) -"dPY" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "dQl" = ( /obj/structure/platform{ dir = 4 @@ -31608,6 +28185,34 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"dQp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) +"dQs" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/port_hallway) "dQv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31616,6 +28221,15 @@ icon_state = "dark_sterile" }, /area/almayer/shipboard/brig/surgery) +"dQA" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower) "dQE" = ( /obj/structure/machinery/light{ dir = 1 @@ -31642,6 +28256,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"dRs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/upper_engineering/port) "dRv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31684,6 +28304,17 @@ icon_state = "red" }, /area/almayer/hallways/starboard_hallway) +"dRP" = ( +/obj/structure/bed/chair/comfy/orange, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "dRT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -31697,20 +28328,6 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) -"dSc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"dSn" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/cells) "dSp" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -31721,19 +28338,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"dSs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/hazard{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "dSA" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, @@ -31760,23 +28364,19 @@ icon_state = "rasputin3" }, /area/almayer/powered/agent) -"dTc" = ( -/obj/structure/sign/poster{ - desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; - icon_state = "poster12"; - name = "Beach Babe Pinup"; - pixel_x = -30; - pixel_y = 6; - serial_number = 12 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, +"dTn" = ( /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"dTr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/command/corporateliason) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "dTt" = ( /obj/structure/surface/table/almayer, /obj/item/device/camera, @@ -31792,6 +28392,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"dTQ" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) +"dTS" = ( +/obj/structure/machinery/fuelcell_recycler, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "dTZ" = ( /turf/open/floor/almayer{ icon_state = "sterile_green_side" @@ -31846,6 +28461,42 @@ icon_state = "blue" }, /area/almayer/living/briefing) +"dVm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Railguns and Viewing Room" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_f_p) +"dVn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"dVs" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/living/port_emb) "dVu" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -31862,34 +28513,11 @@ icon_state = "plate" }, /area/almayer/living/offices) -"dVZ" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "dWg" = ( /obj/effect/landmark/start/cargo, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"dWk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "CMP Office Shutters"; - name = "CMP Office Shutters"; - pixel_y = 32; - req_one_access_txt = "24;31" - }, -/obj/structure/machinery/door_control{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown Shutters"; - pixel_y = 24; - req_access_txt = "3" - }, -/obj/structure/machinery/faxmachine/uscm/brig/chief, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "dWm" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, @@ -31905,19 +28533,6 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"dWz" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/obj/structure/machinery/door_control{ - id = "cl_shutters 2"; - name = "Quarters Shutters"; - pixel_x = 11; - pixel_y = 37; - req_access_txt = "200" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "dWX" = ( /obj/structure/machinery/light{ dir = 8 @@ -31937,10 +28552,8 @@ }, /area/almayer/engineering/laundry) "dXo" = ( -/obj/structure/machinery/photocopier, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, +/obj/structure/surface/table/almayer, +/obj/item/device/taperecorder, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -31955,10 +28568,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"dXy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "dXG" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -31967,6 +28576,26 @@ icon_state = "plate" }, /area/almayer/squads/req) +"dXI" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + name = "\improper Exterior Airlock"; + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/stern_point_defense) +"dXO" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "dXV" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 16 @@ -31998,6 +28627,17 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"dYC" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/obj/item/frame/fire_alarm, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "dYK" = ( /obj/item/folder/red{ desc = "A red folder. The previous contents are a mystery, though the number 28 has been written on the inside of each flap numerous times. Smells faintly of cough syrup."; @@ -32021,6 +28661,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"dYX" = ( +/obj/structure/machinery/door/airlock/almayer/marine/bravo{ + dir = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) "dZd" = ( /turf/open/floor/almayer{ dir = 10; @@ -32039,6 +28691,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"dZu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "eaf" = ( /obj/structure/machinery/cm_vending/clothing/military_police{ density = 0; @@ -32055,10 +28713,6 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/general_equipment) -"eai" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "ean" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -32089,12 +28743,6 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"eaX" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/upper_engineering/starboard) "ebd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, @@ -32108,6 +28756,43 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"ebp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"ebt" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"ebv" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/storage/firstaid/regular, +/obj/item/reagent_container/spray/cleaner, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) "ebD" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -32117,14 +28802,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"ebJ" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "ebN" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/command/airoom) @@ -32154,61 +28831,19 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"ecq" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/obj/item/device/flashlight/lamp/green{ - pixel_x = 6 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "ecr" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/captain_mess) -"ect" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "ecM" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) -"ecQ" = ( -/obj/structure/machinery/door_display/research_cell{ - dir = 4; - id = "Containment Cell 4"; - name = "Control Panel"; - pixel_x = -15; - req_access_txt = "200" - }, -/obj/item/storage/fancy/cigarettes/blackpack{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/structure/surface/table/woodentable/fancy, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/tool/lighter/zippo/gold{ - pixel_x = 2 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +"ecP" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) "ecR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -32231,31 +28866,47 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) +"edn" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/sign/poster{ + desc = "Koorlander Golds, lovingly machine rolled for YOUR pleasure."; + icon_state = "poster10"; + name = "Koorlander Gold Poster"; + pixel_x = 29; + pixel_y = 6; + serial_number = 10 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"edo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/processing) "edv" = ( /obj/structure/bed/sofa/south/white/left, /turf/open/floor/almayer{ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) -"edx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) -"edM" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "eed" = ( /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/command/computerlab) +"eeh" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/microwave{ + pixel_y = 9 + }, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "eei" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/cups{ @@ -32314,61 +28965,21 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"eeN" = ( -/obj/structure/bed/chair, +"efj" = ( /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "red" }, -/area/almayer/shipboard/brig/processing) -"efa" = ( -/obj/item/frame/camera{ - desc = "The Staff Officer insisted he needed to monitor everyone at all times."; - layer = 2.9; - name = "broken camera"; - pixel_x = -7; - pixel_y = -6 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) -"efh" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutters"; - pixel_x = -8; - pixel_y = -6; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "Brig Lockdown Shutters"; - name = "Brig Lockdown Shutters"; - pixel_x = -8; - pixel_y = 2; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "courtyard window"; - name = "Courtyard Window Shutters"; - pixel_x = -8; - pixel_y = 10; - req_access_txt = "3" - }, -/obj/structure/machinery/door_control{ - id = "Cell Privacy Shutters"; - name = "Cell Privacy Shutters"; - pixel_x = 2; - pixel_y = 10; - req_access_txt = "3" - }, -/obj/structure/machinery/recharger{ - pixel_x = 6; - pixel_y = -2 +/area/almayer/hallways/upper/port) +"efC" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower) "efK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32380,6 +28991,15 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"efT" = ( +/obj/structure/machinery/atm{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "efU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -32441,16 +29061,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"egR" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "egS" = ( /obj/structure/closet, /obj/item/clothing/ears/earmuffs, @@ -32459,6 +29069,19 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"ehc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "ehi" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -32486,6 +29109,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"ehL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "ehR" = ( /obj/structure/window/reinforced{ dir = 4; @@ -32515,15 +29156,19 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"ehZ" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 +"ehX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "red" }, -/area/almayer/living/tankerbunks) +/area/almayer/shipboard/brig/processing) "eim" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -32559,29 +29204,6 @@ dir = 1 }, /area/almayer/medical/containment/cell) -"eiH" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/cells) -"eiK" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/shipboard/brig/cic_hallway) "eiN" = ( /obj/structure/machinery/light{ dir = 1 @@ -32594,12 +29216,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"eiO" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "eiP" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -32658,12 +29274,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"ekg" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "eko" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating/plating_catwalk, @@ -32671,6 +29281,15 @@ "eky" = ( /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"ekF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "ekO" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -32686,6 +29305,9 @@ /obj/structure/machinery/door/airlock/almayer/generic/glass{ name = "\improper Memorial Room" }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -32700,25 +29322,16 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"elh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/machinery/light{ - dir = 8 +"elv" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/cic_hallway) -"elq" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) +/area/almayer/hallways/upper/port) +"elx" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "elA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -32737,6 +29350,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) +"elM" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "elR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 @@ -32788,15 +29410,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"emO" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate{ - dir = 1; - name = "Corporate Liaison's Bedroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) "ene" = ( /turf/open/floor/almayer{ dir = 4; @@ -32812,32 +29425,23 @@ }, /area/almayer/hull/lower_hull/l_m_s) "eni" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/magazine/book/spacebeast, +/obj/structure/machinery/power/monitor{ + name = "Main Power Grid Monitoring" + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/evidence_storage) +/area/almayer/engineering/lower/workshop) "enx" = ( /obj/structure/pipes/vents/pump, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /area/almayer/hallways/starboard_hallway) -"enz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/vending/snack, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "eoG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -32845,29 +29449,18 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"eoP" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Perma 1"; - pixel_y = 24 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) -"eoT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" +"eoM" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/beer_pack, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = -27; + serial_number = 11 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_s) "epu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -32889,6 +29482,15 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"epJ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "eqb" = ( /obj/structure/surface/table/almayer, /obj/item/tool/stamp/denied{ @@ -32951,6 +29553,14 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"eqL" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "eqN" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/synthcloset) @@ -32998,19 +29608,21 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) -"erx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"ern" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"erF" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 }, +/obj/item/book/manual/engineering_guide, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orange" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/engineering/lower) "erG" = ( /obj/structure/disposalpipe/junction{ dir = 2; @@ -33035,10 +29647,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_umbilical) -"erZ" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "esi" = ( /obj/structure/sign/safety/stairs{ pixel_x = 15; @@ -33058,6 +29666,23 @@ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) +"esC" = ( +/obj/structure/toilet{ + pixel_y = 13 + }, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/item/prop/magazine/dirty{ + pixel_x = -6; + pixel_y = -10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/captain_mess) "esF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -33091,6 +29716,14 @@ icon_state = "plating_striped" }, /area/almayer/command/lifeboat) +"etn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/command/lifeboat) "ets" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -33118,15 +29751,6 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"etB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/storage{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "etE" = ( /obj/structure/prop/almayer/name_stencil, /turf/open/floor/almayer_hull{ @@ -33186,12 +29810,15 @@ icon_state = "logo_c" }, /area/almayer/command/cic) -"euY" = ( -/obj/structure/closet/firecloset, +"euW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/engineering_materials, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/engineering/lower/workshop/hangar) "eva" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 @@ -33229,6 +29856,16 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) +"evR" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical/green{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) "evX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -33243,6 +29880,28 @@ icon_state = "greencorner" }, /area/almayer/hallways/starboard_hallway) +"ewr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cic_hallway) +"ewI" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Execution Room" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/execution) "ewO" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -33273,19 +29932,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"exr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "ext" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -33316,14 +29962,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"eyg" = ( -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/cryo) "eyG" = ( /obj/structure/platform, /turf/open/floor/almayer{ @@ -33380,19 +30018,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"ezU" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "ezX" = ( /obj/structure/bed/chair/wood/normal, /turf/open/floor/wood/ship, @@ -33417,6 +30042,21 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"eAF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/shipboard/brig/cic_hallway) +"eAI" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower/engine_core) "eAL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -33424,6 +30064,17 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"eAN" = ( +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"eAT" = ( +/obj/structure/machinery/door_control/cl/office/door{ + pixel_y = -20 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/aft_hallway) "eAU" = ( /obj/structure/bed/chair{ dir = 8 @@ -33466,16 +30117,18 @@ icon_state = "orange" }, /area/almayer/hallways/starboard_hallway) -"eBo" = ( -/obj/structure/machinery/cm_vending/gear/commanding_officer, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "eBC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_umbilical) +"eBE" = ( +/obj/structure/machinery/photocopier{ + anchored = 0 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "eBO" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -33495,16 +30148,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) -"eBW" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/evidence_storage) "eBZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/firstaid/fire{ @@ -33536,6 +30179,40 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"eCt" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel{ + amount = 30; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 5 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"eCI" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 + }, +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/brig/execution) "eDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -33546,12 +30223,32 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"eDt" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "eDu" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) +"eDz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) "eDG" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -33575,6 +30272,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"eEf" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_s) "eEk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -33624,6 +30327,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"eFG" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/medical/chemistry) "eFH" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) @@ -33667,6 +30381,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"eFP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/fridge/organic, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) "eFT" = ( /obj/structure/bed/sofa/vert/grey, /obj/structure/bed/sofa/vert/grey{ @@ -33674,6 +30397,26 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"eFY" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/ashtray/bronze{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/structure/machinery/door_control/cl/office/window{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/structure/machinery/door_control/cl/office/door{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/item/spacecash/c500{ + pixel_x = -10; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "eGb" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_2" @@ -33726,12 +30469,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/surgery) -"eGs" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/engineering/engineering_workshop/hangar) "eGz" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 @@ -33777,27 +30514,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"eHj" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) -"eHq" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -15 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/pipe_water{ - pixel_x = 17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "eHx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/faxmachine/uscm/command, @@ -33819,6 +30535,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"eIT" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/engineering_particle_accelerator, +/obj/item/folder/yellow, +/obj/structure/machinery/keycard_auth{ + pixel_x = -8; + pixel_y = 25 + }, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 14; + pixel_y = 26 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "eJd" = ( /obj/structure/platform_decoration{ dir = 4 @@ -33857,6 +30597,17 @@ "eJX" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"eKa" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + dir = 2; + name = "\improper Brig Lobby"; + closeOtherId = "briglobby" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "eKg" = ( /obj/structure/disposalpipe/segment{ layer = 5.1; @@ -33864,6 +30615,17 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"eKy" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 6 + }, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "eKD" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/almayer{ @@ -33900,22 +30662,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"eKK" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/command/corporateliason) "eKM" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, @@ -33932,6 +30678,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) +"eKQ" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "eKT" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black, @@ -33956,19 +30708,16 @@ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) -"eMn" = ( -/obj/structure/machinery/light, -/obj/structure/sign/safety/waterhazard{ - pixel_y = -32 - }, -/obj/structure/sign/safety/rewire{ - pixel_y = -32; - pixel_x = 14 +"eMJ" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, +/obj/structure/machinery/computer/crew, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "red" }, -/area/almayer/lifeboat_pumps/south1) +/area/almayer/shipboard/brig/perma) "eMP" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -33992,6 +30741,17 @@ /obj/structure/largecrate/random, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) +"eNw" = ( +/obj/structure/machinery/atm{ + name = "Weyland-Yutani Automatic Teller Machine"; + pixel_y = 30 + }, +/obj/structure/surface/table/almayer, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/fancy/cigar, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "eNx" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ @@ -34016,24 +30776,13 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"eOh" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/evidence_storage) -"eOk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - allow_construction = 0 +"eNR" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/processing) "eOr" = ( /obj/structure/bed/chair{ dir = 8 @@ -34056,20 +30805,16 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"eOR" = ( -/obj/structure/machinery/light{ - dir = 4 +"eON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, /turf/open/floor/almayer{ - dir = 4; + dir = 10; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) -"eOW" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/area/almayer/hallways/upper/starboard) "ePk" = ( /obj/structure/airlock_assembly, /turf/open/floor/plating, @@ -34090,37 +30835,47 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"ePB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) -"ePY" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"eQi" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +"ePM" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "SE-out"; + pixel_x = 1 }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; + pixel_x = 1; pixel_y = 1 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"ePN" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plastic{ + amount = 5 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/plasteel{ + amount = 30; + pixel_x = 4; + pixel_y = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/workshop/hangar) "eRe" = ( /obj/structure/bed/chair/comfy/orange{ dir = 8 @@ -34129,6 +30884,18 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"eRi" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/folder/black{ + pixel_y = 8 + }, +/obj/item/folder/yellow, +/obj/item/device/flashlight/lamp/green{ + pixel_x = -16; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "eRu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -34171,6 +30938,28 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"eRS" = ( +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/engineering/lower/workshop/hangar) +"eSk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/airlock{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "eSo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -34178,16 +30967,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"eSJ" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/rotary{ - name = "Captain's Office"; - phone_category = "Offices"; - phone_id = "Captain's Office"; - pixel_y = 6 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "eSU" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer1" @@ -34196,27 +30975,6 @@ icon_state = "outerhull_dir" }, /area/space) -"eSV" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = -17 - }, -/obj/structure/transmitter/rotary{ - name = "Delta Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Delta Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "eTd" = ( /obj/structure/surface/table/almayer, /obj/item/trash/boonie{ @@ -34227,19 +30985,6 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eTo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 8; - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) "eTO" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -34296,33 +31041,15 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"eUR" = ( -/obj/structure/bed/chair/comfy/orange, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"eUU" = ( -/obj/structure/closet/secure_closet/brig{ - name = "Spare Prison Uniforms" +"eUZ" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/shoes/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, -/obj/item/clothing/under/color/orange, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/living/briefing) "eVj" = ( /obj/structure/bed/chair/office/dark{ dir = 4 @@ -34349,17 +31076,42 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"eVy" = ( +"eVE" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/beer_pack, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/obj/item/device/lightreplacer, +/obj/item/device/radio, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "eVQ" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"eVR" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = -17; + pixel_y = 17 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/evidence_storage) "eVT" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -34406,6 +31158,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"eXk" = ( +/obj/effect/landmark/late_join/working_joe, +/obj/effect/landmark/start/working_joe, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/airoom) "eXo" = ( /obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, @@ -34417,12 +31177,32 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/offices) -"eXE" = ( +"eXS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) +"eYj" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/living/briefing) +"eYn" = ( +/obj/structure/filingcabinet/security, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "eYr" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -34450,12 +31230,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"eYv" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/port_emb) "eYz" = ( /obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 1 @@ -34468,10 +31242,23 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"eYC" = ( -/obj/structure/machinery/vending/cigarette, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) +"eYD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) +"eYF" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "eYH" = ( /obj/structure/platform{ dir = 4 @@ -34509,10 +31296,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"eYW" = ( -/obj/structure/filingcabinet/security, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "eZi" = ( /obj/effect/projector{ name = "Almayer_Up4"; @@ -34523,13 +31306,33 @@ allow_construction = 0 }, /area/almayer/hallways/port_hallway) -"eZj" = ( -/obj/structure/closet/secure_closet/guncabinet, +"eZo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"eZp" = ( +/obj/structure/platform{ + dir = 4; + layer = 2.7 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 5; + icon_state = "plating" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "eZz" = ( /obj/structure/sign/safety/water{ pixel_x = 8; @@ -34557,6 +31360,13 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) +"fag" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "fau" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -34565,6 +31375,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"faE" = ( +/obj/structure/bookcase{ + icon_state = "book-5"; + name = "law and engineering manuals bookcase"; + opacity = 0 + }, +/obj/item/book/manual/marine_law, +/obj/item/book/manual/detective, +/obj/item/book/manual/security_space_law, +/obj/item/book/manual/engineering_guide, +/obj/item/book/manual/engineering_construction, +/obj/item/book/manual/orbital_cannon_manual, +/obj/item/book/manual/ripley_build_and_repair, +/obj/item/book/manual/engineering_hacking, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "faO" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/plating_catwalk, @@ -34611,23 +31440,16 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"fbv" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sign/safety/security{ - pixel_x = -17; - pixel_y = 6 - }, -/obj/structure/sign/safety/reception{ - pixel_x = -17; - pixel_y = -8 +"fbu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, +/obj/structure/platform, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" + dir = 5; + icon_state = "plating" }, -/area/almayer/shipboard/brig/cic_hallway) +/area/almayer/engineering/lower/engine_core) "fbw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34650,26 +31472,28 @@ icon_state = "dark_sterile" }, /area/almayer/medical/upper_medical) -"fbY" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Execution Shutters"; - name = "\improper Privacy Shutters" +"fbH" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/fuelCell, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +/area/almayer/engineering/lower/engine_core) +"fbR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" +/obj/structure/machinery/status_display{ + pixel_x = 32 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/execution) +/area/almayer/hallways/upper/starboard) "fcf" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -34709,12 +31533,6 @@ /obj/structure/largecrate/random/case, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"fcI" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) "fcM" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -34732,6 +31550,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"fcS" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "fcX" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/light{ @@ -34752,6 +31576,15 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) +"fdx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fdA" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -34780,6 +31613,9 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) +"feb" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/execution) "feq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34792,19 +31628,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"feC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersoutheast"; - name = "\improper South East Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "feD" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -34839,6 +31662,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) +"ffg" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/perma) "ffE" = ( /turf/open/floor/almayer/no_build{ icon_state = "plating" @@ -34901,13 +31728,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fgF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "fgR" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "Brig Lockdown Shutters"; @@ -34951,39 +31771,54 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) -"fhQ" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, -/obj/structure/machinery/light, -/obj/item/reagent_container/food/condiment/sugar, +"fie" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "orange" }, -/area/almayer/living/grunt_rnr) +/area/almayer/engineering/lower/workshop) "fiq" = ( /turf/closed/wall/almayer, /area/almayer/hull/lower_hull/l_m_p) -"fir" = ( +"fiE" = ( +/obj/structure/machinery/computer/cameras/containment/hidden{ + dir = 4; + pixel_x = -17 + }, /obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/item/tool/wirecutters, +/obj/item/storage/photo_album, +/obj/item/device/camera_film, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"fiI" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) +"fiQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "fjO" = ( /obj/item/tool/wet_sign, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"fkn" = ( -/obj/structure/machinery/photocopier, +"fkO" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ - icon_state = "red" + dir = 1; + icon_state = "green" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/port_hallway) "fkW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35029,24 +31864,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"fmf" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/almayer/glass{ - access_modified = 1; - dir = 2; - name = "\improper Requisitions Break Room"; - req_one_access = "19;21" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/req) "fmv" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -35074,20 +31891,27 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"fnl" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/structure/machinery/camera/autoname/almayer{ +"fnv" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"fnx" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door/window/eastright{ + access_modified = 1; dir = 8; - name = "ship-grade camera" + req_access_txt = "19" + }, +/obj/effect/landmark/map_item, +/obj/structure/machinery/door/window/eastleft{ + req_access_txt = "19" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/living/briefing) "fnA" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, @@ -35109,25 +31933,17 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) +"fnH" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fnI" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/squads/req) -"fnQ" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/engineering/upper_engineering/port) "fnZ" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /obj/structure/machinery/light/small{ @@ -35137,6 +31953,18 @@ icon_state = "cargo" }, /area/almayer/hull/upper_hull/u_a_s) +"foC" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "foL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35184,12 +32012,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) -"fps" = ( -/obj/structure/machinery/chem_master/industry_mixer, +"fpA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "orange" + dir = 5; + icon_state = "red" }, -/area/almayer/engineering/engineering_workshop/hangar) +/area/almayer/hallways/upper/port) "fpO" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -35228,26 +32062,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"fqe" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen/blue/clicky{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/tool/pen/red/clicky{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/tool/pen/clicky{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/paper_bin/wy{ - pixel_x = -5; - pixel_y = 5 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "fqu" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer, @@ -35263,6 +32077,12 @@ icon_state = "silver" }, /area/almayer/hull/upper_hull/u_m_p) +"fqC" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "fqO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -35270,6 +32090,12 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"fqW" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "fqZ" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -35281,6 +32107,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"frb" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "frl" = ( /turf/open/floor/almayer{ dir = 4; @@ -35304,29 +32147,6 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"frJ" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "frM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -35340,6 +32160,30 @@ icon_state = "tcomms" }, /area/almayer/command/airoom) +"frX" = ( +/obj/structure/machinery/optable, +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 29 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_corner" + }, +/area/almayer/shipboard/brig/surgery) +"frY" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = -6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "fsd" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35349,20 +32193,6 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) -"fso" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Cryogenics Bay"; - req_access = null; - req_one_access_txt = "1;3" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cryo) "fsp" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -35373,55 +32203,30 @@ icon_state = "plate" }, /area/almayer/living/gym) -"fsz" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/flashbangs, -/obj/item/storage/box/flashbangs{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/storage/box/flashbangs{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "fsH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /area/almayer/hallways/port_hallway) -"fsT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1; - pixel_y = -1 +"fsR" = ( +/obj/structure/pipes/vents/pump{ + dir = 8; + id_tag = "mining_outpost_pump" }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) +"fsU" = ( +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "mono" }, -/area/almayer/shipboard/brig/armory) +/area/almayer/lifeboat_pumps/north1) "fsV" = ( /obj/structure/target, /turf/open/floor/almayer{ @@ -35488,15 +32293,35 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"fuX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2L"; - name = "\improper cell shutter" +"fuY" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice2"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_p) +"fva" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "fvd" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -35522,6 +32347,10 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_f_p) +"fvA" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "fvB" = ( /obj/structure/closet/secure_closet/staff_officer/armory/m4a1, /turf/open/floor/almayer{ @@ -35562,28 +32391,23 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) -"fwF" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +"fwM" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "redfull" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/living/briefing) "fwY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie_delta_shared) -"fxu" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8 - }, -/turf/closed/wall/almayer, -/area/almayer/engineering/lower_engineering) "fxz" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -35611,6 +32435,13 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) +"fxJ" = ( +/obj/structure/closet/secure_closet/guncabinet/riot_control, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "fxO" = ( /obj/structure/machinery/vending/coffee{ density = 0; @@ -35620,15 +32451,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"fxW" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "fxZ" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -35650,6 +32472,23 @@ icon_state = "plate" }, /area/almayer/shipboard/weapon_room) +"fyd" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 1" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"fyp" = ( +/obj/structure/machinery/cryopod{ + layer = 3.1; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) "fyD" = ( /obj/structure/machinery/light, /obj/structure/ladder{ @@ -35658,6 +32497,9 @@ }, /turf/open/floor/plating/almayer, /area/almayer/living/briefing) +"fza" = ( +/turf/open/floor/almayer, +/area/almayer/hull/lower_hull/l_m_s) "fzq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35705,19 +32547,22 @@ icon_state = "red" }, /area/almayer/living/offices/flight) -"fAo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +"fAr" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "fAt" = ( /obj/structure/largecrate/guns/merc{ name = "\improper dodgy crate" }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"fAE" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/main_office) "fAS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -35725,6 +32570,19 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"fBd" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "fBf" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -35734,19 +32592,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_a_s) -"fBx" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"fBA" = ( -/obj/item/device/assembly/mousetrap/armed, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "fBD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -35813,12 +32658,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) -"fDn" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/armory) "fDG" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -35867,33 +32706,17 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"fEg" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 15" - }, -/obj/structure/machinery/light{ - dir = 8 - }, +"fEe" = ( +/obj/structure/machinery/pipedispenser, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower) "fEk" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"fEo" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - access_modified = 1; - name = "Kitchen"; - req_one_access_txt = "30;19" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/grunt_rnr) "fEC" = ( /obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ @@ -35936,17 +32759,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"fFz" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Secretroom"; - indestructible = 1; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_p) "fFD" = ( /obj/structure/window/reinforced{ dir = 4; @@ -35982,6 +32794,16 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"fGa" = ( +/obj/structure/surface/rack, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/numbertwobunks) "fGg" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer, @@ -36012,12 +32834,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"fGN" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "fGY" = ( /obj/structure/machinery/door_control{ id = "panicroomback"; @@ -36063,16 +32879,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"fHC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "fHF" = ( /turf/open/floor/almayer{ icon_state = "greenfull" @@ -36084,19 +32890,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) -"fHS" = ( -/obj/structure/sign/safety/rewire{ - pixel_y = -32 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "3" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) "fIf" = ( /obj/structure/sign/safety/bulkhead_door{ pixel_x = 8; @@ -36104,12 +32897,6 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"fIx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "fIH" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -36161,18 +32948,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/pilotbunks) -"fJA" = ( -/obj/structure/coatrack, -/obj/structure/sign/poster/clf{ - pixel_x = -28 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "fJO" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -36226,10 +33001,20 @@ icon_state = "tcomms" }, /area/almayer/command/airoom) -"fKg" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +"fKh" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/window, +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) +"fKi" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "fKl" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/etool{ @@ -36257,6 +33042,25 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"fKw" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 5"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) "fKT" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -36296,25 +33100,49 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"fLn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"fLu" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Oxygen Supply Console" + }, +/obj/structure/pipes/standard/simple/hidden/universal{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/general_equipment) -"fLX" = ( +/area/almayer/engineering/lower) +"fLv" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 + icon_state = "SW-out" }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +/area/almayer/shipboard/stern_point_defense) +"fLF" = ( +/obj/structure/machinery/brig_cell/perma_2{ + pixel_x = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"fMe" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 + }, +/obj/item/paper, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -10; + pixel_y = 4 + }, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "fMl" = ( /obj/structure/machinery/door_control{ id = "ARES Operations Right"; @@ -36369,13 +33197,6 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"fNb" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/computer/card{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "fNg" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating/plating_catwalk, @@ -36395,15 +33216,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fNA" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "fNC" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -36417,6 +33229,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"fOv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "fOz" = ( /obj/structure/target{ name = "punching bag" @@ -36502,6 +33323,16 @@ /obj/structure/largecrate/random, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"fQn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "fQu" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "CMO Shutters"; @@ -36523,13 +33354,29 @@ /turf/closed/wall/almayer, /area/almayer/hull/upper_hull/u_m_p) "fQS" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +/obj/structure/bed/chair/comfy/orange, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) +"fQY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/supply/weapons/m39{ + pixel_x = 2 + }, +/obj/structure/largecrate/supply/weapons/m41a{ + layer = 3.1; + pixel_x = 6; + pixel_y = 17 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hull/upper_hull/u_m_s) "fRr" = ( /obj/structure/machinery/light{ dir = 1 @@ -36552,6 +33399,14 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) +"fRS" = ( +/obj/effect/landmark/start/warden, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "fSl" = ( /obj/structure/machinery/line_nexter{ id = "line2"; @@ -36570,31 +33425,21 @@ }, /area/almayer/lifeboat_pumps/north1) "fSF" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -10 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/obj/structure/surface/rack{ - density = 0; - pixel_x = 26 - }, -/obj/structure/bedsheetbin{ - pixel_x = 26; - pixel_y = 5 +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight, +/obj/item/storage/firstaid/rad, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" }, -/obj/item/tool/soap/syndie, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) -"fSG" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +/area/almayer/engineering/lower) +"fSK" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/living/grunt_rnr) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) "fTi" = ( /obj/structure/largecrate/supply/floodlights, /turf/open/floor/almayer{ @@ -36602,10 +33447,28 @@ icon_state = "red" }, /area/almayer/hull/upper_hull/u_a_p) +"fTj" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "fTm" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"fTt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/processing) "fTu" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/hull/lower_hull/l_f_p) @@ -36652,24 +33515,31 @@ icon_state = "green" }, /area/almayer/hallways/starboard_hallway) -"fUn" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21" +"fUA" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/briefing) +"fUB" = ( +/obj/structure/closet/secure_closet/fridge/organic/stock, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/sign/poster{ - desc = "A large piece of cheap printed paper. This one proudly demands that you REMEMBER IO!"; - icon_state = "poster14"; - name = "propaganda poster"; - pixel_y = 32 +/area/almayer/living/grunt_rnr) +"fUC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"fUA" = ( -/turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"fVo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "fVz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -36682,6 +33552,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"fVF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "fVG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -36690,19 +33569,18 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) -"fWT" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" +"fWi" = ( +/obj/structure/toilet{ + dir = 1 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/machinery/door/window/tinted{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/upper_engineering/port) "fXd" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -36740,12 +33618,12 @@ /area/almayer/hallways/aft_hallway) "fXE" = ( /obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_y = 6 +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 }, -/obj/item/tool/pen{ - pixel_x = 4; - pixel_y = -4 +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -36756,6 +33634,22 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"fXP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/command/cichallway) +"fXZ" = ( +/obj/docking_port/stationary/emergency_response/port3, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "fYb" = ( /turf/open/floor/almayer{ dir = 8; @@ -36781,40 +33675,45 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"fYn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"fYN" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/processing) -"fYG" = ( +/area/almayer/hull/lower_hull/stern) +"fYZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/req) +"fZl" = ( /turf/open/floor/almayer{ - dir = 10; icon_state = "orange" }, -/area/almayer/engineering/engine_core) -"fYX" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/area/almayer/engineering/lower/engine_core) +"fZo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/area/almayer/shipboard/brig/chief_mp_office) -"fYZ" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" + icon_state = "SE-out"; + pixel_x = 2 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/squads/req) +/area/almayer/hallways/upper/starboard) +"fZq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cic_hallway) "fZx" = ( /obj/structure/sign/safety/security{ pixel_x = 15; @@ -36827,23 +33726,71 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) +"fZA" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 9 + }, +/obj/structure/machinery/meter, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower) "fZF" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) +"fZG" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"fZX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "fZZ" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) +"gac" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + access_modified = 1; + name = "\improper Security Checkpoint"; + req_access = null; + req_one_access_txt = "3;19" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) "gai" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) +"gax" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "gaJ" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cryo) @@ -36923,22 +33870,23 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"gbQ" = ( -/obj/structure/toilet{ - dir = 8 +"gbw" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/corporateliason) -"gbX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/area/almayer/shipboard/brig/processing) +"gbO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/obj/structure/closet/emcloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) "gcc" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -36948,19 +33896,29 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"gcK" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"gcm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/area/almayer/hallways/upper/port) +"gcq" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "gcN" = ( /obj/structure/machinery/door/airlock/almayer/command{ access_modified = 1; @@ -37002,15 +33960,6 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"gdo" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "gdp" = ( /obj/structure/bed/chair{ dir = 4 @@ -37029,6 +33978,12 @@ icon_state = "silvercorner" }, /area/almayer/hallways/repair_bay) +"gdJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gdS" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -37087,42 +34042,6 @@ icon_state = "orangecorner" }, /area/almayer/hallways/stern_hallway) -"geW" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/item/storage/fancy/cigar, -/obj/item/reagent_container/food/drinks/bottle/sake{ - layer = 3.6; - pixel_x = 9; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - layer = 3.6; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - layer = 3.6; - pixel_x = -9; - pixel_y = 16 - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"geX" = ( -/obj/structure/pipes/vents/scrubber, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "gfk" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -37136,6 +34055,18 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) +"gfq" = ( +/obj/structure/closet/secure_closet/fridge/groceries, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) +"gfs" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "gfu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37153,6 +34084,23 @@ /obj/structure/machinery/recharge_station, /turf/open/floor/plating, /area/almayer/command/airoom) +"gfG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"gfN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "gfS" = ( /obj/structure/sign/safety/cryo{ pixel_y = -26 @@ -37218,20 +34166,13 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) "ghX" = ( -/obj/structure/window/reinforced/tinted{ - pixel_y = -8 - }, -/obj/structure/machinery/shower{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 8 +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 14" }, -/obj/item/toy/inflatable_duck, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/cells) +/area/almayer/engineering/lower/engine_core) "gio" = ( /obj/structure/closet/emcloset, /obj/structure/sign/safety/restrictedarea{ @@ -37253,9 +34194,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"gir" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/engineering/engineering_workshop) "giB" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -37265,19 +34203,19 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"giZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"giR" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 4 }, -/obj/effect/landmark/start/warden, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 10; + icon_state = "silver" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/shipboard/brig/cic_hallway) "gjm" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37362,17 +34300,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"gjL" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/crew/alt, -/obj/structure/transmitter/rotary{ - name = "Brig Cells Telephone"; - phone_category = "Almayer"; - phone_id = "Brig Cells"; - pixel_x = 15 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) "gjN" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ @@ -37380,11 +34307,7 @@ }, /area/almayer/hull/lower_hull/l_a_s) "gka" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -37442,6 +34365,19 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"glH" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop) "glM" = ( /obj/structure/window/reinforced{ dir = 8; @@ -37451,10 +34387,20 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"glU" = ( -/obj/structure/bed/chair/office/dark, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +"gmb" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + access_modified = 1; + dir = 1; + name = "Storage"; + req_one_access_txt = "19;21" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/squads/req) "gmj" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/almayer{ @@ -37479,19 +34425,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"gnz" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 +"gob" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/shipboard/brig/main_office) "goj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -37513,17 +34455,24 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/weapon_room) -"goD" = ( +"goy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Dorms" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/living/port_emb) "goL" = ( /turf/open/floor/almayer{ dir = 10; @@ -37549,15 +34498,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"gpE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "gpI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -37569,6 +34509,16 @@ "gpY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/lifeboat_pumps/north1) +"gqq" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/largecrate/random, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_s) "gqK" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -37585,18 +34535,9 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"gqW" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"grl" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, +"grF" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/main_office) "grG" = ( /obj/structure/sign/safety/restrictedarea{ @@ -37613,15 +34554,54 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) -"grX" = ( -/obj/structure/machinery/light/small{ +"gsd" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler{ + pixel_x = 7 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = -6 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) +"gsg" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/machinery/door_control{ + id = "Alpha_1"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 23; + specialfunctions = 4 + }, +/obj/structure/machinery/light{ dir = 4 }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) +"gsi" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/shipboard/stern_point_defense) "gsm" = ( /obj/structure/machinery/status_display{ pixel_x = -32 @@ -37630,6 +34610,13 @@ /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"gsC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "gsH" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -37647,6 +34634,12 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_p) +"gsM" = ( +/obj/structure/machinery/portable_atmospherics/powered/pump, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "gsZ" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -37659,15 +34652,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"gte" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "gtp" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -37692,40 +34676,36 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"guc" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 +"gtU" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = -17; + pixel_y = 17 }, /turf/open/floor/almayer{ dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"guC" = ( -/obj/item/paper_bin/wy, -/obj/structure/surface/table/woodentable/fancy, -/obj/item/tool/pen/clicky, -/obj/item/tool/pen/clicky, -/obj/structure/machinery/status_display{ - pixel_x = -32 + icon_state = "red" }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) -"guG" = ( +/area/almayer/shipboard/brig/perma) +"guc" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, -/obj/structure/sink{ - dir = 1; - pixel_y = -10 +/turf/open/floor/almayer{ + icon_state = "green" }, -/obj/structure/surface/rack{ - density = 0; - pixel_x = 26 +/area/almayer/hallways/port_hallway) +"guo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/obj/item/tool/soap, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/lifeboat_pumps/south2) "guS" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -37788,6 +34768,20 @@ icon_state = "green" }, /area/almayer/squads/req) +"gvW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hull/upper_hull/u_f_p) +"gwj" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "gwm" = ( /obj/structure/largecrate/random/case/small, /obj/item/device/taperecorder{ @@ -37814,12 +34808,6 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"gwu" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/command/lifeboat) "gww" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ @@ -37846,7 +34834,7 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"gwO" = ( +"gwM" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ pixel_y = 32 @@ -37866,19 +34854,18 @@ pixel_x = 23; specialfunctions = 4 }, -/turf/open/floor/almayer, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, /area/almayer/living/port_emb) "gwR" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"gwW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "gwY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -37917,6 +34904,12 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_p) +"gxn" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "gxr" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/sign/safety/maint{ @@ -37944,12 +34937,7 @@ /area/almayer/medical/containment/cell) "gxU" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, +/obj/item/toy/deck, /turf/open/floor/almayer{ dir = 10; icon_state = "silver" @@ -38014,6 +35002,13 @@ icon_state = "orange" }, /area/almayer/engineering/ce_room) +"gyU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north2) "gzn" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -38039,17 +35034,9 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"gzr" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) +"gzq" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "gzw" = ( /obj/structure/closet/hydrant{ pixel_x = 30 @@ -38110,6 +35097,11 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"gAk" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/corporateliaison) "gAl" = ( /obj/structure/machinery/light{ dir = 8 @@ -38157,21 +35149,26 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"gBi" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "gBo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"gBM" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) +"gBW" = ( +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "gCd" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -38199,17 +35196,19 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"gCI" = ( -/obj/structure/machinery/light{ - dir = 4 +"gCB" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "mono" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/lifeboat_pumps/north2) "gCP" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, @@ -38218,12 +35217,43 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"gDq" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"gDp" = ( +/obj/structure/machinery/light{ + dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/command/corporateliaison) +"gDt" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/crew/alt{ + dir = 4 + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Brig Cells Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Cells"; + pixel_x = 16 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"gDH" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"gDP" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/l42a, +/obj/item/ammo_box/magazine/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "gDW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38257,16 +35287,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"gEK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +"gEC" = ( +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/area/almayer/engineering/lower) "gFa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38296,6 +35322,16 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) +"gFP" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/stern_point_defense) +"gFR" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/cm_vending/gear/commanding_officer, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/living/commandbunks) "gGf" = ( /obj/structure/machinery/light{ dir = 1 @@ -38304,6 +35340,22 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"gGp" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = 8 + }, +/obj/structure/transmitter/rotary{ + name = "Reporter Telephone"; + phone_category = "Almayer"; + phone_id = "Reporter"; + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "gGr" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -38369,33 +35421,39 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"gHl" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = 16 - }, -/obj/structure/transmitter/rotary{ - name = "Alpha Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Alpha Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = -8 +"gHh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"gHj" = ( +/obj/structure/machinery/light, +/obj/structure/closet/secure_closet/fridge/groceries/stock, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/cic) +/area/almayer/living/grunt_rnr) +"gHl" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "gHo" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/tl, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"gHt" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "gHZ" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -38431,6 +35489,24 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) +"gIU" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/tapes{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/box/tapes{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/storage/box/tapes{ + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/evidence_storage) "gJd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38441,22 +35517,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) -"gJq" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/mousetraps, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +"gJO" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door/window/southleft{ + desc = "A window, that is also a door. A windoor if you will. This one is stronger."; + health = 500; + name = "Reinforced Glass door"; + req_one_access_txt = "2;35" }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "gJP" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ @@ -38466,6 +35536,16 @@ icon_state = "green" }, /area/almayer/living/offices) +"gKd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "gKB" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/firealarm{ @@ -38533,12 +35613,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) -"gLu" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "gLz" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -38555,6 +35629,10 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) +"gLD" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gLE" = ( /obj/structure/platform{ dir = 1 @@ -38571,6 +35649,23 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"gLG" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) +"gLN" = ( +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "gLZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38595,16 +35690,15 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"gMf" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, +"gMd" = ( +/obj/structure/surface/table/almayer, +/obj/item/clipboard, +/obj/item/tool/lighter, +/obj/item/device/flashlight/lamp, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/engineering/lower/workshop) "gMx" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, @@ -38660,13 +35754,6 @@ dir = 4 }, /area/almayer/living/briefing) -"gNd" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "gNp" = ( /turf/open/floor/almayer{ dir = 9; @@ -38692,6 +35779,28 @@ /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"gNG" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"gNO" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "gOs" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -38719,6 +35828,20 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"gOC" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"gOR" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "gPc" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -38752,32 +35875,14 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) -"gQl" = ( +"gQk" = ( /obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/structure/machinery/faxmachine/corporate/liaison, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "gQF" = ( /obj/structure/bed/chair/comfy{ buckling_y = 2; @@ -38813,14 +35918,17 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"gSi" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network, -/obj/item/storage/box/tapes{ - pixel_x = -16 +"gSa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "gSj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -38848,37 +35956,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) -"gSV" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera"; - pixel_y = 6 - }, -/obj/structure/sign/safety/biolab{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = -17; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) -"gTl" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/cryo) -"gTx" = ( -/obj/structure/machinery/vending/security, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "gTH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/skills{ @@ -38902,6 +35979,15 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"gUg" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) "gUv" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -38919,14 +36005,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"gUI" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen, -/obj/item/paper_bin/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "gUL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38952,6 +36030,18 @@ icon_state = "cargo_arrow" }, /area/almayer/command/airoom) +"gUS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "gUV" = ( /turf/open/floor/almayer{ icon_state = "redcorner" @@ -38971,6 +36061,22 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/containment) +"gVu" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 1 + }, +/obj/item/reagent_container/food/snacks/grown/banana{ + pixel_x = 18; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "gVA" = ( /obj/structure/disposalpipe/down/almayer{ dir = 8; @@ -38984,6 +36090,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"gWu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "gWE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/spec/alpha, @@ -39021,19 +36132,6 @@ icon_state = "mono" }, /area/almayer/medical/upper_medical) -"gXq" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "gXs" = ( /obj/effect/step_trigger/ares_alert/terminals, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -39048,24 +36146,27 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"gXv" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 +"gXx" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 8; + icon_state = "silvercorner" }, -/area/almayer/hull/lower_hull/l_a_p) -"gXY" = ( -/obj/structure/machinery/light{ +/area/almayer/shipboard/brig/cic_hallway) +"gXB" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/bed/chair/comfy/delta{ dir = 8 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" + icon_state = "bluefull" }, -/area/almayer/engineering/lower_engineering) +/area/almayer/living/briefing) +"gXZ" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hull/lower_hull/stern) "gYe" = ( /obj/structure/machinery/vending/sea, /turf/open/floor/almayer{ @@ -39142,6 +36243,16 @@ /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"gZG" = ( +/obj/structure/largecrate/supply/supplies/mre, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_p) "gZK" = ( /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) @@ -39184,6 +36295,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) +"haz" = ( +/obj/structure/machinery/floodlight, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "haB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -39197,6 +36314,18 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"haD" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "haM" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/constructable_frame, @@ -39223,6 +36352,14 @@ icon_state = "green" }, /area/almayer/hallways/port_hallway) +"hbs" = ( +/obj/structure/surface/table/almayer, +/obj/item/frame/fire_alarm, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "hbu" = ( /obj/structure/bed/chair{ dir = 1 @@ -39232,40 +36369,16 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) -"hbx" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "hbI" = ( -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/structure/sign/safety/ammunition{ pixel_x = 32; pixel_y = 7 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"hbZ" = ( -/obj/structure/surface/table/almayer, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/obj/structure/machinery/computer/working_joe{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "hcf" = ( /obj/item/bedsheet/brown{ layer = 3.2 @@ -39321,12 +36434,6 @@ icon_state = "plate" }, /area/almayer/living/cryo_cells) -"hcC" = ( -/obj/structure/disposalpipe/up/almayer{ - id = "almayerlink_OT_req" - }, -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "hcI" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -39338,21 +36445,22 @@ "hcZ" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) +"hdb" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_s) "hdd" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"hdg" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "hdh" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -39391,6 +36499,15 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"heb" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "hec" = ( /turf/open/floor/almayer{ dir = 8; @@ -39403,32 +36520,42 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"heg" = ( -/obj/structure/machinery/floodlight, +"heo" = ( +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = -15; + pixel_y = 25 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering/engine_core) -"heH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/area/almayer/shipboard/brig/armory) +"heK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Tool Closet" + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/lifeboat_pumps/north1) -"heQ" = ( -/obj/structure/bed/chair, -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 21; - pixel_y = 27 - }, +/area/almayer/living/port_emb) +"heS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" + icon_state = "orange" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/engineering/lower) "heV" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -39455,48 +36582,26 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"hfb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) "hfk" = ( /obj/item/trash/crushed_cup, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"hfm" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/photocopier{ - anchored = 0 - }, -/obj/structure/sign/poster{ - desc = "A large piece of cheap printed paper. This one proudly demands that you REMEMBER IO!"; - icon_state = "poster14"; - name = "propaganda poster"; - pixel_y = 32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"hfw" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/command/lifeboat) -"hfO" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/spray/cleaner, -/obj/item/frame/light_fixture, -/obj/item/frame/light_fixture, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) +"hfy" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_a_s) "hfQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -39527,12 +36632,15 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"hgt" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +"hgo" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "hgB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel, @@ -39541,21 +36649,21 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) -"hgF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"hgD" = ( +/obj/structure/reagent_dispensers/fueltank/gas/hydrogen{ + anchored = 1 }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "hgH" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -39573,6 +36681,17 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"hgV" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 15" + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "hgZ" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -39613,12 +36732,31 @@ /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"hhW" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/masks, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) "hif" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/hangar) +"hip" = ( +/obj/item/device/multitool, +/obj/structure/platform_decoration, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "hit" = ( /obj/structure/surface/table/almayer, /obj/item/storage/bag/trash{ @@ -39629,12 +36767,14 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"hiB" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +"hiy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/lifeboat_pumps/north1) "hiM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -39681,6 +36821,26 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"hjB" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + access_modified = 1; + name = "Kitchen"; + req_one_access_txt = "30;19" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/grunt_rnr) +"hjM" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/processing) "hki" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer{ @@ -39731,6 +36891,45 @@ icon_state = "silver" }, /area/almayer/command/cic) +"hkH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/structure/machinery/door_control{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutters"; + pixel_x = 16; + req_access_txt = "3" + }, +/obj/structure/machinery/door_control{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown Shutters"; + pixel_x = 16; + pixel_y = 8; + req_access_txt = "3" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"hkX" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/device/flashlight/lamp/green{ + pixel_x = -7; + pixel_y = 20 + }, +/obj/item/ashtray/bronze{ + pixel_x = 4; + pixel_y = 19 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/landmark/map_item{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "hlw" = ( /obj/structure/platform_decoration{ dir = 4 @@ -39744,12 +36943,35 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"hlH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "hlI" = ( /obj/structure/girder, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"hlT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "hlU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -39800,6 +37022,30 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) +"hmj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"hmw" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "hmy" = ( /obj/structure/machinery/light{ dir = 1 @@ -39832,6 +37078,20 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"hmG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Brig Breakroom" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/main_office) "hmS" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -39860,7 +37120,6 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ access_modified = 1; name = "\improper Flight Crew Quarters"; - req_access_txt = null; req_one_access_txt = "19;22" }, /turf/open/floor/almayer{ @@ -39896,12 +37155,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"hpf" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "hpk" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -39937,6 +37190,11 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"hqc" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "hqh" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -39958,6 +37216,31 @@ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_f_s) +"hqJ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/obj/structure/sign/poster{ + desc = "A large piece of cheap printed paper. This one proudly demands that you REMEMBER IO!"; + icon_state = "poster14"; + name = "propaganda poster"; + pixel_y = 32 + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"hqU" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "hqW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -40014,15 +37297,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hrX" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/structure/machinery/light{ - dir = 1 +"hrO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) "hsg" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -40033,6 +37316,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"hsj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "hsr" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) @@ -40041,6 +37333,9 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"hsy" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/engine_core) "hsW" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -40057,6 +37352,18 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"htG" = ( +/obj/item/tool/soap, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/engineering/upper_engineering/port) "htI" = ( /obj/structure/platform_decoration{ dir = 1 @@ -40073,6 +37380,15 @@ icon_state = "greenfull" }, /area/almayer/living/offices) +"htP" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "huK" = ( /turf/open/floor/almayer{ icon_state = "redcorner" @@ -40088,6 +37404,21 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"huU" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + access_modified = 1; + dir = 2; + name = "\improper Security Checkpoint"; + req_access = null; + req_one_access_txt = "3;19" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) "huX" = ( /obj/structure/largecrate/random/barrel/yellow, /obj/structure/machinery/light{ @@ -40136,6 +37467,16 @@ /obj/effect/landmark/start/professor, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) +"hwd" = ( +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "hwC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -40145,22 +37486,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"hwQ" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/execution) -"hwS" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "hxe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40174,20 +37499,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) -"hxp" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "hxG" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -40254,21 +37565,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"hyz" = ( -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/processing) "hyE" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -40284,8 +37580,9 @@ /turf/closed/wall/almayer, /area/almayer/living/synthcloset) "hzb" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4; + icon_state = "exposed01-supply" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/combat_correspondent) @@ -40313,41 +37610,6 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"hzx" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Chief MP's Office"; - req_access = null; - req_one_access_txt = "1;3" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "CMP Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) -"hzJ" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 1"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cells) "hzL" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -40359,7 +37621,8 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center" + name = "\improper Combat Information Center"; + closeOtherId = "ciclobby_s" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -40371,17 +37634,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"hzP" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/living/grunt_rnr) "hzV" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -40426,6 +37678,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"hAY" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "hAZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40467,6 +37727,12 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"hBL" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/lifeboat) "hBU" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ @@ -40515,6 +37781,14 @@ icon_state = "plate" }, /area/almayer/medical/lower_medical_medbay) +"hCV" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "hDv" = ( /obj/effect/landmark/start/reporter, /turf/open/floor/plating/plating_catwalk, @@ -40526,6 +37800,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"hDL" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "hDR" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/syringe_case{ @@ -40541,6 +37822,13 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"hDV" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "hDX" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -40556,6 +37844,12 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"hEl" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "hEt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket/mopbucket{ @@ -40574,6 +37868,15 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"hEw" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 10 + }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "hEV" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -40607,16 +37910,19 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) -"hGB" = ( -/obj/structure/machinery/light, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "hGD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"hGG" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "hGN" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -40643,12 +37949,31 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"hGV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "hGZ" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) +"hHe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "hHl" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/pouch/general/large, @@ -40697,6 +38022,16 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"hIs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/command/corporateliaison) "hII" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -40711,27 +38046,21 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"hIL" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "cl_shutters 2"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - req_access_txt = "200"; - req_one_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) "hJb" = ( /obj/item/tool/pen, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"hJg" = ( +/obj/structure/pipes/trinary/mixer{ + dir = 4; + name = "Gas mixer N2/O2" + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "hJk" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -40761,12 +38090,31 @@ }, /turf/closed/wall/almayer, /area/almayer/hull/lower_hull/l_f_s) +"hJI" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "hJJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"hJN" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "hKe" = ( /obj/structure/sign/poster/safety, /turf/closed/wall/almayer, @@ -40800,11 +38148,61 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) -"hKQ" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +"hLB" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/structure/closet/crate, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_m_s) "hLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -40816,16 +38214,24 @@ icon_state = "red" }, /area/almayer/living/cryo_cells) -"hLO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +"hLS" = ( +/obj/structure/machinery/door/airlock/almayer/marine/delta{ + dir = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) +"hMc" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "hMi" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -40837,6 +38243,10 @@ icon_state = "green" }, /area/almayer/hallways/port_hallway) +"hMG" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "hMI" = ( /obj/structure/surface/table/almayer, /obj/item/device/binoculars, @@ -40853,6 +38263,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) +"hNl" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 16 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "hNw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -40860,37 +38281,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/squads/charlie) -"hND" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) -"hNL" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "hNM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal{ @@ -40900,19 +38290,23 @@ /obj/item/tool/shovel/etool/folded, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"hOe" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 +"hNP" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"hNY" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/shipboard/brig/chief_mp_office) "hOR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40957,6 +38351,9 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"hPI" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/perma) "hPK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -40994,6 +38391,19 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"hQw" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) +"hQP" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "hQU" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -41039,46 +38449,42 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"hRd" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" +"hRc" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/squads/alpha) -"hRg" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = -15 +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) +"hRd" = ( +/obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/squads/alpha) "hRi" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_p) -"hRy" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 +"hRk" = ( +/obj/structure/machinery/cm_vending/clothing/senior_officer{ + density = 0; + pixel_y = 30 }, -/obj/item/storage/firstaid/regular, /turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/living/numbertwobunks) "hRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -41202,17 +38608,6 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"hTy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "hTF" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm{ isopen = 1; @@ -41268,6 +38663,29 @@ /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"hUk" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) +"hUz" = ( +/obj/structure/largecrate/supply/supplies/mre{ + desc = "A supply crate containing everything you need to stop a CLF uprising."; + name = "\improper USCM crate 'FOB supplies'" + }, +/obj/item/folded_tent/big{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 3; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "hUW" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -41372,6 +38790,12 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"hWS" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "hWU" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -41404,6 +38828,36 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"hXm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cic_hallway) +"hXG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/engineering/upper_engineering/port) +"hXS" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_p) "hXV" = ( /obj/structure/machinery/light{ dir = 1 @@ -41413,6 +38867,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"hXX" = ( +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 + }, +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/upper/port) "hXY" = ( /turf/open/floor/almayer{ dir = 4; @@ -41453,6 +38918,19 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"hZe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/machinery/disposal/delivery{ + density = 0; + desc = "A pneumatic delivery unit. Sends items to the requisitions."; + icon_state = "delivery_engi"; + name = "Requisitions Delivery Unit"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "hZj" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -41462,6 +38940,25 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"hZE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"hZJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "hZN" = ( /obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/disposalpipe/segment{ @@ -41478,7 +38975,7 @@ "hZU" = ( /obj/structure/transmitter{ name = "Brig Offices Telephone"; - phone_category = "Almayer"; + phone_category = "MP Dept."; phone_id = "Brig Main Offices"; pixel_y = 32 }, @@ -41487,6 +38984,12 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) +"iaa" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "iag" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, @@ -41507,12 +39010,6 @@ icon_state = "plate" }, /area/almayer/command/cichallway) -"iaj" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "ial" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41579,23 +39076,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"icX" = ( -/obj/structure/machinery/brig_cell/perma_2{ - pixel_x = -32; - pixel_y = -4 +"icM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/machinery/door_control{ - id = "Perma 2L"; - name = "Perma 2 Lockdown"; - pixel_x = -24; - pixel_y = 12; - req_access_txt = "3" +/obj/structure/machinery/vending/snack{ + density = 0; + pixel_y = 16 }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"icZ" = ( +/obj/structure/closet/secure_closet/brig, /turf/open/floor/almayer{ dir = 8; - icon_state = "red" + icon_state = "redcorner" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/shipboard/brig/processing) "idx" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -41614,15 +39111,6 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"ieo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "ieu" = ( /obj/structure/window/reinforced{ dir = 4; @@ -41739,22 +39227,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"igp" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/glasses/monocle, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = -7; - pixel_y = -2 - }, -/obj/item/weapon/pole/fancy_cane{ - pixel_x = 5 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "igr" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -41826,6 +39298,23 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_m_p) +"iis" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Brig Prison Yard And Offices"; + closeOtherId = "brigcells" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "iit" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -41844,25 +39333,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"iiz" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/reagent_container/food/drinks/bottle/sake, -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -4 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) "iiC" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; @@ -41892,28 +39362,15 @@ icon_state = "red" }, /area/almayer/hull/upper_hull/u_a_p) -"ijn" = ( -/obj/structure/surface/rack, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/farwacube{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/neaeracube{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/stokcube{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/reagent_container/food/snacks/monkeycube/wrapped/yirencube{ - pixel_x = 4; - pixel_y = -4 - }, +"ijf" = ( +/obj/structure/surface/table/almayer, +/obj/item/cell/crap, +/obj/item/tool/crowbar, +/obj/structure/machinery/cell_charger, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/corporateliason) +/area/almayer/engineering/lower/workshop) "ijp" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, @@ -41922,6 +39379,14 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"ijr" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) "ijQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -41945,43 +39410,57 @@ /obj/item/tool/wet_sign, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_s) -"ikM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network, -/obj/structure/machinery/computer/secure_data{ - pixel_x = 17 +"iks" = ( +/obj/structure/pipes/binary/pump/high_power/on{ + dir = 1 }, -/obj/structure/machinery/computer/card{ - pixel_x = -16 +/turf/open/floor/almayer{ + icon_state = "orange" }, -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/engineering/lower) +"ikv" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) -"ils" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_p) -"ilv" = ( -/obj/structure/surface/table/almayer, -/obj/item/folder/black_random{ - pixel_x = 3; - pixel_y = 3 +/area/almayer/engineering/lower) +"ikQ" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/tool/stamp/hop{ + name = "Commanding Officer's rubber stamp"; + pixel_x = -5; + pixel_y = 9 }, -/obj/item/tool/stamp{ - name = "Corporate Liaison's stamp"; - pixel_x = -8; +/obj/item/paper_bin/uscm{ + pixel_x = 7; pixel_y = 6 }, +/obj/item/tool/pen/red/clicky{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/tool/pen/blue/clicky{ + pixel_x = -6; + pixel_y = -3 + }, /turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) +/area/almayer/living/commandbunks) +"ilq" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"ils" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/hull/upper_hull/u_f_p) "ily" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -42030,6 +39509,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/offices/flight) +"imJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "ina" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -42040,6 +39526,15 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) +"inh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cic_hallway) "ins" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -42061,13 +39556,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"inG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "inL" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -42078,13 +39566,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"inN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "ioj" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ @@ -42102,9 +39583,38 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"ioH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"ioP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "ioU" = ( /turf/closed/wall/almayer, /area/almayer/command/securestorage) +"ioV" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "ioX" = ( /turf/open/floor/almayer{ dir = 6; @@ -42177,10 +39687,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"iqn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "iqo" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -42201,14 +39707,6 @@ icon_state = "test_floor4" }, /area/almayer/living/auxiliary_officer_office) -"iqx" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "iqH" = ( /obj/item/trash/chips{ pixel_x = 9; @@ -42220,6 +39718,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"iqR" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = -16 + }, +/obj/structure/machinery/cryopod, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) "irn" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, @@ -42237,25 +39744,12 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"irI" = ( -/obj/structure/sign/safety/maint{ - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"irJ" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, +"irF" = ( +/obj/structure/closet/emcloset/legacy, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/shipboard/brig/main_office) "irS" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/cable/heavyduty{ @@ -42282,6 +39776,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"ish" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "isC" = ( /obj/effect/projector{ name = "Almayer_AresDown"; @@ -42296,19 +39796,17 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"isH" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 +"isI" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/lifeboat_pumps/north1) "isN" = ( /obj/structure/sink{ dir = 8; @@ -42320,16 +39818,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"isS" = ( -/obj/item/stack/sheet/cardboard{ - amount = 50 - }, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/squads/req) "isW" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -42366,6 +39854,18 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"ito" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "itR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -42391,6 +39891,11 @@ /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"iup" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "iur" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -42419,16 +39924,6 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"iuy" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/living/briefing) "iuz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/warhead, @@ -42436,6 +39931,10 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"iuA" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "iuE" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -42446,16 +39945,11 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"iuT" = ( -/obj/structure/closet/emcloset, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"iuG" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "ivf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/camera, @@ -42496,6 +39990,19 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"ivS" = ( +/obj/structure/machinery/suit_storage_unit/carbon_unit, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) +"iwf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "iwh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -42517,6 +40024,17 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"iwI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + access_modified = 1; + name = "Storage"; + req_one_access_txt = "19;21" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/req) "iwJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -42533,10 +40051,31 @@ dir = 8 }, /area/almayer/medical/containment/cell) +"iwV" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "bot_armory"; + name = "\improper Armory Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/armory) "iwW" = ( /obj/structure/bed/chair/comfy/beige, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"iwZ" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/item/packageWrap, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/squads/req) "ixj" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/crew/alt, @@ -42596,22 +40135,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"iyq" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Warden Office" +"iyF" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 9 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower) "iyH" = ( /obj/structure/surface/table/reinforced/almayer_B{ climbable = 0; @@ -42713,6 +40245,14 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) +"iAE" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "iAT" = ( /obj/structure/sign/safety/south{ pixel_x = -17; @@ -42723,6 +40263,16 @@ icon_state = "blue" }, /area/almayer/hallways/port_hallway) +"iBl" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 7; + pixel_y = -30 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "iBt" = ( /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_m_p) @@ -42750,19 +40300,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"iCe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "iCu" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -42783,6 +40320,14 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"iCz" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_s) "iCF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42807,6 +40352,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) +"iDN" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) "iDT" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner{ @@ -42843,10 +40398,39 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_a_p) -"iFc" = ( -/obj/structure/pipes/vents/pump{ +"iEw" = ( +/obj/structure/machinery/light{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) +"iEx" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"iEz" = ( +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 3 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"iFc" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) "iFm" = ( @@ -42923,13 +40507,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"iGE" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "iGK" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -42974,17 +40551,17 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cells) -"iHO" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 +"iIj" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/obj/item/storage/fancy/crayons{ - layer = 3.1; - pixel_x = -11; - pixel_y = 16 +/obj/structure/platform, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/turf/open/floor/wood/ship, -/area/almayer/living/grunt_rnr) +/area/almayer/engineering/lower/engine_core) "iIl" = ( /obj/structure/sink{ dir = 8; @@ -43050,20 +40627,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"iKa" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -10 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/obj/structure/surface/rack{ - density = 0; - pixel_x = 26 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "iKb" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -43120,15 +40683,6 @@ icon_state = "mono" }, /area/almayer/engineering/port_atmos) -"iKX" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) "iKZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -43161,6 +40715,17 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"iLo" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/storage/donut_box, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "iLq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -43185,21 +40750,20 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_lobby) +"iLG" = ( +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "iLO" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "silver" }, /area/almayer/command/computerlab) -"iLQ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "iMm" = ( /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) @@ -43228,6 +40792,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"iNY" = ( +/obj/structure/machinery/status_display{ + pixel_x = 32; + pixel_y = 16 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "iNZ" = ( /obj/structure/machinery/light{ dir = 8 @@ -43239,13 +40810,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"iOh" = ( -/obj/structure/machinery/light/small, -/obj/structure/machinery/status_display{ - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/armory) "iOD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -43285,17 +40849,16 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) -"iQg" = ( +"iQd" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "iQi" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/simple/hidden/supply, @@ -43355,22 +40918,25 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"iQL" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) +"iQB" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/card{ + dir = 4; + layer = 3.2; + pixel_y = 4 }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 +/obj/structure/machinery/computer/secure_data{ + dir = 4; + pixel_y = 23 + }, +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/brig/processing) "iRr" = ( /obj/structure/machinery/light{ dir = 1 @@ -43410,6 +40976,52 @@ /obj/item/trash/chips, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"iSm" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/mirror{ + desc = "Do you remember who you are?"; + icon_state = "mirror_broke"; + name = "broken mirror"; + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/item/device/cassette_tape/nam{ + layer = 2.9; + pixel_x = -6; + pixel_y = 11 + }, +/obj/structure/machinery/door_control{ + id = "Delta_2"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 23; + specialfunctions = 4 + }, +/obj/item/prop{ + desc = "A handful of rounds to reload on the go."; + icon = 'icons/obj/items/weapons/guns/handful.dmi'; + icon_state = "bullet_2"; + name = "handful of pistol bullets (9mm)"; + pixel_x = -8; + pixel_y = 29 + }, +/obj/item/prop{ + desc = "A bunch of tiny bits of shattered metal."; + icon = 'icons/obj/items/shards.dmi'; + icon_state = "shrapnelsmall"; + name = "piece of shrapnel"; + pixel_x = -1; + pixel_y = 24 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "iSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43421,6 +41033,25 @@ /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"iTd" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) +"iTe" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/command/lifeboat) "iTf" = ( /obj/structure/closet/crate/trashcart, /obj/item/clothing/gloves/yellow, @@ -43434,6 +41065,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"iTl" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "iTw" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -43484,6 +41121,26 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"iUk" = ( +/obj/structure/machinery/door/airlock/almayer/marine/charlie{ + dir = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) +"iUm" = ( +/obj/structure/closet/emcloset{ + pixel_x = 8 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "iUo" = ( /obj/structure/sign/safety/terminal{ pixel_x = 7; @@ -43553,27 +41210,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"iVY" = ( -/obj/effect/decal/hefa_cult_decals/d32, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" +"iVP" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17; + pixel_y = 7 }, -/area/almayer/engineering/upper_engineering/starboard) -"iVZ" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/folder/black, -/obj/item/storage/bible/booze, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door_control{ - id = "CO-Office"; - name = "Door Control"; - normaldoorcontrol = 1; - pixel_x = 18; - req_access_txt = "31" +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/area/almayer/shipboard/brig/processing) "iWc" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43630,13 +41277,12 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"iXt" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"iXA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "iXT" = ( /obj/item/trash/uscm_mre, /turf/open/floor/almayer, @@ -43754,11 +41400,19 @@ icon_state = "silver" }, /area/almayer/command/airoom) -"iZG" = ( -/obj/structure/window/framed/almayer/hull, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/chief_mp_office) +"iZE" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "iZH" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -43787,6 +41441,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"iZV" = ( +/obj/structure/machinery/door_control/cl/quarter/officedoor{ + pixel_x = 25 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "iZX" = ( /obj/structure/surface/rack, /obj/item/clothing/glasses/meson, @@ -43802,6 +41462,22 @@ icon_state = "plate" }, /area/almayer/squads/req) +"jaf" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = -27; + serial_number = 11 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "jaj" = ( /obj/item/ammo_box/magazine/misc/mre/empty{ pixel_x = 8; @@ -43823,19 +41499,21 @@ icon_state = "plating" }, /area/almayer/command/airoom) -"jaP" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"jaK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/hallways/vehiclehangar) +"jaM" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "jaR" = ( /obj/structure/largecrate/random/mini/small_case/b{ pixel_x = 8; @@ -43884,15 +41562,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"jbB" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "jbH" = ( /obj/structure/machinery/light{ dir = 8 @@ -43913,6 +41582,40 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"jbN" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/item/clothing/mask/cigarette/pipe{ + layer = 2.8; + pixel_y = -7 + }, +/obj/item/reagent_container/spray/cleaner{ + layer = 3.04; + pixel_x = -4; + pixel_y = 7 + }, +/obj/structure/machinery/door_control/brbutton{ + id = "Brig Lockdown Shutters"; + name = "Brig Lockdown"; + pixel_x = -12; + pixel_y = 26 + }, +/obj/structure/machinery/door_control/brbutton{ + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown Override"; + pixel_x = -2; + pixel_y = 26 + }, +/obj/structure/machinery/door_control/brbutton{ + id = "ARES Emergency"; + name = "ARES Emergency Lockdown Override"; + pixel_x = 8; + pixel_y = 26 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "jbO" = ( /obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ @@ -43929,32 +41632,11 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"jcl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/grunt_rnr) -"jcK" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "jcP" = ( /turf/open/floor/almayer{ icon_state = "plating_striped" }, /area/almayer/engineering/upper_engineering/starboard) -"jcZ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/command/lifeboat) "jdk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -43975,13 +41657,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"jdy" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "jdG" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -43992,6 +41667,13 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_three) +"jdQ" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/item/tool/soap, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_a_s) "jea" = ( /obj/structure/sign/safety/autoopenclose{ pixel_y = 32 @@ -44041,15 +41723,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"jeK" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/shipboard/brig/general_equipment) "jeO" = ( /obj/structure/machinery/light{ dir = 4 @@ -44099,25 +41772,13 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"jfM" = ( -/obj/structure/machinery/power/monitor{ - name = "Core Power Monitoring" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "jfY" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, /obj/item/folder/red, /obj/structure/transmitter/rotary{ name = "Brig CMP's Office Telephone"; - phone_category = "Offices"; + phone_category = "MP Dept."; phone_id = "Brig CMP's Office"; pixel_x = 15 }, @@ -44176,18 +41837,28 @@ icon_state = "test_floor4" }, /area/almayer/living/auxiliary_officer_office) -"jgu" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 +"jgr" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera{ + pixel_x = -8; + pixel_y = 12 }, -/obj/structure/mirror{ - pixel_x = 29 +/obj/item/paper_bin/uscm{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -8; + pixel_y = -1 }, /turf/open/floor/almayer{ - icon_state = "sterile" + icon_state = "plate" }, -/area/almayer/living/captain_mess) +/area/almayer/command/combat_correspondent) "jgw" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_x = 32 @@ -44270,12 +41941,34 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"jhB" = ( +/obj/structure/bookcase{ + icon_state = "book-5"; + name = "medical manuals bookcase"; + opacity = 0 + }, +/obj/item/book/manual/surgery, +/obj/item/book/manual/research_and_development, +/obj/item/book/manual/medical_diagnostics_manual, +/obj/item/book/manual/medical_cloning, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "jhD" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"jhI" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "jhW" = ( /obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ @@ -44292,16 +41985,18 @@ icon_state = "silver" }, /area/almayer/hull/upper_hull/u_m_p) -"jip" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - access_modified = 1; - name = "\improper Main Kitchen"; - req_one_access_txt = "30;19" +"jic" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/living/grunt_rnr) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/lobby) "jiw" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -44310,6 +42005,25 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) +"jiU" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/obj/structure/surface/rack{ + density = 0; + pixel_x = 26 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "jiX" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -44318,6 +42032,19 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"jjm" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Lethal Injection Locker" + }, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/obj/item/reagent_container/ld50_syringe/choral, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) "jjn" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ @@ -44340,20 +42067,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) -"jjK" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/living/grunt_rnr) -"jjM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "jjS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -44376,6 +42089,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) +"jjX" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) "jjZ" = ( /obj/structure/machinery/light{ dir = 4 @@ -44438,26 +42157,46 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"jkS" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" +"jkB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) -"jkV" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 }, -/obj/structure/bed/chair/bolted{ - dir = 4 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) +"jkD" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/living/briefing) +"jlc" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "jlA" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -44518,6 +42257,19 @@ /obj/structure/largecrate/supply/ammo/shotgun, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) +"jmn" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/magazine/dirty{ + pixel_y = 5 + }, +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "jmK" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -44557,12 +42309,6 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"jnf" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop) "jnk" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -44587,31 +42333,18 @@ icon_state = "test_floor4" }, /area/almayer/hallways/aft_hallway) -"jnA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "jnD" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"jnT" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - allow_construction = 0 +"jnI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/lobby) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "jnX" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -44622,12 +42355,6 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/command/cic) -"jox" = ( -/obj/structure/machinery/brig_cell/cell_3{ - pixel_x = -32 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) "joG" = ( /obj/structure/machinery/washing_machine, /obj/structure/sign/poster{ @@ -44650,6 +42377,22 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"jpn" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/port) "jpp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -44685,11 +42428,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"jpQ" = ( -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) "jqP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -44710,6 +42448,15 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"jqT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) +"jqY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "jre" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, @@ -44801,14 +42548,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"juN" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen{ - pixel_y = 7 +"juF" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "juX" = ( /obj/structure/platform_decoration{ dir = 1 @@ -44829,14 +42574,6 @@ icon_state = "plate" }, /area/almayer/medical/lower_medical_medbay) -"jvc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/general_equipment) "jvp" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44874,12 +42611,24 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"jvJ" = ( -/obj/effect/decal/cleanable/dirt, +"jvM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"jvP" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/shipboard/brig/cryo) "jvX" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -44904,6 +42653,19 @@ "jvY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/telecomms) +"jwD" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/obj/structure/machinery/door_control{ + id = "Secretroom"; + indestructible = 1; + layer = 2.5; + name = "Shutters"; + use_power = 0 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) "jwK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -44933,25 +42695,19 @@ }, /turf/open/floor/plating, /area/almayer/living/bridgebunks) -"jxK" = ( -/obj/structure/disposalpipe/junction{ - dir = 1; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 +"jxP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/vehiclehangar) +"jyb" = ( /turf/open/floor/almayer{ - dir = 1; + dir = 6; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"jyi" = ( -/obj/structure/machinery/power/port_gen/pacman, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "jyE" = ( /obj/structure/machinery/light, /turf/open/floor/wood/ship, @@ -44973,12 +42729,28 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"jzE" = ( +/obj/structure/closet/secure_closet/bar{ + name = "Success Cabinet"; + req_access_txt = "1" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/captain_mess) "jzZ" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"jAe" = ( +/obj/structure/surface/rack, +/obj/item/storage/beer_pack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/corporateliaison) "jAi" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/hallways/vehiclehangar) @@ -45005,18 +42777,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"jAG" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/masks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "jAJ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -45067,14 +42827,17 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"jCa" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk, +"jCn" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/obj/item/tool/wirecutters, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + dir = 8; + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "jCK" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -45085,6 +42848,40 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"jDk" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/obj/structure/transmitter{ + dir = 8; + name = "OT Telephone"; + phone_category = "Almayer"; + phone_id = "Ordnance Tech"; + pixel_x = 14 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) +"jDO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/light, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"jDP" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + dir = 1; + name = "\improper Spare Bomb Suit"; + req_one_access = null; + req_one_access_txt = "35" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "jDV" = ( /obj/effect/projector{ name = "Almayer_AresDown"; @@ -45120,6 +42917,12 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"jES" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "jFe" = ( /obj/structure/prop/holidays/string_lights{ pixel_y = 27 @@ -45159,6 +42962,32 @@ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_f_s) +"jFx" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "jFE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -45166,17 +42995,18 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"jFR" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "jFX" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_a_s) +"jFY" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/upper_engineering/port) "jGn" = ( /obj/structure/machinery/light{ dir = 1 @@ -45263,37 +43093,61 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"jIV" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 +"jIo" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"jJe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/area/almayer/shipboard/brig/chief_mp_office) +"jIH" = ( +/obj/structure/surface/rack, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) +"jIT" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig/chief, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) +"jIV" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, +/area/almayer/engineering/lower/engine_core) +"jJe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /area/almayer/hallways/port_hallway) -"jJq" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = -2 +"jJk" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "red" + dir = 5; + icon_state = "blue" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/living/port_emb) "jJs" = ( /turf/open/floor/almayer{ icon_state = "green" @@ -45385,6 +43239,15 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) +"jLv" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/starboard_hallway) "jLK" = ( /obj/structure/machinery/light{ dir = 4 @@ -45394,6 +43257,23 @@ icon_state = "emerald" }, /area/almayer/hallways/port_hallway) +"jLM" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"jLS" = ( +/obj/structure/bed/chair/comfy/charlie, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "jMb" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -45451,6 +43331,24 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) +"jMx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 11; + pixel_y = -26 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"jMy" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "jMG" = ( /obj/structure/largecrate/random/case/small, /obj/structure/largecrate/random/mini/wooden{ @@ -45470,6 +43368,10 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) +"jML" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "jMQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -45534,6 +43436,24 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"jND" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"jNT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution) +"jOc" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null; + pixel_y = 17; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/living/numbertwobunks) "jOi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45581,17 +43501,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) -"jOu" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "jOx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45604,6 +43513,19 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"jOD" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"jOE" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "jOG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/firealarm{ @@ -45615,6 +43537,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"jPd" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) "jPf" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -45627,27 +43559,32 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"jPP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"jPS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) "jQt" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 8 }, /area/almayer/medical/containment/cell) -"jQA" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"jRc" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/hull/lower_hull/l_m_s) -"jRn" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/engineering/lower/workshop) "jRz" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -45714,6 +43651,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"jSy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/living/grunt_rnr) "jSU" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -45742,17 +43688,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"jSY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "jTi" = ( /obj/item/reagent_container/glass/bucket/janibucket{ pixel_x = -1; @@ -45775,6 +43710,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) +"jTB" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower) "jTI" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -45799,28 +43740,25 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"jUn" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door/window/southleft{ - desc = "A window, that is also a door. A windoor if you will. This one is stronger."; - health = 500; - name = "Reinforced Glass door"; - req_one_access_txt = "2;35" - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"jUs" = ( +"jUl" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 + icon_state = "E" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/workshop) +"jUq" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 + }, +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "jUx" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -45831,6 +43769,14 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"jUF" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "jUG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45858,19 +43804,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"jUW" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "jUY" = ( /turf/open/floor/almayer{ icon_state = "silver" @@ -45879,6 +43812,15 @@ "jVa" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"jVg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "jVr" = ( /obj/structure/machinery/cm_vending/clothing/marine/alpha{ density = 0; @@ -45906,6 +43848,22 @@ icon_state = "test_floor5" }, /area/almayer/command/computerlab) +"jVP" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution) +"jWb" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "jWh" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering/port) @@ -45931,15 +43889,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"jWH" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "jWU" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -45947,6 +43896,14 @@ allow_construction = 0 }, /area/almayer/hallways/starboard_hallway) +"jXd" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "jXf" = ( /obj/structure/machinery/door/airlock/almayer/medical{ id_tag = "or03"; @@ -45968,18 +43925,54 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) -"jXW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) "jXY" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"jYc" = ( +/obj/item/bedsheet/blue{ + layer = 3.2 + }, +/obj/item/bedsheet/blue{ + pixel_y = 13 + }, +/obj/item/toy/plush/therapy/red{ + desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; + force = 15; + layer = 4.1; + name = "Sergeant Huggs"; + pixel_y = 15; + throwforce = 15 + }, +/obj/item/clothing/head/cmcap{ + layer = 4.1; + pixel_x = -1; + pixel_y = 22 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/living/port_emb) "jYd" = ( /obj/structure/machinery/gear{ id = "vehicle_elevator_gears" @@ -46013,13 +44006,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_four) -"jZm" = ( -/obj/structure/machinery/brig_cell/cell_4{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) "jZs" = ( /obj/structure/machinery/light/containment{ dir = 4 @@ -46055,24 +44041,18 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"jZL" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 +"jZC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +/obj/structure/sign/safety/escapepod{ + pixel_x = -17 }, -/obj/structure/transmitter{ - dir = 1; - name = "Brig Warden's Office Telephone"; - phone_category = "Offices"; - phone_id = "Brig Warden's Office"; - pixel_x = -16 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/starboard) "jZO" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -46091,6 +44071,17 @@ icon_state = "redfull" }, /area/almayer/medical/upper_medical) +"kag" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 16" + }, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "kaj" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -46103,9 +44094,25 @@ icon_state = "test_floor4" }, /area/almayer/hallways/aft_hallway) +"kam" = ( +/obj/item/tool/screwdriver{ + layer = 2.9; + pixel_x = -21; + pixel_y = -14 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "kan" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_medbay) +"kat" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hull/lower_hull/l_m_s) "kaA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -46155,19 +44162,9 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) "kaS" = ( -/obj/structure/machinery/light/small{ +/obj/structure/bed/chair/office/dark{ dir = 8 }, -/obj/structure/surface/table/almayer, -/obj/item/device/camera{ - pixel_x = -9; - pixel_y = 16 - }, -/obj/item/storage/photo_album{ - pixel_x = -6; - pixel_y = -17 - }, -/obj/item/clothing/mask/cigarette/pipe, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -46187,6 +44184,21 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"kbv" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) +"kbw" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "kbx" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -46230,6 +44242,16 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"kbX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/camera/autoname/almayer, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "kcl" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -46253,8 +44275,11 @@ /turf/closed/wall/almayer/reinforced, /area/almayer/living/synthcloset) "kcN" = ( -/turf/closed/wall/almayer/outer, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/commandbunks) +"kde" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "kdi" = ( /obj/item/device/flashlight/pen{ pixel_x = 4; @@ -46264,6 +44289,18 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"kdn" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "kdt" = ( /obj/structure/machinery/door_control{ id = "OuterShutter"; @@ -46284,6 +44321,14 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"kdv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/starboard) "kdB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -46291,16 +44336,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"keO" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "keR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -46312,15 +44347,23 @@ icon_state = "red" }, /area/almayer/hallways/stern_hallway) -"kfp" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +"kfo" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/port) "kfv" = ( /obj/structure/surface/table/almayer, /obj/item/stack/nanopaste{ @@ -46341,18 +44384,31 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"kfN" = ( -/obj/structure/closet/secure_closet/brig, +"kfI" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/engineering/lower) "kfP" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"kfR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_s) "kfU" = ( /turf/open/floor/plating, /area/almayer/powered/agent) @@ -46363,15 +44419,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) -"kge" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/processing) "kgp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -46411,6 +44458,17 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) +"kgQ" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) "khd" = ( /obj/structure/bed/chair{ dir = 4 @@ -46419,6 +44477,19 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) +"khf" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 + }, +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "khD" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -46455,10 +44526,11 @@ }, /area/almayer/hull/lower_hull/l_f_s) "kif" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hull/upper_hull/u_f_s) "kij" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -46468,13 +44540,35 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"kiF" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"kio" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/structure/closet, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) +"kiG" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/almayer/engineering/lower/engine_core) "kiM" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ @@ -46509,46 +44603,54 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"kjN" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +"kiX" = ( +/obj/structure/bed/chair/comfy/delta{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/surgery) -"kjV" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 +/area/almayer/living/briefing) +"kjk" = ( +/obj/structure/machinery/cryopod/right, +/obj/structure/sign/safety/cryo{ + pixel_x = 32 }, -/obj/structure/bed{ - can_buckle = 0 +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 +/area/almayer/shipboard/brig/cryo) +"kjD" = ( +/obj/structure/machinery/computer/demo_sim{ + dir = 4; + pixel_x = -17; + pixel_y = 8 }, -/obj/item/bedsheet/yellow{ - layer = 3.2 +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17; + pixel_y = -8 }, -/obj/item/bedsheet/yellow{ - pixel_y = 13 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"kjO" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = -16; - pixel_y = 8 +/area/almayer/engineering/lower/engine_core) +"kkk" = ( +/obj/structure/machinery/power/monitor{ + name = "Core Power Monitoring" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/obj/item/toy/plushie_cade, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" }, -/area/almayer/living/port_emb) +/area/almayer/engineering/lower/engine_core) "kkt" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/marine_law, @@ -46556,6 +44658,20 @@ icon_state = "greenfull" }, /area/almayer/living/offices) +"kkv" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/machinery/light/small, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/chief_mp_office) "kkx" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ @@ -46570,16 +44686,15 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"kkO" = ( -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" - }, +"kkW" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/atmospipes, +/obj/item/circuitboard/airalarm, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 1; + icon_state = "orange" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower) "klH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -46597,6 +44712,12 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"kmk" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/vehiclehangar) "kmp" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -46623,26 +44744,6 @@ /obj/item/tool/mop, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) -"kmL" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/regular{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/storage/box/drinkingglasses{ - pixel_x = -7 - }, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = -10; - pixel_y = 14 - }, -/obj/item/storage/xeno_tag_case/full{ - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/corporateliason) "kmM" = ( /obj/structure/sink{ pixel_y = 24 @@ -46673,6 +44774,21 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"knL" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/lifeboat_pumps/south2) +"knO" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "koc" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -46714,30 +44830,27 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"koT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "kpc" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/almayer/command/airoom) -"kpl" = ( -/obj/structure/machinery/door_control{ - id = "cl_shutters"; - name = "Privacy Shutters"; - pixel_y = -20; - req_access_txt = "200" +"kph" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/engine_core) +"kpo" = ( +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) "kpQ" = ( /obj/structure/machinery/door_control{ id = "engidorm"; @@ -46750,18 +44863,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"kpX" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "kpY" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/hardhat{ @@ -46781,30 +44882,6 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"kqc" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/glasses/welding, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"kqf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "kqt" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -46877,6 +44954,15 @@ icon_state = "plate" }, /area/almayer/living/gym) +"kry" = ( +/obj/structure/machinery/flasher{ + id = "Perma 1"; + pixel_y = 24 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "krN" = ( /obj/structure/machinery/conveyor{ id = "req_belt" @@ -46895,6 +44981,25 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"krU" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/tool/screwdriver, +/obj/item/bananapeel{ + desc = "An experimental B8 Smart-Scope. Based on the technologies used in the Smart Gun by ARMAT, this sight has integrated IFF systems. It can only attach to the L42A Battle Rifle, M44 Combat Revolver, and M46C Pulse Rifle. This one appears to be covered in gun oil"; + icon = 'icons/obj/items/weapons/guns/attachments.dmi'; + icon_state = "iffbarrel"; + name = "Broken B8 Smart-Scope"; + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "krZ" = ( /obj/structure/closet/secure_closet/cargotech, /obj/item/clothing/accessory/storage/webbing, @@ -46910,6 +45015,15 @@ icon_state = "green" }, /area/almayer/squads/req) +"ksg" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "ksp" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -46918,15 +45032,6 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) -"ksA" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) "ksN" = ( /turf/open/floor/almayer/uscm/directional{ dir = 6 @@ -46957,47 +45062,12 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"kta" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/evidence_storage) -"ktn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "ktB" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_m_s) -"ktO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "ktP" = ( /obj/structure/curtain/red, /turf/open/floor/almayer{ @@ -47010,6 +45080,17 @@ icon_state = "greencorner" }, /area/almayer/living/grunt_rnr) +"kui" = ( +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/machinery/vending/security/riot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "kuk" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -47029,6 +45110,28 @@ icon_state = "emeraldcorner" }, /area/almayer/living/briefing) +"kuJ" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"kvf" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop) "kvh" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert{ @@ -47038,24 +45141,22 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"kvz" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "tcomms" - }, -/area/almayer/engineering/engine_core) -"kvN" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "kvU" = ( /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"kwc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "kwd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -47109,6 +45210,19 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) +"kxd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "kxo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -47131,27 +45245,25 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"kxM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"kyh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/vents/scrubber{ dir = 4 }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"kyr" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) -"kyI" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 32 + icon_state = "test_floor4" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/upper/starboard) "kyN" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ @@ -47162,19 +45274,15 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"kyP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/marine_food, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"kyR" = ( +/obj/structure/safe/co_office, +/obj/item/weapon/pole/fancy_cane, +/obj/item/tool/lighter/zippo/gold{ + layer = 3.05; + pixel_y = 3 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kyX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -47206,6 +45314,19 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/command/computerlab) +"kzr" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/execution) "kzy" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -47213,6 +45334,14 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"kzC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/engineering/lower/workshop) "kzK" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -47247,6 +45376,15 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"kzO" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "kzP" = ( /turf/open/floor/almayer{ dir = 9; @@ -47289,6 +45427,12 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"kAL" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "kAU" = ( /obj/structure/platform{ dir = 4 @@ -47298,6 +45442,21 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"kBh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + dir = 2; + name = "\improper Execution Equipment" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/execution) "kBo" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -47381,11 +45540,6 @@ "kCT" = ( /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"kDb" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "kDi" = ( /obj/structure/platform{ dir = 8 @@ -47426,12 +45580,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"kDA" = ( +"kDK" = ( /obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kDR" = ( /obj/structure/disposalpipe/junction{ dir = 1; @@ -47451,6 +45603,34 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"kEc" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"kEg" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/toy/deck/uno{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "kEp" = ( /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/almayer{ @@ -47458,6 +45638,33 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/morgue) +"kEq" = ( +/obj/structure/machinery/door/window/ultra{ + dir = 8; + req_access_txt = "3" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"kEs" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/prop/helmetgarb/helmet_nvg/cosmetic, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) +"kEU" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_f_s) "kFe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/firealarm{ @@ -47468,30 +45675,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"kFk" = ( -/obj/structure/closet/secure_closet/commander, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"kFq" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/engineering_construction, -/obj/item/folder/black_random, -/obj/structure/sign/safety/high_rad{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "kFs" = ( /obj/structure/machinery/light{ dir = 4 @@ -47535,6 +45718,18 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"kGu" = ( +/obj/structure/machinery/cryopod{ + layer = 3.1; + pixel_y = 13 + }, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) "kGF" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -47568,12 +45763,6 @@ icon_state = "containment_corner_variant_2" }, /area/almayer/medical/containment/cell) -"kGX" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) "kHa" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/surgery) @@ -47596,25 +45785,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"kHA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"kHK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) "kHS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47667,16 +45837,24 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"kJC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"kJm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"kJn" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 17" }, -/turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "kJG" = ( /obj/item/toy/deck{ pixel_y = 12 @@ -47689,10 +45867,19 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"kJK" = ( -/obj/structure/bed/chair/comfy/orange, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"kJH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/freezer/industry, +/obj/item/reagent_container/glass/beaker/silver, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "kJL" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_2" @@ -47708,6 +45895,19 @@ icon_state = "green" }, /area/almayer/hallways/port_hallway) +"kJW" = ( +/obj/structure/machinery/door/window/westright, +/obj/structure/machinery/shower{ + dir = 8; + layer = 3.10; + plane = -4 + }, +/obj/item/tool/soap{ + pixel_x = 2; + pixel_y = 7 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/commandbunks) "kKb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47787,6 +45987,20 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"kLp" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/starboard_hallway) "kLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47797,6 +46011,18 @@ icon_state = "greencorner" }, /area/almayer/squads/req) +"kMp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "kMq" = ( /obj/structure/sign/poster{ desc = "It says DRUG."; @@ -47831,26 +46057,6 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/port) -"kMU" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"kNi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "kNk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47877,6 +46083,16 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"kNC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer, +/area/almayer/living/port_emb) "kNO" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -47890,12 +46106,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"kNQ" = ( +"kNX" = ( +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" + icon_state = "emeraldfull" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/living/briefing) "kNY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -47907,15 +46126,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) -"kOi" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) "kOk" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -47947,37 +46157,18 @@ icon_state = "bluefull" }, /area/almayer/living/pilotbunks) -"kOG" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 +"kOH" = ( +/obj/structure/machinery/light{ + dir = 8 }, /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hallways/aft_hallway) -"kOH" = ( /turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, -/area/almayer/living/port_emb) -"kPo" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" + icon_state = "dark_sterile" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/command/corporateliaison) "kPx" = ( /obj/structure/surface/table/almayer, /obj/item/device/mass_spectrometer, @@ -48015,6 +46206,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"kPH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/south2) "kPJ" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -48050,10 +46247,21 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"kQu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/processing) "kQz" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ dir = 1; - name = "\improper Brig" + name = "\improper Brig Maintenance" }, /obj/structure/machinery/door/poddoor/almayer/open{ id = "Brig Lockdown Shutters"; @@ -48072,6 +46280,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) +"kRg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/lifeboat) "kRu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48084,6 +46298,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"kRD" = ( +/obj/item/reagent_container/glass/bucket/janibucket, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_y = 11 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "kRP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/prop/magazine/dirty/torn, @@ -48123,6 +46354,18 @@ icon_state = "tcomms" }, /area/almayer/command/airoom) +"kSH" = ( +/obj/structure/sign/prop1{ + pixel_y = 32 + }, +/obj/structure/filingcabinet/security{ + pixel_x = -8 + }, +/obj/structure/filingcabinet/medical{ + pixel_x = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "kSJ" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -48140,28 +46383,18 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"kTc" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/structure/machinery/light/small{ - dir = 8 +"kSU" = ( +/obj/structure/transmitter/no_dnd{ + name = "Requisition Telephone"; + phone_category = "Almayer"; + phone_id = "Requisition"; + pixel_y = 30 }, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/vehicle_clamp, -/obj/item/vehicle_clamp, -/obj/item/vehicle_clamp, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +/area/almayer/squads/req) "kTq" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ @@ -48213,7 +46446,6 @@ access_modified = 1; dir = 1; name = "\improper Flight Crew Quarters"; - req_access_txt = null; req_one_access_txt = "19;22" }, /turf/open/floor/almayer{ @@ -48256,6 +46488,11 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"kUR" = ( +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "kUV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -48264,6 +46501,13 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) +"kVV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "kVX" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -48306,6 +46550,32 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"kWN" = ( +/obj/structure/sign/poster{ + desc = "It says DRUG."; + icon_state = "poster2"; + pixel_x = -27 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"kWR" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/transmitter/rotary{ + name = "Commanding Officer's Office"; + phone_category = "Offices"; + phone_id = "Commanding Officer's Office"; + pixel_x = 16; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "kWT" = ( /turf/open/floor/almayer{ dir = 9; @@ -48350,6 +46620,19 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"kXm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_x = -17; + pixel_y = -7 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "kXu" = ( /turf/open/floor/almayer{ dir = 8; @@ -48371,13 +46654,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"kXK" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "kXN" = ( /obj/item/clothing/glasses/sunglasses/aviator{ pixel_x = -1; @@ -48397,6 +46673,42 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_s) +"kYt" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/bible{ + desc = "As the legendary US Army chaplain once said, 'There are no Athiests in fancy offices'."; + name = "Holy Bible"; + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/prop/helmetgarb/rosary{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/device/flashlight/lamp{ + pixel_x = 3; + pixel_y = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"kYv" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) +"kYL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "kYP" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -48437,6 +46749,12 @@ icon_state = "orange" }, /area/almayer/hallways/port_umbilical) +"kZH" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_m_s) "kZN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -48461,25 +46779,19 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"lab" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "lah" = ( /turf/open/floor/almayer{ dir = 6; icon_state = "emerald" }, /area/almayer/living/gym) -"laj" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "lau" = ( /obj/structure/sign/safety/autoopenclose{ pixel_x = 7; @@ -48487,6 +46799,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) +"laM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "laO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48496,12 +46820,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"laP" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "laQ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -48536,6 +46854,16 @@ }, /turf/open/floor/plating, /area/almayer/command/cic) +"laY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "lbb" = ( /obj/structure/surface/table/almayer, /obj/item/organ/heart/prosthetic{ @@ -48557,6 +46885,17 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) +"lbs" = ( +/obj/structure/sign/safety/biolab{ + pixel_x = -17; + pixel_y = -8 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = -17; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "lbB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -48609,6 +46948,9 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"ldc" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/workshop) "ldl" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -48639,17 +46981,6 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"ldD" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/general_equipment) "ldN" = ( /obj/structure/platform{ dir = 1 @@ -48721,6 +47052,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"lft" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/fire, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "lfH" = ( /obj/structure/machinery/light{ dir = 4 @@ -48730,28 +47069,22 @@ icon_state = "blue" }, /area/almayer/living/basketball) -"lfQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"lgt" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, -/area/almayer/engineering/engine_core) -"lfW" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 +/obj/structure/mirror{ + pixel_x = 28 }, -/obj/structure/sign/safety/maint{ - pixel_x = 14; - pixel_y = -32 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "dark_sterile" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/command/corporateliaison) "lgy" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -48763,13 +47096,28 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"lgK" = ( -/obj/structure/machinery/cm_vending/clothing/senior_officer{ - density = 0; - pixel_y = 30 +"lgF" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, -/turf/open/floor/almayer, -/area/almayer/living/numbertwobunks) +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -11; + pixel_y = 5 + }, +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "lgX" = ( /obj/structure/sign/safety/storage{ pixel_y = 32 @@ -48791,6 +47139,21 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"lhu" = ( +/obj/structure/coatrack, +/obj/structure/sign/poster/clf{ + pixel_x = -28 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) "lhv" = ( /obj/structure/machinery/door_control{ id = "CMO Shutters"; @@ -48835,6 +47198,10 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"lhW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "lhX" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -48914,6 +47281,15 @@ /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) +"ljt" = ( +/obj/structure/machinery/door_control/cl/quarter/backdoor{ + pixel_x = -25; + pixel_y = 23 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_p) "ljG" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_container/food/condiment/coldsauce, @@ -48936,6 +47312,27 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"ljS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 8; + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"ljW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/bed/chair/comfy/alpha{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "lkd" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -48962,6 +47359,26 @@ icon_state = "red" }, /area/almayer/living/offices/flight) +"lkm" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/upper_engineering/starboard) +"lkL" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/obj/structure/bed/chair/comfy/bravo{ + dir = 4 + }, +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "lkM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -48974,6 +47391,12 @@ icon_state = "plate" }, /area/almayer/squads/charlie) +"lkV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "lkW" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/belt/medical/lifesaver/full, @@ -48986,6 +47409,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"llK" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "llM" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -49023,32 +47455,36 @@ "lmz" = ( /turf/closed/wall/almayer/white/hull, /area/space) +"lmA" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/numbertwobunks) "lmK" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/securestorage) -"lmW" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/structure/machinery/door_control{ - id = "Alpha_2"; - name = "Door Lock"; - normaldoorcontrol = 1; - pixel_x = 23; - specialfunctions = 4 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "lne" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"lnh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 8; + name = "\improper Chief MP's Office" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/chief_mp_office) "lnm" = ( /turf/open/floor/almayer{ icon_state = "orangecorner" @@ -49059,13 +47495,6 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"lnJ" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "lnP" = ( /obj/structure/machinery/vending/cola, /obj/structure/window/reinforced, @@ -49135,6 +47564,37 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"loy" = ( +/obj/structure/sign/poster{ + desc = "Eat an EAT bar! ...Aren't they called MEAT bars?"; + icon_state = "poster7"; + name = "EAT - poster"; + pixel_x = 27 + }, +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"loz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "loK" = ( /obj/structure/closet/crate/medical, /obj/item/storage/firstaid/adv, @@ -49186,6 +47646,14 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"lpg" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + req_access = list(1) + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/living/commandbunks) "lpt" = ( /turf/open/floor/almayer{ icon_state = "blue" @@ -49265,12 +47733,6 @@ icon_state = "orange" }, /area/almayer/living/port_emb) -"lqZ" = ( -/obj/structure/machinery/floodlight/landing, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) "lra" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Disposals" @@ -49295,23 +47757,6 @@ "lrq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/armory) -"lrs" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) -"lru" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "lrF" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -49321,16 +47766,6 @@ /obj/structure/bed/chair, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"lrV" = ( -/obj/structure/machinery/door/window/brigdoor/southright{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/structure/sign/safety/three{ - pixel_x = 31 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "lrW" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/adv, @@ -49354,6 +47789,17 @@ /obj/structure/largecrate/random/case/small, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"lsn" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/tool/pen, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "lsp" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -49401,6 +47847,11 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) +"ltc" = ( +/obj/effect/landmark/late_join/working_joe, +/obj/effect/landmark/start/working_joe, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/airoom) "lto" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -49428,21 +47879,13 @@ /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_m_p) "ltU" = ( -/obj/structure/filingcabinet, +/obj/structure/bed/chair{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/combat_correspondent) -"ltX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/main_office) -"lue" = ( -/obj/structure/surface/table/almayer, -/obj/item/folder/yellow, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "luk" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -49453,13 +47896,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) -"lut" = ( -/obj/structure/machinery/computer/crew, +"lul" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + name = "\improper Commanding Officer's Quarters"; + req_access = null; + req_access_txt = "31" + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/living/commandbunks) "luu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49472,16 +47919,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"luw" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - dir = 2; - name = "Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) "luz" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -49492,33 +47929,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"luC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"luH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/atm{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "luS" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/cardboard{ @@ -49557,21 +47967,41 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) +"lvb" = ( +/obj/structure/machinery/door_control/cl/office/door{ + pixel_y = 25 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"lvh" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 10 + }, +/obj/structure/machinery/meter, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "lvA" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "blue" }, /area/almayer/living/pilotbunks) -"lvZ" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1L"; - name = "\improper cell shutter" +"lwh" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "lwi" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -49590,47 +48020,15 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"lwA" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - desc = "Do you remember who you are?"; - icon_state = "mirror_broke"; - name = "broken mirror"; - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/item/device/cassette_tape/nam{ - layer = 2.9; - pixel_x = -6; - pixel_y = 11 - }, -/obj/structure/machinery/door_control{ - id = "Delta_2"; - name = "Door Lock"; - normaldoorcontrol = 1; - pixel_x = 23; - specialfunctions = 4 - }, -/obj/item/prop{ - desc = "A handful of rounds to reload on the go."; - icon = 'icons/obj/items/weapons/guns/handful.dmi'; - icon_state = "bullet_2"; - name = "handful of pistol bullets (9mm)"; - pixel_x = -8; - pixel_y = 29 - }, -/obj/item/prop{ - desc = "A bunch of tiny bits of shattered metal."; - icon = 'icons/obj/items/shards.dmi'; - icon_state = "shrapnelsmall"; - name = "piece of shrapnel"; - pixel_x = -1; - pixel_y = 24 +"lwp" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, +/obj/structure/machinery/cm_vending/sorted/tech/circuits, /turf/open/floor/almayer, -/area/almayer/living/port_emb) +/area/almayer/engineering/lower/workshop) "lwC" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -49652,6 +48050,12 @@ icon_state = "emeraldfull" }, /area/almayer/squads/charlie) +"lwK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) "lxo" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -49665,6 +48069,20 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) +"lxy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/main_office) +"lxE" = ( +/obj/structure/machinery/cm_vending/clothing/commanding_officer, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/living/commandbunks) "lxT" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -49726,6 +48144,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"lze" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "lzj" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -49736,6 +48163,14 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"lzn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_s) "lzq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -49743,12 +48178,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"lzx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "lzA" = ( /obj/structure/machinery/sleep_console{ dir = 8 @@ -49766,18 +48195,12 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) -"lzW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -15 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +"lzY" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) "lAl" = ( /turf/open/floor/almayer{ dir = 4; @@ -49836,24 +48259,18 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"lAU" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "lBg" = ( /obj/structure/bedsheetbin, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"lBi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "lBv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -49866,6 +48283,13 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"lBz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "lBF" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, @@ -49881,56 +48305,40 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) -"lBY" = ( -/obj/structure/closet{ - name = "backpack storage" +"lCp" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/storage/backpack/marine/grenadepack, -/obj/item/storage/backpack/marine/grenadepack, -/obj/item/storage/backpack/marine/mortarpack, -/obj/item/storage/backpack/marine/mortarpack, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) +"lCr" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "redfull" }, -/area/almayer/engineering/engineering_workshop/hangar) +/area/almayer/living/briefing) "lCt" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "sterile_green_side" }, /area/almayer/medical/containment) -"lCz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"lCM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"lCE" = ( +/obj/structure/bed/chair/comfy/delta, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"lCS" = ( +/area/almayer/living/briefing) +"lCL" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "mono" + dir = 10; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/port) "lDg" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "laddernorthwest"; @@ -49945,6 +48353,13 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) +"lDn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "lDJ" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -49992,6 +48407,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"lEe" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "lEf" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 @@ -50023,21 +48444,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"lEL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/prop/ice_colony/tiger_rug{ - desc = "A beat up beer stained, incredibly garish, polyester tiger rug. No one knows how it got here. Written on the wash tag are the words 'From Thedus, with love <3', in Sharpie."; - icon_state = "HotlineAlt"; - layer = 2.9; - name = "Richard the tiger" - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "emerald" - }, -/area/almayer/living/port_emb) "lEO" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -50045,10 +48451,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"lEW" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "lFb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -50088,19 +48490,9 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/morgue) -"lFs" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) +"lFp" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) "lFt" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/sign/safety/maint{ @@ -50138,12 +48530,42 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"lFJ" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Brig Prisoner Yard"; + closeOtherId = "brigcells" + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "lFK" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"lGg" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "lGh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/safety/maint{ @@ -50193,13 +48615,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) -"lGO" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "lHc" = ( /obj/effect/landmark/start/doctor, /obj/structure/sign/safety/maint{ @@ -50213,6 +48628,20 @@ icon_state = "greencorner" }, /area/almayer/living/grunt_rnr) +"lHG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "30;19" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/grunt_rnr) "lIa" = ( /obj/item/robot_parts/arm/l_arm, /obj/item/robot_parts/leg/l_leg, @@ -50233,6 +48662,15 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) +"lIl" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + name = "\improper Armourer's Workshop"; + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_m_s) "lIp" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -50273,12 +48711,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_f_p) -"lJa" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) "lJg" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ @@ -50305,6 +48737,16 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) +"lJD" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) "lJG" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -50325,6 +48767,19 @@ icon_state = "cargo" }, /area/almayer/living/offices) +"lJL" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/cells) "lJO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50369,6 +48824,17 @@ icon_state = "red" }, /area/almayer/hallways/stern_hallway) +"lKM" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"lKO" = ( +/obj/structure/sign/safety/refridgeration{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "lLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -50386,6 +48852,12 @@ /obj/structure/largecrate/random/barrel/green, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"lMb" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "lMc" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -50413,15 +48885,12 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) -"lMM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, +"lMx" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "cargo" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/upper_engineering/starboard) "lMY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -50437,27 +48906,6 @@ icon_state = "red" }, /area/almayer/hallways/stern_hallway) -"lNs" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/machinery/door_control{ - id = "cmp_armory"; - name = "Armory Lockdown"; - pixel_x = 24; - pixel_y = -6; - req_access_txt = "4" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "lNw" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -50482,31 +48930,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"lNF" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Lethal Injection Locker" - }, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"lOl" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, +"lNN" = ( +/obj/structure/closet/secure_closet/medical2, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "sterile_green_side" }, -/area/almayer/command/corporateliason) +/area/almayer/shipboard/brig/surgery) +"lNR" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop) "lOr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -50526,6 +48960,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) +"lOI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "lON" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -50537,6 +48981,26 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"lOX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) +"lPm" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "lPB" = ( /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer, @@ -50569,6 +49033,18 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"lQa" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "lQj" = ( /obj/structure/machinery/door_control{ id = "InnerShutter"; @@ -50588,11 +49064,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"lQq" = ( -/obj/structure/bed, -/obj/item/bedsheet/hop, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "lQu" = ( /obj/structure/bed/stool, /turf/open/floor/almayer{ @@ -50631,6 +49102,16 @@ icon_state = "green" }, /area/almayer/hallways/port_hallway) +"lRe" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) "lRs" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -50686,27 +49167,23 @@ icon_state = "redcorner" }, /area/almayer/living/briefing) +"lSs" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 5"; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/cells) "lSD" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"lSO" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "lTt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -50730,6 +49207,31 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"lUm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Cells"; + closeOtherId = "briglobby" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) +"lUz" = ( +/turf/closed/wall/almayer, +/area/almayer/hull/upper_hull/u_f_s) +"lUA" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "lVl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer, @@ -50748,6 +49250,27 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"lVX" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = 16 + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Alpha Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Alpha Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "lWh" = ( /obj/structure/machinery/pipedispenser/orderable, /turf/open/floor/almayer{ @@ -50761,6 +49284,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"lXb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "lXg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -50836,17 +49368,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"lYZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical/green{ - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "lZs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -50891,24 +49412,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) -"maa" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"maq" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 7; - pixel_y = -26 - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "maw" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/almayer/maint{ @@ -50934,6 +49437,16 @@ icon_state = "plate" }, /area/almayer/living/gym) +"maO" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "maT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -50946,11 +49459,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"mbn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +"mbx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "mce" = ( /turf/open/floor/almayer{ icon_state = "greencorner" @@ -50986,22 +49503,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"mdJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) -"mdS" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "mdW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/decal/warning_stripes{ @@ -51108,6 +49609,13 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"mgd" = ( +/obj/structure/machinery/autolathe/armylathe/full, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "mgj" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -51118,6 +49626,21 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"mgu" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower) "mgy" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, @@ -51166,6 +49689,15 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"mho" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "mhG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -51215,10 +49747,23 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"mje" = ( +/obj/structure/machinery/light, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "mji" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"mjt" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/processing) "mjR" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -51279,38 +49824,46 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"mkh" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 +"mki" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"mkk" = ( -/obj/structure/disposalpipe/segment, +/obj/structure/bed/chair/comfy/alpha{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"mkl" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 + dir = 1 }, /turf/open/floor/almayer{ - allow_construction = 0 + icon_state = "bluefull" }, -/area/almayer/shipboard/brig/lobby) -"mkx" = ( -/obj/structure/machinery/door_control{ - id = "cl_shutters 2"; - name = "Quarters Shutters"; - pixel_x = -25; - req_access_txt = "200" +/area/almayer/living/briefing) +"mkn" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OTStore"; + name = "\improper Secure Storage"; + unacidable = 1 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 2 +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, +/area/almayer/engineering/lower/workshop/hangar) +"mko" = ( +/obj/item/tool/weldpack{ + pixel_y = 15 + }, +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/welding, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "plate" }, -/area/almayer/command/corporateliason) +/area/almayer/hull/upper_hull/u_m_s) "mkG" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -51334,6 +49887,39 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"mkI" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"mkL" = ( +/obj/structure/pipes/valve/digital/open{ + dir = 4 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"mkP" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop) "mlb" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -51372,12 +49958,29 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"mlF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "mlH" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"mlP" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + dir = 1; + name = "Corporate Liaison's Bedroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/corporateliaison) "mmC" = ( /obj/structure/closet/secure_closet/engineering_welding{ req_one_access_txt = "7;23;27" @@ -51515,29 +50118,29 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"moU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, -/area/almayer/squads/req) "moY" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/almayer, /area/almayer/squads/req) -"mqc" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +"mpn" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "redfull" }, +/area/almayer/living/briefing) +"mpP" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/engineering/lower) +"mqb" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "mqg" = ( /obj/structure/bed/chair{ dir = 4 @@ -51600,6 +50203,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) +"mrB" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_p) "mrD" = ( /obj/structure/machinery/light{ dir = 1 @@ -51624,6 +50236,19 @@ icon_state = "green" }, /area/almayer/squads/req) +"msg" = ( +/obj/structure/machinery/light, +/obj/structure/sign/safety/waterhazard{ + pixel_y = -32 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 14; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "msi" = ( /obj/structure/filingcabinet/filingcabinet{ density = 0; @@ -51701,6 +50326,17 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"mts" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "mtD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -51730,22 +50366,15 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"mtS" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"mtZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) -"mtX" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/rifle/m41aMK1/ap, -/obj/item/ammo_magazine/rifle/m41aMK1/ap, -/obj/item/weapon/gun/rifle/m41aMK1/ap, -/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "redfull" + dir = 5; + icon_state = "plating" }, -/area/almayer/command/cic) +/area/almayer/engineering/lower/engine_core) "mub" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -51780,6 +50409,26 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"muQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"muV" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/faxmachine/uscm/command/capt{ + name = "Commanding Officer's Fax Machine"; + pixel_x = -4; + pixel_y = 3 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "mvl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51793,6 +50442,36 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"mvE" = ( +/obj/item/bedsheet/brown{ + pixel_y = 13 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "mvI" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -51806,6 +50485,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"mvR" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/surgery) "mwA" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -51867,6 +50555,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) +"mxT" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"myl" = ( +/obj/structure/machinery/power/apc/almayer/hardened{ + cell_type = /obj/item/cell/hyper; + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north1) "myn" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -51901,14 +50609,43 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"myT" = ( -/obj/structure/closet/firecloset, +"myP" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"mza" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "firearm_storage_armory"; + name = "\improper Armory Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Armory" + }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; + pixel_x = 2; pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/armory) "mzb" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -51945,6 +50682,17 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/hydroponics) +"mzs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "mzz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -51953,15 +50701,6 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"mzO" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/engineering/engine_core) "mzR" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 8; @@ -51969,6 +50708,12 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"mzS" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "mzV" = ( /turf/open/floor/almayer{ dir = 1; @@ -51980,30 +50725,20 @@ /obj/effect/spawner/random/tool, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"mAr" = ( -/obj/structure/closet/secure_closet/guncabinet/riot_control, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, +"mAF" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"mAT" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "bot_armory"; - name = "\improper Armory Shutters" + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Armory" +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 6; + icon_state = "red" }, -/area/almayer/shipboard/brig/armory) +/area/almayer/hallways/upper/starboard) "mAV" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -52060,12 +50795,23 @@ access_modified = 1; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19" + req_one_access_txt = "3;19"; + closeOtherId = "astroladder_n" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/shipboard/navigation) +"mBx" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "mBA" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -52089,6 +50835,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"mBO" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "mCo" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -52122,6 +50874,22 @@ "mDJ" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) +"mDL" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/mousetraps, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "mDT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -52134,6 +50902,39 @@ icon_state = "emerald" }, /area/almayer/living/briefing) +"mDX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + dir = 1; + id_tag = "CO-Office"; + name = "\improper Commanding Officer's Office"; + req_access = null; + req_access_txt = "31" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/commandbunks) +"mEb" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "laddersoutheast"; + name = "South East Ladders Shutters"; + pixel_y = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/port_hallway) "mEE" = ( /obj/structure/platform{ dir = 4; @@ -52145,6 +50946,18 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"mFc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "mFq" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -52158,32 +50971,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"mFD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"mFM" = ( -/obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_x = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "mFN" = ( /obj/effect/step_trigger/ares_alert/mainframe, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -52216,16 +51003,23 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"mFP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "mGe" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"mGn" = ( -/obj/structure/machinery/cm_vending/clothing/military_police_warden, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "mGu" = ( /turf/open/floor/almayer{ dir = 4; @@ -52237,6 +51031,30 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"mGT" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/closet/cabinet, +/obj/item/clipboard, +/obj/item/storage/lockbox/loyalty, +/obj/item/storage/briefcase, +/obj/item/reagent_container/spray/pepper, +/obj/item/device/eftpos{ + eftpos_name = "Weyland-Yutani EFTPOS scanner" + }, +/obj/item/device/portable_vendor/corporate, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"mHb" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "mHm" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 @@ -52269,6 +51087,28 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) +"mHz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) +"mHA" = ( +/obj/structure/closet/secure_closet/surgical{ + pixel_x = -30 + }, +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_corner" + }, +/area/almayer/shipboard/brig/surgery) "mHD" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -52324,12 +51164,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"mIA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "mIB" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, /obj/structure/sign/safety/medical{ @@ -52340,6 +51174,26 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"mIJ" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -16 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/vehiclehangar) +"mIP" = ( +/obj/structure/pipes/vents/pump, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/engineering/upper_engineering/port) "mIW" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -52371,6 +51225,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"mJi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/living/grunt_rnr) "mJj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -52381,6 +51241,13 @@ "mJu" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/cic) +"mJx" = ( +/obj/structure/prop/server_equipment/broken, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/starboard) "mJL" = ( /turf/open/floor/almayer{ dir = 5; @@ -52417,18 +51284,18 @@ /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) -"mKh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"mKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/hallways/upper/port) "mKq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/bridgebunks) @@ -52456,6 +51323,15 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"mKy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/lifeboat) "mKJ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -52488,20 +51364,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"mKX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "mKY" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -52510,6 +51372,19 @@ /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) +"mLe" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/door_control/cl/quarter/backdoor{ + pixel_x = 25 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "mLu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -52544,14 +51419,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"mLI" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/perma) "mLJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -52573,12 +51440,6 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) -"mMu" = ( -/obj/structure/machinery/floodlight/landing, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "mMP" = ( /obj/effect/landmark/start/intel, /turf/open/floor/plating/plating_catwalk, @@ -52594,6 +51455,16 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"mMZ" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "mNf" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, @@ -52614,6 +51485,13 @@ icon_state = "sterile" }, /area/almayer/medical/upper_medical) +"mNK" = ( +/obj/structure/closet/secure_closet/brig/restraints, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "mNR" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, @@ -52672,15 +51550,6 @@ "mOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/command/airoom) -"mOr" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/tool/lighter, -/obj/item/device/flashlight/lamp, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "mOL" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; @@ -52729,6 +51598,15 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) +"mPR" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "mPX" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -52743,6 +51621,15 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"mQn" = ( +/obj/structure/sign/safety/rad_shield{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) "mQC" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) @@ -52764,17 +51651,6 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"mRc" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = -16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "mRl" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -52813,6 +51689,62 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"mRp" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_s) +"mRq" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"mRQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22" + }, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/command/lifeboat) +"mRS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) "mRW" = ( /turf/open/floor/almayer/research/containment/corner1, /area/almayer/medical/containment/cell/cl) @@ -52878,6 +51810,14 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) +"mTc" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/computer/emails{ + dir = 4; + pixel_y = 2 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "mTd" = ( /obj/structure/machinery/smartfridge/chemistry{ pixel_x = -3; @@ -52891,15 +51831,6 @@ icon_state = "cargo" }, /area/almayer/living/offices) -"mTk" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "mTm" = ( /turf/open/floor/almayer{ dir = 4; @@ -52926,6 +51857,11 @@ icon_state = "cargo_arrow" }, /area/almayer/medical/hydroponics) +"mTN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "mUa" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -52984,21 +51920,16 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) -"mUZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +"mVr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) -"mVi" = ( /turf/open/floor/almayer{ - icon_state = "red" + dir = 5; + icon_state = "plating" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/engineering/lower/engine_core) "mVE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -53021,18 +51952,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"mWe" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "mWs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -53103,12 +52022,6 @@ "mXj" = ( /turf/closed/wall/almayer, /area/almayer/living/commandbunks) -"mXU" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "mYs" = ( /obj/structure/machinery/light{ dir = 4 @@ -53146,18 +52059,6 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) -"mYZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "mZb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -53172,31 +52073,31 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"mZr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"mZf" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, -/area/almayer/shipboard/port_point_defense) -"mZA" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = -5; + pixel_y = 7 }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "cl_shutters 3"; - name = "\improper Privacy Shutters" +/turf/open/floor/almayer{ + icon_state = "emeraldfull" }, -/obj/structure/disposalpipe/segment{ +/area/almayer/living/briefing) +"mZr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/command/corporateliason) +/area/almayer/shipboard/port_point_defense) "mZF" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -53206,6 +52107,16 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"mZL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "mZM" = ( /obj/structure/machinery/light{ dir = 8 @@ -53215,6 +52126,27 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"mZQ" = ( +/obj/structure/machinery/vending/security, +/obj/structure/machinery/light, +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) +"nac" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "naf" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -53233,17 +52165,31 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"naw" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OTStore"; + name = "\improper Secure Storage"; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop/hangar) "naB" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/perma) -"naQ" = ( -/obj/structure/machinery/light/small{ +"naK" = ( +/obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 }, -/area/almayer/engineering/upper_engineering/port) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "naR" = ( /obj/structure/machinery/iv_drip, /obj/effect/decal/warning_stripes{ @@ -53271,12 +52217,31 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) -"nbB" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, +"nbv" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 3" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/living/grunt_rnr) +/area/almayer/engineering/lower/engine_core) +"ncf" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13 + }, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) +"ncl" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/lobby) "ncp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -53297,6 +52262,22 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"ncG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) +"ncT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "ndx" = ( /obj/structure/sign/safety/nonpress_ag{ pixel_x = 15; @@ -53360,14 +52341,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"nel" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) "new" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/reagent_container/glass/bucket/janibucket{ @@ -53377,12 +52350,28 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"neC" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "neE" = ( /obj/structure/platform_decoration{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"neG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/command/lifeboat) "neO" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -53398,6 +52387,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"neT" = ( +/obj/structure/transmitter/rotary{ + name = "CL Office Telephone"; + phone_category = "Almayer"; + phone_id = "CL Office" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "nff" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -53446,6 +52444,31 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) +"ngn" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) +"ngr" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = -17 + }, +/obj/structure/bed/sofa/south/grey/left, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/lobby) "ngs" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ @@ -53486,6 +52509,14 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"ngE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "ngI" = ( /turf/open/floor/almayer{ dir = 8; @@ -53499,6 +52530,28 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) +"ngV" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/farwacube{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/neaeracube{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/stokcube{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/reagent_container/food/snacks/monkeycube/wrapped/yirencube{ + pixel_x = 4; + pixel_y = -4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/corporateliaison) "nhi" = ( /obj/structure/bed/chair/comfy, /obj/structure/window/reinforced/ultra, @@ -53512,6 +52565,16 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"nhr" = ( +/obj/structure/ladder{ + height = 1; + id = "engineeringladder" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/workshop) "nhx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck{ @@ -53529,7 +52592,6 @@ /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) "nhG" = ( -/obj/structure/surface/table/almayer, /obj/item/newspaper{ name = "character sheet" }, @@ -53553,6 +52615,7 @@ pixel_y = -6; req_access_txt = "3" }, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) "nig" = ( @@ -53560,6 +52623,22 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"nik" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/port_emb) "nim" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ access_modified = 1; @@ -53632,6 +52711,17 @@ icon_state = "red" }, /area/almayer/squads/alpha) +"njk" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "njy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -53703,18 +52793,58 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"nlB" = ( +"nkF" = ( +/obj/structure/bed/chair/bolted{ + dir = 4 + }, /turf/open/floor/almayer{ dir = 1; - icon_state = "cargo_arrow" + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/processing) +"nkH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, -/area/almayer/living/briefing) -"nlH" = ( /turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"nkX" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ dir = 4; + layer = 2.8; + pixel_y = 5 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 9; icon_state = "red" }, -/area/almayer/shipboard/brig/cells) +/area/almayer/shipboard/brig/processing) +"nlz" = ( +/obj/structure/machinery/brig_cell/cell_3{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"nlB" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "cargo_arrow" + }, +/area/almayer/living/briefing) "nlW" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/largecrate/random/barrel/green, @@ -53723,16 +52853,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"nmb" = ( +"nme" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "redfull" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +/area/almayer/hallways/upper/port) "nmh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -53780,6 +52909,9 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"nmY" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering/lower/workshop/hangar) "nnc" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -53819,17 +52951,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"nnz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/firingrange{ - pixel_x = 32; - pixel_y = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) "nnD" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down4"; @@ -53845,16 +52966,18 @@ /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) -"nob" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"nnL" = ( +/obj/structure/toilet{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/command/corporateliaison) +"nnX" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "noj" = ( /obj/structure/largecrate, /obj/structure/prop/server_equipment/laptop{ @@ -53865,16 +52988,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"noo" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 8; - id = "bot_armory"; - name = "\improper Armory Shutters" +"nop" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/armory) +/area/almayer/engineering/lower/engine_core) "nos" = ( /obj/structure/machinery/chem_storage/medbay{ dir = 1 @@ -53888,6 +53007,22 @@ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) +"nou" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"noP" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "noV" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -53902,6 +53037,17 @@ }, /turf/open/floor/plating, /area/almayer/engineering/starboard_atmos) +"npn" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "npt" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -53917,6 +53063,36 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) +"npA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"npO" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"nqe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/armory) "nqx" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -53938,6 +53114,12 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"nqO" = ( +/obj/structure/closet/secure_closet/fridge/fish/stock, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) "nqU" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) @@ -53951,16 +53133,23 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"nqZ" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30; - pixel_y = -6 +"nqW" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/engineering/lower) +"nri" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/working_joe{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "nrt" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -54029,6 +53218,22 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_s) +"nsQ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/captain_mess) "nsY" = ( /turf/closed/wall/almayer, /area/almayer/living/port_emb) @@ -54059,28 +53264,6 @@ "ntj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/computerlab) -"ntm" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/machinery/door_control{ - id = "CMP Office Shutters"; - name = "CMP Office Shutters"; - pixel_x = -24; - pixel_y = 8; - req_one_access_txt = "24;31" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"ntr" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/item/seeds/goldappleseed, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "ntt" = ( /obj/item/stool, /obj/effect/decal/warning_stripes{ @@ -54092,12 +53275,6 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) -"ntu" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "ntx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_2"; @@ -54145,6 +53322,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"nux" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "perma_lockdown_1"; + name = "\improper Perma Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/perma) "nuA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54161,6 +53349,12 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"nuM" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "nuN" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, @@ -54172,6 +53366,24 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) +"nvG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/sink{ + pixel_y = 16 + }, +/obj/structure/mirror{ + pixel_y = 21 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/numbertwobunks) "nvM" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -54219,28 +53431,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"nwv" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/paper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/tool/lighter/zippo/gold, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "nwx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/shipboard/port_missiles) -"nwz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) "nwD" = ( /turf/open/floor/almayer{ dir = 1; @@ -54293,20 +53489,28 @@ icon_state = "green" }, /area/almayer/squads/req) -"nxq" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Warden Office" +"nxb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" +/area/almayer/engineering/lower/workshop) +"nxc" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hull/upper_hull/u_f_p) +"nxx" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "nxK" = ( /obj/structure/sign/safety/high_voltage{ pixel_y = -32 @@ -54319,6 +53523,17 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"nxZ" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 10" + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "nyj" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" @@ -54361,6 +53576,13 @@ "nyQ" = ( /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"nyS" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "nzv" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -54381,15 +53603,10 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"nzI" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/command/lifeboat) +"nzD" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/port) "nzO" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/warning_stripes{ @@ -54401,6 +53618,21 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) +"nAd" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"nAY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "nBa" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ req_access = null; @@ -54414,47 +53646,28 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) -"nBb" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "nBc" = ( /obj/structure/largecrate/random, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) -"nBl" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"nBo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) -"nBu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"nBi" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 4 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17; - pixel_y = -8 +/obj/item/clothing/glasses/monocle, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -7; + pixel_y = -2 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/item/weapon/pole/fancy_cane{ + pixel_x = 5 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "nBw" = ( /turf/open/floor/almayer{ dir = 1; @@ -54467,6 +53680,12 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"nBK" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "nBW" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -54481,6 +53700,12 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) +"nCn" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "nCp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -54497,6 +53722,46 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"nCx" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -5; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + desc = "A premium double-malt whiskey, this bottle was gifted to the Captain of the USS Almayer after the completion of the ship's space trials by the VADM. himself."; + pixel_x = 3; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = 11; + pixel_y = 16 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"nCR" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/auxiliary_officer_office) "nCT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -54505,13 +53770,15 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"nDa" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/almayer/engineering/lower/engine_core) "nDd" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, /obj/structure/sign/safety/ammunition{ pixel_x = 15; pixel_y = 32 @@ -54519,21 +53786,11 @@ /obj/structure/sign/safety/hazard{ pixel_y = 32 }, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/hull/lower_hull/l_f_s) -"nDh" = ( -/obj/structure/transmitter/rotary{ - name = "CL Office Telephone"; - phone_category = "Almayer"; - phone_id = "CL Office" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -54653,18 +53910,18 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) -"nFy" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 +"nFA" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/living/briefing) "nFI" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -54694,6 +53951,24 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"nFM" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 18" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"nFV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) "nFX" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; @@ -54732,15 +54007,12 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"nHg" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, +"nGY" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/lifeboat_pumps/north2) "nHF" = ( /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_m_s) @@ -54753,18 +54025,20 @@ icon_state = "plating_striped" }, /area/almayer/living/cryo_cells) -"nHV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"nHL" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/sign/safety/coffee{ + pixel_x = -17; + pixel_y = -8 }, -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/sign/safety/rewire{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/engineering/lower/workshop) "nIj" = ( /turf/open/floor/almayer{ icon_state = "green" @@ -54825,11 +54099,14 @@ }, /turf/open/floor/almayer, /area/almayer/living/basketball) -"nJo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"nJa" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower/engine_core) "nJs" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -54848,6 +54125,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"nJz" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/main_office) "nJH" = ( /obj/structure/machinery/computer/cameras/almayer{ dir = 8; @@ -54866,6 +54149,17 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"nKP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "nLa" = ( /obj/structure/bed/chair{ dir = 4 @@ -54934,6 +54228,21 @@ /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_p) +"nLZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "laddernortheast"; + name = "North East Ladders Shutters"; + pixel_y = -25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/starboard_hallway) "nMc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -54959,12 +54268,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"nMu" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "nMz" = ( /obj/structure/sign/safety/cryo{ pixel_x = 35 @@ -54982,6 +54285,11 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"nNg" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "nNt" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -55002,6 +54310,17 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"nNx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "nNA" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -55010,39 +54329,19 @@ icon_state = "cargo" }, /area/almayer/hull/upper_hull/u_m_p) +"nNC" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "nNH" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "emeraldcorner" }, /area/almayer/living/briefing) -"nNQ" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"nNT" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/structure/machinery/door_control{ - id = "Alpha_1"; - name = "Door Lock"; - normaldoorcontrol = 1; - pixel_x = 23; - specialfunctions = 4 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "nNV" = ( /obj/structure/bed/chair{ dir = 8; @@ -55070,18 +54369,28 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"nOe" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" +"nOb" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 5 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +/obj/item/reagent_container/food/drinks/bottle/sake, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -4 + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/corporateliaison) +"nOC" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "nOG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55097,6 +54406,13 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"nPb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "nPf" = ( /obj/structure/machinery/computer/cameras/almayer/containment{ dir = 8; @@ -55167,6 +54483,24 @@ icon_state = "plate" }, /area/almayer/squads/req) +"nPY" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/command/lifeboat) +"nQg" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_a_s) "nQv" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -55180,6 +54514,9 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) +"nQA" = ( +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "nRq" = ( /obj/effect/decal/cleanable/blood/oil/streak, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -55205,6 +54542,14 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) +"nSu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "nSG" = ( /obj/structure/machinery/door_control{ id = "tcomms"; @@ -55217,13 +54562,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"nSM" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/taperecorder, +"nSN" = ( +/obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hull/lower_hull/l_m_s) "nSS" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -55239,6 +54583,14 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) +"nTi" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "nTl" = ( /turf/open/floor/almayer{ dir = 1; @@ -55255,6 +54607,10 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"nTA" = ( +/obj/structure/bed/chair/comfy/blue, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "nTH" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -55262,6 +54618,10 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"nTR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "nTZ" = ( /turf/open/floor/almayer{ dir = 5; @@ -55295,6 +54655,25 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"nUj" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 2"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) "nUn" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -55335,6 +54714,20 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) +"nVq" = ( +/obj/structure/sign/safety/security{ + pixel_x = -17; + pixel_y = 6 + }, +/obj/structure/sign/safety/reception{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/shipboard/brig/cic_hallway) "nVu" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -55354,6 +54747,9 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"nVR" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/perma) "nVS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55365,17 +54761,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"nVU" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "nVX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D1"; @@ -55398,22 +54783,6 @@ /obj/structure/surface/table/almayer, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"nXm" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 2"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cells) "nXF" = ( /obj/structure/bed/sofa/south/white/right{ pixel_y = 16 @@ -55423,6 +54792,27 @@ icon_state = "silver" }, /area/almayer/hull/upper_hull/u_m_p) +"nXO" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/fancy/cigar{ + layer = 3.04; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -11; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -2; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 7; + pixel_y = 16 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "nXP" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/lower_hull/l_f_s) @@ -55473,6 +54863,24 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"nYn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"nYp" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "nYv" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -55480,6 +54888,13 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) +"nYC" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "nYD" = ( /obj/structure/closet/secure_closet/medical2, /turf/open/floor/almayer{ @@ -55491,22 +54906,6 @@ dir = 8 }, /area/almayer/command/lifeboat) -"nYP" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 3"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cells) "nZy" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -55596,6 +54995,17 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"occ" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/energy/taser, +/obj/item/weapon/gun/energy/taser{ + pixel_y = 8 + }, +/obj/structure/machinery/recharger, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "ocf" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -55619,12 +55029,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"ocs" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "ocB" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -55756,6 +55160,13 @@ damage_cap = 15000 }, /area/almayer/squads/delta) +"oex" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "oeB" = ( /turf/open/floor/almayer{ dir = 8; @@ -55803,12 +55214,40 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"ofU" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "ofZ" = ( /obj/structure/bed/sofa/south/grey, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) +"ogK" = ( +/obj/structure/bed/bedroll{ + desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on."; + name = "cat bed" + }, +/obj/structure/machinery/firealarm{ + pixel_x = -1; + pixel_y = 28 + }, +/mob/living/simple_animal/cat/Jones{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "ohj" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -55862,6 +55301,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) +"ohS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/captain_mess) "oih" = ( /obj/structure/bed{ icon_state = "abed" @@ -55943,6 +55394,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"ojh" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "ojF" = ( /obj/structure/machinery/cm_vending/clothing/tl/charlie{ density = 0; @@ -55953,6 +55411,40 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"ojH" = ( +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/starboard) +"ojQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = -5; + pixel_y = 10 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"ojR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/machinery/door_control{ + id = "laddersoutheast"; + name = "South East Ladders Shutters"; + pixel_y = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/port_hallway) "ojZ" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -55990,19 +55482,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) -"okz" = ( -/obj/structure/platform{ - dir = 4; - layer = 2.7 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "okD" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer6" @@ -56011,50 +55490,14 @@ icon_state = "outerhull_dir" }, /area/space) -"okM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Execution Room" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/execution) -"olk" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Bathroom" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"okQ" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 12" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/engineering/upper_engineering/port) -"olv" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler{ - pixel_x = -8; - pixel_y = 3 - }, -/obj/item/storage/box/evidence{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/box/evidence{ - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/engineering/lower/engine_core) "olM" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -56074,6 +55517,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) +"olN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "olO" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null @@ -56105,22 +55559,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"omu" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "omy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -56129,10 +55567,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "omP" = ( /obj/item/tool/mop, @@ -56142,6 +55577,21 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"omW" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/port_hallway) +"ond" = ( +/obj/structure/machinery/sleep_console{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/surgery) "onN" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -56187,6 +55637,17 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"ooo" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_s) "oos" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) @@ -56205,34 +55666,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"ooR" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/reinforced{ - name = "\improper Perma Cells" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) -"opj" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/squads/req) "opC" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" @@ -56244,20 +55677,49 @@ "opD" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"opF" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) +"opH" = ( +/obj/structure/machinery/light, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) +"opI" = ( +/obj/structure/closet/secure_closet, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/item/storage/box/tapes, +/obj/item/clothing/head/fedora, +/obj/item/clothing/suit/storage/marine/light/reporter, +/obj/item/clothing/head/helmet/marine/reporter, +/obj/item/clothing/head/cmcap/reporter, +/obj/item/device/flashlight, +/obj/item/device/toner, +/obj/item/device/toner, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "opJ" = ( /obj/docking_port/stationary/emergency_response/external/port4, /turf/open/space/basic, /area/space) -"opN" = ( -/obj/structure/closet/secure_closet/brig, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" +"oqt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "oqu" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -56290,13 +55752,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"oqA" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" - }, -/area/almayer/command/cic) "oqD" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wet_sign, @@ -56332,6 +55787,9 @@ id = "req_belt" }, /obj/structure/plasticflaps, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/almayer, /area/almayer/squads/req) "oqZ" = ( @@ -56389,6 +55847,16 @@ dir = 10 }, /area/almayer/command/lifeboat) +"orN" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "osc" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -56452,27 +55920,19 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"osE" = ( -/obj/structure/closet/emcloset, +"osI" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_a_p) -"osJ" = ( -/obj/structure/surface/table/almayer, -/obj/item/folder/white{ - pixel_x = 5; - pixel_y = 5 +/area/almayer/engineering/lower/workshop) +"osM" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 8" }, -/obj/item/paper, -/obj/item/handcuffs, -/obj/item/clothing/mask/cigarette/cigar/classic, -/obj/item/coin/silver{ - desc = "A small coin, bearing the falling falcons insignia."; - name = "falling falcons challenge coin" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/engineering/lower/engine_core) "osT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/ice_colony/hula_girl{ @@ -56481,22 +55941,33 @@ }, /turf/open/floor/almayer, /area/almayer/living/pilotbunks) +"osU" = ( +/obj/structure/sign/poster{ + icon_state = "poster14"; + pixel_x = -27 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "otu" = ( /turf/closed/wall/almayer/research/containment/wall/connect_w, /area/almayer/medical/containment/cell) -"otX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"ouf" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" }, -/obj/structure/sign/safety/press_area_ag{ - pixel_x = -17; - pixel_y = -7 +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/upper/starboard) "oug" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/pipes/standard/simple/hidden/supply, @@ -56529,6 +56000,15 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"ouw" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/bombcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "ouB" = ( /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, @@ -56542,16 +56022,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"ouV" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 1; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ouW" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -56572,12 +56042,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"ovn" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "ovp" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/flora/pottedplant{ @@ -56633,12 +56097,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) -"owN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/grunt_rnr) "owW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -56653,20 +56111,21 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/sea_office) +"oxc" = ( +/obj/structure/bed, +/obj/item/toy/plush/farwa{ + pixel_x = 5 + }, +/obj/item/clothing/under/redpyjamas, +/obj/item/bedsheet/orange, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "oxi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) -"oxn" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "oxp" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -56720,17 +56179,12 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) -"ozi" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, +"oyR" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "orange" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower) "ozq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -56790,19 +56244,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"oAd" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "oAB" = ( /obj/structure/platform{ dir = 8; @@ -56861,6 +56302,15 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"oCl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/bed/chair/comfy/delta, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "oCL" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -56870,12 +56320,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) -"oCX" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/cryo) "oDf" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) @@ -56893,20 +56337,31 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"oDu" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "oDv" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/living/gym) +"oDx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "30;19" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/port_emb) +"oDy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "oDE" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner{ @@ -56984,6 +56439,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"oEy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "oEE" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -57001,6 +56463,15 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"oES" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_f_p) "oEX" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -57010,6 +56481,13 @@ icon_state = "red" }, /area/almayer/living/port_emb) +"oFm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "oFG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57029,6 +56507,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"oFY" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/lobby) "oGx" = ( /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 @@ -57053,6 +56534,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"oGF" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) +"oGJ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "oGP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -57061,6 +56553,22 @@ icon_state = "orange" }, /area/almayer/living/port_emb) +"oGY" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/door_control/cl/office/evac{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/structure/machinery/door_control/cl/office/divider{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "oHc" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -57102,22 +56610,24 @@ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) -"oIc" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +"oIa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/machinery/light/small, /turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + icon_state = "red" }, -/area/almayer/shipboard/brig/perma) -"oIm" = ( -/obj/structure/prop/server_equipment/broken, +/area/almayer/hallways/upper/port) +"oIh" = ( /turf/open/floor/almayer{ - icon_state = "orange" + dir = 8; + icon_state = "red" }, -/area/almayer/engineering/upper_engineering/starboard) +/area/almayer/shipboard/brig/processing) "oIn" = ( /obj/structure/bed/chair{ dir = 8; @@ -57140,7 +56650,8 @@ }, /obj/structure/machinery/door/airlock/almayer/research/reinforced{ dir = 8; - name = "\improper Containment Airlock" + name = "\improper Containment Airlock"; + closeOtherId = "containment_n" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -57149,9 +56660,18 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"oIt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "oIB" = ( /turf/closed/wall/almayer, /area/almayer/command/combat_correspondent) +"oJk" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop) "oJp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -57216,18 +56736,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_p) -"oLg" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/squads/req) "oLi" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, @@ -57280,13 +56788,22 @@ }, /obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ dir = 2; - name = "Brig"; + name = "\improper Brig Lobby"; req_access = null }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/lobby) +"oLN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "oLT" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -57302,12 +56819,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) -"oMd" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) "oMe" = ( /obj/structure/machinery/light{ dir = 8 @@ -57344,13 +56855,6 @@ icon_state = "redfull" }, /area/almayer/squads/alpha_bravo_shared) -"oMM" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/cm_vending/clothing/commanding_officer, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "oMQ" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -57368,7 +56872,7 @@ "oNf" = ( /obj/item/stack/folding_barricade/three, /obj/item/stack/folding_barricade/three, -/obj/structure/closet/secure_closet/guncabinet/red, +/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -57399,6 +56903,47 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"oNP" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 16 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"oNY" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_18"; + pixel_y = 7 + }, +/obj/structure/machinery/door_control/cl/quarter/officedoor{ + pixel_x = -25 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"oOw" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) +"oON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "oOO" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -57435,6 +56980,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) +"oPp" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "oPy" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -57445,18 +56999,28 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"oPD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"oPz" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, -/obj/structure/machinery/status_display{ - pixel_y = 30 +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = -4 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/living/briefing) "oPE" = ( /turf/open/floor/almayer{ dir = 1; @@ -57469,6 +57033,21 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"oQj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/door_control{ + id = "laddernortheast"; + name = "North East Ladders Shutters"; + pixel_y = -25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/starboard_hallway) "oQo" = ( /obj/item/stool, /obj/effect/landmark/yautja_teleport, @@ -57565,18 +57144,15 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"oRZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 +"oRW" = ( +/obj/structure/surface/table/almayer, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/clipboard, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/area/almayer/engineering/lower/workshop) "oSq" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -57604,6 +57180,15 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"oSC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 21 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "oSL" = ( /obj/structure/window/reinforced{ dir = 8 @@ -57671,6 +57256,19 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"oTO" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "oUG" = ( /obj/structure/machinery/light{ dir = 8 @@ -57680,6 +57278,23 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"oVf" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/evidence{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/box/evidence{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) "oVP" = ( /obj/structure/bed/chair{ dir = 4 @@ -57714,34 +57329,22 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"oWx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "oWz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/starboard_garden) -"oWI" = ( -/obj/structure/machinery/cryopod/right{ - pixel_y = 6 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/cryo) -"oWX" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - access_modified = 1; - dir = 1; - name = "\improper Kitchen Hydroponics"; - req_one_access_txt = "30;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/grunt_rnr) "oXb" = ( /obj/effect/landmark/start/marine/charlie, /obj/effect/landmark/late_join/charlie, @@ -57759,12 +57362,32 @@ /obj/effect/decal/cleanable/ash, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"oXt" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "oXJ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"oXM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "oXY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -57829,6 +57452,41 @@ icon_state = "red" }, /area/almayer/living/offices/flight) +"oZy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"oZD" = ( +/obj/structure/sign/poster/music{ + pixel_x = -27 + }, +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 + }, +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = -10; + pixel_y = -1 + }, +/obj/item/tool/pen{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/tool/pen{ + pixel_x = -11; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "oZV" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller, @@ -57852,13 +57510,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) -"paq" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/faxmachine/uscm/brig, +"pas" = ( +/obj/structure/machinery/cryopod/right, +/obj/structure/sign/safety/cryo{ + pixel_x = 3; + pixel_y = 25 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 15; + pixel_y = 25 + }, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/cryo) "paI" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -57877,17 +57545,6 @@ /obj/effect/landmark/start/doctor, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"pbh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "pbp" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -57903,11 +57560,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"pbC" = ( -/obj/item/bedsheet/red, -/obj/structure/bed, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) "pbV" = ( /turf/open/floor/almayer{ dir = 1; @@ -57927,6 +57579,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) +"pcj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silvercorner" + }, +/area/almayer/shipboard/brig/cic_hallway) "pcl" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -57987,15 +57649,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"pcQ" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "pda" = ( /obj/structure/largecrate/random/case/double, /obj/structure/sign/safety/distribution_pipes{ @@ -58011,41 +57664,45 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_p) -"pdt" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor/almayer{ - icon_state = "plate" +"pdy" = ( +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = 24 }, -/area/almayer/living/grunt_rnr) -"pdG" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Chief MP's Bedroom" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"pdK" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/platform{ + dir = 4 }, -/area/almayer/shipboard/brig/chief_mp_office) -"pef" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +/area/almayer/engineering/lower/engine_core) +"peO" = ( +/obj/structure/sign/safety/medical{ + pixel_x = -17; + pixel_y = 6 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17; + pixel_y = -9 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 8; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/lobby) "pfa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -58064,14 +57721,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"pfh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "pfp" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Up4"; @@ -58082,15 +57731,6 @@ allow_construction = 0 }, /area/almayer/stair_clone) -"pfA" = ( -/obj/item/tool/soap, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/engineering/upper_engineering/port) "pfH" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -58112,6 +57752,22 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"pgt" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hull/lower_hull/l_m_s) +"pgw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/engineering/upper_engineering/port) "pgD" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/south1) @@ -58141,27 +57797,74 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"pgN" = ( +/obj/structure/pipes/binary/pump/on{ + dir = 4 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"pgP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "pha" = ( /obj/structure/machinery/photocopier, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/briefing) -"phj" = ( -/obj/item/clothing/head/helmet/marine/reporter, -/obj/item/clothing/suit/storage/marine/light/reporter, -/obj/item/clothing/head/cmcap/reporter, -/obj/item/clothing/head/fedora, -/obj/structure/closet/secure_closet, -/obj/item/storage/box/tapes, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/obj/item/device/camera_film, +"phd" = ( +/obj/structure/sign/poster/safety{ + pixel_x = 27 + }, /obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"phj" = ( +/obj/structure/machinery/photocopier, +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/combat_correspondent) +"phN" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/processing) +"piK" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 1"; + name = "\improper cell shutter" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/perma) "piO" = ( /obj/structure/surface/rack, /obj/item/tool/weldingtool, @@ -58172,20 +57875,6 @@ /obj/item/trash/barcardine, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"pjb" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "pje" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -58194,6 +57883,15 @@ "pji" = ( /turf/closed/wall/almayer, /area/almayer/hallways/stern_hallway) +"pjj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "pjw" = ( /turf/open/floor/almayer{ dir = 10; @@ -58231,12 +57929,16 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) -"pjP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"pjR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "pky" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -58249,15 +57951,16 @@ icon_state = "redfull" }, /area/almayer/squads/alpha_bravo_shared) -"plE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"pkA" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/status_display{ + pixel_y = 30 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 1; + icon_state = "orange" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower) "plI" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ @@ -58265,25 +57968,6 @@ icon_state = "sterile_green_side" }, /area/almayer/shipboard/brig/surgery) -"plZ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - dir = 2; - name = "Brig"; - req_access = null; - req_one_access_txt = "1;3" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "pmk" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -58303,6 +57987,18 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) +"pmv" = ( +/obj/structure/machinery/door/airlock/almayer/marine/alpha{ + dir = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/briefing) "pmH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -58311,6 +58007,16 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"pmI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_s) "pmV" = ( /obj/structure/prop/server_equipment/yutani_server/broken{ density = 0; @@ -58329,18 +58035,39 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"pns" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "pnC" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"pop" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"pnL" = ( +/obj/structure/machinery/constructable_frame{ + icon_state = "box_2" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) +/obj/item/weapon/baseballbat/metal{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/starboard) "poq" = ( /obj/item/pipe{ dir = 4; @@ -58348,24 +58075,22 @@ }, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) +"poA" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_y = 10 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "poR" = ( /obj/structure/machinery/light/small{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) -"poZ" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/bed/chair/bolted{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/perma) "ppc" = ( /obj/structure/largecrate/supply/generator, /obj/structure/machinery/light/small{ @@ -58382,6 +58107,28 @@ }, /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) +"ppn" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"ppF" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/obj/structure/surface/table/almayer, +/obj/item/clipboard{ + pixel_x = -4 + }, +/obj/item/device/taperecorder{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/camera, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "pqc" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -58429,6 +58176,15 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"pqP" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "pqQ" = ( /turf/open/floor/almayer{ dir = 5; @@ -58441,6 +58197,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) +"pre" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_f_p) "prx" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -58459,6 +58224,12 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"prP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "prY" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray, @@ -58477,17 +58248,6 @@ "psm" = ( /turf/closed/wall/almayer, /area/almayer/hull/upper_hull/u_a_s) -"psp" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) "psy" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 2; @@ -58544,6 +58304,19 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) +"ptq" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "ptv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/platform{ @@ -58551,9 +58324,39 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"ptA" = ( +/obj/structure/stairs{ + dir = 1; + icon_state = "ramptop" + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/starboard) "ptK" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering/starboard) +"ptZ" = ( +/obj/structure/platform{ + dir = 4; + layer = 2.7 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "pun" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -58567,13 +58370,36 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"put" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"puv" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"puE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/structure/sign/safety/terminal{ + pixel_y = 32 + }, +/obj/structure/transmitter/rotary{ + name = "Brig Wardens's Office Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Warden's Office"; + pixel_x = 15 }, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "puI" = ( /obj/structure/machinery/light{ dir = 4 @@ -58662,15 +58488,12 @@ icon_state = "redcorner" }, /area/almayer/shipboard/starboard_missiles) -"pwt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +"pwG" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 }, -/area/almayer/shipboard/brig/processing) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "pwK" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -58761,20 +58584,34 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) +"pyx" = ( +/obj/structure/machinery/door_display/research_cell{ + dir = 4; + id = "Containment Cell 4"; + name = "Control Panel"; + pixel_x = -15; + req_access_txt = "200" + }, +/obj/item/storage/fancy/cigarettes/blackpack{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "pyy" = ( /obj/structure/filingcabinet, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/lifeboat) -"pyB" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "pyC" = ( /obj/structure/largecrate/random/barrel/red, /obj/structure/machinery/light{ @@ -58803,26 +58640,16 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"pzc" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/bed/chair{ - dir = 1 +"pzd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - dir = 1; + dir = 10; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) -"pzi" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/port) "pzG" = ( /obj/docking_port/stationary/emergency_response/port1, /turf/open/floor/almayer{ @@ -58836,6 +58663,12 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"pzM" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "pzO" = ( /obj/item/tool/warning_cone{ pixel_y = 13 @@ -58860,6 +58693,9 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"pAm" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) "pAR" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -58879,6 +58715,9 @@ icon_state = "greencorner" }, /area/almayer/hallways/port_hallway) +"pBG" = ( +/turf/closed/wall/almayer, +/area/almayer/command/corporateliaison) "pBW" = ( /turf/open/floor/almayer{ icon_state = "orangecorner" @@ -58887,6 +58726,17 @@ "pCi" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/upper_hull/u_f_s) +"pCq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "pCr" = ( /obj/structure/machinery/cm_vending/sorted/attachments/blend, /turf/open/floor/almayer{ @@ -58979,6 +58829,19 @@ icon_state = "plate" }, /area/almayer/squads/charlie) +"pDW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "pEl" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -59034,41 +58897,6 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) -"pFa" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) -"pFg" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1"; - name = "\improper isolation shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) -"pFA" = ( -/obj/structure/pipes/standard/simple/visible{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/engineering/lower_engineering) "pFM" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -59081,22 +58909,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) -"pGG" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/lucky_strikes, -/obj/item/tool/lighter, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/door_control{ - id = "Execution Shutters"; - name = "Privacy Shutters"; - pixel_y = 12; - req_access_txt = "3" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) "pGK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -59114,34 +58926,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"pGN" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/aluminum{ - amount = 20 - }, -/obj/item/stack/sheet/copper{ - amount = 20; - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 3; - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 5; - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/phoron{ - amount = 25 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engineering_workshop/hangar) "pGP" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/lights/bulbs{ @@ -59155,6 +58939,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) +"pHc" = ( +/obj/structure/machinery/autolathe, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "pHp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) @@ -59173,13 +58963,15 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"pIf" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 +"pId" = ( +/obj/item/storage/box/nade_box/tear_gas, +/obj/item/storage/box/nade_box/tear_gas{ + pixel_x = 3; + pixel_y = 5 }, -/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/lower_engineering) +/area/almayer/shipboard/brig/armory) "pIk" = ( /obj/structure/ladder{ height = 1; @@ -59191,18 +58983,6 @@ }, /turf/open/floor/plating/almayer, /area/almayer/hull/lower_hull/l_a_s) -"pIH" = ( -/obj/structure/machinery/door_control{ - id = "perma_exit"; - name = "\improper Exit Shutters"; - pixel_y = -22; - req_access_txt = "3" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) "pIU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -59217,49 +58997,67 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"pIX" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"pIZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"pJb" = ( -/obj/structure/bed/chair{ - dir = 8 +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/lifeboat_pumps/north1) +"pJr" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) +"pJt" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/living/grunt_rnr) -"pJi" = ( -/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/general_equipment) -"pJE" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Execution Firearms" +/area/almayer/hull/lower_hull/stern) +"pJv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, /turf/open/floor/almayer{ dir = 8; icon_state = "redcorner" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/shipboard/brig/main_office) +"pJD" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/item/tool/soap, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "pJJ" = ( /turf/open/floor/almayer{ dir = 1; @@ -59304,13 +59102,26 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) -"pLv" = ( -/obj/structure/device/broken_moog, -/obj/effect/decal/cleanable/blood/splatter, +"pLa" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/engineering/upper_engineering/starboard) +/area/almayer/command/corporateliaison) +"pLt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "pLO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -59344,12 +59155,27 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"pMk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) "pMp" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/medical/morgue) +"pMA" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "pMJ" = ( /obj/structure/bed/chair{ dir = 1 @@ -59377,6 +59203,28 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"pNk" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/bodybags{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/box/bodybags, +/obj/structure/machinery/light/small{ + dir = 4; + pixel_y = -12 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32; + pixel_y = 17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) "pNp" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -59412,17 +59260,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"pNQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "pOi" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -59496,12 +59333,22 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"pPF" = ( -/obj/structure/machinery/power/apc/almayer/hardened, +"pPA" = ( +/obj/structure/sign/poster{ + desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; + icon_state = "poster12"; + name = "Beach Babe Pinup"; + pixel_x = 27; + serial_number = 12 + }, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/lifeboat_pumps/south2) +/area/almayer/living/briefing) "pPM" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -59516,22 +59363,12 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) -"pQq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/effect/decal/cleanable/blood/oil, +"pQr" = ( +/obj/structure/bed, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) -"pQu" = ( -/obj/structure/machinery/chem_dispenser/soda{ - pixel_y = 20 + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) +/area/almayer/shipboard/brig/perma) "pQy" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -59619,12 +59456,43 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) +"pRT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 8; + name = "\improper Tool Closet" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/port_emb) "pRX" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ icon_state = "test_floor5" }, /area/almayer/medical/hydroponics) +"pRY" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) +"pRZ" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop) "pSL" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -59634,6 +59502,14 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"pSQ" = ( +/obj/structure/reagent_dispensers/fueltank{ + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "pSU" = ( /obj/structure/machinery/light, /obj/structure/machinery/photocopier, @@ -59680,12 +59556,6 @@ icon_state = "mono" }, /area/almayer/command/computerlab) -"pUe" = ( -/obj/structure/machinery/power/apc/almayer/hardened, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) "pUf" = ( /obj/structure/bed/chair{ dir = 4 @@ -59709,6 +59579,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) +"pUj" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "pUp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -59722,6 +59596,12 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) +"pUv" = ( +/obj/structure/machinery/power/smes/buildable, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/almayer/engineering/lower/engine_core) "pUA" = ( /obj/structure/surface/table/almayer, /obj/structure/window/reinforced/ultra{ @@ -59736,6 +59616,16 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"pUD" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/shipboard/brig/processing) "pUJ" = ( /turf/closed/wall/almayer, /area/almayer/hull/upper_hull/u_f_p) @@ -59765,19 +59655,7 @@ }, /area/almayer/hull/lower_hull/l_f_p) "pVx" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -59821,21 +59699,6 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"pWf" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 2; - name = "\improper Engineering Workshop" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engineering_workshop) "pWr" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -59874,31 +59737,12 @@ icon_state = "green" }, /area/almayer/squads/req) -"pWG" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "pWN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"pXj" = ( -/obj/structure/closet/radiation, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "pXl" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -59988,18 +59832,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"pYF" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"pYS" = ( +/obj/structure/pipes/binary/pump/on{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "red" + dir = 1; + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower) "pYX" = ( /turf/open/floor/almayer{ dir = 8; @@ -60012,12 +59853,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_umbilical) +"pZH" = ( +/obj/structure/machinery/shower{ + dir = 8 + }, +/obj/structure/machinery/door/window/westright, +/obj/structure/window/reinforced/tinted/frosted, +/obj/item/tool/soap/deluxe, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/corporateliaison) "pZK" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) +"pZR" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "pZS" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ @@ -60025,19 +59883,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"pZV" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "qam" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -60049,31 +59894,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"qau" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/landmark/start/warrant, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/cryo) "qaD" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"qaJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/execution) "qaV" = ( /turf/open/floor/almayer{ dir = 10; @@ -60105,12 +59931,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"qbt" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, -/area/almayer/shipboard/brig/surgery) "qbx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -60130,6 +59950,15 @@ icon_state = "redcorner" }, /area/almayer/living/briefing) +"qbD" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "qbO" = ( /turf/open/floor/almayer{ dir = 6; @@ -60164,21 +59993,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"qcq" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/waterhazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/rewire{ - pixel_y = 32; - pixel_x = 14 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north1) "qcy" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; @@ -60206,6 +60020,38 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"qdv" = ( +/obj/item/bedsheet/purple{ + layer = 3.2 + }, +/obj/item/bedsheet/purple{ + pixel_y = 13 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/clothing/head/beret/royal_marine, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "emerald" + }, +/area/almayer/living/port_emb) "qdz" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -60229,6 +60075,16 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"qec" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "qee" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -60243,6 +60099,21 @@ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) +"qep" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + access_modified = 1; + dir = 2; + name = "\improper Field Surgery Equipment"; + req_access_txt = "20"; + req_one_access = null + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/medical/lower_medical_medbay) "qer" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -60329,15 +60200,12 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) -"qfR" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"qfD" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "qga" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ dir = 1 @@ -60346,6 +60214,23 @@ icon_state = "test_floor4" }, /area/almayer/living/starboard_garden) +"qgr" = ( +/obj/item/trash/plate{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/reagent_container/food/snacks/carpmeat{ + layer = 3.3; + pixel_x = 8; + pixel_y = 11 + }, +/obj/item/reagent_container/food/snacks/carpmeat{ + layer = 3.3; + pixel_x = 8; + pixel_y = 11 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "qgG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -60387,6 +60272,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) +"qgU" = ( +/obj/structure/machinery/power/apc/almayer/hardened, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "qhb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -60425,6 +60320,18 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"qhD" = ( +/obj/structure/closet{ + name = "backpack storage" + }, +/obj/item/storage/backpack/marine/grenadepack, +/obj/item/storage/backpack/marine/grenadepack, +/obj/item/storage/backpack/marine/mortarpack, +/obj/item/storage/backpack/marine/mortarpack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop/hangar) "qhU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -60449,10 +60356,6 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull) -"qif" = ( -/obj/structure/sign/dartboard, -/turf/closed/wall/almayer, -/area/almayer/hallways/hangar) "qih" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -60524,18 +60427,69 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"qjZ" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/stern_point_defense) +"qkb" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_p) "qki" = ( /obj/effect/landmark/start/marine/smartgunner/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) "qkn" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"qkP" = ( +/obj/item/frame/light_fixture{ + anchored = 1; + desc = "A broken fluorescent tube light."; + dir = 8; + icon_state = "tube-broken"; + name = "broken light fixture" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) +"qkY" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -8; + pixel_y = -1 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 9 + }, +/obj/item/tool/pen{ + pixel_x = 5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "qld" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -60543,6 +60497,23 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/starboard_umbilical) +"qlm" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"qlp" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/prop/tableflag/uscm{ + pixel_x = -5 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_x = 5 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "qlz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -60552,6 +60523,29 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/sea_office) +"qlI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"qlS" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -7; + pixel_y = 17 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = 12; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "qmk" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -60566,19 +60560,6 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"qmt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "qmy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -60622,7 +60603,8 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Brig" + name = "\improper Brig"; + closeOtherId = "brigmaint_n" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -60640,36 +60622,43 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"qmE" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/machinery/door_control{ - id = "perma_lockdown"; - name = "\improper Perma Cells Lockdown"; - pixel_x = 24; - pixel_y = 6; - req_access_txt = "3" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"qmL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) "qmP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"qmX" = ( -/obj/structure/toilet{ - dir = 1 +"qmR" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 }, +/obj/structure/bed/chair/bolted, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "plating_striped" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/shipboard/brig/execution) +"qmU" = ( +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/item/vehicle_clamp, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) +"qmY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "qnd" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -60727,15 +60716,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"qof" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 8; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) "qom" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda{ @@ -60772,13 +60752,24 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"qoX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"qoL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder/industrial{ + pixel_y = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) +"qoR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "qoY" = ( /obj/structure/machinery/vending/hydroseeds, /turf/open/floor/almayer{ @@ -60803,14 +60794,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"qpU" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) "qqn" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -60819,22 +60802,10 @@ /turf/open/floor/wood/ship, /area/almayer/living/basketball) "qqr" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -60845,21 +60816,23 @@ icon_state = "redcorner" }, /area/almayer/command/lifeboat) +"qqC" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/main_office) "qqK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) -"qqN" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qqQ" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood{ density = 0; @@ -60878,6 +60851,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"qqV" = ( +/obj/structure/machinery/cm_vending/clothing/military_police_warden, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) +"qqW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) +"qra" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "qrc" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos. Studies say that greenery calms the mind due to some sort evolved mechanism in the brain. This plant is not calming."; @@ -60890,15 +60880,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"qre" = ( -/obj/structure/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qrv" = ( /turf/open/floor/almayer{ icon_state = "silver" @@ -60918,36 +60899,50 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) -"qsF" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "qsL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/ce_room) +"qtj" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) +"qtn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/port_hallway) "qtv" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/gym) -"qtR" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/lifeboat) "qtS" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) +"quj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) "quq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -60969,6 +60964,20 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/cryo_tubes) +"quy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/lifeboat) "quI" = ( /obj/structure/machinery/door_control{ id = "laddersouthwest"; @@ -60988,6 +60997,18 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) +"quJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) +"quS" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "quT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -61014,14 +61035,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"qvf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cryo) "qvC" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -61034,6 +61047,21 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"qvL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Weyland-Yutani Office" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/office/door, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/corporateliaison) "qwo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -61080,6 +61108,25 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"qxe" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 3"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) "qxm" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -61092,6 +61139,19 @@ }, /turf/closed/wall/almayer/research/containment/wall/purple, /area/almayer/medical/containment/cell) +"qxr" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) "qxz" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -61153,11 +61213,6 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"qyd" = ( -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/perma) "qyi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -61182,16 +61237,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"qyz" = ( -/obj/structure/machinery/computer/cameras/containment/hidden{ - dir = 4; - pixel_x = -17 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/photo_album, -/obj/item/device/camera_film, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "qyD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -61215,12 +61260,12 @@ }, /area/almayer/hallways/vehiclehangar) "qyK" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/living/grunt_rnr) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "qyW" = ( /obj/structure/bed/chair{ dir = 4 @@ -61252,6 +61297,15 @@ icon_state = "plating" }, /area/almayer/shipboard/port_point_defense) +"qAs" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "qAA" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -61263,6 +61317,15 @@ icon_state = "mono" }, /area/almayer/engineering/ce_room) +"qAB" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 5 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "qAT" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -61285,6 +61348,29 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"qBq" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Bathroom" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/commandbunks) +"qBM" = ( +/obj/item/storage/fancy/crayons{ + layer = 3.1; + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/living/grunt_rnr) "qCc" = ( /obj/structure/sign/safety/security{ pixel_x = 15; @@ -61295,27 +61381,10 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qCg" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/engineering/upper_engineering/port) "qCi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) "qCo" = ( @@ -61335,6 +61404,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"qCU" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 32; + pixel_y = -22 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "qDq" = ( /obj/effect/landmark/start/marine/bravo, /obj/effect/landmark/late_join/bravo, @@ -61417,6 +61504,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"qEA" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 4"; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/cells) +"qEL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/largecrate/random/case/small{ + pixel_y = 5 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "qEW" = ( /obj/structure/sign/poster/ad{ pixel_x = 30 @@ -61435,6 +61546,12 @@ icon_state = "green" }, /area/almayer/hallways/starboard_hallway) +"qFi" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "qFl" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/hull/upper_hull/u_f_p) @@ -61447,6 +61564,13 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"qFE" = ( +/obj/structure/machinery/brig_cell/cell_5{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "qFG" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -61468,15 +61592,6 @@ icon_state = "bluefull" }, /area/almayer/squads/delta) -"qFQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "qFW" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -61492,12 +61607,35 @@ icon_state = "red" }, /area/almayer/squads/alpha_bravo_shared) +"qGf" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/lobby) +"qGw" = ( +/obj/structure/reagent_dispensers/ammoniatank{ + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "qGF" = ( /obj/structure/machinery/optable, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_two) +"qGU" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/lifeboat_pumps/south2) "qHb" = ( /obj/structure/bed/chair{ dir = 8 @@ -61540,17 +61678,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"qHF" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/bodybags{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/box/bodybags, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) "qHM" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -61561,6 +61688,17 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"qIx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + req_access_txt = "200"; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/backdoor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/corporateliaison) "qIL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/camera/autoname/almayer{ @@ -61582,16 +61720,10 @@ }, /area/almayer/medical/medical_science) "qJf" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/weapon/gun/shotgun/combat, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/ammo_magazine/shotgun/buckshot, /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -61606,6 +61738,16 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"qJo" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "qJx" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/almayer{ @@ -61696,6 +61838,16 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) +"qKt" = ( +/obj/structure/closet/emcloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hull/upper_hull/u_f_s) "qKz" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -61724,6 +61876,22 @@ icon_state = "greencorner" }, /area/almayer/hallways/port_hallway) +"qKY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/port) +"qLg" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "qLi" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -61814,20 +61982,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"qMe" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/item/tool/minihoe{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/reagent_container/glass/fertilizer/ez, -/obj/item/seeds/ambrosiavulgarisseed, -/obj/item/tool/plantspray/weeds, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "qMf" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -61837,6 +61991,19 @@ "qMu" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/upper_hull/u_a_p) +"qMD" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/flashbangs, +/obj/item/storage/box/flashbangs{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = -8; + pixel_y = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "qMP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -61865,16 +62032,6 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"qNv" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/pen, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "qNy" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ @@ -61891,6 +62048,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) +"qNI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "qNR" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -61966,6 +62132,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"qPX" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/command/lifeboat) "qQc" = ( /obj/structure/closet/secure_closet/personal/patient{ name = "morgue closet" @@ -61983,18 +62158,13 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"qQM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"qQy" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "qQP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62036,33 +62206,19 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"qRo" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"qRT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) -"qSl" = ( +"qRr" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/machinery/door/poddoor/shutters/almayer/cl/quarter/door, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/command/corporateliaison) "qSm" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -62097,6 +62253,14 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"qTQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "qTY" = ( /obj/structure/machinery/gibber, /turf/open/floor/plating/plating_catwalk, @@ -62107,14 +62271,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_umbilical) -"qUb" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "qUh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -62148,6 +62304,32 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"qUx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"qUz" = ( +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) +"qUE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_s) "qUH" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -62165,6 +62347,22 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"qUZ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "MTline"; + name = "Next button"; + pixel_x = 5; + pixel_y = 10; + req_one_access_txt = "2;7" + }, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "qVC" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ @@ -62228,6 +62426,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"qWQ" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "qWR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 4 @@ -62239,6 +62446,11 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"qXk" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "qXo" = ( /obj/structure/machinery/seed_extractor, /obj/structure/machinery/light{ @@ -62249,17 +62461,22 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"qXx" = ( -/obj/structure/platform, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"qXp" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + pixel_x = 15 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "bluefull" + }, +/area/almayer/living/briefing) +"qXE" = ( +/obj/structure/machinery/brig_cell/perma_1{ + pixel_x = 32 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "qXM" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -62268,6 +62485,40 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) +"qXO" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/snacks/mre_pack/xmas3{ + pixel_x = 5 + }, +/obj/item/reagent_container/food/snacks/mre_pack/xmas2{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/effect/landmark/map_item{ + layer = 3.03; + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"qXR" = ( +/turf/closed/wall/almayer, +/area/almayer/hull/lower_hull/stern) +"qXS" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/port) "qXZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -62284,6 +62535,20 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"qYo" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 6" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"qYq" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) "qYr" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down3"; @@ -62327,20 +62592,6 @@ icon_state = "mono" }, /area/almayer/command/lifeboat) -"qYH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/obj/structure/machinery/door/airlock/almayer/security/reinforced{ - name = "\improper Execution Equipment" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/execution) "qYN" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -62382,13 +62633,33 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qZg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"qZA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ dir = 8; - icon_state = "redcorner" + icon_state = "red" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/shipboard/brig/chief_mp_office) +"qZF" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/machinery/door_control{ + id = "perma_lockdown_1"; + name = "\improper Perma Cells Lockdown"; + pixel_x = -8; + pixel_y = -4; + req_access_txt = "3" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "qZH" = ( /obj/structure/surface/table/almayer, /obj/item/paper{ @@ -62407,15 +62678,12 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) -"rag" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"rae" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "rav" = ( /obj/structure/platform{ dir = 4 @@ -62440,12 +62708,22 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"rbp" = ( -/obj/structure/largecrate/random/case/small, +"rbi" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/ids{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/device/flash, +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/shipboard/brig/main_office) "rbv" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -62492,6 +62770,18 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) +"rbK" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/execution) "rbX" = ( /obj/structure/sign/safety/manualopenclose{ pixel_x = 15; @@ -62576,6 +62866,16 @@ }, /turf/open/floor/almayer/research/containment/corner4, /area/almayer/medical/containment/cell) +"rdA" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17; + pixel_y = -34 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "rdI" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/technology_scanner, @@ -62587,6 +62887,18 @@ "rdK" = ( /turf/closed/wall/almayer, /area/almayer/hull/lower_hull/l_a_s) +"rdM" = ( +/obj/structure/machinery/vending/snack, +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) "rdS" = ( /obj/structure/machinery/light{ dir = 8 @@ -62610,6 +62922,15 @@ icon_state = "blue" }, /area/almayer/hallways/port_hallway) +"rec" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "ren" = ( /obj/structure/machinery/light{ dir = 4 @@ -62670,6 +62991,36 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"rfT" = ( +/obj/item/frame/camera{ + desc = "The Staff Officer insisted he needed to monitor everyone at all times."; + layer = 2.9; + name = "broken camera"; + pixel_x = -7; + pixel_y = -6 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) +"rfY" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 8; + invisibility = 101 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/cryo) "rgy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -62682,24 +63033,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_p) -"rgJ" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/obj/item/bananapeel{ - desc = "An experimental B8 Smart-Scope. Based on the technologies used in the Smart Gun by ARMAT, this sight has integrated IFF systems. It can only attach to the L42A Battle Rifle, M44 Combat Revolver, and M46C Pulse Rifle. This one appears to be covered in gun oil"; - icon = 'icons/obj/items/weapons/guns/attachments.dmi'; - icon_state = "iffbarrel"; - name = "Broken B8 Smart-Scope"; - pixel_x = -1; - pixel_y = 11 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "rgK" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -62724,6 +63057,31 @@ icon_state = "emeraldcorner" }, /area/almayer/living/briefing) +"rhl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/main_office) +"rhy" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/structure/prop/server_equipment/laptop{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "rhO" = ( /obj/structure/machinery/vending/cola/research{ pixel_x = 4 @@ -62738,19 +63096,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"riA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"rib" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) +"ril" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/engineering/engine_core) +/area/almayer/hull/lower_hull/l_m_p) "riE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -62785,14 +63151,15 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"riQ" = ( -/obj/item/device/multitool, -/obj/structure/platform_decoration, +"riT" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, -/area/almayer/engineering/engine_core) +/area/almayer/shipboard/stern_point_defense) "rjn" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/water_cooler/stacks, @@ -62800,25 +63167,60 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"rjw" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "rjG" = ( /obj/structure/pipes/standard/tank/oxygen, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"rjH" = ( -/obj/structure/surface/rack, -/obj/item/storage/beer_pack, +"rjO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) +"rjV" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/wooden_tv/prop{ + dir = 8; + layer = 3.2; + pixel_x = -3; + pixel_y = 6 + }, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = 27; + serial_number = 11 + }, +/obj/item/trash/pistachios{ + layer = 2; + pixel_x = 6; + pixel_y = -6 + }, +/obj/structure/machinery/recharger{ + layer = 3.1; + pixel_y = 22 + }, +/obj/item/ammo_magazine/rifle/incendiary{ + current_rounds = 0; + desc = "A 10mm assault rifle magazine with ':D' drawn on the side"; + pixel_x = 10; + pixel_y = 2 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "blue" }, -/area/almayer/command/corporateliason) +/area/almayer/living/port_emb) "rka" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -62831,19 +63233,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"rkh" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 1L"; - name = "\improper cell shutter" - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Isolation Cell" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/perma) "rku" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/wrench{ @@ -62862,21 +63251,14 @@ /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/living/gym) -"rkK" = ( +"rlc" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) -"rkL" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 2; - id = "Warden Office Shutters"; - name = "\improper Privacy Shutters" + dir = 8; + icon_state = "orange" }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "rlf" = ( /obj/structure/machinery/cm_vending/clothing/synth/snowflake, /turf/open/floor/almayer{ @@ -62920,15 +63302,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"rlG" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "rlQ" = ( /turf/open/floor/almayer{ dir = 1; @@ -62972,12 +63345,31 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/main_office) +"rmx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, +/obj/item/device/flash, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) "rmD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"rmE" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/engineering/upper_engineering/port) "rmN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -62985,9 +63377,19 @@ "rna" = ( /turf/closed/wall/almayer/white, /area/almayer/command/airoom) -"rne" = ( -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +"rnF" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Engineering Workshop" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop) "rnH" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -63091,6 +63493,15 @@ /obj/effect/landmark/start/executive, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/bridgebunks) +"rpF" = ( +/obj/structure/machinery/body_scanconsole{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) "rpK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -63148,19 +63559,21 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"rra" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2L"; - name = "\improper cell shutter" +"rqS" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/red{ + pixel_x = -4 }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Isolation Cell" +/obj/item/folder/blue{ + pixel_x = 4 + }, +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/shipboard/brig/evidence_storage) "rri" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -63180,6 +63593,16 @@ icon_state = "red" }, /area/almayer/squads/alpha) +"rrz" = ( +/obj/structure/sign/safety/four{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 4"; + name = "Cell 4" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "rrB" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/reinforced{ name = "\improper Cryogenics Bay" @@ -63224,14 +63647,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"rsj" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "rsx" = ( /obj/structure/largecrate/random/barrel/red, /obj/structure/sign/safety/high_voltage{ @@ -63263,11 +63678,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"rsW" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/engineering/upper_engineering/port) "rsY" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -63347,6 +63757,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"rur" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "rux" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -63362,14 +63788,10 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"rvo" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/shipboard/brig/evidence_storage) +"ruL" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/turf/open/floor/plating, +/area/almayer/engineering/lower/workshop/hangar) "rvA" = ( /turf/open/floor/almayer, /area/almayer/living/numbertwobunks) @@ -63385,6 +63807,17 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"rwq" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 7; + pixel_y = -26 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "rwv" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/bravo, @@ -63392,6 +63825,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"rwB" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "rwS" = ( /obj/structure/machinery/light/small, /obj/structure/largecrate/random/case/double, @@ -63458,66 +63897,51 @@ }, /area/almayer/lifeboat_pumps/north1) "ryR" = ( -/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ - req_access = list(1) - }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/command/cic) -"rzf" = ( -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +"ryY" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/disposalpipe/down/almayer{ + dir = 1; + id = "almayerlink" }, -/area/almayer/command/airoom) -"rzj" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"rzN" = ( +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, +/area/almayer/medical/containment) +"rzP" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out" + icon_state = "SE-out" }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Brig"; - req_access = null; - req_one_access_txt = "1;3" +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) -"rzM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +/area/almayer/hull/upper_hull/u_a_s) +"rzY" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cic_hallway) -"rzN" = ( /turf/open/floor/almayer{ - icon_state = "dark_sterile" + dir = 1; + icon_state = "red" }, -/area/almayer/medical/containment) +/area/almayer/shipboard/brig/main_office) "rAb" = ( /turf/open/floor/almayer{ icon_state = "bluecorner" }, /area/almayer/living/briefing) -"rAv" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/cells) "rAx" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -63560,6 +63984,20 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"rAX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "rBa" = ( /obj/structure/machinery/cm_vending/clothing/synth, /obj/structure/prop/invuln/overhead_pipe{ @@ -63593,6 +64031,12 @@ icon_state = "orange" }, /area/almayer/hallways/port_umbilical) +"rBv" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "rBx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/stamp/ro{ @@ -63627,6 +64071,16 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"rCl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "rCp" = ( /obj/structure/largecrate/random/case/small, /obj/structure/machinery/light/small{ @@ -63670,54 +64124,52 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"rCL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "rCO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) "rCU" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 2; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Warden's Office"; + closeOtherId = "brigwarden" }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/cic_hallway) +/area/almayer/shipboard/brig/chief_mp_office) "rDb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"rDd" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/machinery/computer/emails{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "rDe" = ( /obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/kepler_crisps{ +/obj/structure/sign/safety/cryo{ pixel_x = 8; - pixel_y = 4 + pixel_y = 33 }, /obj/item/toy/deck{ pixel_x = -4; - pixel_y = 1 + pixel_y = 10 }, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = 33 +/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ + pixel_x = 9; + pixel_y = 12 + }, +/obj/item/ashtray/plastic{ + pixel_y = -4 + }, +/obj/item/trash/cigbutt{ + pixel_x = 1; + pixel_y = 5 }, /turf/open/floor/almayer{ dir = 6; @@ -63758,12 +64210,65 @@ icon_state = "plate" }, /area/almayer/living/offices) +"rDy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"rDB" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 13" + }, +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"rDI" = ( +/obj/structure/largecrate/supply, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_s) +"rDQ" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/cryo) "rDV" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) +"rDY" = ( +/obj/item/stack/sheet/glass/reinforced{ + amount = 50 + }, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/structure/surface/rack, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/chief_mp_office) +"rEb" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/stern) "rEf" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -63775,17 +64280,11 @@ /turf/open/floor/almayer, /area/almayer/living/briefing) "rEm" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/item/spacecash/c500{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/ashtray/bronze{ - pixel_x = -13; - pixel_y = -4 +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) +/turf/open/floor/almayer, +/area/almayer/engineering/lower) "rEn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/adv{ @@ -63830,14 +64329,41 @@ icon_state = "silverfull" }, /area/almayer/command/computerlab) +"rEO" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"rEQ" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) "rEY" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/deck, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"rFg" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/chief_mp_office) "rFs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/black, @@ -63849,15 +64375,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"rFu" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "rFy" = ( /turf/open/floor/almayer{ dir = 1; @@ -63892,6 +64409,15 @@ icon_state = "orange" }, /area/almayer/hallways/stern_hallway) +"rGg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/hallways/port_hallway) "rGj" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -63928,6 +64454,13 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"rGU" = ( +/obj/structure/machinery/computer/skills{ + req_one_access_txt = "200" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "rHc" = ( /turf/open/floor/carpet, /area/almayer/command/cichallway) @@ -64074,6 +64607,16 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"rJj" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "rJu" = ( /turf/open/floor/almayer{ dir = 1; @@ -64100,6 +64643,39 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/briefing) +"rJN" = ( +/obj/structure/sign/safety/rewire{ + pixel_y = 32 + }, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/brown{ + pixel_y = 13 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "rKd" = ( /turf/open/floor/almayer/uscm/directional{ dir = 5 @@ -64165,25 +64741,90 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"rLp" = ( +/obj/structure/machinery/chem_dispenser/soda{ + pixel_y = 20 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) "rLv" = ( /turf/closed/wall/almayer/research/containment/wall/purple{ dir = 4; icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) -"rLF" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 +"rLP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/living/briefing) "rLU" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 8 }, /area/almayer/medical/containment/cell/cl) +"rMT" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/command/corporateliaison) +"rNa" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/paper_bin/uscm{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/item/tool/pen/clicky{ + pixel_x = -13; + pixel_y = -1 + }, +/obj/item/tool/pen/clicky{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/structure/machinery/door_control{ + id = "CO-Office"; + name = "Door Control"; + normaldoorcontrol = 1; + pixel_y = 7; + req_access_txt = "31" + }, +/obj/item/ashtray/bronze{ + pixel_x = 12; + pixel_y = 1 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"rNb" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/machinery/door_control{ + id = "Alpha_2"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 23; + specialfunctions = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "rNF" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -64193,23 +64834,12 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"rNW" = ( -/obj/structure/machinery/door_control{ - id = "Secretroom"; - indestructible = 1; - layer = 2.5; - name = "Shutters"; - use_power = 0 - }, -/obj/structure/prop/almayer/computers/sensor_computer1, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, +"rNK" = ( +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/engineering/lower/workshop/hangar) "rOc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64245,6 +64875,13 @@ icon_state = "plate" }, /area/almayer/command/cic) +"rOI" = ( +/obj/structure/pipes/vents/pump{ + dir = 8; + id_tag = "mining_outpost_pump" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "rOJ" = ( /obj/structure/barricade/handrail, /obj/structure/disposalpipe/segment, @@ -64252,19 +64889,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"rPh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/vending/cigarette{ - density = 0; - pixel_y = 16 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) "rPt" = ( /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) @@ -64288,6 +64912,27 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"rPQ" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Hallway" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower) +"rQc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "rQj" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ @@ -64298,7 +64943,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/obj/structure/disposalpipe/junction, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "rQy" = ( @@ -64341,20 +64986,23 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"rQY" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Cell 3"; - pixel_x = 24 +"rRq" = ( +/turf/closed/wall/almayer, +/area/almayer/lifeboat_pumps/south2) +"rRr" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/toy/deck/uno, +/obj/item/toy/deck{ + pixel_x = -9 }, /turf/open/floor/almayer{ - dir = 6; + dir = 1; icon_state = "red" }, -/area/almayer/shipboard/brig/cells) -"rRq" = ( -/turf/closed/wall/almayer, -/area/almayer/lifeboat_pumps/south2) +/area/almayer/shipboard/brig/main_office) "rRz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -64362,14 +65010,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"rRQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "rRU" = ( /obj/structure/machinery/light{ dir = 8 @@ -64422,45 +65062,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"rSH" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/shipboard/brig/lobby) "rSK" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"rSW" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "rTk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"rTt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/chief_mp_office) "rTJ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer{ @@ -64473,18 +65086,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) -"rTY" = ( -/obj/structure/transmitter{ - name = "Requisition Telephone"; - phone_category = "Almayer"; - phone_id = "Requisition"; - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/squads/req) "rTZ" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -64514,17 +65115,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"rUB" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/item/tool/soap, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/cells) "rUU" = ( /obj/structure/machinery/door/airlock/almayer/maint{ req_access = null; @@ -64539,6 +65129,16 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_s) +"rVm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/main_office) "rVo" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -64553,6 +65153,18 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"rWn" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "CMP Office Shutters"; + name = "\improper Privacy Shutters" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/chief_mp_office) "rWs" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -64560,6 +65172,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"rWF" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 21 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "rWL" = ( /obj/structure/barricade/metal, /turf/open/floor/almayer{ @@ -64605,13 +65227,6 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) -"rXC" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) "rXS" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -64624,6 +65239,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"rYh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "rYi" = ( /obj/structure/bed/chair, /obj/structure/machinery/power/apc/almayer{ @@ -64666,6 +65287,17 @@ icon_state = "plate" }, /area/almayer/living/offices/flight) +"rZz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -30 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/starboard_hallway) "rZB" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -64693,43 +65325,14 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) -"rZR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) -"sah" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"saB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"saW" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +"saL" = ( +/obj/structure/machinery/door/airlock/almayer/generic/corporate{ + name = "Corporate Liaison's Closet" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/command/corporateliaison) "sbq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -64751,6 +65354,14 @@ icon_state = "green" }, /area/almayer/squads/req) +"sbP" = ( +/obj/effect/landmark/start/police, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "scg" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -64795,14 +65406,19 @@ icon_state = "outerhull_dir" }, /area/space) -"scD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"scE" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "scH" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64816,6 +65432,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"scN" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "scS" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -64830,6 +65454,16 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"sdf" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "sdl" = ( /obj/structure/surface/rack{ density = 0; @@ -64852,20 +65486,6 @@ icon_state = "sterile" }, /area/almayer/medical/upper_medical) -"sdq" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - layer = 3.1; - pixel_x = -8 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "sdu" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -64873,6 +65493,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"sdv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "sdw" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -64887,16 +65517,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sdF" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/processing) "sdO" = ( /obj/structure/ladder{ height = 1; @@ -64919,12 +65539,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) -"sfU" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, +"sfT" = ( /turf/open/floor/almayer, -/area/almayer/engineering/lower_engineering) +/area/almayer/hallways/upper/port) +"sfV" = ( +/obj/structure/machinery/alarm/almayer, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "sgc" = ( /obj/structure/closet/crate/freezer/cooler{ pixel_x = -7 @@ -64963,6 +65584,48 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) +"sgm" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/hotdog{ + pixel_x = -7; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"sgs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_x = -17; + pixel_y = 7 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "sgw" = ( /obj/structure/surface/table/almayer, /obj/item/prop/almayer/flight_recorder{ @@ -64986,12 +65649,25 @@ icon_state = "plating" }, /area/almayer/hull/lower_hull/l_f_s) -"sgM" = ( -/obj/structure/closet/toolcloset, +"sgD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "bluefull" + }, +/area/almayer/living/briefing) +"sgE" = ( +/obj/structure/bed, +/obj/structure/machinery/flasher{ + id = "Cell 3"; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" }, -/area/almayer/engineering/engine_core) +/area/almayer/shipboard/brig/cells) "sgR" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck{ @@ -65008,10 +65684,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"shb" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) "shh" = ( /obj/structure/machinery/autolathe, /turf/open/floor/almayer, @@ -65055,15 +65727,17 @@ /obj/structure/largecrate/random/barrel/green, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) -"sip" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30 +"shL" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/toolbox/electrical, +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "siz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/hangar{ @@ -65080,6 +65754,21 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"siN" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Nitrogen Control Console" + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "siW" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -65125,15 +65814,22 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"skg" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"sjz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" + icon_state = "mono" }, -/area/almayer/engineering/upper_engineering/starboard) +/area/almayer/lifeboat_pumps/north2) +"skj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "skl" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -65147,11 +65843,52 @@ icon_state = "plating_striped" }, /area/almayer/shipboard/sea_office) +"skq" = ( +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/surgery) +"skC" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 6 + }, +/obj/structure/machinery/meter, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "skF" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"skL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) +"skR" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/obj/structure/closet/secure_closet/cmdcabinet{ + desc = "A bulletproof cabinet containing communications equipment."; + name = "communications cabinet"; + pixel_y = 24; + req_access = null; + req_one_access_txt = "207;203" + }, +/obj/item/device/radio, +/obj/item/device/radio/listening_bug/radio_linked/wy, +/obj/item/device/radio/listening_bug/radio_linked/wy{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "sld" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65163,6 +65900,19 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_lobby) +"slf" = ( +/obj/structure/machinery/brig_cell/cell_6{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) +"slF" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "slP" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -65188,12 +65938,32 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"smr" = ( +"smW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engineering_workshop) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"smZ" = ( +/obj/structure/window/framed/almayer/hull/hijack_bustable, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/chief_mp_office) "snb" = ( /obj/structure/ladder{ height = 1; @@ -65219,6 +65989,12 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"snt" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "snw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -65245,6 +66021,27 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) +"snI" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = -17 + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Delta Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Delta Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "snM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65264,16 +66061,16 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"soa" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "Bathroom" +"snX" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 16; + pixel_y = 27 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 9; + icon_state = "red" }, -/area/almayer/shipboard/brig/cells) +/area/almayer/shipboard/brig/processing) "soq" = ( /obj/structure/machinery/computer/working_joe{ dir = 4; @@ -65304,6 +66101,12 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"sov" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) "sow" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -65318,14 +66121,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"soD" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "soK" = ( /obj/item/storage/firstaid/fire/empty, /obj/item/storage/firstaid/o2/empty, @@ -65368,12 +66163,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"soZ" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) "spF" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -65382,6 +66171,14 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"spH" = ( +/obj/structure/pipes/standard/simple/hidden/universal{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "spK" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -65400,18 +66197,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"spT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "sqa" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -65425,6 +66210,17 @@ "sqf" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/upper_medical) +"sqg" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering/lower) +"sql" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "sqo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -65444,30 +66240,17 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"srV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/surface/table/almayer, -/obj/item/toy/deck{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/paper_bin/uscm{ - pixel_x = -6; - pixel_y = 7 +"srT" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 }, -/obj/item/tool/pen{ - pixel_x = -6 +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Evidence Room" }, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/evidence_storage) "ssa" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "Hangar Lockdown"; @@ -65511,13 +66294,10 @@ }, /area/almayer/engineering/upper_engineering/starboard) "ssW" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/ammo_magazine/shotgun/buckshot, -/obj/item/weapon/gun/shotgun/combat, /obj/structure/machinery/light{ dir = 1 }, -/obj/item/ammo_magazine/shotgun/buckshot, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -65556,6 +66336,23 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) +"stu" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north1) +"stO" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/faxmachine/uscm/brig, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "stY" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -65570,6 +66367,25 @@ icon_state = "test_floor4" }, /area/almayer/hallways/starboard_hallway) +"suc" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + dir = 2; + name = "\improper Brig Armoury"; + req_access = null; + req_one_access_txt = "1;3"; + closeOtherId = "brignorth" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/main_office) "suk" = ( /obj/item/tool/weldingtool, /turf/open/floor/plating/plating_catwalk, @@ -65580,6 +66396,18 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"suJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "suT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65594,12 +66422,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"svd" = ( -/obj/structure/machinery/recharge_station, +"suY" = ( +/obj/structure/platform_decoration, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, -/area/almayer/engineering/engine_core) +/area/almayer/engineering/lower/engine_core) "svf" = ( /obj/structure/machinery/light{ dir = 1 @@ -65614,12 +66443,18 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"svp" = ( -/obj/structure/closet/emcloset, +"svC" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/smg/m39{ + pixel_y = 6 + }, +/obj/item/weapon/gun/smg/m39{ + pixel_y = -6 + }, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/lifeboat_pumps/south1) +/area/almayer/hull/upper_hull/u_m_s) "swn" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -65627,16 +66462,6 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/surgery) -"swo" = ( -/obj/structure/machinery/vending/security, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "swt" = ( /turf/open/floor/almayer{ icon_state = "greencorner" @@ -65720,6 +66545,41 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"sxE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) +"sxT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/m41a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/m41a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) +"sxW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/command/cichallway) "syH" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -65729,12 +66589,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"syM" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "syP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -65742,26 +66596,20 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"szm" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 10" - }, -/obj/structure/machinery/light{ - dir = 8 +"szf" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/coatrack{ + pixel_x = -5; + pixel_y = 1 }, -/area/almayer/engineering/engine_core) -"szy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + dir = 5 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "szE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -65793,12 +66641,30 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"szR" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/main_office) "szU" = ( /obj/structure/toilet{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/numbertwobunks) +"szX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/hull/upper_hull/u_a_s) "sAc" = ( /obj/structure/bed/chair{ dir = 8; @@ -65814,6 +66680,15 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"sAz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "sAA" = ( /obj/structure/machinery/light{ dir = 1 @@ -65825,47 +66700,19 @@ icon_state = "orange" }, /area/almayer/engineering/ce_room) -"sBp" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) -"sBF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - access_modified = 1; - dir = 1; - id_tag = "CO-Office"; - name = "\improper Commanding Officer's Office"; - req_access = null; - req_access_txt = "31" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/commandbunks) -"sBH" = ( +"sBg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/obj/structure/machinery/status_display{ - pixel_x = 32 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) +"sBo" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/execution) +/area/almayer/hull/upper_hull/u_f_s) "sBL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, @@ -65918,6 +66765,19 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"sCV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "sDu" = ( /obj/item/clothing/under/marine/dress, /turf/open/floor/almayer{ @@ -65930,6 +66790,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"sDA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "sDC" = ( /obj/structure/sign/safety/analysis_lab{ pixel_y = 26 @@ -65956,20 +66825,17 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sDQ" = ( -/obj/structure/machinery/light{ - dir = 8 +"sDV" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/port_hallway) -"sEa" = ( /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "red" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/shipboard/brig/main_office) "sEd" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ @@ -66059,11 +66925,34 @@ icon_state = "plate" }, /area/almayer/command/cic) +"sEZ" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/armory) "sFf" = ( /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/shipboard/starboard_missiles) +"sFh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/port_hallway) "sFC" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -66158,6 +67047,12 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) +"sHm" = ( +/obj/structure/disposalpipe/up/almayer{ + id = "almayerlink_OT_req" + }, +/turf/closed/wall/almayer, +/area/almayer/engineering/lower/workshop/hangar) "sHo" = ( /obj/structure/pipes/unary/outlet_injector{ dir = 8; @@ -66177,6 +67072,13 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"sHx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "sHM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -66210,11 +67112,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"sIw" = ( -/turf/open/floor/almayer{ - icon_state = "redfull" +"sIr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/evidence_storage) +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) "sIx" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, @@ -66255,26 +67158,10 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) -"sIY" = ( -/obj/structure/machinery/brig_cell/perma_1{ - pixel_x = -32; - pixel_y = 4 - }, -/obj/structure/machinery/door_control{ - id = "Perma 1L"; - name = "Perma 1 Lockdown"; - pixel_x = -24; - pixel_y = -12; - req_access_txt = "3" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) +"sJm" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "sJC" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -66284,6 +67171,34 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"sJI" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/aluminum{ + amount = 20 + }, +/obj/item/stack/sheet/copper{ + amount = 20; + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 3; + pixel_y = 4 + }, +/obj/item/stack/sheet/mineral/silver{ + amount = 5; + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/phoron{ + amount = 25 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "sJY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -66299,6 +67214,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) +"sKM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "sKY" = ( /obj/structure/bed/chair/office/dark{ dir = 8; @@ -66318,6 +67241,13 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"sLA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "sLE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -66332,6 +67262,15 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_m_s) +"sMu" = ( +/obj/item/trash/uscm_mre, +/obj/structure/bed/chair/comfy/charlie{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "sMM" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" @@ -66358,6 +67297,12 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"sNI" = ( +/obj/structure/bed/chair/comfy/delta, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "sNO" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -66400,6 +67345,16 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"sOv" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/structure/machinery/door_control/cl/quarter/windows{ + pixel_x = 11; + pixel_y = 37 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "sOw" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -66424,22 +67379,10 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "sOZ" = ( -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/ammo_magazine/pistol, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/item/weapon/gun/pistol/m4a3, -/obj/structure/closet/secure_closet/guncabinet/red, /obj/structure/sign/safety/ammunition{ pixel_y = 32 }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, /turf/open/floor/almayer{ icon_state = "redfull" }, @@ -66456,15 +67399,13 @@ icon_state = "plate" }, /area/almayer/living/offices) -"sPA" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" +"sPF" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "sPJ" = ( /obj/structure/machinery/firealarm{ dir = 4; @@ -66480,30 +67421,12 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) -"sQL" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "sQO" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/lifeboat) -"sQS" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/stamp{ - pixel_x = 3; - pixel_y = 10 - }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "sQU" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -66564,28 +67487,42 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"sSm" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) "sSC" = ( /turf/open/floor/almayer{ dir = 6; icon_state = "blue" }, /area/almayer/squads/delta) -"sSR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 +"sSG" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = -17 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Charlie Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Charlie Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = 7 }, /turf/open/floor/almayer{ - icon_state = "redfull" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/command/cic) +"sSP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "sSY" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -66708,7 +67645,7 @@ pixel_y = -32 }, /turf/open/floor/almayer{ - icon_state = "greencorner" + icon_state = "green" }, /area/almayer/hallways/port_hallway) "sVi" = ( @@ -66718,12 +67655,47 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) -"sVy" = ( -/obj/structure/machinery/power/apc/almayer{ +"sVT" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"sVV" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) +"sWs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hull/upper_hull/u_f_p) +"sWC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/upper_engineering/port) "sWW" = ( /obj/structure/machinery/flasher{ alpha = 1; @@ -66817,19 +67789,31 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"sXV" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "sYh" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"sYi" = ( +/obj/structure/machinery/door_control{ + id = "firearm_storage_armory"; + name = "Armory Lockdown"; + pixel_y = 24; + req_access_txt = "4" + }, +/obj/structure/sign/safety/ammunition{ + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "sYw" = ( /obj/structure/platform{ dir = 8 @@ -66844,23 +67828,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"sYB" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "sYC" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -66884,6 +67851,20 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"sYE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "sYP" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -66909,6 +67890,16 @@ icon_state = "plate" }, /area/almayer/squads/charlie) +"sZs" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "sZy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -66923,6 +67914,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"sZF" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_p) "sZH" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze{ @@ -66983,6 +67981,38 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/aft_hallway) +"tan" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) +"tat" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/living/port_emb) +"tau" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/reinforced{ + dir = 2; + name = "\improper Brig Permanent Confinement" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "perma_lockdown_1"; + name = "\improper Perma Lockdown Shutter" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/perma) "taA" = ( /obj/structure/machinery/light{ dir = 4 @@ -67020,6 +68050,17 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell) +"taV" = ( +/obj/effect/projector{ + name = "Almayer_Down1"; + vector_x = 19; + vector_y = -98 + }, +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/upper/starboard) "tbD" = ( /obj/structure/ladder{ height = 2; @@ -67031,31 +68072,29 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) -"tce" = ( -/obj/structure/closet/emcloset, +"tcZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, -/area/almayer/hull/lower_hull/l_a_s) -"tcP" = ( +/area/almayer/engineering/upper_engineering/port) +"tda" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" + dir = 2 }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Perma Cells" +/obj/structure/machinery/door/airlock/almayer/security{ + access_modified = 1; + dir = 2; + name = "\improper Security Checkpoint"; + req_access = null; + req_one_access_txt = "3;19" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/living/briefing) "tdc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -67070,20 +68109,32 @@ }, /area/almayer/hallways/hangar) "tdv" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/surface/table/almayer, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/obj/structure/machinery/computer/working_joe{ + dir = 4 + }, /turf/open/floor/almayer{ dir = 8; - icon_state = "red" + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) -"tdx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +/area/almayer/engineering/lower/engine_core) +"tdy" = ( +/obj/structure/bed/sofa/south/grey/right, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "orangecorner" + dir = 1; + icon_state = "red" }, -/area/almayer/engineering/engine_core) +/area/almayer/shipboard/brig/lobby) "tdE" = ( /obj/structure/window/reinforced{ dir = 8 @@ -67151,15 +68202,27 @@ /obj/effect/landmark/late_join, /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"teB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ - dir = 1 +"teE" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/toilet{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"teH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/maint{ + pixel_y = 32 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "teY" = ( /obj/structure/machinery/light{ dir = 1 @@ -67175,6 +68238,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"tff" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/lobby) "tfl" = ( /obj/structure/machinery/light{ dir = 1 @@ -67190,9 +68259,6 @@ name = "General Listening Channel"; pixel_y = 28 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, @@ -67210,26 +68276,17 @@ dir = 1 }, /area/almayer/medical/containment/cell) -"tfO" = ( -/obj/structure/machinery/power/apc/almayer{ +"tge" = ( +/obj/structure/pipes/vents/scrubber{ dir = 4 }, -/obj/item/storage/box/nade_box/tear_gas, -/obj/item/storage/box/nade_box/tear_gas{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/structure/surface/table/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "emeraldfull" }, -/area/almayer/shipboard/brig/armory) +/area/almayer/living/briefing) "tgK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -67239,13 +68296,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"tgS" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "tgV" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -67255,6 +68305,30 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"thc" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) +"thq" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 16 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "thv" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -67291,6 +68365,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"thR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/secure{ + pixel_x = -5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "thT" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -67344,24 +68430,27 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"tiw" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/obj/item/weapon/baseballbat/metal{ - pixel_x = -2; - pixel_y = 8 - }, +"tit" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + icon_state = "green" }, -/area/almayer/engineering/upper_engineering/starboard) +/area/almayer/hallways/starboard_hallway) "tiE" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/squads/req) +"tiF" = ( +/obj/structure/machinery/keycard_auth{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "tiI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/box/syringes{ @@ -67429,12 +68518,24 @@ }, /turf/open/floor/almayer, /area/almayer/living/tankerbunks) -"tjU" = ( -/obj/structure/bed/chair/wood/normal, -/obj/item/bedsheet/brown, -/obj/item/toy/farwadoll, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/cells) +"tki" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/port_hallway) +"tkn" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "tkq" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -67452,13 +68553,14 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) -"tkV" = ( -/obj/structure/bed/chair, +"tkR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + icon_state = "redfull" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/hallways/upper/starboard) "tld" = ( /obj/structure/machinery/prop/almayer/computer{ dir = 8; @@ -67468,6 +68570,44 @@ icon_state = "cargo" }, /area/almayer/living/pilotbunks) +"tlk" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/general_equipment) +"tln" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/bed/chair/comfy/charlie{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"tlp" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" + }, +/obj/structure/machinery/door/poddoor/almayer/locked{ + id = "Cell 4"; + name = "\improper Courtyard Divider" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/cells) "tly" = ( /obj/structure/platform{ dir = 8 @@ -67500,40 +68640,24 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"tmy" = ( -/obj/structure/surface/table/almayer, -/obj/item/handcuffs{ - pixel_y = 12 - }, -/obj/item/handcuffs{ - pixel_y = 6 - }, -/obj/item/handcuffs, -/obj/item/weapon/baton{ - pixel_x = -12 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"tmA" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "tmB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"tmH" = ( +/obj/structure/pipes/vents/pump, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera"; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/execution) "tmI" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -67589,17 +68713,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"tnm" = ( -/obj/structure/machinery/atm{ - name = "Weyland-Yutani Automatic Teller Machine"; - pixel_y = 30 - }, -/obj/structure/surface/table/almayer, -/obj/item/spacecash/c1000/counterfeit, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/fancy/cigar, -/turf/open/floor/almayer, -/area/almayer/command/corporateliason) "tnY" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -67611,6 +68724,17 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"tos" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) "tou" = ( /obj/structure/bed/chair{ dir = 4 @@ -67635,6 +68759,26 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) +"toO" = ( +/obj/structure/surface/table/almayer, +/obj/item/book/manual/engineering_construction, +/obj/item/folder/black_random, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "tpa" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/window/reinforced{ @@ -67698,14 +68842,21 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"tqe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"tqd" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver, +/obj/item/prop/helmetgarb/gunoil{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/item/weapon/gun/rifle/l42a{ + pixel_x = 17; + pixel_y = 6 }, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/hull/upper_hull/u_m_s) "tqg" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -67749,28 +68900,38 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) -"tqB" = ( +"tqE" = ( /obj/structure/machinery/light{ - dir = 1 + dir = 8 }, +/obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 5; + icon_state = "plating" }, -/area/almayer/command/lifeboat) -"tqV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 26 +/area/almayer/engineering/lower/engine_core) +"tqO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -15 }, /turf/open/floor/almayer{ - dir = 1; + dir = 6; icon_state = "red" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/hallways/upper/port) "trb" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/south1) +"trh" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower) "trB" = ( /turf/open/floor/almayer{ dir = 10; @@ -67817,6 +68978,29 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) +"trU" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/pen/blue/clicky{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/tool/pen/red/clicky{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tool/pen/clicky{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/paper_bin/wy{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "trW" = ( /obj/item/stack/tile/carpet{ amount = 20 @@ -67847,14 +69031,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) -"tsv" = ( -/obj/structure/sign/nosmoking_2{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) "tsy" = ( /obj/structure/filingcabinet{ pixel_x = 8 @@ -67881,15 +69057,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) -"tsH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "tsM" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -67922,6 +69089,20 @@ }, /turf/open/floor/plating, /area/almayer/powered/agent) +"ttE" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -7 + }, +/obj/item/tool/pen, +/obj/item/tool/pen{ + pixel_y = 3 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "ttM" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -67942,6 +69123,26 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"ttX" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/regular{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -7 + }, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = -10; + pixel_y = 14 + }, +/obj/item/storage/xeno_tag_case/full{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/corporateliaison) "tuf" = ( /obj/structure/platform_decoration{ dir = 4 @@ -67951,6 +69152,23 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"tuk" = ( +/obj/structure/machinery/computer/crew, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/general_equipment) +"tul" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/brig/prison_uni, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "tuo" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/sign/safety/hvac_old{ @@ -67962,42 +69180,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"tuv" = ( -/obj/item/bedsheet/purple{ - layer = 3.2 - }, -/obj/item/bedsheet/purple{ - pixel_y = 13 - }, -/obj/item/clothing/head/beret/centcom/captain{ - color = "#4b5320"; - desc = "Dusty beret bearing the logo of the royal marines. How did this get here?"; - name = "dusty beret"; - pixel_y = -6 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "emerald" - }, -/area/almayer/living/port_emb) "tuA" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/port_missiles) @@ -68021,15 +69203,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"tvA" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "tvM" = ( /obj/structure/bed/chair{ dir = 1 @@ -68086,6 +69259,25 @@ icon_state = "outerhull_dir" }, /area/space) +"twI" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + density = 0; + pixel_y = 16 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/door_control{ + id = "bot_uniforms"; + name = "Uniform Vendor Lockdown"; + pixel_x = -24; + pixel_y = 18; + req_access_txt = "31" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/cic) "twT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68176,6 +69368,13 @@ icon_state = "cargo_arrow" }, /area/almayer/shipboard/starboard_missiles) +"tzd" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + layer = 1.9 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/processing) "tzf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -68199,10 +69398,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"tzj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "tzx" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ @@ -68213,14 +69408,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"tzz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/engineering_workshop) "tzL" = ( /obj/structure/sign/safety/waterhazard{ pixel_x = 8; @@ -68237,12 +69424,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"tAh" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/upper_engineering/port) "tAi" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -68310,6 +69491,13 @@ /obj/item/tool/crowbar, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"tBu" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "tBz" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -68331,6 +69519,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"tBP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_s) "tCb" = ( /obj/structure/surface/rack, /obj/item/device/radio{ @@ -68342,6 +69537,24 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) +"tCx" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) "tCN" = ( /turf/open/floor/almayer{ dir = 8; @@ -68363,14 +69576,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) -"tDA" = ( -/obj/item/tool/weldpack{ - pixel_y = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "tDZ" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -68382,6 +69587,12 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"tEd" = ( +/obj/structure/reagent_dispensers/acidtank, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "tEi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -68404,6 +69615,15 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) +"tEC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "tEO" = ( /obj/effect/landmark/start/marine/medic/charlie, /obj/effect/landmark/late_join/charlie, @@ -68430,12 +69650,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"tFv" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/general_equipment) "tFS" = ( /obj/structure/machinery/computer/supplycomp, /obj/structure/sign/safety/terminal{ @@ -68476,13 +69690,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) -"tGg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "tGh" = ( /obj/structure/sign/nosmoking_2{ pixel_x = -28 @@ -68496,6 +69703,15 @@ /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"tGj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north1) "tGq" = ( /obj/effect/projector{ name = "Almayer_Up4"; @@ -68504,6 +69720,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) +"tGG" = ( +/obj/structure/bed/chair/comfy/alpha{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/living/briefing) "tGO" = ( /obj/effect/projector{ name = "Almayer_Up3"; @@ -68512,41 +69736,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"tHc" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/wooden_tv/prop{ - dir = 8; - layer = 3.2; - pixel_x = -3; - pixel_y = 6 - }, -/obj/structure/sign/poster{ - desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; - icon_state = "poster11"; - name = "YOU ALWAYS KNOW A WORKING JOE."; - pixel_x = 27; - serial_number = 11 - }, -/obj/item/trash/pistachios{ - layer = 2; - pixel_x = 6; - pixel_y = -6 - }, -/obj/structure/machinery/recharger{ - layer = 3.1; - pixel_y = 22 - }, -/obj/item/ammo_magazine/rifle/incendiary{ - current_rounds = 0; - desc = "A 10mm assault rifle magazine with ':D' drawn on the side"; - pixel_x = 10; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, -/area/almayer/living/port_emb) "tHh" = ( /obj/structure/sign/safety/ladder{ pixel_x = 8; @@ -68582,32 +69771,33 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) -"tHB" = ( -/obj/structure/surface/table/almayer, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30 - }, -/obj/structure/machinery/recharger{ - layer = 3.1; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tHQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/shipboard/brig/main_office) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "tHS" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) -"tIb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"tId" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/airoom) +"tIe" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "emerald" + dir = 5; + icon_state = "orange" }, -/area/almayer/living/port_emb) +/area/almayer/engineering/lower/engine_core) "tIp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dorms" @@ -68665,20 +69855,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"tJa" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - access_modified = 1; - dir = 1; - name = "Storage"; - req_one_access = "2;21" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/req) "tJi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm, @@ -68687,43 +69863,36 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"tJo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"tJz" = ( +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"tJp" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/crowbar/red, -/obj/item/clipboard{ - pixel_x = 1; - pixel_y = 4 +/turf/open/floor/almayer, +/area/almayer/squads/charlie_delta_shared) +"tJM" = ( +/obj/structure/toilet{ + pixel_y = 13 }, -/obj/item/storage/box/handcuffs{ - pixel_x = 5; - pixel_y = 5 +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/machinery/light/small{ + dir = 8 }, -/obj/item/reagent_container/spray/cleaner, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, /area/almayer/shipboard/brig/main_office) -"tJy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"tJN" = ( +/obj/structure/machinery/cryopod/right{ + layer = 3.1; + pixel_y = 13 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) -"tJz" = ( -/obj/structure/machinery/firealarm{ - pixel_y = -28 + icon_state = "cargo" }, -/turf/open/floor/almayer, -/area/almayer/squads/charlie_delta_shared) +/area/almayer/command/airoom) "tJR" = ( /obj/structure/machinery/vending/cigarette, /obj/structure/sign/safety/medical{ @@ -68761,6 +69930,33 @@ icon_state = "cargo" }, /area/almayer/living/bridgebunks) +"tLa" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -2; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Armory" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "firearm_storage_armory"; + name = "\improper Armory Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/armory) "tLc" = ( /obj/structure/surface/rack, /obj/item/storage/bag/plants{ @@ -68785,35 +69981,40 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"tLy" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/engineering/engine_core) "tLM" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) -"tMf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"tMc" = ( +/obj/structure/machinery/chem_master/industry_mixer, +/turf/open/floor/almayer{ + icon_state = "orange" }, -/obj/structure/sign/safety/stairs{ - pixel_x = -15 +/area/almayer/engineering/lower/workshop/hangar) +"tMH" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Warden's Office"; + closeOtherId = "brigwarden" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "Warden Office Shutters"; + name = "\improper Privacy Shutters" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "courtyard_cells"; + name = "\improper Courtyard Lockdown Shutter" }, /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) -"tMn" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/bed/chair/comfy/beige, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/area/almayer/shipboard/brig/chief_mp_office) "tMW" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -68823,31 +70024,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"tNj" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"tNF" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "CMP Office Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/chief_mp_office) "tNP" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -68874,16 +70050,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"tOd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "tOr" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -68897,6 +70063,13 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/hydroponics) +"tOu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "tOC" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -68927,6 +70100,19 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"tPm" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/briefing) "tPI" = ( /obj/structure/bed/chair{ dir = 4 @@ -68942,17 +70128,59 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"tQE" = ( -/obj/item/clothing/head/welding, +"tQi" = ( +/obj/effect/landmark/start/warrant, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) +"tQm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 9; + icon_state = "sterile_green_side" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/shipboard/brig/surgery) +"tQo" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/port_hallway) "tQL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"tQM" = ( +/obj/structure/sign/poster{ + desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; + icon_state = "poster12"; + name = "Beach Babe Pinup"; + pixel_x = -30; + pixel_y = 6; + serial_number = 12 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/command/corporateliaison) "tQV" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south1) @@ -68966,16 +70194,15 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"tRA" = ( -/obj/structure/bed/chair, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, +"tRs" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/spray/cleaner, +/obj/item/frame/light_fixture, +/obj/item/frame/light_fixture, /turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/engineering/lower/workshop) "tRD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68993,23 +70220,16 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_s) "tRX" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"tSc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hull/upper_hull/u_f_s) "tSp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -69041,6 +70261,18 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"tSF" = ( +/obj/structure/bed/chair/comfy/delta, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"tTk" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "tTp" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ @@ -69083,17 +70315,6 @@ /obj/item/tool/pen, /turf/open/floor/almayer, /area/almayer/command/cic) -"tUv" = ( -/obj/structure/machinery/iv_drip, -/obj/structure/machinery/computer/working_joe{ - dir = 8; - pixel_x = 17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "tUx" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) @@ -69101,6 +70322,17 @@ /obj/item/tool/wet_sign, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) +"tUN" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "35" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop/hangar) "tUS" = ( /obj/item/toy/beach_ball/holoball, /obj/structure/holohoop{ @@ -69149,14 +70381,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"tWg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) "tWi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -69192,6 +70416,16 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"tXc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "tXi" = ( /obj/structure/machinery/conveyor_switch{ id = "gym_2"; @@ -69209,30 +70443,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"tXs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/cryo) -"tXG" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door/window/eastright{ - access_modified = 1; - dir = 8; - req_access_txt = "19" - }, -/obj/effect/landmark/map_item, -/obj/structure/machinery/door/window/eastleft{ - req_access_txt = "19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/briefing) "tXM" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -69312,6 +70522,23 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) +"tYM" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) +"tYW" = ( +/obj/structure/bed/chair/bolted{ + dir = 1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "tYX" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -69340,6 +70567,23 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) +"tZg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) "tZm" = ( /obj/structure/closet/crate/freezer{ desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." @@ -69354,24 +70598,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"tZB" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"tZF" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_p) "tZP" = ( /obj/structure/surface/rack, /obj/item/clothing/glasses/meson, @@ -69434,6 +70660,13 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"uay" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "uaI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/processor{ @@ -69460,6 +70693,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"uaX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_s) "uaZ" = ( /obj/structure/surface/table/almayer, /obj/item/weapon/gun/rifle/m41a, @@ -69483,6 +70723,19 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"ubI" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/black_random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/tool/stamp{ + name = "Corporate Liaison's stamp"; + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "ucp" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -69493,6 +70746,28 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"ucz" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = 15 + }, +/obj/structure/machinery/light, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Bravo Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Bravo Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "udi" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -69546,6 +70821,23 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"udR" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -19; + pixel_y = -6 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/shipboard/brig/cic_hallway) "udZ" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -69576,15 +70868,17 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"ueo" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Evidence Room" +"uek" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/magazine/boots/n117{ + pixel_x = 2; + pixel_y = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "bluefull" }, -/area/almayer/shipboard/brig/evidence_storage) +/area/almayer/living/briefing) "ueG" = ( /obj/item/bedsheet/orange, /obj/structure/bed{ @@ -69651,29 +70945,12 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"ugs" = ( -/obj/structure/surface/table/almayer, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/medical{ - pixel_x = -17; - pixel_y = 6 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17; - pixel_y = -9 - }, +"ufL" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/lobby) +/area/almayer/command/cic) "ugu" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer, @@ -69713,6 +70990,10 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"uhE" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "uhM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -69727,6 +71008,12 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"uhW" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/main_office) "uia" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -69735,12 +71022,36 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"uif" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"uig" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) "uim" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) +"uiC" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/engineering/lower/engine_core) "uiG" = ( /turf/open/floor/almayer{ dir = 9; @@ -69819,16 +71130,12 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"uku" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/turf/open/floor/plating, -/area/almayer/engineering/engineering_workshop/hangar) -"ukS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"ukP" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/engineering/lower/engine_core) "ukU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -69842,31 +71149,32 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"ukW" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - access_modified = 1; - name = "\improper Security Checkpoint"; - req_access = null; - req_one_access_txt = "3;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"uli" = ( +/turf/open/floor/grass, +/area/almayer/living/starboard_garden) +"ulo" = ( +/obj/structure/toilet{ + dir = 8; + layer = 2.9; + pixel_y = 8 }, -/area/almayer/living/briefing) -"ula" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Evidence Room" +/obj/structure/window{ + layer = 2.95; + pixel_y = -2 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 8 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/commandbunks) +"ulp" = ( +/obj/structure/platform, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, -/area/almayer/shipboard/brig/evidence_storage) -"uli" = ( -/turf/open/floor/grass, -/area/almayer/living/starboard_garden) +/area/almayer/engineering/lower/engine_core) "uly" = ( /obj/structure/bed/stool, /turf/open/floor/almayer{ @@ -69896,6 +71204,16 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) +"umv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 8; + req_one_access = list(2,34,30) + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/lower_hull/l_m_s) "umy" = ( /obj/structure/machinery/light{ dir = 1 @@ -69911,15 +71229,6 @@ icon_state = "mono" }, /area/almayer/medical/upper_medical) -"umR" = ( -/obj/structure/machinery/power/apc/almayer/hardened{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/north2) "umS" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -69937,6 +71246,18 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_p) +"umW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/vending/cigarette/free{ + pixel_y = 16 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "unh" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, @@ -69960,6 +71281,14 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"unx" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "unJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -69987,6 +71316,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"unZ" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "uoi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -70018,22 +71359,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_s) -"uoY" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_y = 7 +"upt" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/item/tool/pen, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"upe" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/engine_core) +/area/almayer/hull/lower_hull/l_m_p) "upM" = ( /obj/structure/machinery/light{ dir = 4 @@ -70098,22 +71431,29 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"uqh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) "uqo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"uqr" = ( -/obj/structure/machinery/door_control{ - id = "laddersoutheast"; - name = "South East Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"uqy" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Cells" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/main_office) "uqA" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -70148,18 +71488,14 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"ush" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 4 +"urW" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 7" }, /turf/open/floor/almayer{ - allow_construction = 0 + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/engineering/lower/engine_core) "usi" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -70183,22 +71519,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"usr" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) -"usw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering/engine_core) "usy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -70210,6 +71530,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"usL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/port) "usX" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -70218,6 +71547,21 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"usZ" = ( +/obj/structure/pipes/unary/outlet_injector, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower) +"utn" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "uto" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel{ @@ -70250,26 +71594,11 @@ }, /area/almayer/medical/containment/cell) "utZ" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"uue" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - dir = 1; - name = "\improper Cryogenics Bay" - }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "redcorner" }, -/area/almayer/shipboard/brig/cryo) +/area/almayer/shipboard/brig/processing) "uuj" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -70281,17 +71610,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"uuq" = ( -/obj/structure/bed, -/obj/structure/machinery/flasher{ - id = "Cell 4"; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/shipboard/brig/cells) "uuu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70324,6 +71642,18 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"uuD" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Atmospherics Wing" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower) "uuR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal8"; @@ -70347,12 +71677,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"uvk" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) "uvs" = ( /obj/structure/machinery/conveyor{ id = "lower_garbage" @@ -70381,38 +71705,6 @@ icon_state = "orangecorner" }, /area/almayer/squads/bravo) -"uvy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) -"uvG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/press_area_ag{ - pixel_x = -17; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_a_s) "uvP" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -70428,40 +71720,25 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"uvS" = ( -/obj/structure/surface/rack, -/obj/item/stack/cable_coil, -/obj/item/attachable/flashlight/grip, +"uvU" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item{ + pixel_x = 5 + }, +/obj/item/facepaint/black{ + pixel_x = -10 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/living/briefing) "uvY" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"uvZ" = ( -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - desc = "A premium double-malt whiskey, this bottle was gifted to the Captain of the USS Almayer after the completion of the ship's space trials by the VADM. himself."; - pixel_x = 1; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - pixel_x = 9; - pixel_y = 16 - }, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - pixel_x = -7; - pixel_y = 16 - }, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_y = 5 - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "uws" = ( /obj/structure/machinery/light{ dir = 4 @@ -70470,6 +71747,15 @@ icon_state = "cargo_arrow" }, /area/almayer/shipboard/port_missiles) +"uwt" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "uwv" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room/notunnel) @@ -70482,6 +71768,24 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"uwS" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + dir = 2; + name = "\improper Brig Armoury"; + req_access = null; + req_one_access_txt = "1;3" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/main_office) "uwZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70544,6 +71848,10 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"uxX" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "uxZ" = ( /obj/structure/machinery/door_control{ id = "laddersouthwest"; @@ -70556,6 +71864,19 @@ icon_state = "greencorner" }, /area/almayer/hallways/port_hallway) +"uyd" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "uys" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/squads/req) @@ -70572,40 +71893,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) -"uzg" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"uzm" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"uzx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cryo) "uzy" = ( /obj/item/reagent_container/glass/bucket, /obj/effect/decal/cleanable/blood/oil, @@ -70620,78 +71907,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) -"uzP" = ( -/obj/item/bedsheet/blue{ - layer = 3.2 - }, -/obj/item/bedsheet/blue{ - pixel_y = 13 - }, -/obj/item/toy/farwadoll{ - desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; - force = 15; - icon_state = "therapyred"; - layer = 4.1; - name = "Sergeant Huggs"; - pixel_y = 15; - throwforce = 15 - }, -/obj/item/clothing/head/cmcap{ - layer = 4.1; - pixel_x = -1; - pixel_y = 22 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/living/port_emb) -"uzU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/trash/cigbutt/cigarbutt{ - pixel_x = 10; - pixel_y = 15 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "uAb" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -70706,6 +71921,16 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"uAl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/port) "uAs" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -70744,6 +71969,21 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) +"uAK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower/engine_core) +"uAL" = ( +/obj/structure/bed/chair/wood/normal, +/obj/item/bedsheet/brown, +/obj/item/toy/plush/farwa, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/cells) "uAW" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -70784,7 +72024,9 @@ }, /area/almayer/hallways/stern_hallway) "uBM" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/combat_correspondent) "uBN" = ( @@ -70820,15 +72062,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"uCl" = ( -/obj/structure/closet/secure_closet/surgical{ - pixel_x = -30 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "uCM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -70863,13 +72096,6 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"uDp" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "uDA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -70896,12 +72122,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"uEc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/engine_core) "uEv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70921,6 +72141,10 @@ icon_state = "plate" }, /area/almayer/living/offices) +"uFg" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "uFo" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ @@ -70934,12 +72158,16 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"uFp" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +"uFq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/general_equipment) +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "uFt" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -70966,12 +72194,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"uGa" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south2) "uGc" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -70989,23 +72211,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"uGo" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "uGt" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -71020,19 +72225,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) -"uGz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"uGN" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/general_equipment) "uGQ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"uHr" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "uId" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -71060,6 +72268,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"uIA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "uII" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71118,6 +72332,13 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/main_office) +"uJB" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/hull/lower_hull/l_m_s) "uJU" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -71212,26 +72433,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"uLJ" = ( -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = -7 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/execution) -"uLN" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "uLW" = ( /obj/item/tool/mop{ pixel_x = -6; @@ -71282,27 +72483,26 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"uNe" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) "uNg" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/bridgebunks) -"uNl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"uNq" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, /turf/open/floor/almayer{ dir = 4; - icon_state = "redcorner" + icon_state = "orange" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/engineering/lower/workshop/hangar) "uNB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -71380,6 +72580,16 @@ icon_state = "orangecorner" }, /area/almayer/hallways/stern_hallway) +"uPP" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + dir = 2; + name = "\improper Atmospherics Wing" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower) "uPW" = ( /obj/structure/bed/chair{ dir = 4 @@ -71401,6 +72611,18 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"uQo" = ( +/obj/structure/machinery/disposal, +/obj/item/reagent_container/food/drinks/cans/beer{ + layer = 3.3; + pixel_x = -4; + pixel_y = 15 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/port_emb) "uQU" = ( /obj/structure/stairs{ dir = 1 @@ -71424,15 +72646,19 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"uRr" = ( +"uRs" = ( +/obj/structure/machinery/light{ + dir = 8 + }, /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/closet/secure_closet/engineering_materials, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 9; + icon_state = "red" }, -/area/almayer/engineering/engineering_workshop/hangar) +/area/almayer/command/lifeboat) "uRt" = ( /obj/structure/machinery/light{ dir = 8 @@ -71445,20 +72671,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"uRI" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice1"; - pixel_x = 16; - pixel_y = -8 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "uRM" = ( /obj/structure/bed{ can_buckle = 0 @@ -71493,6 +72705,19 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"uRY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "uSq" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -71503,25 +72728,52 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"uSL" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 +"uSB" = ( +/obj/structure/machinery/keycard_auth{ + pixel_x = 25 }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/chief_mp_office) +"uSH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/reagent_dispensers/water_cooler{ + density = 0; + pixel_x = 12; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "uSS" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) +"uSW" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 4; + layer = 2.7 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) +"uTa" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/stern) "uTv" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -71551,6 +72803,16 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) +"uTV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/engineering/lower/workshop) "uTY" = ( /obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ @@ -71599,14 +72861,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"uUs" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) "uUt" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, @@ -71617,6 +72871,19 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) +"uUu" = ( +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "uUz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -71627,32 +72894,19 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) -"uUO" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutters"; - pixel_x = 16; - req_access_txt = "3" - }, -/obj/structure/machinery/recharger, +"uVb" = ( +/obj/structure/closet/toolcloset, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) -"uUV" = ( -/obj/structure/machinery/shower, -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/machinery/door/window/tinted{ - dir = 2 + dir = 6; + icon_state = "orange" }, -/turf/open/floor/prison{ - icon_state = "kitchen" +/area/almayer/hull/lower_hull/l_m_s) +"uVc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/workshop) "uVd" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -25 @@ -71691,21 +72945,12 @@ icon_state = "plating_striped" }, /area/almayer/living/cryo_cells) -"uVF" = ( -/obj/structure/disposalpipe/segment{ +"uVV" = ( +/obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/perma) -"uVR" = ( -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "uVX" = ( /obj/structure/machinery/light{ dir = 1 @@ -71730,22 +72975,6 @@ icon_state = "red" }, /area/almayer/hallways/stern_hallway) -"uWI" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt{ - pixel_x = 1; - pixel_y = 8 - }, -/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ - pixel_x = -9; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/squads/req) "uWV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71790,6 +73019,20 @@ dir = 8 }, /area/almayer/medical/containment/cell) +"uXk" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/engine_core) +"uXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/port_hallway) "uXL" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71808,16 +73051,29 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"uYd" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + pixel_y = 12 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/lifeboat) "uYg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"uYO" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"uYn" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "uZo" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -71828,6 +73084,12 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) +"uZF" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "uZH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -71841,19 +73103,18 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/hallways/repair_bay) -"uZY" = ( -/obj/structure/closet/secure_closet/guncabinet/riot_control, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"uZV" = ( +/obj/structure/reagent_dispensers/fueltank/gas/methane{ + anchored = 1 }, -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "uZZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Basketball Court" @@ -71872,6 +73133,16 @@ }, /turf/closed/wall/almayer, /area/almayer/hallways/starboard_umbilical) +"vaZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "vbf" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -71886,6 +73157,22 @@ "vbB" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"vbI" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "vbM" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -71901,8 +73188,18 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"vbP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "vbR" = ( /obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "green" @@ -71930,6 +73227,15 @@ /obj/docking_port/stationary/escape_pod/south, /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_m_p) +"vcm" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/perma) "vcq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -71951,22 +73257,22 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"vcG" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/recharger, -/obj/item/device/flash, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/general_equipment) "vcK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_p) +"vdl" = ( +/obj/structure/window/reinforced/ultra{ + pixel_y = -12 + }, +/obj/structure/bed/chair/bolted, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "plating_striped" + }, +/area/almayer/shipboard/brig/execution) "vdJ" = ( /obj/structure/surface/table/almayer, /obj/item/pipe{ @@ -72020,9 +73326,6 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"vdU" = ( -/turf/open/floor/wood/ship, -/area/almayer/living/grunt_rnr) "vdW" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -72048,24 +73351,6 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"vez" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) -"veI" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "vfa" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72088,18 +73373,15 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"vfv" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/machinery/power/apc/almayer{ +"vfw" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) "vfx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -72135,6 +73417,10 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"vgi" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/general_equipment) "vgk" = ( /obj/structure/closet/firecloset, /obj/structure/machinery/camera/autoname/almayer{ @@ -72146,6 +73432,41 @@ icon_state = "greencorner" }, /area/almayer/hallways/port_hallway) +"vgn" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin/uscm{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 2 + }, +/obj/item/tool/pen{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"vgv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) +"vgw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/engineering/lower) "vgx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -72230,6 +73551,19 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) +"vgW" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "vhe" = ( /obj/structure/filingcabinet{ density = 0; @@ -72334,13 +73668,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"vim" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "vit" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -72368,6 +73695,15 @@ allow_construction = 0 }, /area/almayer/command/airoom) +"viH" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/main_office) "viJ" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -72399,6 +73735,16 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"vjd" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/lifeboat) "vjg" = ( /obj/structure/prop/almayer/missile_tube{ icon_state = "missiletubesouth" @@ -72409,6 +73755,13 @@ icon_state = "plating" }, /area/almayer/shipboard/port_missiles) +"vjv" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "vjx" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ @@ -72431,10 +73784,30 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"vjD" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_p) "vjK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/shipboard/port_missiles) +"vjW" = ( +/obj/structure/reagent_dispensers/watertank{ + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "vka" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) @@ -72501,22 +73874,14 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"vli" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/machinery/power/apc/almayer/hardened{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/item/stack/sheet/glass/reinforced{ - amount = 50 - }, +"vlk" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/command/lifeboat) "vln" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -72534,6 +73899,55 @@ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) +"vlM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) +"vlN" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"vlO" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/yellow{ + layer = 3.2 + }, +/obj/item/bedsheet/yellow{ + pixel_y = 13 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = -16; + pixel_y = 8 + }, +/obj/item/toy/plush/barricade, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "vlX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ @@ -72556,6 +73970,19 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"vmE" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/engineering/lower) +"vmJ" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) "vmK" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -72577,6 +74004,14 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"vmP" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "vmW" = ( /turf/open/floor/almayer{ dir = 6; @@ -72598,6 +74033,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"vnY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) "vot" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72633,16 +74075,33 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_m_p) +"vpe" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/workshop/hangar) "vpn" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"vpI" = ( -/obj/effect/landmark/start/police, +"vpv" = ( +/obj/structure/machinery/shower, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/door/window/tinted{ + dir = 2 + }, +/obj/item/clothing/mask/cigarette/weed, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cryo) +/area/almayer/engineering/upper_engineering/port) "vpV" = ( /turf/open/floor/almayer{ dir = 10; @@ -72655,6 +74114,19 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"vqc" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Holding Cell" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/processing) "vqC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -72739,6 +74211,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"vrB" = ( +/obj/structure/closet/crate{ + desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; + name = "special operations crate" + }, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) "vrI" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -72751,6 +74244,19 @@ icon_state = "cargo" }, /area/almayer/living/offices) +"vrJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Liasion's Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/command/corporateliaison) "vrM" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; @@ -72760,27 +74266,15 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/evidence_storage) -"vrQ" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "perma_exit"; - name = "\improper Exit Shutters" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "perma_lockdown"; - name = "\improper Perma Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" +"vrR" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Deck Waste Tank Control" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/engineering/lower) "vrW" = ( /turf/open/floor/almayer{ dir = 8; @@ -72800,6 +74294,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"vsz" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "vsF" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -72810,32 +74311,19 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"vsI" = ( -/obj/structure/closet/secure_closet/guncabinet/riot_control, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/item/weapon/shield/riot, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) -"vsJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - name = "\improper Power Control Room"; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;6" +"vsM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 }, +/obj/item/storage/firstaid/adv, +/obj/item/device/defibrillator, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "sterile_green_side" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/shipboard/brig/surgery) "vsV" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -72888,14 +74376,37 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"vtT" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +"vtB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" }, -/turf/open/floor/almayer, -/area/almayer/command/cichallway) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/port_hallway) +"vtD" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 26 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) +"vtG" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "vub" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) @@ -72911,6 +74422,26 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/briefing) +"vuD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"vuF" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + access_modified = 1; + dir = 1; + name = "\improper Kitchen Hydroponics"; + req_one_access_txt = "30;19" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/grunt_rnr) "vuG" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -72956,6 +74487,21 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"vvw" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 + }, +/obj/item/paper, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "vvy" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -72975,6 +74521,41 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"vvY" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/obj/structure/surface/rack{ + density = 0; + pixel_x = 26 + }, +/obj/structure/bedsheetbin{ + pixel_x = 26; + pixel_y = 5 + }, +/obj/item/tool/soap/syndie, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) +"vwC" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "vwF" = ( /obj/structure/machinery/light{ dir = 1 @@ -73009,10 +74590,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"vwO" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/general_equipment) "vwP" = ( /obj/structure/surface/table/almayer, /obj/item/prop/helmetgarb/prescription_bottle{ @@ -73044,15 +74621,36 @@ icon_state = "cargo_arrow" }, /area/almayer/command/cic) +"vwY" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "vxb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"vxC" = ( +"vxu" = ( +/obj/structure/machinery/meter, +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"vxG" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, /turf/open/floor/almayer{ + dir = 10; icon_state = "red" }, -/area/almayer/shipboard/brig/general_equipment) +/area/almayer/shipboard/brig/chief_mp_office) +"vxK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "vxM" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/cryo) @@ -73111,19 +74709,32 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"vyE" = ( +"vyH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) +"vyI" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/upper_engineering/port) +"vzj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 + dir = 8 + }, +/obj/structure/machinery/door/airlock/almayer/security/reinforced{ + name = "\improper Chief MP's Bedroom" }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/lobby) -"vyI" = ( -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/shipboard/brig/chief_mp_office) +"vzk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/processing) "vzl" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -73154,7 +74765,7 @@ name = "\improper Hydroponics Garden" }, /turf/open/floor/almayer{ - icon_state = "greenfull" + icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) "vzK" = ( @@ -73200,6 +74811,26 @@ "vAG" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) +"vAH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/upper/port) +"vAI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "vAQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagent_analyzer{ @@ -73297,18 +74928,6 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"vCG" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/structure/sink{ - pixel_y = 24 - }, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/chief_mp_office) "vCO" = ( /obj/effect/landmark/start/bridge, /turf/open/floor/plating/plating_catwalk, @@ -73321,13 +74940,9 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) -"vDh" = ( -/obj/item/weapon/dart/green, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "vEf" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -73363,25 +74978,26 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) +"vEG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "vEH" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/almayer/living/briefing) -"vEI" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass{ - access_modified = 1; - dir = 2; - name = "\improper Field Surgery Equipment"; - req_access_txt = "20"; - req_one_access = null - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +"vEV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 9; + icon_state = "red" }, -/area/almayer/medical/lower_medical_medbay) +/area/almayer/hallways/upper/starboard) "vFb" = ( /obj/structure/surface/table/almayer, /obj/item/attachable/lasersight, @@ -73393,17 +75009,13 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_s) -"vFh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 1; - pixel_y = 7 - }, -/obj/item/tool/wrench, +"vFn" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/shipboard/stern_point_defense) "vFv" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -73419,6 +75031,12 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"vFH" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "vGk" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_m_p) @@ -73478,6 +75096,23 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"vHq" = ( +/obj/item/device/assembly/mousetrap/armed, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/port_emb) "vHs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -73485,6 +75120,63 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"vHt" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control{ + id = "CIC Lockdown"; + name = "CIC Lockdown"; + pixel_x = -7; + pixel_y = 9; + req_access_txt = "1" + }, +/obj/structure/machinery/door_control{ + id = "Hangar Lockdown"; + name = "Hangar Lockdown"; + pixel_x = -7; + pixel_y = 2; + req_access_txt = "1" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4; + icon_state = "exposed01-supply" + }, +/obj/structure/machinery/door_control{ + id = "bot_armory"; + name = "Armory Lockdown"; + pixel_x = -7; + pixel_y = -5; + req_one_access_txt = "1;4" + }, +/obj/structure/transmitter/rotary/no_dnd{ + name = "Combat Information Center Telephone"; + phone_category = "Command"; + phone_id = "Combat Information Center"; + pixel_x = 5; + pixel_y = 4 + }, +/obj/structure/machinery/door/window/westright{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) +"vHA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) "vHO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -73651,6 +75343,13 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_s) +"vKB" = ( +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/armory) "vKF" = ( /obj/structure/stairs{ dir = 8; @@ -73668,6 +75367,13 @@ allow_construction = 0 }, /area/almayer/hallways/aft_hallway) +"vLg" = ( +/obj/item/trash/uscm_mre, +/obj/structure/bed/chair/comfy/charlie, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "vLh" = ( /obj/item/roller, /obj/structure/surface/rack, @@ -73769,6 +75475,23 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"vMM" = ( +/obj/structure/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"vNp" = ( +/obj/structure/sign/safety/three{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 3"; + name = "Cell 3" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "vND" = ( /obj/structure/bed/chair{ dir = 8; @@ -73776,27 +75499,11 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"vNF" = ( -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "vNW" = ( /turf/open/floor/almayer/uscm/directional{ dir = 9 }, /area/almayer/command/cic) -"vOd" = ( -/obj/structure/machinery/optable, -/obj/structure/sign/safety/medical{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "vOh" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -73804,6 +75511,15 @@ "vOy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/medical_science) +"vON" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "vOP" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -73813,6 +75529,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) +"vPf" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 2"; + name = "\improper cell shutter" + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/perma) "vPj" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp{ @@ -73892,6 +75617,20 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"vPR" = ( +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/closet/secure_closet/guncabinet/red, +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/lower/workshop/hangar) "vQe" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -73916,22 +75655,10 @@ /obj/item/device/camera, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"vQN" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" - }, -/obj/structure/machinery/door/poddoor/almayer/locked{ - id = "Cell 4"; - name = "\improper Courtyard Divider" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/cells) +"vQR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "vRa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -73976,6 +75703,19 @@ "vRz" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/lower_hull/l_f_p) +"vRR" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "vRX" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/medical_diagnostics_manual, @@ -74103,6 +75843,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"vTT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) +"vTV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/machinery/door_control{ + id = "OTStore"; + name = "Shutters"; + pixel_y = -24 + }, +/obj/structure/surface/rack, +/obj/item/reagent_container/glass/bucket/janibucket, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop/hangar) "vUb" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, @@ -74126,6 +75890,14 @@ /obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"vUk" = ( +/obj/item/storage/toolbox/mechanical{ + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "vUI" = ( /obj/structure/largecrate/random/barrel/white, /obj/structure/sign/safety/security{ @@ -74137,13 +75909,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) -"vUL" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flash, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) +"vUP" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/cic_hallway) "vUU" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -74180,16 +75948,40 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"vVh" = ( +/obj/item/weapon/dart/green, +/obj/structure/dartboard{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/almayer/hull/lower_hull/l_f_p) "vVs" = ( /turf/open/floor/almayer{ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"vVu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "vVw" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"vVI" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "vVW" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecaltopright" @@ -74199,6 +75991,20 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"vVX" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/fuelCell, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "vWc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -74211,12 +76017,6 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) -"vWo" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/evidence_storage) "vWt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -74287,6 +76087,27 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"vWG" = ( +/obj/structure/pipes/vents/pump, +/obj/item/tool/soap, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/cells) "vWJ" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 @@ -74298,15 +76119,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"vWK" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "vXd" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -74316,6 +76128,18 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) +"vXf" = ( +/obj/structure/reagent_dispensers/pacidtank{ + anchored = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "vXh" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -74329,12 +76153,16 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"vXQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"vXo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/perma) +/area/almayer/engineering/lower) "vXX" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, @@ -74433,6 +76261,12 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"vZf" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8 + }, +/turf/closed/wall/almayer, +/area/almayer/engineering/lower) "vZv" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, @@ -74449,6 +76283,25 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull) +"vZU" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/machinery/cell_charger, +/obj/structure/sign/safety/high_rad{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "wan" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/brown, @@ -74462,21 +76315,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) -"wba" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, +"waJ" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 + icon_state = "S" }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/port) "wbh" = ( /obj/structure/machinery/light{ dir = 4 @@ -74486,17 +76333,6 @@ icon_state = "orange" }, /area/almayer/hallways/starboard_hallway) -"wbj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "wbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ @@ -74577,9 +76413,25 @@ icon_state = "silver" }, /area/almayer/command/cic) +"wcm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/lifeboat_pumps/south2) "wcn" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"wct" = ( +/obj/structure/closet/radiation, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "wcN" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -74618,10 +76470,23 @@ }, /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) +"wdh" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = -8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/shipboard/brig/cic_hallway) "wdo" = ( /obj/structure/machinery/door/airlock/almayer/research/reinforced{ dir = 8; - name = "\improper Containment Airlock" + name = "\improper Containment Airlock"; + closeOtherId = "containment_s" }, /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -74636,12 +76501,21 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) -"wdr" = ( -/obj/structure/machinery/power/apc/almayer, +"wdv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + name = "\improper Core Hatch" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "wdz" = ( /obj/effect/landmark/start/marine/engineer/charlie, /obj/effect/landmark/late_join/charlie, @@ -74670,6 +76544,22 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"wed" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"wee" = ( +/obj/effect/landmark/start/police, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cryo) "wei" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -74689,20 +76579,6 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) -"weB" = ( -/obj/item/tool/screwdriver{ - layer = 2.9; - pixel_x = -21; - pixel_y = -14 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "weC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74734,24 +76610,42 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"wft" = ( +"wfn" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/engineering/lower/workshop/hangar) +"wfx" = ( +/obj/structure/machinery/vending/cola, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) +"wfB" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"wfE" = ( -/turf/closed/wall/almayer, -/area/almayer/living/gym) -"wfL" = ( -/obj/structure/bed/chair/wood/normal{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "red" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/shipboard/brig/main_office) +"wfE" = ( +/turf/closed/wall/almayer, +/area/almayer/living/gym) "wfZ" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -74782,6 +76676,15 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) +"wgf" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/stern_point_defense) "wgi" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/main_office) @@ -74830,16 +76733,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) -"whd" = ( -/obj/item/frame/light_fixture{ - anchored = 1; - desc = "A broken fluorescent tube light."; - dir = 8; - icon_state = "tube-broken"; - name = "broken light fixture" - }, -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "whA" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/living/briefing) @@ -74858,32 +76751,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"whZ" = ( -/obj/structure/sign/safety/refridgeration{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) -"wie" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/machinery/cm_vending/sorted/tech/circuits, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop) -"wir" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) "wiz" = ( /obj/structure/bed/chair{ dir = 4 @@ -74966,6 +76833,25 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"wjE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/starboard) +"wjY" = ( +/obj/structure/closet/secure_closet/warrant_officer, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "wka" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ @@ -75000,6 +76886,12 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"wkA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer, +/area/almayer/command/lifeboat) "wkH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/whistle{ @@ -75012,6 +76904,17 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"wkL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) "wkM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES StairsLower"; @@ -75057,30 +76960,22 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wlj" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/plasteel{ - amount = 30; - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +"wld" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 5 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 32 +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/sign/safety/hazard{ + pixel_y = -32 }, -/area/almayer/engineering/engine_core) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "wlp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -75089,15 +76984,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_p) -"wly" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "wlE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -75139,16 +77025,14 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"wmE" = ( -/obj/structure/machinery/door/window/brigdoor/southright{ - id = "Cell 4"; - name = "Cell 4" +"wmz" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/obj/structure/sign/safety/four{ - pixel_x = 32 +/turf/open/floor/almayer{ + icon_state = "orangefull" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/area/almayer/living/briefing) "wmK" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -75157,6 +77041,11 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"wmP" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "wmQ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ dir = 2; @@ -75181,6 +77070,15 @@ /obj/structure/window/framed/almayer/white/hull, /turf/open/floor/plating, /area/almayer/command/airoom) +"wnw" = ( +/obj/structure/machinery/flasher{ + id = "Perma 2"; + pixel_y = 24 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/perma) "wnL" = ( /obj/item/stack/tile/carpet{ amount = 12 @@ -75206,16 +77104,6 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"wom" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "wos" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -75255,6 +77143,16 @@ icon_state = "rasputin3" }, /area/almayer/powered/agent) +"wph" = ( +/obj/item/paper_bin/wy, +/obj/structure/surface/table/woodentable/fancy, +/obj/item/tool/pen/clicky, +/obj/item/tool/pen/clicky, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "wpw" = ( /obj/structure/bed/chair/comfy/ares{ dir = 1 @@ -75284,6 +77182,16 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"wpS" = ( +/obj/structure/pipes/standard/simple/visible, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "wqc" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -75309,30 +77217,15 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/stern_hallway) "wqr" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, /obj/structure/sign/safety/terminal{ pixel_x = 7; pixel_y = 29 }, -/obj/structure/transmitter/rotary{ - name = "Reporter Telephone"; - phone_category = "Almayer"; - phone_id = "Reporter"; - pixel_x = -17; - pixel_y = 2 - }, +/obj/structure/filingcabinet, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/combat_correspondent) -"wqu" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/lobby) "wqA" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -75382,6 +77275,15 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"wrX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "wse" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 @@ -75390,6 +77292,25 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"wsh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/perma) +"wsl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"wsq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "wst" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -75412,12 +77333,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) -"wta" = ( -/obj/structure/closet/crate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "wtd" = ( /obj/structure/machinery/vending/coffee, /obj/item/toy/bikehorn/rubberducky{ @@ -75444,12 +77359,31 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"wtY" = ( +/obj/structure/surface/table/almayer, +/obj/item/folder/white{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/paper, +/obj/item/handcuffs, +/obj/item/clothing/mask/cigarette/cigar/classic, +/obj/item/coin/silver{ + desc = "A small coin, bearing the falling falcons insignia."; + name = "falling falcons challenge coin" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "wuc" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ name = "\improper Brig Medbay"; req_access = null; req_one_access = null; - req_one_access_txt = "20;3" + req_one_access_txt = "20;3"; + closeOtherId = "brigmed" }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -75459,21 +77393,21 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/surgery) +"wud" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/engineering/lower/workshop) "wul" = ( /obj/structure/machinery/light/small{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) -"wun" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower_engineering) "wup" = ( /obj/structure/supply_drop/echo, /turf/open/floor/almayer, @@ -75490,6 +77424,12 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"wuB" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/engineering/lower/workshop) "wuH" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, @@ -75497,6 +77437,18 @@ /obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"wuT" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/engineering/upper_engineering/starboard) "wvb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -75513,18 +77465,26 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"wvl" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - access_modified = 1; - dir = 2; - name = "\improper Security Checkpoint"; - req_access = null; - req_one_access_txt = "3;19" +"wvo" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"wvE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/terminal{ + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/living/briefing) +/area/almayer/shipboard/brig/chief_mp_office) "wvI" = ( /obj/item/paper_bin/uscm{ pixel_y = 7 @@ -75535,18 +77495,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"wvT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/processing) "wvU" = ( /obj/structure/machinery/recharge_station, /obj/structure/machinery/light{ @@ -75565,6 +77513,15 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) +"wwu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/port_hallway) "wwD" = ( /obj/structure/bed/chair/comfy/orange, /turf/open/floor/almayer{ @@ -75664,26 +77621,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wyv" = ( -/obj/structure/machinery/door_control{ - id = "ARES JoeCryo"; - name = "Working Joe Cryogenics Lockdown"; - pixel_x = -24; - pixel_y = -8; - req_one_access_txt = "91;92" - }, -/obj/effect/landmark/late_join/working_joe, -/obj/effect/landmark/start/working_joe, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"wyK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "wyO" = ( /obj/structure/largecrate/random/barrel/red, /obj/structure/prop/invuln/overhead_pipe{ @@ -75715,13 +77652,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"wzx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "wzZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; @@ -75746,6 +77676,27 @@ icon_state = "green" }, /area/almayer/hallways/port_hallway) +"wBd" = ( +/obj/structure/machinery/status_display{ + pixel_x = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/lobby) +"wBI" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/starboard) "wBY" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -75759,6 +77710,13 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"wCk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/wooden_tv/ot{ + pixel_y = 4 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "wCs" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/power/apc/almayer{ @@ -75774,21 +77732,6 @@ icon_state = "redcorner" }, /area/almayer/living/briefing) -"wCM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/processing) "wCT" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_AresDown"; @@ -75805,12 +77748,27 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"wDl" = ( -/obj/effect/decal/cleanable/blood/oil/streak, +"wCZ" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "test_floor4" }, -/area/almayer/lifeboat_pumps/south1) +/area/almayer/hull/upper_hull/u_f_p) +"wDg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "wDm" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -75820,6 +77778,22 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"wDp" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/device/camera_film{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/device/camera_film, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "wDs" = ( /obj/structure/machinery/seed_extractor, /obj/structure/sign/safety/terminal{ @@ -75847,6 +77821,16 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"wDC" = ( +/obj/structure/machinery/door/window/brigdoor/southright{ + id = "Cell 5"; + name = "Cell 5" + }, +/obj/structure/sign/safety/five{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "wDH" = ( /obj/structure/morgue, /obj/structure/machinery/light{ @@ -75871,6 +77855,9 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"wDM" = ( +/turf/closed/wall/almayer/reinforced/temphull, +/area/almayer/engineering/upper_engineering) "wDR" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -75891,6 +77878,39 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"wEe" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/liaison_suit/formal, +/obj/item/clothing/under/liaison_suit, +/obj/item/clothing/under/liaison_suit/outing, +/obj/item/clothing/under/liaison_suit/suspenders, +/obj/item/clothing/under/blackskirt{ + desc = "A stylish skirt, in a business-black and red colour scheme."; + name = "liaison's skirt" + }, +/obj/item/clothing/under/suit_jacket/charcoal{ + desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; + name = "liaison's black suit" + }, +/obj/item/clothing/under/suit_jacket/navy{ + desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; + name = "liaison's navy suit" + }, +/obj/item/clothing/under/suit_jacket/trainee, +/obj/item/clothing/under/liaison_suit/charcoal, +/obj/item/clothing/under/liaison_suit/outing/red, +/obj/item/clothing/under/liaison_suit/blazer, +/obj/item/clothing/suit/storage/snow_suit/liaison, +/obj/item/clothing/gloves/black, +/obj/item/clothing/gloves/marine/dress, +/obj/item/clothing/glasses/sunglasses/big, +/obj/item/clothing/accessory/blue, +/obj/item/clothing/accessory/red, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "wEg" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "agentshuttle"; @@ -76006,11 +78026,12 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) "wGI" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ - dir = 4 + dir = 8 }, -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/port_missiles) +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "wGX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -76018,6 +78039,25 @@ /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/auxiliary_officer_office) +"wHj" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/prop/ice_colony/tiger_rug{ + desc = "A beat up beer stained, incredibly garish, polyester tiger rug. No one knows how it got here. Written on the wash tag are the words 'From Thedus, with love <3', in Sharpie."; + icon_state = "HotlineAlt"; + layer = 2.9; + name = "Richard the tiger" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "emerald" + }, +/area/almayer/living/port_emb) "wHo" = ( /turf/open/floor/almayer{ icon_state = "emerald" @@ -76030,6 +78070,17 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"wHM" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Warden's Office" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/chief_mp_office) "wIr" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = list(); @@ -76076,6 +78127,13 @@ "wJb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/lower_medical_medbay) +"wJh" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/cryo) "wJo" = ( /obj/structure/machinery/door/airlock/almayer/research/reinforced{ access_modified = 1; @@ -76098,6 +78156,12 @@ icon_state = "plate" }, /area/almayer/hallways/vehiclehangar) +"wJB" = ( +/obj/structure/machinery/cryopod/right, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/airoom) "wJD" = ( /obj/structure/bed/chair{ dir = 8; @@ -76135,6 +78199,15 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) +"wKJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/cells) "wKP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -76256,6 +78329,14 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_s) +"wMv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/auxiliary_officer_office) "wMG" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -76305,24 +78386,24 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull) -"wNT" = ( -/obj/structure/platform, -/turf/open/floor/almayer, -/area/almayer/living/briefing) -"wNU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = list(2,34,30) +"wNt" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +/area/almayer/shipboard/brig/processing) +"wNS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/command/lifeboat) +"wNT" = ( +/obj/structure/platform, +/turf/open/floor/almayer, +/area/almayer/living/briefing) "wOh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -76354,12 +78435,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"wPk" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/execution) "wPz" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -76392,28 +78467,6 @@ icon_state = "greencorner" }, /area/almayer/hallways/aft_hallway) -"wQk" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/machinery/status_display{ - pixel_y = -32 - }, -/obj/structure/machinery/vending/coffee, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"wQv" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "wQx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -76423,16 +78476,28 @@ icon_state = "orange" }, /area/almayer/hull/upper_hull/u_a_s) -"wRm" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"wQA" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 5 }, -/obj/structure/machinery/vending/snack{ - density = 0; - pixel_y = 16 +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/engineering/lower) +"wQD" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/area/almayer/engineering/lower/engine_core) +"wRa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_p) "wRN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, @@ -76495,12 +78560,41 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"wSu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) +"wSK" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) "wSR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"wSV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering/lower/engine_core) "wSX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76591,28 +78685,12 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) -"wUD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 - }, -/obj/structure/prop/almayer/computers/sensor_computer3, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, +"wUK" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orangecorner" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/engineering/lower/workshop/hangar) "wUN" = ( /obj/structure/machinery/optable, /turf/open/floor/almayer{ @@ -76669,25 +78747,10 @@ "wVb" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/lower_hull/l_a_s) -"wVw" = ( -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/item/vehicle_clamp, -/obj/item/vehicle_clamp, -/obj/item/vehicle_clamp, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/ammo_magazine/smg/m39, -/obj/item/weapon/gun/smg/m39, -/obj/item/weapon/gun/smg/m39, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) +"wVt" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "wVy" = ( /obj/structure/window/reinforced{ dir = 8 @@ -76711,12 +78774,14 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"wVz" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"wVA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "wVB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76736,32 +78801,13 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"wVK" = ( -/turf/open/floor/almayer, -/area/almayer/living/port_emb) "wVP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_p) -"wVV" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/shipboard/brig/cryo) "wVW" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/cic) -"wVY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/shipboard/brig/lobby) "wWf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -76781,6 +78827,15 @@ icon_state = "silver" }, /area/almayer/hallways/aft_hallway) +"wWl" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + name = "Lower Mixed Air Control" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "wWm" = ( /turf/open/floor/almayer/research/containment/corner_var1{ icon_state = "containment_corner_variant_2" @@ -76845,12 +78900,14 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"wXv" = ( -/obj/structure/prop/invuln/joey, +"wXh" = ( +/obj/structure/machinery/floodlight/landing{ + name = "bolted floodlight" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/lifeboat_pumps/north2) "wXH" = ( /obj/structure/bed/chair{ dir = 1 @@ -76871,6 +78928,12 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) +"wYa" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "wYj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -76918,11 +78981,6 @@ }, /turf/open/floor/plating, /area/almayer/engineering/ce_room) -"wZa" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/general_equipment) "wZv" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -76936,16 +78994,6 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/port) -"wZy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "wZE" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/surgery, @@ -76965,6 +79013,10 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"wZL" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/perma) "wZM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -76973,6 +79025,18 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) +"wZN" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/lucky_strikes, +/obj/item/tool/lighter, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution) "wZT" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -77022,22 +79086,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"xaF" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "xaM" = ( /obj/structure/surface/table/almayer, /obj/item/newspaper{ @@ -77079,7 +79127,7 @@ }, /area/almayer/command/lifeboat) "xba" = ( -/turf/closed/wall/almayer/reinforced, +/turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/cryo_cells) "xbd" = ( /obj/effect/decal/warning_stripes{ @@ -77104,19 +79152,12 @@ /obj/item/tool/mop, /turf/open/floor/plating, /area/almayer/command/airoom) -"xcp" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_ew_full_cap"; - layer = 3.5 - }, -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"xci" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/area/almayer/engineering/engine_core) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/starboard) "xct" = ( /obj/item/reagent_container/food/snacks/wrapped/barcardine, /obj/structure/surface/rack, @@ -77138,29 +79179,37 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"xeG" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"xdJ" = ( +/obj/structure/machinery/light{ + dir = 4; + invisibility = 101 }, -/area/almayer/hull/upper_hull/u_m_p) -"xeP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "cargo" }, +/area/almayer/shipboard/brig/execution) +"xdP" = ( /obj/structure/surface/table/almayer, -/obj/item/spacecash/c10{ - pixel_x = 6 +/obj/item/trash/uscm_mre, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/flashlight/lamp{ + layer = 3.3; + pixel_x = 15 }, -/obj/item/spacecash/c10{ - pixel_x = 5; - pixel_y = 7 +/obj/item/reagent_container/food/drinks/cans/souto/diet/grape{ + pixel_x = -7; + pixel_y = 10 }, -/obj/item/toy/deck{ - pixel_x = -9 +/turf/open/floor/almayer{ + icon_state = "emeraldfull" }, -/turf/open/floor/almayer, -/area/almayer/living/grunt_rnr) +/area/almayer/living/briefing) +"xeG" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_m_p) "xfc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/safety/cryo{ @@ -77174,28 +79223,38 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"xfi" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/machinery/light{ - dir = 4 +"xfk" = ( +/obj/structure/surface/rack, +/obj/item/stack/cable_coil, +/obj/item/attachable/flashlight/grip, +/obj/item/ammo_box/magazine/l42a{ + pixel_y = 14 }, /turf/open/floor/almayer{ - icon_state = "tcomms" + icon_state = "plate" }, -/area/almayer/engineering/engine_core) +/area/almayer/hull/upper_hull/u_m_s) "xfm" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) -"xfw" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/lucky_strikes, +"xfK" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/transmitter{ + name = "Kitchen Telephone"; + phone_category = "Almayer"; + phone_id = "Kitchen"; + pixel_x = -8; + pixel_y = 29 + }, +/obj/structure/machinery/vending/ingredients, /turf/open/floor/almayer{ - dir = 9; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/squads/req) +/area/almayer/living/grunt_rnr) "xfO" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -77248,12 +79307,6 @@ }, /turf/open/floor/plating/almayer, /area/almayer/hull/lower_hull/l_f_p) -"xgr" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "xgx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -77264,6 +79317,15 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) +"xgI" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null + }, +/obj/item/storage/donut_box{ + pixel_y = 8 + }, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/chief_mp_office) "xgJ" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ @@ -77287,44 +79349,25 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"xgM" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"xgN" = ( +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/holidays/string_lights{ + dir = 8; + pixel_x = 29 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) -"xgS" = ( -/obj/structure/largecrate/supply/supplies/mre{ - desc = "A supply crate containing everything you need to stop a CLF uprising."; - name = "\improper USCM crate 'FOB supplies'" - }, -/obj/structure/sign/arcturianstopsign{ - pixel_y = 32 - }, -/obj/item/folded_tent/big{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 3; - pixel_y = 12 - }, +/area/almayer/living/briefing) +"xgZ" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/living/port_emb) +/area/almayer/hull/lower_hull/stern) "xhn" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -77347,7 +79390,8 @@ "xhM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ dir = 1; - name = "\improper Brig" + name = "\improper Brig"; + closeOtherId = "brigmaint_n" }, /obj/structure/machinery/door/poddoor/almayer/open{ id = "Brig Lockdown Shutters"; @@ -77375,40 +79419,58 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"xiC" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"xik" = ( +/obj/structure/machinery/shower{ + dir = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/toy/inflatable_duck, +/obj/structure/window/reinforced, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) +"xiz" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = -16 }, -/turf/open/floor/almayer, -/area/almayer/engineering/engine_core) -"xjw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/lower_hull/l_m_s) +"xiU" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/item/tool/minihoe{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/reagent_container/glass/fertilizer/ez, +/obj/item/seeds/ambrosiavulgarisseed, +/obj/item/tool/plantspray/weeds, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"xjb" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + access_modified = 1; + name = "\improper Main Kitchen"; + req_one_access_txt = "30;19" }, /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/living/grunt_rnr) +"xjt" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/computer/card{ + dir = 4; + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "xjz" = ( /turf/open/floor/almayer{ icon_state = "plating_striped" }, /area/almayer/command/lifeboat) -"xjC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "xjD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -77417,6 +79479,27 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"xjF" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 4 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 3; + pixel_y = 27 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 15; + pixel_y = 27 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "xjG" = ( /obj/structure/machinery/door_control{ id = "Interrogation Shutters"; @@ -77460,16 +79543,22 @@ "xkd" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/cells) -"xkw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +"xkB" = ( +/obj/structure/bed/chair/comfy/charlie{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" + icon_state = "plate" + }, +/area/almayer/living/briefing) +"xkC" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" }, /area/almayer/hallways/port_hallway) "xlk" = ( @@ -77493,26 +79582,20 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) -"xlX" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"xlY" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/mechanical, -/obj/structure/machinery/light{ +"xlO" = ( +/obj/structure/filingcabinet, +/obj/item/folder/yellow, +/obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/item/storage/toolbox/electrical{ - pixel_y = 8 - }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "orange" }, -/area/almayer/engineering/engineering_workshop) +/area/almayer/engineering/lower/workshop/hangar) +"xlX" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_a_s) "xmg" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -77555,25 +79638,33 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) -"xne" = ( -/obj/structure/machinery/door/poddoor/almayer/blended{ - id = "RoomDivider"; - layer = 3.1; - name = "\improper Room Divider" - }, +"xmX" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, -/area/almayer/command/corporateliason) -"xnl" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Exterior Airlock"; - req_access = null +/area/almayer/shipboard/brig/surgery) +"xns" = ( +/obj/structure/machinery/door_control{ + id = "ARES JoeCryo"; + name = "Working Joe Cryogenics Lockdown"; + pixel_x = -24; + pixel_y = -8; + req_one_access_txt = "91;92" + }, +/obj/effect/landmark/late_join/working_joe, +/obj/effect/landmark/start/working_joe, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/airoom) +"xnz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/command/lifeboat) "xnI" = ( /obj/effect/landmark/start/requisition, /turf/open/floor/plating/plating_catwalk, @@ -77616,6 +79707,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) +"xoj" = ( +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop) "xoJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -77630,28 +79724,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"xoS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/item/ammo_magazine/rifle/m4ra, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -30 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "xpd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -77669,27 +79741,40 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"xpo" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" +"xpi" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, -/area/almayer/shipboard/brig/cic_hallway) -"xps" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +/obj/structure/mirror{ + pixel_x = -29 }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - access_modified = 1; - name = "\improper Brig"; +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/commandbunks) +"xpo" = ( +/obj/structure/closet/secure_closet/cmdcabinet{ + desc = "A bulletproof cabinet containing communications equipment."; + name = "communications cabinet"; + pixel_y = 24; req_access = null; - req_one_access_txt = "1;3" + req_one_access_txt = "3" }, +/obj/item/device/radio/listening_bug/radio_linked/mp{ + pixel_y = 8 + }, +/obj/item/device/radio/listening_bug/radio_linked/mp, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "red" }, -/area/almayer/shipboard/brig/lobby) +/area/almayer/shipboard/brig/chief_mp_office) "xpt" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -77717,12 +79802,18 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"xqg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"xpZ" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "green" + dir = 5; + icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering/lower/engine_core) "xqp" = ( /obj/structure/machinery/body_scanconsole{ dir = 8; @@ -77742,6 +79833,12 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"xqs" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) "xqv" = ( /obj/structure/bed/sofa/south/white/right, /turf/open/floor/almayer{ @@ -77766,27 +79863,64 @@ }, /turf/closed/wall/almayer, /area/almayer/command/securestorage) -"xqS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) -"xro" = ( -/obj/structure/toilet{ - pixel_y = 13 +"xqQ" = ( +/obj/structure/machinery/door/poddoor/almayer/blended{ + id = "RoomDivider"; + layer = 3.1; + name = "\improper Room Divider" }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/command/corporateliaison) +"xrq" = ( +/obj/structure/closet/firecloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/lifeboat) "xrr" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/stern_hallway) +"xrt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 12; + pixel_y = -24 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/chief_mp_office) +"xry" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) +"xrI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower/workshop) "xrN" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ @@ -77794,13 +79928,10 @@ icon_state = "red" }, /area/almayer/hull/upper_hull/u_a_p) -"xrP" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/evidence_storage) +"xsg" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/main_office) "xsl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -77831,20 +79962,6 @@ icon_state = "cargo" }, /area/almayer/hallways/vehiclehangar) -"xtC" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_one_access = null; - req_one_access_txt = "30;19" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/grunt_rnr) "xtD" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, @@ -77862,20 +79979,42 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"xuc" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = -8; - pixel_y = 3 +"xtQ" = ( +/obj/structure/surface/rack, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = -3 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = 9 }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = -3 + }, +/obj/structure/noticeboard{ + desc = "The note is haphazardly attached to the cork board by what looks like a bent firing pin. 'The order has come in to perform end of life service checks on all L42A service rifles, any that are defective are to be dis-assembled and packed into a crate and sent to to the cargo hold. L42A service rifles that are in working order after servicing, are to be locked in secure cabinets ready to be off-loaded at Chinook. Scheduled end of life service for the L42A - Complete'"; + pixel_y = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_m_s) +"xuc" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, +/turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "xuB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -77923,16 +80062,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"xuU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank/custom, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering/engine_core) "xuY" = ( /obj/structure/sign/safety/escapepod{ pixel_x = 8; @@ -77953,19 +80082,6 @@ icon_state = "mono" }, /area/almayer/hallways/aft_hallway) -"xvr" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/chief_mp_office) -"xvw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "xvE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ @@ -77989,6 +80105,16 @@ icon_state = "silver" }, /area/almayer/command/airoom) +"xvQ" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/sentencing{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/processing) "xvX" = ( /obj/structure/machinery/cm_vending/gear/leader, /turf/open/floor/almayer{ @@ -78035,28 +80161,30 @@ /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"xwv" = ( -/obj/structure/bed/chair{ - dir = 1 +"xwE" = ( +/obj/structure/bed/chair/comfy/alpha, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/sign/poster{ - desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; - icon_state = "poster11"; - name = "YOU ALWAYS KNOW A WORKING JOE."; - pixel_x = -27; - serial_number = 11 +/area/almayer/living/briefing) +"xwX" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"xwG" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/area/almayer/lifeboat_pumps/south2) +"xxa" = ( +/obj/item/stack/sheet/cardboard{ + amount = 50 }, -/obj/structure/disposalpipe/segment, +/obj/structure/surface/rack, +/obj/item/packageWrap, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "green" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/squads/req) "xxe" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, @@ -78066,6 +80194,23 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"xxh" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/item/prop/magazine/boots/n160{ + layer = 2.8; + pixel_x = 4; + pixel_y = -8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/commandbunks) "xxi" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -78076,6 +80221,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"xxl" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 2" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "xxm" = ( /obj/structure/bed{ can_buckle = 0 @@ -78206,12 +80359,31 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"xyz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"xyB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/port) +"xyE" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_a_s) +"xyL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) "xyY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -78240,15 +80412,18 @@ }, /turf/open/floor/plating, /area/almayer/hull/upper_hull/u_a_p) -"xzu" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +"xzO" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Execution Firearms" }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/weapon/gun/rifle/m4ra, +/obj/item/ammo_box/magazine/m4ra, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/cells) +/area/almayer/shipboard/brig/execution) "xAe" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell) @@ -78278,12 +80453,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"xAC" = ( -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "kitchen" - }, -/area/almayer/engineering/upper_engineering/port) "xAI" = ( /obj/structure/platform{ dir = 1 @@ -78343,14 +80512,18 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"xCd" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, +"xCb" = ( +/obj/structure/closet/secure_closet/fridge/dry, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/processing) +/area/almayer/living/grunt_rnr) +"xCf" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliaison) "xCj" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating/plating_catwalk, @@ -78384,6 +80557,23 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_m_p) +"xDe" = ( +/obj/effect/projector{ + name = "Almayer_Down4"; + vector_x = 19; + vector_y = -104 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/port) +"xDj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "xDn" = ( /turf/open/floor/almayer{ dir = 1; @@ -78408,21 +80598,23 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"xEc" = ( +"xDF" = ( +/obj/structure/machinery/autolathe, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + dir = 1; + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) -"xEe" = ( -/obj/structure/bed, -/obj/structure/machinery/status_display{ - pixel_x = -32 +/area/almayer/engineering/lower/workshop/hangar) +"xDV" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "red" }, -/area/almayer/shipboard/brig/perma) +/area/almayer/hallways/upper/port) "xEz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/surgery, @@ -78448,24 +80640,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"xFs" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/handcuffs{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/device/flash{ - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xFw" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -78557,14 +80731,6 @@ icon_state = "red" }, /area/almayer/living/briefing) -"xHe" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xHp" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -78576,13 +80742,18 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_m_p) -"xHM" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/sentencing, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +"xHS" = ( +/obj/structure/reagent_dispensers/oxygentank{ + anchored = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/workshop/hangar) "xHW" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -78631,20 +80802,64 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) -"xIw" = ( -/obj/structure/machinery/brig_cell/cell_2{ - pixel_x = 32 +"xIq" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/evidence_storage) +"xIu" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -14; + pixel_y = 28 }, /turf/open/floor/almayer{ - allow_construction = 0 + dir = 4; + icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"xIO" = ( +/obj/structure/machinery/power/fusion_engine{ + name = "\improper S-52 fusion reactor 11" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "xIQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer, /area/almayer/living/offices) +"xIW" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/surface/table/almayer, +/obj/item/book/manual/marine_law{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/device/flashlight/lamp{ + layer = 3.1; + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/poster, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "xJe" = ( /turf/open/floor/almayer{ dir = 8; @@ -78665,20 +80880,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"xJn" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering/upper_engineering/starboard) -"xJC" = ( -/obj/structure/machinery/door/airlock/almayer/generic/corporate{ - name = "Corporate Liaison's Closet" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/corporateliason) "xJH" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -78694,6 +80895,12 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"xJT" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "xKM" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -78731,6 +80938,33 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"xLi" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item, +/obj/item/paper_bin/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"xLl" = ( +/obj/structure/machinery/cm_vending/clothing/military_police{ + density = 0; + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/general_equipment) "xMf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78738,22 +80972,13 @@ /turf/open/floor/almayer, /area/almayer/shipboard/port_point_defense) "xMh" = ( -/obj/structure/closet/crate{ - desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; - name = "special operations crate" +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -78785,18 +81010,29 @@ allow_construction = 0 }, /area/almayer/hallways/aft_hallway) +"xMl" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "xMs" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_two) -"xMt" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +"xMz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ dir = 8; - icon_state = "plating_striped" + icon_state = "red" }, -/area/almayer/squads/req) +/area/almayer/hallways/upper/starboard) "xMA" = ( /obj/structure/machinery/computer/med_data, /obj/structure/sign/safety/terminal{ @@ -78812,12 +81048,6 @@ dir = 6 }, /area/almayer/command/cic) -"xMK" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emeraldcorner" - }, -/area/almayer/hallways/port_hallway) "xML" = ( /obj/structure/machinery/computer/cameras/wooden_tv/prop{ pixel_x = -4; @@ -78829,13 +81059,18 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"xMQ" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 16 +"xMO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/cells) +/area/almayer/hallways/upper/starboard) "xMR" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -78854,6 +81089,23 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"xNf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower/engine_core) +"xNg" = ( +/obj/structure/pipes/binary/pump/on{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/lower) "xNj" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ req_access = null; @@ -78907,6 +81159,14 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"xNL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/vehiclehangar) "xOL" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -78915,6 +81175,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"xOT" = ( +/obj/structure/closet/secure_closet/fridge/meat/stock, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) "xOY" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ @@ -78930,15 +81196,14 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"xPg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/machinery/light, +"xPq" = ( +/obj/structure/filingcabinet, +/obj/item/folder/yellow, /turf/open/floor/almayer{ - icon_state = "green" + dir = 1; + icon_state = "orange" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering/lower/workshop/hangar) "xPE" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating/plating_catwalk, @@ -78972,20 +81237,6 @@ dir = 1 }, /area/almayer/medical/containment/cell) -"xQD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/perma) "xQV" = ( /obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer/no_build{ @@ -79120,30 +81371,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"xSA" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.1; - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/book/manual/marine_law{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/sign/safety/intercom{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/lobby) "xSI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -79183,30 +81410,43 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/containment) -"xTp" = ( +"xTt" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/stern_hallway) +"xTu" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/engine_core) +"xTH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/recharger, /turf/open/floor/almayer{ - dir = 1; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xTt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"xTL" = ( +/obj/structure/machinery/cm_vending/gear/executive_officer{ + pixel_y = 30; + density = 0 }, -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/structure/machinery/power/apc/almayer{ dir = 4 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/living/numbertwobunks) "xTR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -79246,6 +81486,12 @@ icon_state = "orange" }, /area/almayer/living/port_emb) +"xUa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "xUA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, @@ -79272,8 +81518,8 @@ }, /area/almayer/hull/upper_hull/u_m_s) "xUV" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +/obj/structure/bed/chair{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -79292,6 +81538,18 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) +"xVe" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/starboard) "xVj" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldingtool{ @@ -79304,6 +81562,11 @@ "xVk" = ( /turf/open/space, /area/space/almayer/lifeboat_dock) +"xVl" = ( +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/main_office) "xVF" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -79317,20 +81580,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"xVO" = ( -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/closet/secure_closet/guncabinet/red, -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/engineering_workshop/hangar) "xVS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79410,6 +81659,30 @@ "xXh" = ( /turf/closed/wall/almayer/research/containment/wall/west, /area/almayer/medical/containment/cell) +"xXj" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 2; + id = "Perma 1"; + name = "\improper cell shutter" + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 2; + name = "\improper Isolation Cell" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/perma) +"xXl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/engineering/lower/workshop/hangar) "xXr" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/research, @@ -79417,6 +81690,26 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"xXT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/upper/starboard) +"xXW" = ( +/obj/structure/bed/chair/comfy/bravo, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"xYe" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_m_s) "xYf" = ( /obj/structure/machinery/cm_vending/clothing/sea, /turf/open/floor/almayer{ @@ -79424,22 +81717,6 @@ icon_state = "plating" }, /area/almayer/shipboard/sea_office) -"xYj" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17; - pixel_y = 14 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/shipboard/brig/cells) "xYB" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -79464,6 +81741,16 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"xYS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "xYZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -79473,9 +81760,39 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) -"xZz" = ( +"xZk" = ( +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = -10; + pixel_y = 10 + }, +/obj/item/prop/helmetgarb/gunoil{ + layer = 4.2; + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/weapon/broken_bottle{ + layer = 4.51; + pixel_x = 9; + pixel_y = 1 + }, /obj/structure/surface/table/almayer, -/obj/structure/machinery/faxmachine/uscm/command/capt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"xZG" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/item/bedsheet/hop, +/obj/structure/bed, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) "xZI" = ( @@ -79533,6 +81850,21 @@ icon_state = "test_floor4" }, /area/almayer/living/officer_study) +"yaF" = ( +/obj/structure/pipes/standard/simple/visible{ + dir = 4 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 14; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/engineering/lower) "yaG" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, @@ -79554,20 +81886,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"ybb" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/ids{ - pixel_x = -4; - pixel_y = 14 - }, -/obj/item/device/flash{ - pixel_y = -8 - }, -/obj/structure/machinery/faxmachine/uscm/brig, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "ybf" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -79586,6 +81904,13 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_p) +"ybz" = ( +/obj/structure/machinery/brig_cell/cell_4{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "ybO" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/stack/sheet/mineral/phoron/medium_stack, @@ -79603,13 +81928,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) -"ybV" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +"ybU" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "ybZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/transmitter{ @@ -79650,11 +81978,25 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/squads/req) -"ycr" = ( +"ycx" = ( +/obj/structure/bed/chair/comfy/delta{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) +"ycH" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) +/obj/item/pizzabox/margherita{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/squads/req) "ycV" = ( /obj/structure/curtain/red, /turf/open/floor/plating/plating_catwalk, @@ -79725,20 +82067,17 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"ydU" = ( -/obj/structure/window/framed/almayer/hull/hijack_bustable, -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 8; - id = "Perma 2"; - name = "\improper isolation shutter" +"ydO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/obj/structure/bed/chair/comfy/bravo{ + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/perma) +/turf/open/floor/almayer{ + icon_state = "orangefull" + }, +/area/almayer/living/briefing) "ydY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -79747,17 +82086,15 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"yeo" = ( -/obj/structure/machinery/cm_vending/clothing/dress{ - req_access = list(1) +"yeu" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) -"yev" = ( -/obj/item/device/flashlight/lamp/green, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "yeH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -79801,6 +82138,18 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"yff" = ( +/obj/structure/machinery/cm_vending/clothing/dress{ + density = 0; + pixel_y = 16 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/command/cic) "yfm" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, @@ -79817,6 +82166,15 @@ icon_state = "green" }, /area/almayer/hallways/aft_hallway) +"yfw" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/starboard_hallway) "yfy" = ( /obj/structure/surface/table/almayer, /obj/item/trash/crushed_cup, @@ -79836,6 +82194,18 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"yfG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/obj/item/storage/briefcase{ + pixel_y = 15 + }, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "yfS" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -79852,14 +82222,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"ygs" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Bathroom" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/captain_mess) "ygy" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -79869,6 +82231,20 @@ /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_f_p) +"ygK" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/lower_hull/l_m_s) +"yhg" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera"; + pixel_y = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cells) "yhI" = ( /turf/open/floor/almayer{ dir = 4; @@ -79909,13 +82285,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"yiE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering/engineering_workshop/hangar) "yiW" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -79960,6 +82329,15 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"yjG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/lobby) "yjM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79969,6 +82347,11 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) +"yjU" = ( +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "ykj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -79990,6 +82373,19 @@ icon_state = "cargo" }, /area/almayer/hull/lower_hull/l_m_s) +"ykF" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hull/lower_hull/l_m_s) +"ykI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering/lower) "ykP" = ( /obj/structure/filingcabinet{ density = 0; @@ -80017,7 +82413,8 @@ }, /obj/structure/machinery/door/airlock/almayer/research/reinforced{ dir = 8; - name = "\improper Containment Airlock" + name = "\improper Containment Airlock"; + closeOtherId = "containment_s" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -80033,27 +82430,12 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"ylg" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"ylm" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Dorms" - }, +"ylh" = ( +/obj/structure/closet/radiation, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "test_floor5" }, -/area/almayer/living/port_emb) +/area/almayer/engineering/lower/engine_core) "ylJ" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; @@ -86831,10 +89213,10 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH aaa aaa aac @@ -87030,7 +89412,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -87041,13 +89423,13 @@ aaa aaa aaa aad -cZs -cZs -iZG -iZG -iZG -cZs -cZs +feb +feb +feb +feb +feb +feb +feb ajZ aaa aaa @@ -87233,7 +89615,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -87244,13 +89626,13 @@ aaf aaf aaf aag -cZs -cWN -dgx -dgx -dgx -sdq -cZs +feb +qmR +oog +dsA +rbK +tmH +feb aag aaf aaf @@ -87436,29 +89818,29 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa aaa aad -cZs -cZs -cZs -cZs -cZs -cZs -dfp -sEa -vBJ -uNl -oxn -cZs -xEF -xEF -xEF -xEF -xEF +hPI +hPI +hPI +hPI +hPI +feb +dhd +oog +jNT +fag +jVP +feb +feb +feb +feb +feb +feb ajZ aaa aaa @@ -87645,23 +90027,23 @@ aaa aac aaf aag -cZs -yeR -aTg -kyI -aTg -pdG -vAG -dOL -jfY -hwS -wly -wIC -dtN -syM -irr -dAb -xEF +hPI +naB +naB +naB +naB +mtl +vdl +nPb +fZX +dBS +nSu +wld +mtl +jjm +wZN +kgQ +feb aag aaf ajY @@ -87848,23 +90230,23 @@ aaa aad pCi pCi -cZs -osJ -aTg -xvr -bZN -wIC -dWk -fYX -ush -rTt -vAG -wIC -fGN -kIV -kIV -shw -xEF +hPI +pQr +rib +vtG +naB +mtl +eCI +nOC +qVF +xdJ +kzr +jqY +kBh +jNT +jNT +wSK +feb xEF xEF ajZ @@ -88050,25 +90432,25 @@ aaf aaf pCi pCi -myT -wIC -lcW -pbC -xvr -vCG -wIC -tNF -tNF -wIC -hzx -wIC -wIC -vBm -vBm -bIi -mnm -kPo -cFX +sBo +naB +wnw +pHp +fgl +dya +fLF +kEq +mtl +mtl +mtl +mtl +ewI +mtl +xzO +pNk +jIH +mtl +gbO xEF xEF aaf @@ -88253,25 +90635,25 @@ pCi pCi pCi cpf -cos -wIC -wIC -wIC -wIC -wIC -wIC -cNY -tak -sip -mLJ -ntm -hND -kif -hND -mnm -wVz -kIV -dDQ +cHP +naB +pQr +tYW +wvI +vPf +fvA +qPD +vcm +tul +mNK +gtU +bjk +mtl +mtl +mtl +mtl +mtl +dgq sGe xEF xEF @@ -88451,35 +90833,35 @@ pCi mUQ rPC wcn -wcn +eEf xhM wcn tng hGD -wzx -vBm -paq -uoY -vUL -vez -xys -swo -eRL -eRL -mLJ -bua -vBm -xkd -xkd -xkd -xkd +qUE +naB +naB +naB +naB +naB +dcy +qPD +qPD +qPD +qPD +quJ +rdA +alF +sql +alF +dTQ kIV iYi gSs eyd kIV kQz -mnm +jjX kIV kIV flP @@ -88656,31 +91038,31 @@ wcn rPC vWx age -dPY +aNk rTV wcn tYB -vBm -qfR -tak -tak -bvx -xys -ldu -eRL -eRL -mLJ -eiO -xFs +naB +pQr +cjz +wvI +piK +fvA +qPD +wZL +ffg +ffg +wsh +eMJ xkd -eiH -aTV xkd xkd xkd -mnm -mnm -iqx +xkd +xkd +shw +ecP +nxc qFl vUI mnm @@ -88863,23 +91245,23 @@ vBm vBm qmC vBm -vBm -ouV -bTw -sjc -dci -rzj -tGg -sjc -sjc -iqn -eRL -tmy +naB +kry +pHp +fgl +xXj +qXE +qPD +sPF +qPD +qPD +uQm +stO xkd -rUB -dSn -soa -xzu +teE +xJT +xkd +ljS xkd xkd xkd @@ -89050,7 +91432,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -89065,24 +91447,24 @@ oPk mqo vBm eRL -rag -qqN -lzx -mLJ -bua -gcT -dSc -qre -eRL -eOR -aJz -dXy -nHg -xkd -ghX -rAv +puv +naB +pQr +bsp +hCV +naB +naB +uUu +qCU +qZF +qPD +iQd +qJo xkd -eTo +vWG +lJL +dQp +vlM iHG dCe moB @@ -89252,8 +91634,8 @@ aaa aaa aaa aaa -aaa -aaa +bdH +bdH bdH bdH aad @@ -89268,22 +91650,22 @@ wgi wgi ckS eRL -bua -gcT -gcT -tJy -fnC -tpn -tpn -tpn -ula -tpn -wvT -luw -sgi -xkd -xkd +sDV +naB +naB +naB +naB +naB +naB +nVR +nVR +nVR +nux +tau +nVR xkd +xik +bjQ xkd kmd tUx @@ -89456,7 +91838,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -89470,25 +91852,25 @@ sFC sFC sFC vBm -pcQ -xHe -gqW -gqW -lCM -ugT -tpn -vrM -kta -vWo -xrP -xTp -pyj -pwt +lOI +pJv +jLM +tak +cMb +rbi +wDp +xys +nkX +iQB +cmv +vzk +phN +iVP +xkd +xkd xkd -uvY -oBq xkd -rPh +umW iOD iOD tHS @@ -89659,7 +92041,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -89674,24 +92056,24 @@ xhE xhE vBm hKq -cdk -soD -tdv -szy -wdr -tpn -aeo -sIw -eni -xrP -xTp -pyj -hTt -kMH -tUx -iTI -hzJ -cyZ +lwK +hrO +xsg +xsg +grF +xVl +uqy +wdF +wdF +wdF +wdF +cMl +icZ +xkd +uvY +oBq +xkd +wKJ jVa jVa tHS @@ -89862,7 +92244,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -89877,24 +92259,24 @@ ssD gcT rmv eRL -mLJ -bua -nNQ +eRL +rhl gcT -ciF -tpn -vrM -eBW -eOh -xrP -xTp -pyj -kfN -xkd -qFu -xkd -xkd -qJZ +gcT +xVl +gcT +lxy +oRk +oRk +oRk +utZ +cMl +hTt +kMH +tUx +iTI +dmZ +eZH jVa jVa tHS @@ -90065,7 +92447,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -90073,29 +92455,29 @@ aag ahE nBc wcn -vBm -vBm -vBm -vBm -vBm -vBm -hZU -mLJ -fkn -gaJ -gaJ -gaJ -gaJ +lrq +lrq +lrq +lrq +lrq +lrq +lrq +cxA +uwS tpn tpn -ueo +srT tpn -wCM -pyj -opN +tpn +xjF +myP +gDt +bju +cMl +lMc +xkd +qFu xkd -uvY -duT xkd vdM jVa @@ -90268,7 +92650,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -90276,30 +92658,30 @@ aag pCi mUQ aou -vBm -tJp -ybb -tHB -aEk -nSM -ldu -mLJ -pYF -gaJ -wVV -wVV -wVV -gaJ -aOY -wdF -sdF -kNi -pyj -xIw -kVZ -tUx -iTI -nXm +lrq +kEc +chv +cAy +uhE +vKB +lrq +szR +cZj +tpn +eVR +cak +vrM +tpn +mHb +hjM +xTH +bju +wSm +dEG +xkd +uvY +duT +xkd eZH jVa jVa @@ -90471,7 +92853,7 @@ aaa aaa aaa aaa -aaa +bdH bdH bdH aad @@ -90479,35 +92861,35 @@ aag pCi hKi rPC -vBm -sQS -xEc -grl -egR -tak -lzx -mLJ -ugT -fso -vpI -vpI -vpI -cuk -tkV -jFR -oRk -kxM -jSw -vBm -vBm -qof -vBm -vBm -wRm +lrq +heo +nqe +nqe +nqe +nqe +tLa +eRL +igt +tpn +rqS +cak +vrM +tpn +pUD +bju +wdF +wdF +wSm +dPT +kVZ tUx -vrx +iTI +nUj +eZH tUx -gSV +vrx +yhg +lbs eZH tUx cXi @@ -90682,31 +93064,31 @@ aag ahE nnF rPC -vBm -ikM -pzc -jjM -eRL -eRL -eRL -mLJ -ugT -qvf -vpI -vpI -vpI -qvf -wdF -lMc -ycr -kge -kDA -rkL -eZj -efh -mGn -jkS -cyZ +lrq +kui +uqo +pId +qMD +uqo +lrq +sYi +sYE +tpn +gIU +xIq +vrM +tpn +efT +nkF +hkH +kuJ +sLA +jSw +xkd +cJh +xkd +xkd +icM thL thL thL @@ -90885,35 +93267,35 @@ aag ahE hUg wcn -vBm -gqW -buX -mLJ -eRL -eRL +lrq +sEZ +nqe +nqe +nqe +nqe +mza eRL -mLJ -pWG -gaJ -eyg -gCI -eyg -gaJ -heQ -lMc -eOW +wfB +tpn +tpn +tpn +tpn +tpn +xIu +xvQ +eDt +bju cMl -lMc -nxq -ldu -kJK -bja -jkS -eZH +kAL +xkd +uvY +sgE +xkd +qJZ ohJ thL thL -tjU +uAL liZ rUk jVa @@ -91088,31 +93470,31 @@ aag ahE rPC wcn -vBm -jCa -cFO -lNs -srV -uzU -nJo -inN -wQk -gaJ -gaJ -gaJ -gaJ -gaJ -tRA -lMc -gjL +lrq +dEX +fxJ +fxJ +fAr +qmU +lrq +hZU +cWs +fAE +kHa +frX +mHA +kHa +snX +oIh +oIh +wNt cMl -oeB -rkL -ldu -eRL -jZL -vBm -qJZ +nlz +vNp +tUx +iTI +qxe +eZH ohJ thL thL @@ -91292,30 +93674,30 @@ pCi wcn wcn lrq +iwV +iwV +iwV +iwV lrq -bVC lrq -lrq -lut -eRL -eRL -enz -swn -vOd -uCl -dls +gob +cWs +irF +kHa +rEQ +xmX eGr -gbX -rCL -xHM -jxK -hyz -ltX -pbh -rRQ -rRQ -iyq -inG +wdF +wdF +wdF +wdF +kQu +cqM +xkd +cJh +xkd +xkd +pns omt omt omt @@ -91494,31 +93876,31 @@ aag pCi rPC rwS -lrq -kTc -uqo -wVw -cqn -gTx -eRL -eRL -igt -swn -daj -qbt -exr +cQv +oVf +rmx +bvH +evR +cQv +cQv +vtD +rAX kHa -luH -lMc -ycr +kHa +lRe +mvR +kHa +tzd +tzd +sgi bju -goD -vBm -vBm -qof -vBm -vBm -sSm +wSm +kAL +xkd +uvY +qEA +xkd +eZo thL thL thL @@ -91527,7 +93909,7 @@ tov thL sUs xkd -mnm +lmk kIV xEF aag @@ -91697,31 +94079,31 @@ aag ahE rPC nfI -lrq -omu -uqo -sYB -cqn -ldu -eRL -eRL -cWs +cQv +cBw +kde +kde +ajj +mZQ +cQv +vgW +igt swn -dcP -tvA -dQv +rpF +tQm +ond swn -xTp -lMc -gSi +gHt +oIh +eNR bju wSm -jox -lrV -tUx -ntu -nYP +ybz +rrz tUx +iTI +tlp +lXb thL oXp thL @@ -91900,31 +94282,31 @@ aag ahE rPC heV -lrq -frJ -uqo -ktn -cqn -nBb -mdS -eRL -uJs +cQv +eaf +bEv +quj +vgi +rXd +cqJ +ldu +igt swn dfO -doj dQv +doj swn -fYn -qZg -iXt -gBi -wSm -opN +neC +mjt +vqc +edo +fTt +lMc +xkd +qFu xkd -nlH -rQY xkd -xMQ +thq ezX pqF rUk @@ -91933,7 +94315,7 @@ iFc thL tUx fgR -inC +kIV fQk ils aag @@ -92103,31 +94485,31 @@ aag ahE wcn nBc -lrq -vsI -uqo -xoS -lrq -mAT -lrq -cxA -plZ +cQv +eaf +bEv +lEe +pGT +pGT +vkM +sjc +xYS kHa qPO -qPO wuc qPO -oRZ -wdF -xCd -bqp -wSm -kfN -xkd -qFu +qPO +ptq +oRk +eNR +bju +cMl +dEG xkd +uvY +lSs xkd -jVa +kbX ezX prY rUk @@ -92306,38 +94688,38 @@ aag pCi wcn wcn -lrq -mAr -uqo -fsT -jnA -fDn -lrq -tqV -nBo -maa +cQv +eaf +bEv +vyH +ajj +rXd +cqJ +ldu +igt swn plI -tqe +dQv +lNN qPO -wvT -luw emp -uUO -wSm -jZm -wmE -tUx -ntu -vQN -jVa -rjw +emp +emp +iEx +cMl +qFE +wDC tUx -lnJ -rjw +iTI +fKw +pgP +thL +thL +thL +thL +thL +thL tUx -jVa -oEE xkd kIV hFW @@ -92509,39 +94891,39 @@ aag pCi oCL wcn -lrq -uZY -uqo -uqo -uqo -iOh -lrq -gdo -nBo -jJq +cQv +eaf +bEv +sBg +uGN +rXd +cQv +gax +igt swn -dHv -qQM +vsM +dQv +ebv qPO -xTp -lMc -jcf -qUb -wSm -jSw +cFC +oIh +lUm +skj +tXc +cqM xkd -nlH -uuq +qFu +xkd +xkd +cvH +thL +thL +thL +thL +thL +thL +tUx xkd -naB -naB -pFg -naB -naB -naB -ydU -naB -naB kIV mnm xEF @@ -92712,39 +95094,39 @@ aag pCi rPC aou -lrq -mAr -uqo -uvy -tfO -fsz -lrq -irJ -nBo -pJi +cQv +xLl +bEv +kde +ajj +tuk +cQv +rzY +igt swn -jAG -tqe +skq +dQv +hhW qPO -xTp -lMc -jcf -eUU -wSm -cqM -xkd +ehX +mTN +hZJ +iLG +jXd +kAL xkd +uvY +cjk xkd +pgP +tUx +tUx +tUx +tUx +tUx +vsz +oEE xkd -naB -eoP -fgl -xEe -naB -xEe -fgl -deb -naB lmk kIV xEF @@ -92915,39 +95297,39 @@ pCi pCi wcn tYB -lrq -noo -noo -noo -lrq -lrq -lrq -fNA -nBo cQv +dzG +kde +ioV +cQv +tlk +cQv +cxA +suc qPO qPO wuc qPO -wvT -luw +qPO +mFc +eKa emp -dGD +lze wSm -lfW -emp -vli -rSH -xYj -naB -aSS -pHp -poZ -naB -jkV -pHp -kOi -naB +slf +bli +tUx +iTI +bQc +pgP +uVV +iBl +wIC +smZ +smZ +wIC +tMH +wIC xCj kIV xEF @@ -93026,8 +95408,8 @@ poR mGL pNp kcp -bTS -bIA +wMv +nCR alU uDn bKf @@ -93119,38 +95501,38 @@ msV rPC naf cQv -vcG -lYZ -olv -dxm -nMu -uFp -ePB -nBo +rdM +gUg +cov +cqJ +hNl +tak +uhW +uJs tsX -xSA -ugs -wVY +ngr +cDN +peO lEv -iQg -jpQ -tsX -jOu +jic +qGf +emp +bju wSm -pyj -vsJ -kjN -rvo -oIc -naB -xro -fgl -wvI -naB -wvI -fgl -qmX -naB +jSw +emp +emp +emp +emp +lFJ +emp +emp +wIC +puE +crp +dco +dqZ +wIC lTK mnm kIV @@ -93320,41 +95702,41 @@ aad pCi dSA rPC -cQv -cQv -geX -tFv -pGT -vkM -jvc -ajj -ajj -nBo -xps -jpQ -jpQ -wVY -eOk -pFa -ctn -wqu -eeN +vxM +vxM +vxM +vxM +vxM +vxM +qlS +eRL +eRL +uJs +tsX +tdy +cDN +oFY +oFY +yjG +ncl +jcf +bju cMl -fHS -naB -naB -naB -naB -naB -naB -rkh -lvZ -naB -fuX -rra -naB -naB -naB +oeB +emp +slF +oIh +qUz +ksg +oIh +iTl +wIC +cBZ +hMc +vAG +jIo +wIC +wIC mnm kIV xEF @@ -93434,9 +95816,9 @@ bTS lxo qcy kcp -bAg -edM -egq +kmk +kmk +mIJ bLt bXX bKh @@ -93514,7 +95896,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa bdH @@ -93523,41 +95905,41 @@ aad pCi wcn rPC -cQv -eaf -bEv -tWg -rZR -cqJ -isH -vwO -scD -rXC -vyE -nwz -nwz -mkk -wir -jnT -qNv -wqu -eeN +vxM +rfY +kGu +iqR +fyp +wJh +ldu +eRL +eRL +uJs +diP +tff +cDN +oFY +cQL +npO +ncl +jcf +bju cMW qEy -ooR -xvw -nBu -tcP -lFs -sIY -qyd -uDp -tNj -uDp -qyd -icX -xQD -naB +iis +rQc +oDy +oDy +wsq +vxK +gwj +rCU +jPS +jPS +sJm +dqZ +rDY +wIC kIV lre xEF @@ -93637,9 +96019,9 @@ oQM aqI aqI kcp -bzA -bBB -bBB +jaK +jxP +xNL bLu bBB bBB @@ -93726,41 +96108,41 @@ aag pCi mNR wcn -cQv -eaf -bEv -fLn -rXd -dvT -qSl -ajj -ukS -wZa -tsX -ezU -dxT -jpQ -iQg -bRm -ecq -tsX -tkV -pyj +vxM +tQi +wee +wee +fRS +wJh +yeu +sjc +rVm +mMZ +aDM +oSC +uFq +wsl +wSu +xIW +wBd +emp +gbw +oRk +jyb +emp +bPH +rJj +mBx +utZ pyj -luC -elq -qmE -luC -uVF -uQm -qPD -qPD -qPD -qPD -qPD -bND -jaP -naB +jPP +wIC +xpo +xqs +rWF +uSB +lzY +wIC kIV rQU xEF @@ -93929,16 +96311,16 @@ aag pCi tCb aou -cQv -eaf -bEv -fLn -avz -dvT -nHV -ajj -iKX -cQv +vxM +jvP +rDQ +rDQ +rDQ +ctT +mLJ +bua +ybU +vBm tsX tsX tsX @@ -93946,24 +96328,24 @@ epu oLF tsX tsX -tsX +emp vyi vyi vyi -naB -naB -naB -naB -dqV -mdJ -vXQ -vXQ -uNe -uUs -nqZ -ekg -usr -naB +emp +emp +emp +emp +emp +wIC +lnh +wIC +rWn +rWn +wIC +wIC +wHM +wIC inC mKf xEF @@ -94132,41 +96514,41 @@ aag pCi oCL wcn -cQv -eaf -bEv -qRo -rXd -dvT -bAM -wZa -cQv -cQv +vxM +sbP +sbP +sbP +sbP +wJh +ekF +uif +vBm +vBm tHr mqg -eiK +udR vka uwN -fbv +nVq xuZ mSs xuZ xuZ xuZ -rCU +xuZ rEY gxU -naB -kyP -qPD -qPD -qPD -uQm -pIH -naB -nOe -nOe -naB +giR +vUP +wIC +qZA +dgx +fKi +vxG +wIC +xgI +dBQ +wIC bIi fQk xEF @@ -94267,7 +96649,7 @@ bSv aIX aIX bSv -ehZ +oES eXo vRz aag @@ -94335,15 +96717,15 @@ aag pCi wcn rPC -cQv -bop -jeK -mWe -rXd -dvT -ieo -vxC -ldD +vxM +pas +ncf +kjk +qxr +wJh +ekF +ugT +qqC ceZ jnD hUW @@ -94359,17 +96741,17 @@ rWs rQt cgT xuc -naB -pZV -gMf -ekg -ekg -uQm -nnz -vrQ -mLI -qyd -vrQ +gXx +wdh +wIC +mHz +jPS +jPS +xrt +wIC +qqV +nNg +wIC mnm sIk xEF @@ -94536,23 +96918,23 @@ bdH aad aag pCi -nfI +wcn rPC -cQv -cQv -cQv -cQv -cQv -dvT -ieo -vxC -ldD +vxM +vxM +vxM +vxM +vxM +gaJ +hmG +xys +vBm vGA hUW dHd vka lnt -uVA +eAF uVA uVA uVA @@ -94562,17 +96944,17 @@ uVA wIQ xWv aQb -naB -naB -mtl -hwQ -hwQ -okM -mtl -mtl -naB -naB -naB +vka +jUY +wIC +hNY +qFi +vAG +hsj +wIC +wIC +wIC +wIC mnm hPT xEF @@ -94739,17 +97121,17 @@ aaf aag aag pCi -bsf -ahX -aFN +hKi +wcn +kEU wcn cXZ -jIV -vxM -gaJ -uzx -uue -vxM +vBm +tJM +viH +lCp +ttE +vBm iuE uwN vka @@ -94766,18 +97148,18 @@ jfK wIQ mPj omy -xpo -mtl -pGG -qRT -djm -hgF -mtl +sCQ +wIC +wvE +jhI +jfY +bra +wIC kIV hUc -wNU +pre mnm -fwF +kIV xEF aag aag @@ -94942,17 +97324,17 @@ adG adG adG adG +gqq +iCz +kEU rPC rPC -dav -rPC -rPC -kDb -vxM -wVV -qau -mVi -vxM +vBm +vBm +vBm +vfw +occ +vBm udK mwA lnt @@ -94970,17 +97352,17 @@ mgj wIQ jHh jUY -fbY -qVF -oog -qaJ -czB -mtl +wIC +aWg +jES +vBJ +qTQ +wIC mnm kIV -wNU -kIV +pre kIV +mrB tuA tuA tuA @@ -95148,14 +97530,14 @@ akC akC akC akC -cVJ +rDI rPC -jvJ -vxM -sVy -mKh -mVi -vxM +vBm +mvE +tak +lCp +iLo +vBm bmz wSR mMV @@ -95173,14 +97555,14 @@ awz woy laO nRH -fbY -qVF -oog -kHK -wfL -mtl +wIC +tiF +vAG +opF +pDW +wIC mnm -dGc +wRa kCi kCi kCi @@ -95353,12 +97735,12 @@ bzz akC cRc rPC -wcn -vxM -eyg -giZ -gTl -vxM +vBm +qkn +eRL +lwK +vlN +vBm pZS pEB jUY @@ -95376,12 +97758,12 @@ qwp pZS jHh jUY -fbY -uLJ -oog -sBH -vfv -mtl +wIC +wIC +vzj +wIC +wIC +wIC mnm dGc kCi @@ -95556,12 +97938,12 @@ aHZ akC oCL rPC -wcn -vxM -vxM -tXs -oCX -vxM +vBm +rJN +nJz +wgi +rEO +vBm vkR wsD jUY @@ -95579,12 +97961,12 @@ qwp vGA uwN uVd -mtl -mtl -qYH -mtl -mtl -mtl +wIC +wjY +aTg +rFg +kkv +wIC kIV kIV kCi @@ -95607,7 +97989,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -95759,12 +98141,12 @@ btv akC dDC rPC -wcn -vxM -wVV -erx -dsw -vxM +vBm +vBm +knO +wgi +ugT +vBm kfE wsD jUY @@ -95782,12 +98164,12 @@ qwp cDn uwN jUY -mtl -lNF -rkK -cIK -mtl -tzj +wIC +lcW +aTg +wIC +wIC +wIC kIV bbR kCi @@ -95810,7 +98192,7 @@ aaa aaa aaa aaa -aaa +bdH aaa aaa aaa @@ -95962,12 +98344,12 @@ aHZ akC eKM ake -rPC -vxM -dFC -bRH -bRH -vxM +kif +vBm +rRr +dFU +fnC +vBm xDn pEB jUY @@ -95985,14 +98367,14 @@ awz gGr jHh sCQ -mtl -pJE -wPk -hRy -mtl -tzj +wIC +wtY +aTg +jIT +wIC +mKf +kIV kIV -bVT kCi nwW btD @@ -96163,14 +98545,14 @@ adu adu aHZ akC -akC +lUz tRX -uzm -vxM -eyg -eyg -oWI -vxM +lUz +vBm +hqU +gcT +oPp +vBm nNv pEB jUY @@ -96188,13 +98570,13 @@ qwp ora laO rKQ -mtl -qHF -fnl -mtl -mtl -utZ +wIC +yeR +aTg +nNg +wIC pUJ +wCZ pUJ kCi nRR @@ -96366,14 +98748,14 @@ nIt adu hxG akC -fvu -qkn +bVT wcn -vxM -vxM -vxM -vxM -vxM +avl +vBm +vBm +vBm +vBm +vBm xSz pEB jUY @@ -96391,14 +98773,14 @@ qwp pZS jHh vCx -mtl -mtl -mtl -mtl -qFl -mnm -xyz +wIC +wIC +wIC +wIC +wIC gpe +mnm +dXO kCi nNt vqC @@ -96595,13 +98977,13 @@ vGA uwN pYX xuZ -jnD -elh -rzM -aBN -fQS -tJo -tJo +pcj +hXm +fZq +dVm +qkb +vnY +vnY bpd bqT vZv @@ -96797,8 +99179,8 @@ awz vSN mPj rWs -mIy -eEw +inh +ewr lPC mgy wWT @@ -97213,7 +99595,7 @@ vcK mBA kCi kCi -wGI +kCi kCi vmW nIE @@ -97309,8 +99691,8 @@ baH fVz bHB bBN -qif -vDh +bcm +vVh kCT kCT kCT @@ -97416,7 +99798,7 @@ ukU bfP fvv vcK -vcK +wGI tuA tuA tuA @@ -98130,7 +100512,7 @@ kCT iRS mzo oFG -bIO +vRz aaa aaa aaa @@ -98430,9 +100812,9 @@ vCO vCO vCO jxB -gpe -gDq -tJo +xDj +boc +eXS bGr hnV xEF @@ -98614,9 +100996,9 @@ wVW wVW wVW swH -ayy +ucz wVW -aBV +sSG sEM wVW wVW @@ -98633,9 +101015,9 @@ wmT jhW mWD jxB -fGN -dtN -gpe +gvW +sWs +imJ xuB gpe xEF @@ -98796,7 +101178,7 @@ aad aai aai pCi -lFb +pmI avl avl agj @@ -98815,13 +101197,13 @@ apo fHh wVW lZs -gHl +lVX sni ayz dAX aQg vpV -eSV +snI aGp wVW aDv @@ -98838,7 +101220,7 @@ aES aES aES aES -gpe +vbP uEv gpe xEF @@ -98997,20 +101379,20 @@ aaa aaa aad ahE -iuT -naf -lFb +qKt +dKa +hdb avl agj agj -aew -bCO -hvH -hvH -hvH +jbN +mTc +hkX +yfG +lxE kcN -cod -oqA +twI +ufL aic aov wVW @@ -99200,20 +101582,20 @@ aaa aaa aad ahE -afc -avl -lFb +ooo +uaX +kfR avl agj -yeo +kyR agc -bIz +qfD agc -hvH -lQq +kJm +gFR kcN cod -oqA +ufL aic aov wVW @@ -99408,16 +101790,16 @@ wBY hJJ qCi agj -eBo -agc +ogK +qgr agc agc -ahY -mXj -kcN +kJm +lpg kcN -agj -amI +yff +ufL +aic aKq luZ alX @@ -99609,16 +101991,16 @@ pCi kwS avl avl -lIh +mRp agj -oMM -agc -agc -glU -rDd +nCx +tYM +mqb +kDK +jMx mXj -akk -alb +kcN +kcN agj aic aKq @@ -99814,14 +102196,14 @@ avl hCo lIh agj -kFk +nXO hvH +bVs hvH hvH -ahZ -mXj -akl -alc +qBq +xxh +xpi agj bFA aov @@ -100017,16 +102399,16 @@ avl hMI lFb agj +dyj +fnv +bVs +xZG +kYt mXj -mXj -aoZ -aha -mXj -mXj -akm -mXj +ulo +kJW agj -aox +aic aoA wVW teY @@ -100221,13 +102603,13 @@ iDT tDx agj mXj -tZB -hvH -hvH -hvH -adv -hvH -alj +mXj +lul +mXj +mXj +mXj +mXj +mXj agj aic aov @@ -100423,16 +102805,16 @@ dTt jgM lFb agj -eYC -agc -fNb -eSJ -agc -agc -hvH -alo +mXj +pjR +jND +aKk +aKk +szf +faE +mXj agj -aic +amI aov wVW wVW @@ -100442,7 +102824,7 @@ wVW rOC soX azX -aAD +vHt aCb aDv aEC @@ -100626,17 +103008,17 @@ avl jpJ lzH agj -uvZ -agc -agc -juN -pxG -agc -ocs +qlI +cdB +xjt +coD agc +ako +tYM +gLN agj aic -aov +acS wVW asQ awG @@ -100829,17 +103211,17 @@ avl llM lGL agj -geW -erZ -tMn -iVZ -aiW -aiW -akn -xyk -sBF -amY -vtT +eBE +hvH +agc +rNa +pxG +fOv +agc +agc +agj +aic +sxW wVW abQ atN @@ -101032,17 +103414,17 @@ avl avl mrc agj -cCd -agc -agc -nwv -pxG -agc -ako +kSH +hvH +nTA +kWR agc -agj -aic -aov +aiW +xyk +xyk +mDX +aTl +dLe wVW atx qEk @@ -101058,7 +103440,7 @@ hkG wVW fvB qEk -auR +iaa wVW aKn aKz @@ -101235,16 +103617,16 @@ pCi jTi nRq agj -bYd +ikQ +hvH agc -qck -yev +qlp +pxG +tTk agc agc -akp -hGB agj -aic +fXP aov wVW atx @@ -101261,7 +103643,7 @@ aEB wVW fvB qEk -auR +iaa wVW aKn aKz @@ -101438,14 +103820,14 @@ pCi avl myn agj -mXj -tZB +muV hvH -ahv -aiF -aiF -akr -xZz +qck +eRi +agc +tan +kDK +iEz agj aic aov @@ -101464,7 +103846,7 @@ aEC wVW dNZ qEk -mtX +mje wVW aKn aKz @@ -101642,13 +104024,13 @@ cnX lIh agj mXj -afo -lue -ahw -aiG -aiG -aks -alu +fnv +hvH +hvH +iNY +hvH +jhB +mXj agj aic aoA @@ -101667,7 +104049,7 @@ aED wVW ryR jvX -auR +iaa wVW aKn aKy @@ -102688,7 +105070,7 @@ aJc ecr ecr ecr -ygs +ohS aET nUv aJU @@ -102883,15 +105265,15 @@ dum wVW wVW wVW -lgK +jOc aGZ awF cST aTz aUl aET -aWA -jgu +esC +nsQ aET mSi wHp @@ -103089,7 +105471,7 @@ aGV rvA aKE awF -cST +jzE aUw aUm aET @@ -103464,7 +105846,7 @@ awW add add add -add +stu add add add @@ -103490,7 +105872,7 @@ asl amO aGO awF -aFj +hRk aGY rvA aKO @@ -103510,7 +105892,7 @@ baw aJU aJU aJU -wDl +tBu aJU aJU aJU @@ -103661,7 +106043,7 @@ bdH aaC abs adq -qcq +dpo ajI add add @@ -103693,8 +106075,8 @@ asp amO avj awF -aFo -aGY +xTL +lmA rvA aqm awF @@ -103719,7 +106101,7 @@ gjq aJU aJU tiW -eMn +msg pgD tQV aaC @@ -103864,16 +106246,16 @@ bdH aaC abs adq -jWH +myl ajI add -auJ +fsU aHU aTm awW aTm jgF -auJ +fsU add ajI add @@ -103913,16 +106295,16 @@ aJU aJU tiW aJU -lqZ +gBW ouQ iun baw vPm qys -lqZ +gBW aJU tiW -pUe +qgU pgD tQV aaC @@ -104066,8 +106448,8 @@ bdH bdH aaC abw -adQ -awW +aee +avd acW awW auK @@ -104095,12 +106477,12 @@ yjM qbO aqw hnI -ayT +bYe amO wZM aPm awF -aHk +nvG vGI aLp awF @@ -104125,8 +106507,8 @@ mlz sOy baw sgU -baw -svp +xVF +njD trb aaC bdH @@ -104269,8 +106651,8 @@ bdH aaa aaY abw -adZ -awW +aec +avd acW awW avc @@ -104305,7 +106687,7 @@ ejp awF aHn szU -aLt +fGa awF aRC aUw @@ -104328,8 +106710,8 @@ fDS iLd baw sgU -baw -uvk +xVF +dLz trb aaC bdH @@ -104473,16 +106855,16 @@ aaa aaY abs adq -add +tGj ajI add -auJ +fsU aHU aTm awW aTm jgF -auJ +fsU add ajI add @@ -104522,16 +106904,16 @@ aJU aJU tiW aJU -lqZ +gBW ouQ vbB baw tBq qys -lqZ +gBW aJU tiW -aJU +bpw pgD tQV aaY @@ -104704,7 +107086,7 @@ aiX aKG amb aiX -bYe +ayT amO avj qFl @@ -104885,7 +107267,7 @@ aoC add add add -add +stu add add add @@ -104931,7 +107313,7 @@ baw aJU aJU aJU -aJU +nnX aJU aJU aJU @@ -105023,13 +107405,13 @@ gfW bGQ bHB qnd -cmp -cmp -cmp -cmp -cmp -cmp -cmp +lFp +lFp +lFp +lFp +lFp +lFp +lFp vwN oFG nqU @@ -105226,13 +107608,13 @@ gfW rHw wTg aYu -cmp -bTz -apV -are -apV -djM -cmp +lFp +ddw +gHl +kjD +gHl +qoL +lFp mjR oFG nqU @@ -105429,13 +107811,13 @@ gfW aZZ aYC aZZ -cmp -apM -eGs -bWM -bWM -bWS -cmp +lFp +mgd +wfn +aId +aId +poA +lFp mjR bVR oeo @@ -105609,7 +107991,7 @@ bsk sxu cBI bkA -bcB +eFG bej arX vSG @@ -105632,20 +108014,20 @@ gfW bLT cbQ ccq -cmp -apO -bWM -bWM -bWM -gQl -asE -asE -asE -asE -asE -asE -asE -asE +lFp +lGg +aId +aId +aId +jFx +nmY +nmY +nmY +nmY +nmY +nmY +nmY +nmY clO gUv vRz @@ -105835,20 +108217,20 @@ gfW bGT bHH bGT -cmp -apP -hKQ -bWM -bWM -fps -asE -asB -atA -bWM -aur -auI -auY -asE +lFp +xDF +eRS +aId +aId +tMc +nmY +ouw +jDP +aId +xHS +tEd +vjW +nmY caE pdk vRz @@ -105910,16 +108292,16 @@ awW awW awW fSm -atW +hiy apl bbL bbL kij bbL -bbL -bbL -yfv bYe +bYe +yfv +bbL aWl bbL bbL @@ -106038,20 +108420,20 @@ gfW bUe cbR ccr -hcC -lEW -aqd -bWM -bWM -ask -asE -asE -asE -atJ -aus -aus -ava -asE +sHm +ddM +hZe +aId +aId +rNK +nmY +nmY +nmY +dZu +dKK +dKK +xry +nmY clP ovF yhQ @@ -106113,7 +108495,7 @@ ajf ajf ajf oAO -heH +pIZ aod qgG amC @@ -106242,19 +108624,19 @@ iRx iEb bHa apm -jUn -avT -bWM -bWM -aso -asv -xVO -asE -bWM -auw -auM -avb -asE +gJO +pwG +aId +aId +wUK +dDM +vPR +nmY +aId +vXf +qGw +uZV +nmY scI oed yhQ @@ -106316,7 +108698,7 @@ awW awW awW aSJ -tsv +isI dtM aii mce @@ -106348,8 +108730,8 @@ baw baw baw mnA -aJU -aJU +baw +baw qVM iBt iBt @@ -106445,19 +108827,19 @@ buH iEb buH app -uku -aqD -bWM -arE -ast -pjP -atd -uku -bWM -aux -aus -ava -asE +ruL +qUZ +aId +hJI +vwY +uIA +acd +ruL +aId +kyh +dKK +xry +nmY suT ftl yhQ @@ -106648,19 +109030,19 @@ buH iEb buH app -uku -aqT -bWM -gwW -dvF -bWM -ate -uku -bWM -auC -auN -dxL -asE +ruL +gsd +aId +oqt +wCk +aId +lab +ruL +aId +hgD +pSQ +dOe +nmY tqk iBG yhQ @@ -106851,19 +109233,19 @@ oLv iEb buH app -uku -aqW -bWM -arZ -mkh -bWM -ath -asE -atZ -auE -auP -wZy -asE +ruL +xPq +aId +vjv +gOR +aId +vTV +nmY +pdy +smW +prP +xXl +nmY iTz vfJ yhQ @@ -106950,7 +109332,7 @@ coa aoe ahr akU -ajC +bYe xCX csz vGk @@ -107054,19 +109436,19 @@ buH iEb buH eDG -cmp -ard -bWM -gwW -saB -bWM -ati -atE -aua -gwW -xqS -yiE -avk +lFp +xlO +aId +oqt +iXA +aId +oZy +naw +npA +oqt +oEy +qmY +tUN wlp vXX yhQ @@ -107257,19 +109639,19 @@ bFu mKY hvp mWw -apT -apA -arC -asi -cSN -asy -atw -atF -aud -auF -ati -cUb -asE +vpe +dxT +olN +jDk +uNq +tOu +qyK +mkn +tHQ +uxX +oZy +orN +nmY luu gNx yhQ @@ -107468,11 +109850,11 @@ yhQ yhQ yhQ yhQ -auh -gwW -ati -lBY -asE +iZE +oqt +oZy +qhD +nmY wlp oDf yhQ @@ -107671,11 +110053,11 @@ azy azy azy yhQ -aup -gwW -kiF -ave -asE +kJH +oqt +qlm +kRD +nmY scI oDf yhQ @@ -107874,11 +110256,11 @@ azy azy azy yhQ -uRr -bWw -bWM -avi -asE +euW +rOI +aId +hQP +nmY suT oed yhQ @@ -108077,11 +110459,11 @@ azy azy azy yhQ -pGN -bWM -bWM -avi -asE +sJI +aId +aId +hQP +nmY scI oed bVU @@ -108280,11 +110662,11 @@ azD azD azD yhQ -djp -bWM -bWM -avi -asE +ePN +aId +aId +hQP +nmY nyz tVB bSf @@ -110282,7 +112664,7 @@ iMI rlZ rlZ rlZ -vEI +qep cnr qqK qqK @@ -110408,9 +112790,9 @@ iBt iBt iBt iUZ -awE -pQu -kmL +pBG +rLp +ttX qVM csz qVM @@ -110484,7 +112866,7 @@ kan avW bZn dXr -tUv +uay vhX gDW rlZ @@ -110611,9 +112993,9 @@ iBt iBt iBt iBt -awE +pBG jZU -rjH +jAe qVM vGk qVM @@ -110711,8 +113093,8 @@ bJt xOL gGI eeu -nbB -ksA +gfq +eFP gAz fiq uaa @@ -110814,9 +113196,9 @@ iBt iBt iBt iBt -awE -cvj -iiz +pBG +cVq +nOb qVM oLw qVM @@ -110925,7 +113307,7 @@ uaa uaa fiq oed -uqH +oDf yhQ ajZ bdH @@ -111017,9 +113399,9 @@ iBt iBt iBt iBt -awE -aGt -ijn +pBG +dzp +ngV qVM vGk vGk @@ -111030,11 +113412,11 @@ eGz csz czu aaa -aaa -aaa -aaa -aaa -aaa +aac +aaf +aaf +aaf +ajY aaa aaa aaa @@ -111055,15 +113437,15 @@ aaa aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -111114,7 +113496,7 @@ buH bHL buH lhB -nbB +xCb bDs bIJ bDs @@ -111131,13 +113513,13 @@ oed oed yhQ ajZ -bdH -aaa -aaa -aaa -aaa -aaa aaa +avo +avo +avo +avo +avo +avo aaa aaa aaa @@ -111160,14 +113542,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111215,14 +113597,14 @@ ybf aii avj qVM -awE -awE -awE +pBG +pBG +pBG nec -awE -awE -xJC -awE +pBG +pBG +saL +pBG qVM qVM qVM @@ -111233,13 +113615,13 @@ vGk csz czu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aad +aag +aag +aag +aag +aaf +ajY aaa aaa aaa @@ -111258,15 +113640,15 @@ aaa aab aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -111331,10 +113713,17 @@ bJt bJt bJt oed -oDf +eHf yhQ ajZ -bdH +avo +avo +avs +avs +avs +avs +avo +avo aaa aaa aaa @@ -111343,34 +113732,27 @@ aaa aaa aaa aaa +aab aaa aaa +"} +(155,1,1) = {" aaa aaa +aab aaa aaa aaa -aab +bdH +bdH +aaa aaa aaa -"} -(155,1,1) = {" aaa aaa -aab aaa aaa aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH aaa aaa aaa @@ -111418,14 +113800,14 @@ ahM kSJ avj cGr -awE -fUn -wQv -rne -guC -ecQ -whZ -awE +pBG +hqJ +cHG +nQA +wph +pyx +lKO +pBG lEf gel gel @@ -111435,14 +113817,14 @@ qVM vGk ofs czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaf +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -111461,8 +113843,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -111526,7 +113908,7 @@ gSk bDs bDs bDs -jip +xjb fbo duo iIl @@ -111534,10 +113916,17 @@ bDs ujV bJt oed -bxX +oed yhQ ajZ -bdH +avo +avs +avs +hAG +vtr +avs +avs +avo aaa aaa aaa @@ -111546,34 +113935,27 @@ aaa aaa aaa aaa +aab aaa aaa +"} +(156,1,1) = {" aaa aaa +aab aaa aaa aaa -aab +bdH +bdH +aaa aaa aaa -"} -(156,1,1) = {" aaa aaa -aab aaa aaa aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH aaa aaa aaa @@ -111621,14 +114003,14 @@ bYe bnD aWH aYn -bVB -bXv -bXv -bph -rEm -rne -bYj -xne +qvL +wmP +wmP +dRP +eFY +nQA +eAN +xqQ rfb cXF rLU @@ -111638,14 +114020,14 @@ qVM vGk csz czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -111664,8 +114046,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -111734,13 +114116,20 @@ jFE jFE idx hAz -fhQ +gHj bJt vhI -oDf -yhQ -ajZ -bdH +oed +avo +avo +avo +avs +rKn +awa +awa +umm +avs +avo aaa aaa aaa @@ -111749,34 +114138,27 @@ aaa aaa aaa aaa +aab aaa aaa +"} +(157,1,1) = {" aaa aaa +aab aaa aaa aaa -aab +bdH +bdH +aaa aaa aaa -"} -(157,1,1) = {" aaa aaa -aab aaa aaa aaa -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH aaa aaa aaa @@ -111823,15 +114205,15 @@ vOy qLK akU avj -kpl -awE -xgr -bYj -btz -bsc -iaj -bYj -xne +eAT +pBG +lvb +eAN +jVg +rGU +xCf +eAN +xqQ rLv bHk vZw @@ -111841,14 +114223,14 @@ qVM csz qVM czu -aaa -aac -aaf -aaf -aaf -ajY -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ bdH bdH aaa @@ -111867,8 +114249,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -111931,26 +114313,26 @@ nFI qdk vzP bJt -fEo +hjB bJt -dpn +xfK bDs gSk bDs -pdt +bpI bJt kTq oed -yhQ -ajZ -aaa -avo -avo -avo -avo -avo +lpy +avC +avC +wEg +axa +axa +dSZ +oMs +avs avo -aaa bdH aaa aaa @@ -111972,14 +114354,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112026,15 +114408,15 @@ vOy ayT akU avj -awE -awE -bqy -bYj -eUR -bsd -nDh -bYj -xne +pBG +pBG +hEl +eAN +fQS +oGY +neT +eAN +xqQ cNH vzp vZw @@ -112044,14 +114426,14 @@ qVM hoX qVM czu -aaa -aad aag aag aag aag -aaf -ajY +aag +aag +aag +ajZ bdH bdH aaa @@ -112070,8 +114452,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -112143,17 +114525,17 @@ reL wiI bJt nnr -eHf -yhQ -ajZ +eep +avo avo avo avs -avs -avs +awa +awa +awa +qUp avs avo -avo bdH aaa aaa @@ -112175,14 +114557,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -112229,15 +114611,15 @@ kgs ayT aii avj -aYp -aWS -bYj -bYj -btz -rne -rne -bYj -xne +bvX +ojQ +eAN +eAN +jVg +nQA +nQA +eAN +xqQ rfb bHk vZw @@ -112247,7 +114629,7 @@ qVM csz qVM czu -aaf +aah aag aag aag @@ -112273,8 +114655,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -112346,14 +114728,14 @@ bDs vwI bJt koz -oed +oDf yhQ ajZ avo avs avs -hAG -vtr +loK +wpg avs avs avo @@ -112378,14 +114760,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bdH aaa aaa @@ -112432,15 +114814,15 @@ kgs ayT aii avj -aYp -aZJ -baD -baD -tsH -bqw -bqw -hiB -xne +bvX +kVV +vQR +vQR +epJ +jML +jML +fnH +xqQ rLv pRy wwW @@ -112450,14 +114832,14 @@ qVM vGk csz czu +aaa +aad aag aag aag aag -aag -aag -aag -ajZ +aah +afm bdH bdH aaa @@ -112476,8 +114858,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -112546,20 +114928,20 @@ rBj bDs gSk bDs -oMd +fUB bJt oDf -oed -avo +uqH +yhQ +ajZ avo avo avs -rKn -awa -awa -umm +avs +avs avs avo +avo bdH aaa aaa @@ -112581,14 +114963,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bdH bdH aaa @@ -112635,15 +115017,15 @@ mmN ayT aii avj -aYp -sQL -dpV -bXW -bqo -bse -bvc -djL -awE +bvX +maO +lPm +iZV +fdx +cuq +edn +fVF +pBG qWR wJH wJH @@ -112653,14 +115035,14 @@ qVM vGk csz czu -aag -aag -aag -aag -aag -aag -aag -ajZ +aaa +aae +aah +aah +aah +afm +aaa +aaa bdH bdH aaa @@ -112679,8 +115061,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -112749,20 +115131,20 @@ bJt oKb gSk bDs -pdt +nqO bJt sIx -oed -lpy -avC -avC -wEg -axa -axa -dSZ -oMs -avs +bxX +yhQ +ajZ +aaa +avo +avo avo +avo +avo +avo +aaa bdH aaa aaa @@ -112784,14 +115166,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bdH aaa aaa @@ -112838,16 +115220,16 @@ vOy aTL aii avm -awE -awE -awE -awE -mZA -awE -awE -awE -awE -awE +pBG +pBG +pBG +pBG +qRr +pBG +pBG +pBG +pBG +pBG qVM qVM qVM @@ -112856,14 +115238,14 @@ qVM vGk ofs czu -aag -aag -aag -aag -aag -aag -aag -ajZ +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH bdH aaa @@ -112882,8 +115264,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -112955,17 +115337,17 @@ bDs knK bJt oed -eep -avo -avo -avo -avs -awa -awa -awa -qUp -avs -avo +vgQ +yhQ +ajZ +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH aaa aaa @@ -112987,14 +115369,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bdH aaa aaa @@ -113041,16 +115423,16 @@ vOy ayT akU avj -aCv -baa -fqe -bXx -bqo -awE -tnm -dhQ -qyz -awE +fKh +gQk +trU +oNY +fdx +pBG +eNw +ppF +fiE +pBG vGk vGk gYS @@ -113059,14 +115441,14 @@ csz vGk csz czu -aah -aag -aag -aag -aag -aag -aag -ajZ +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH bdH aaa @@ -113085,8 +115467,8 @@ aaa aab aaa aaa -aaa -aaa +bdH +bdH bdH bdH bdH @@ -113119,27 +115501,27 @@ aQF aLG aYO aLG -bCf +tda ngI dkq lRZ -wvl +acc beH beH dwl bdd bdd -ukW +gac bdd bdd aMt beH beH -wvl +acc qby btY bAJ -dGW +huU buH bHL buH @@ -113158,17 +115540,17 @@ ljG tSp bJt oed -oDf +sHg yhQ ajZ -avo -avs -avs -loK -wpg -avs -avs -avo +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH aaa aaa @@ -113190,14 +115572,14 @@ aaa aaa bdH bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH -bdH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa bdH aaa aaa @@ -113230,7 +115612,7 @@ mSK mSK vOy vOy -ylc +ccc wKP ylc vOy @@ -113244,16 +115626,16 @@ vOy atV akU avj -aCv -bac -dWz -bYj -bqo -aRD -aGt -byp -aGt -awE +fKh +iuG +sOv +eAN +fdx +gAk +dzp +rMT +dzp +pBG vGk qVM qVM @@ -113262,14 +115644,14 @@ qVM csz qVM czu -aaa -aad -aag -aag -aag -aag -aah -afm +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH bdH aaa @@ -113350,28 +115732,28 @@ bJt wbC lHu oiL -loY +qBM wXI nUd lkd -oMd +xOT bDs gSk oDE bJt bJt oed -uqH +oDf yhQ ajZ -avo -avo -avs -avs -avs -avs -avo -avo +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH aaa aaa @@ -113401,7 +115783,7 @@ aaa aaa aaa aaa -bdH +aaa aaa aaa ahx @@ -113447,16 +115829,16 @@ vOy vIN aii avj -aCv -ilv -rne -rne -gEK -eHj -bvl -byq -maq -awE +fKh +ubI +nQA +nQA +jvM +pLa +nTR +gDp +rwq +pBG vGk qVM riM @@ -113465,14 +115847,14 @@ qVM hoX qVM czu -aaa -aae -aah -aah -aah -afm -aaa -aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH bdH aaa @@ -113552,8 +115934,8 @@ bCj rde vjC iMm -xeP -fSG +mJi +iMm iMm mkc bJt @@ -113564,17 +115946,17 @@ luS bJt iGg oed -bxX +oDf yhQ ajZ -aaa -avo -avo -avo -avo -avo -avo -aaa +bdH +bdH +bdH +bdH +bdH +bdH +bdH +bdH bdH aaa aaa @@ -113604,7 +115986,7 @@ aaa aaa aaa aaa -bdH +aaa aaa aaa lYA @@ -113650,16 +116032,16 @@ vOy ayT aii avj -awE -ceo -rne -rne -wft -awE -awE -awE -awE -awE +pBG +mGT +nQA +nQA +vEG +pBG +pBG +pBG +pBG +pBG vGk xCX vGk @@ -113712,18 +116094,18 @@ aKW aSm aSm hhw -baY -bfb -bNz +beG dIR yky +bfb +baY hhw -xnY -xnY +aLF +bPV +yaG +bPU aSm -aLf -aLf -soZ +bPS hhw bwd auv @@ -113752,31 +116134,31 @@ bCh bCi bCo bCi +ejw +xML +iMm +jSy +wGb +iMm +rjn bJt -hzP -vdU -owN -vdU -vdU -jjK -lkd wUX bDs gSk vSp -xtC +lHG qgH oDf oDf yhQ ajZ bdH -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -113800,16 +116182,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa bdH -aaa -aaa +bdH +aac +aaf +aaf +aaf +aaf +aaf +aaf +aaf lYA aiS aao @@ -113853,16 +116235,16 @@ amD ajr aii avm -awE -hfm -rne -rne -fAo -awE -bhM -wQv -bBi -awE +pBG +bfO +nQA +nQA +jDO +pBG +aYH +cHG +wEe +pBG ieH qVM tUI @@ -113871,14 +116253,14 @@ qVM vGk csz czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaf +aaf +aaf +aaf +aaf +aaf +aaf +ajY aaa aaa aaa @@ -113903,66 +116285,66 @@ bdH bdH bdH bdH -bdH -bdH -bdH -bdH -bdH -aaa -bdH -aad +aac +aKW +aKW +aKW +aKW +aKW +aKW +aKW aKW aSm aLf hhw -beG -bgF -jQA -bgF -kvN -hhw -aSm -aLf -aSm -aSm -aLf -aSm -hhw +beI +bTQ +tBP +jfm +lYu +maw +fAS +jfm +lzn +eDz +jfm +jfm +bUP aLG aYO aLG -bCf +tda mng wTm wCI -wvl +acc beH beH beH -wvl +acc mng wTm wCI -wvl +acc beH beH beH -wvl +acc mng wTm wCI -bCf +tda buH bHL buH -ejw -qyK -vdU -owN -vdU -vdU -pJb -lkd +bJt +swE +wpI +ocm +wpI +wnL +kHd +bJt hSw qxE rui @@ -113970,16 +116352,16 @@ vSp bJt wuH oed -vgQ +uqH yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa +yhQ +yhQ +yhQ +yhQ +yhQ +yhQ +yhQ +ajY aaa aaa aaa @@ -114003,16 +116385,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa bdH -aaa -aaa +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA aiT aap @@ -114056,16 +116438,16 @@ akT amC bKe avj -aCv -eYW -rne -rne -wft -emO -bYj -bYj -bYj -awE +fKh +eYn +nQA +nQA +vEG +mlP +eAN +eAN +eAN +pBG csz qVM qVM @@ -114074,14 +116456,14 @@ qVM oLw csz czu -aaa -aaa -aaa -aaa -aaa -aaa -bdH -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -114106,32 +116488,32 @@ bdH bdH bdH bdH -bdH -bdH -bdH -bdH -bdH -aaa -bdH -aad aKW -uDB +aKW +bPU +lLV +aLf +aLf +aLf +jiX +aSm +aSm aLf ahU -beI -bTQ -qoX -jfm -lYu -maw -fAS -jfm -jfm -fAS -jfm -jfm -bUP -aem +aLf +fza +kat +uJB +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +teH mUa xNB bdd @@ -114144,7 +116526,7 @@ fUA qYZ bdd vuA -tXG +fnx vuA bdd qCc @@ -114157,32 +116539,32 @@ vuA bdd bSj bHL -buH -ejw -xML -vdU -jcl -iHO -vdU -rjn -bJt -bJt +bIR +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd bJt cDC -oWX +vuF bJt bJt +oed +oDf +oDf +oDf +qNy +cLV +oDf +oDf oDf -sHg yhQ -ajZ -bdH -bdH -aaa -aaa -aaa -aaa -aaa +yhQ aaa aaa aaa @@ -114206,16 +116588,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa bdH -aaa -aaa +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA aiU aap @@ -114259,16 +116641,16 @@ akU abg abg avj -aCv -aSP -rne -rne -wft -awE -hpf -byY -igp -awE +fKh +wvo +nQA +nQA +vEG +pBG +skR +oxc +nBi +pBG hoX qVM oks @@ -114277,14 +116659,14 @@ qVM vGk ofs czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -114309,32 +116691,32 @@ bdH bdH bdH bdH -bdH -bdH -bdH -bdH -bdH -aaa -bdH -aad aKW +bPV +aLf +xlD +aSm +aSm aSm +aLf +aLf +aLf aMs hhw -beO -bgH +pgt +ykF bgH -bgH -bPV -hhw -aLF -bPV -lGO -oDu -bPU -bPS -hhw -irI +uVb +bdd +uvU +xZk +dGU +lgF +eYj +aSp +mho +bdg +aLG awb aLG bdg @@ -114361,31 +116743,31 @@ bdg buH hOR buH -bJt -swE -wpI -ocm -wpI -wnL -kHd -bJt -bJt +bdg +lCE +oZD +lwh +oPz +lCE +xLi +qkY +bdd qXo feq loY aDU bJt +oed +oDf +oed +oDf +mOU +oDf +oDf +oed +oed oDf -vFh yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -114409,16 +116791,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa bdH -aaa -aaa +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA aiZ aap @@ -114462,16 +116844,16 @@ aii aow hee ioX -aCv -aLQ -bYj -bYj -wft -awE -awE -awE -awE -awE +fKh +sSP +eAN +eAN +vEG +pBG +pBG +pBG +pBG +pBG csz iid csz @@ -114480,14 +116862,14 @@ qVM noV csz czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -114512,31 +116894,31 @@ bdH bdH bdH bdH -bdH -bdH -bdH -bdH -bdH -aaa -bdH -aad aKW -bhC aSm -hhw -bfa -bHM -bWy -iGE -nsY +aLf nsY nsY +pRT nsY nsY nsY nsY nsY nsY +hhw +hhw +umv +hhw +bdd +xwE +dAQ +tGG +kEs +tGG +bpA +mho +bdg aLG aYO aLG @@ -114564,31 +116946,31 @@ bdg buH bHL buH +bdg +lCE +uek +dkX +qXp +oCl +tPm +kiX +bdd +tLc +rsM +iMm +hTT nsY nsY +nik nsY nsY nsY nsY nsY nsY -nsY -tLc -rsM -iMm -hTT -bJt +upt oDf -jRn yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -114612,16 +116994,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA adf aao @@ -114665,16 +117047,16 @@ aii avj qVM qVM -awE -ntr -bYj -bYj -wft -bvU -dTc -lOl -mkx -awE +pBG +aGs +eAN +eAN +vEG +vrJ +tQM +kOH +hIs +pBG ieH qVM dYK @@ -114683,14 +117065,14 @@ iid csz qVM czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -114715,31 +117097,31 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdH -aad aKW aLf aSm -hhw -hhw -hhw -hhw -hhw nsY xWT -rSW +kxd jgk nsY rSG -rSW +rur oqS nsY +lhu +btk +aSm +eoM +bdd +eUZ +lCr +lCr +fwM +tGG +lJD +mho +bdg aLG aYO aLG @@ -114767,31 +117149,31 @@ bdg buH bHL buH +bdg +lCE +fMe +sNI +jmn +sgD +kUR +vMM +bdd +hxZ +rsM +iMm +gzV nsY xWT -rSW +kxd viu nsY rSG -whd +qkP oqS nsY -hxZ -rsM -iMm -gzV -bJt oDf -oed +oDf yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -114815,16 +117197,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA fZF aWs @@ -114868,16 +117250,16 @@ amO avj qVM csz -awE -qMe -bYj -bYj -dyF -awE -bzs -gbQ -eKK -awE +pBG +xiU +xUa +eAN +mLe +pBG +pZH +nnL +lgt +pBG oLw qVM jmR @@ -114886,14 +117268,14 @@ qVM hoX qVM czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -114918,31 +117300,31 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdH -aad aKW aLf aSm -hhw -fJA -btk -xwv -eVy nsY xWT -wVK +kxd viu nsY iIP -wVK +kxd dDt nsY +xiz +aSm +aSm +kOf +bdd +ljW +bDP +lCr +ijr +lCr +mpn +pZR +bdd beB aYT beB @@ -114970,31 +117352,31 @@ bCx buH bHL buH +bdd +tSF +lsn +kUR +kUR +mkl +gXB +car +bdd +hTf +rsM +oos +sBL nsY xWT -efa +rfT viu nsY dmR -wVK +kxd dDt nsY -hTf -rsM -oos -sBL -bJt -pzi -uNW +oDf +oed yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -115018,16 +117400,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +bdH +bdH +aad +aag +aag +aag +aag +aag +aag +aag lYA aar aar @@ -115071,16 +117453,16 @@ akU avj qVM csz -awE -awE -awE -hIL -awE -awE -awE -awE -awE -awE +pBG +pBG +pBG +qIx +pBG +pBG +pBG +pBG +pBG +pBG vGk qVM qVM @@ -115089,14 +117471,14 @@ qVM csz qVM czu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aag +aag +aag +aag +aag +aag +aag +ajZ aaa aaa aaa @@ -115121,33 +117503,33 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -bdH -aad aKW -rsj -sxe -iQL -glr -mhl +aLa aSm -ylY nsY -nNT -fBA -fSF +gsg +vHq +vvY nsY -lmW -mtS -iKa +rNb +bxC +jiU nsY -aLG -aZi +glr +mhl +aSm +ylY +bdd +asr +asr +asr +mki +nYp +fZG +phd +pmv +tBF +fSK aLG nyw bqZ @@ -115171,33 +117553,33 @@ eBg vKe eVv bFu -pIX -buH -nsY -gwO -mtS -guG -nsY -lwA -mtS -iKa -nsY -tuo +omW +bFu +hLS +vKe +vKe +uSH +uwt +rLP +pPA +ycx +bdd +hTf rKO wGb gUf -bJt -ddG +nsY +gwM +bxC +pJD +nsY +iSm +bxC +jiU +nsY +oDf oed yhQ -ajZ -bdH -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -115277,7 +117659,7 @@ vGk vGk csz vzl -bvY +ljt vGk vGk csz @@ -115324,22 +117706,9 @@ aaa aac aaf aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aag aKW -mRc aLf -hhw -jFe -sxe -xZI -mNZ +aSm nsY nsY qxC @@ -115349,6 +117718,19 @@ nsY ntx nsY nsY +jFe +sxe +xZI +mNZ +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd aLG awb aLG @@ -115376,6 +117758,19 @@ bdg buH hOR buH +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +tuo +rsM +oos +gUf nsY nsY iFM @@ -115385,22 +117780,9 @@ nsY gLZ nsY nsY -hTf -rsM -oos -gUf -bJt oDf -oed +uqH yhQ -aag -aaf -aaf -aaf -aaf -aaf -aaf -aaf aaf aaf ajY @@ -115528,20 +117910,7 @@ aad aKW aKW aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW aSm -vUi -hhw -xCN -pOB -hfk aLf nsY tUS @@ -115550,12 +117919,25 @@ wNl nGh fPp lqN -kjV +vlO nsY +xCN +pOB +hfk +aLf +bdd +dJI +jaf +kwc +ebp +mPR +osU +vKe +dYX +tBF +lBz aLG -awb -aLG -iuy +bdg bqZ beH bgO @@ -115577,32 +117959,32 @@ beH bqZ bdg buH -hOR -buH +uXu +bFu +iUk +cIx +fUC +vKe +sDA +kWN +tln +bko +bdd +hTf +wRO +iMm +gUf nsY aaq -lEL -tuv -eYv +wHj +qdv +uQo iQt uZo xmJ nsY -hTf -wRO -iMm -gUf -bJt -nBl -ndQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +oed +oDf yhQ yhQ yhQ @@ -115729,25 +118111,12 @@ aaa aaa aKW aKW -bPV -aSm -aSm -jiX -bPU bPT -uJo -aSm jiX aSm -aSm -aSm -hhw -nEA -lQu -lQu -aSm +aLf nsY -lru +kio sJY qJY qLH @@ -115755,6 +118124,19 @@ xTW oGP cnM nsY +nEA +lQu +lQu +aSm +bdd +fva +lkL +mBO +cHB +cHB +hDV +vmP +bdd aLG awb aLG @@ -115782,29 +118164,29 @@ bdg buH hOR buH +bdd +oNP +tge +yjU +yjU +yjU +tEC +bko +bdd +gKB +rsM +oos +gUf nsY mKJ -tIb +deT uAC rhQ pyc uMn ivz nsY -gKB -rsM -oos -gUf -bJt -oDf -oed oed -sow -oed -oDf -oDf -oDf -laP oDf oed oed @@ -115931,33 +118313,33 @@ aaa aaa aaa aKW -aLF +ygK aLf aLf aLf -aSm aLf -aLf -aLf -aLf -aLf -aSm -aLf -bPW -hhw -hhw -yfy -ugV -vUi -nsY -weB +heK +kam axc juD twW vHh pvh -rgJ +sZs nsY +hhw +yfy +ugV +vUi +bdd +cDH +cHB +scN +vvw +wmz +rhy +rec +bdg aLG aYO bad @@ -115985,30 +118367,30 @@ bdd bGe bHL buH -nsY -eiN -gLu -eai -veI -xuQ -uPW -bKo -nsY +bdg +jLS +xdP +gAj +dBI +sMu +eYF +vMM +bdd sOt cNX cdI sBL -bJt -oed -oDf -alm -hGZ +nsY +eiN +dVs +tat +kNC +xuQ +uPW +kYv +oDx +tbK tbK -hGZ -etB -hGZ -gpE -kHA tbK lNy oed @@ -116134,24 +118516,11 @@ aaa aaa aaa aKW -aSm +jwD aLf +uig hhw hhw -hhw -hhw -hhw -hhw -bPV -aLF -aSm -bzG -hhw -hhw -sSe -aLf -qce -aSm nsY wpz oEX @@ -116161,7 +118530,20 @@ xxm qSK ieu nsY -kfp +sSe +aLf +qce +aSm +bdd +xXW +gVu +ydO +krU +wmz +vbI +rec +bdg +beB aYT beB beB @@ -116188,31 +118570,31 @@ bJz bJz bHT bJz +bdg +jLS +frb +kNX +mZf +gAj +ngn +jUq +bdd +pEl +roU +oos +uVh nsY kzK lFh -uzP +jYc pVA mzV pML ivz nsY -pEl -roU -oos -uVh -bJt -aYU -bVt -wlp -aYU -bVt -fiq -fiq -fFz -fiq -fiq jZO +oDf +oed wlp ndQ yhQ @@ -116237,19 +118619,19 @@ aaa aaa aaa lYA -aaG -aaG -aaI -abC -abC -abC -abC -abC -abC -abC -jUW -tgS -ady +ojH +ojH +taV +ouf +ouf +ouf +ouf +ouf +ouf +ouf +aLc +wBI +hGG aar aIZ aIZ @@ -116303,19 +118685,19 @@ iBt iBt iBt qVM -aCX -tgS -uSL -asx -asx -asx -asx -asx -asx -asx -aLX -bbp -bbp +vmJ +elv +vRR +qXS +qXS +qXS +qXS +qXS +qXS +qXS +hXX +xDe +xDe czu aaa aaa @@ -116337,26 +118719,13 @@ aaa aaa aaa aKW -uDB +cSK +aSm aSm -hhw -bUc -bUc -bUc bUc -aLB -aLB -aLB -bbI -aLB -aLB -wXv -aLf -aLf -tRc -qEW +nSN nsY -xgS +hUz dbn qvC tyb @@ -116364,6 +118733,19 @@ uRM ipe ehR nsY +aLf +aLf +tRc +qEW +bdd +sgm +kEg +nFA +jkD +xgN +vgn +xgN +bdg aLG aYO aLG @@ -116391,31 +118773,31 @@ buH buH bHL buH +bdg +vLg +loy +naK +mRq +xkB +qXO +eeh +bdd +pcO +tJV +qoY +uCh nsY tXT -kOH +jJk wLG tyb sZH -tHc +rjV ivz nsY -pcO -tJV -qoY -uCh -bJt -bGb -bGb -cmb -bGb -bGb -fiq -xgM -eHq -uRI -ckD -wUD +fuY +sZF +vjD lFF ndM yhQ @@ -116440,19 +118822,19 @@ aaa aaa aaa lYA -aaG -aaG -aaI -abC -abC -abC -abC -abC -abC -abC -acg -bAF -ady +ojH +ojH +taV +ouf +ouf +ouf +ouf +ouf +ouf +ouf +sdf +cRL +hGG aar aar aar @@ -116506,19 +118888,19 @@ ayo qVM qVM qVM -aEJ -bAF -aKB -asx -asx -asx -asx -asx -asx -asx -aLX -bbp -bbp +cna +nzD +xDV +qXS +qXS +qXS +qXS +qXS +qXS +qXS +hXX +xDe +xDe czu aaa aaa @@ -116542,22 +118924,9 @@ aaa aKW aLf aLf -hhw -bUc -bUc -bUc +xlD bUc -aLB -aWN -pyB -beB -bbU -aLB -aLB -aLB -aLB -aLB -aLB +vrB nsY nsY nsY @@ -116567,7 +118936,20 @@ nsY nsY nsY nsY -aLG +hhw +hhw +hhw +hhw +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +hDL aYO aNO aLG @@ -116593,34 +118975,34 @@ bdg buH bHa bHL -buH +bIR +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bdd +bJt +bJt +bJt +bJt nsY nsY nsY nsY -ylm +goy nsY nsY nsY nsY -bJt -bJt -bJt -bJt -bJt -bGb -mFM -bHW -kMU -fBx -fiq -hRg -oDf +gZG xMh -fiq -rNW +ril kRu -oDf +hXS yhQ aaa aaa @@ -116643,30 +119025,30 @@ aaa aaa aaa lYA -aaG -aaG -aaI -abC -abC -abC -aaJ -abC -abC -abC -act -ajS -afq -lzW -buk -fgF -bYP -lBi -acH -cwd -bYy -tOd -adT -kqf +ojH +ojH +taV +ouf +ouf +ouf +ptA +ouf +ouf +ouf +fTj +jOD +oOw +cPK +oXt +loz +sAz +jZC +uyd +ito +cuN +cQW +lQa +wjE aeU bUE bYe @@ -116698,30 +119080,30 @@ bUE bYe nBW bWP -tSc -spT -fHC -dHr -bYQ -cwd -lBi -qmt -ayG -saW -tMf -ajq -ajS -dGw -asx -asx -asx -aKJ -asx -asx -asx -aLX -bbp -bbp +qtj +fpA +qUx +gUS +wrX +kMp +jkB +hlT +qNI +hRc +tqO +kdn +nyS +qec +qXS +qXS +qXS +jpn +qXS +qXS +qXS +hXX +xDe +xDe czu aaa aaa @@ -116752,22 +119134,22 @@ hhw hhw aLB acF -akX -akX +heb cqa -bdp +bBh +aMV dRG -yiq -sBp aMV +yiq +kLp aMV bBh tCN -tCN -kNQ -awb -iLQ lDJ +tCN +tCN +yfw +tCN bBh aLG aLG @@ -116800,9 +119182,9 @@ buH buH cbD iZH -sDQ -hOR -xMK +xkC +njL +njL njL njL cbD @@ -116811,10 +119193,10 @@ bUM mYw iAT rdY -clR -eXE -gte -eXE +bUM +cbD +rGg +qtn kJV fiq fiq @@ -116856,20 +119238,20 @@ lYA lYA lYA lYA -aey -azY -azY -adi -atC -abx -acC -abx -abx -abx -adi -abx -acC -atC +dho +wVt +wVt +jlc +ngE +kbv +dTn +kbv +kbv +kbv +jlc +kbv +dTn +ngE abg abg abg @@ -116901,20 +119283,20 @@ aZE aZE aZE aZE -xwG -chu -aZE -cgI -abt -aZE -aZE -chu -aZE -xwG -cgI -agl -agN -ahH +usL +gsC +cMz +qLg +aXD +cMz +cMz +gsC +cMz +usL +qLg +iup +ryY +cnn czu czu czu @@ -116955,20 +119337,20 @@ nHF cmE aLB nyG -aNO -uYO -xqg -bdq -aQt -aQt -aQt -aQt -aQt -sOm -aQt -aQt -aQt -wom +iDN +tit +nFV +tBL +tBL +tBL +tBL +tBL +tBL +mRS +tBL +tBL +tBL +tBL tBL tBL luz @@ -116998,13 +119380,13 @@ bqZ bdg buH bHa -mTk -hbx -hvp -keO -hbx -hbx -nob +wwu +buI +bFu +cbE +buI +buI +buI buI buI buI @@ -117014,10 +119396,10 @@ buI buI buI buI -feC -bFu -mFD -bHa +buI +rpd +fkO +bHY kro bGb uaa @@ -117059,20 +119441,20 @@ lYA bRK aao aiv -aaW -pjb -abM -iCe -cLp -cZZ -ccY -aJs -cdu -aaw -abl -jUs -abu -xaF +bGa +dVn +vwC +fbR +gcq +xci +eON +gxn +vEV +xMz +sdv +xMO +wDg +vHA aaL aJs bYe @@ -117104,20 +119486,20 @@ cjo bYe kSN aTQ -uGo -abl -wba -abu -aaw -wbj -aJs -cdu -ayH -uGo -eoT -aGR -pjb -aKC +kfo +rCl +ePM +pzd +oWx +nNx +pMA +ncT +gHh +kfo +dbc +cNM +ofU +njk xCX vGk hoX @@ -117158,10 +119540,10 @@ nHF nHF aLB csl -aQt -bbJ -csw -bdp +gjn +jJs +bBh +aMM aMM aNG bga @@ -117216,11 +119598,11 @@ ciU rOj bUd bUF -bUR clR -uqr -xkw -buI +clR +cbD +dQs +sFh guc bGb uaa @@ -117268,12 +119650,12 @@ aar aar aar aar -acG -abg -caF +hZE +sVV +oON aar aar -tiM +lIl aar aar ael @@ -117312,9 +119694,9 @@ xeG qVM qVM qVM -acG -abg -caF +mKi +sfT +hGV qVM qVM qVM @@ -117361,8 +119743,8 @@ nHF nHF jUx aLG -aNO -cmc +qmL +rZz jeb jeb jeb @@ -117423,7 +119805,7 @@ vra vra vra jJe -bHa +bHY buH vfo uaa @@ -117471,14 +119853,14 @@ aIZ aIZ aLC aar -bWs -abg -caF +xVe +sVV +mbx aar -nuY +vUk sTB -uaZ -bUA +lUA +tqd ael afE agT @@ -117515,9 +119897,9 @@ vGk vGk adI qVM -acG -abg -caF +aDS +sfT +hGV qVM iBt iBt @@ -117626,7 +120008,7 @@ mgF asX vra tfw -bHa +bHY sVf bGb uaa @@ -117674,13 +120056,13 @@ aIZ aIZ aIZ aar -acO -aJs -cbN +hHe +gxn +ioH aar -sTB +fQY aap -aao +elM vFb ael afH @@ -117718,9 +120100,9 @@ csz vGk xHG qVM -aJd -aJs -cbN +uRY +pMA +waJ qVM iBt iBt @@ -117768,7 +120150,7 @@ nHF aLB udF aNO -nVU +nLZ jeb obE tdE @@ -117828,8 +120210,8 @@ lpt qYQ ptj vra -lSO -bHa +mEb +bHY haT bGb uaa @@ -117877,14 +120259,14 @@ aIZ aIZ aIZ aba -pNQ -abx -hTy +aGA +kbv +fZo aar -teB +thR aao aao -wta +gDP ael afI agY @@ -117921,9 +120303,9 @@ vGk vGk csz qVM -jSY -abx -hLO +mzs +aPT +xyB ceD iBt iBt @@ -117969,9 +120351,9 @@ hhw hhw hhw aLB -rlG -aNO -nFy +dzF +dzF +dac jeb vlX thA @@ -118031,9 +120413,9 @@ cgo hQc asX vra -hNL -bHa -rLF +cwQ +vtB +tQo bGb fiq fiq @@ -118080,14 +120462,14 @@ aIZ aIZ aIZ aar -acP -bUE -qFQ +mAF +ilq +pjj aar -aao +xtQ aap aao -sTB +sxT ael afJ agY @@ -118124,9 +120506,9 @@ csz vGk csz qVM -sah -bUE -cbO +gfN +efj +sxE qVM iBt iBt @@ -118174,7 +120556,7 @@ cmE aLB enx aQt -xPg +oQj jeb vlX tdE @@ -118234,8 +120616,8 @@ lpt qYQ asX vra -mYZ -buI +ojR +tki lQQ bGb uaa @@ -118283,14 +120665,14 @@ aIZ aIZ aIZ aar -acG -abx -caF +hZE +kbv +mbx aar -aap +com aap aao -sTB +sxT ael afK ahc @@ -118327,9 +120709,9 @@ vzl vGk csz qVM -acG -abx -caF +aDS +aPT +hGV qVM iBt iBt @@ -118377,7 +120759,7 @@ nHF aLB ewo aNO -jJs +jLv jeb obE thA @@ -118438,7 +120820,7 @@ eBV ptj vra fsH -bHa +bHY pBn bGb uaa @@ -118486,13 +120868,13 @@ aar aar aar aar -oPD -abx -lCz +laM +kbv +nkH aar tAV sTB -uvS +xfk wKn ael afL @@ -118519,7 +120901,7 @@ dxv cnS cnv ajt -anf +bYe xCX csz csz @@ -118530,9 +120912,9 @@ qVM xeG qVM qVM -oPD -abx -lCz +oIa +aPT +bqY qVM qVM qVM @@ -118580,7 +120962,7 @@ nHF cmC aLG aNO -jJs +uBw jeb vlX tdE @@ -118640,8 +121022,8 @@ lpt qYQ asX vra -mqc -ybV +pJJ +bHY buH cnd uaa @@ -118689,11 +121071,11 @@ aIZ aIZ aLC aar -acG -abx -caF +hZE +kbv +mbx aar -tiM +lIl aar aar aar @@ -118733,9 +121115,9 @@ xWF vGk yji qVM -acG -abx -caF +aDS +aPT +hGV qVM iBt iBt @@ -118846,7 +121228,7 @@ vra cmd cmh wAR -aLB +bGb uaa uaa uaa @@ -118892,14 +121274,14 @@ aIZ aIZ aIZ aar -acO -aJs -arJ +hHe +gxn +gKd aar aao aao -uGz -uGz +wkL +mts adO afM fpR @@ -118936,9 +121318,9 @@ csz vGk csz qVM -acO -aJs -arJ +lCL +pMA +gcm qVM iBt iBt @@ -119049,7 +121431,7 @@ vra ajX ajX ajX -aLB +bGb uaa uaa uaa @@ -119095,14 +121477,14 @@ aIZ aIZ aIZ bWh -jSY -abx -hTy +hmj +kbv +fZo aar -wFm -tQE +hLB aao -sTB +aao +laY adO afN ahh @@ -119139,9 +121521,9 @@ csz vGk csz qVM -jSY -abx -hLO +mzs +aPT +xyB cix iBt iBt @@ -119298,14 +121680,14 @@ aIZ aIZ aIZ aar -acP -bUE -qFQ +mAF +ilq +pjj aar -aap -aap +xYe +kZH aao -fZF +frY adO afO ahh @@ -119342,9 +121724,9 @@ csz vGk xHG qVM -sah -bUE -cbO +gfN +efj +sxE qVM iBt iBt @@ -119501,14 +121883,14 @@ aIZ aIZ aIZ aar -aJa -abg -ccf +xXT +sVV +tkR aar -tDA -aao +mko +uaZ aap -fZF +svC adO jkj ahh @@ -119545,9 +121927,9 @@ csz yji uso qVM -aJa -abg -ccf +nme +sfT +vAH qVM iBt iBt @@ -119704,9 +122086,9 @@ aar aar aar aar -eQi -atL -kOG +ehL +kyr +chb aar aar aar @@ -119748,9 +122130,9 @@ qVM qVM qVM qVM -eQi -atL -pef +tCx +ncG +tZg qVM qVM qVM @@ -119907,9 +122289,9 @@ aap aap ahg aiv -lMM -abg -lCS +cSa +aeA +sjz aiv ahg aap @@ -119951,9 +122333,9 @@ vGk aip vzl xCX -bWC -abg -sSR +wcm +lJY +guo xCX weU csz @@ -120000,7 +122382,7 @@ aKW aKW aKW aKW -aKW +hhw hhw aLT sXt @@ -120110,9 +122492,9 @@ aar aar aar aar -bWE -aJs -mXU +wYa +nBK +mzS aar aar aar @@ -120154,9 +122536,9 @@ qVM qVM qVM qVM -bWE -aJs -mXU +nuM +uHr +xwX qVM qVM qVM @@ -120718,7 +123100,7 @@ aeA aeC aeC aeC -aeC +cVb aeC aeC aeC @@ -120766,7 +123148,7 @@ lJY vcE vcE vcE -vcE +iTd vcE vcE vcE @@ -120839,7 +123221,7 @@ bDY bCA bCA nLt -tJa +gmb bNQ bNQ bNQ @@ -121043,7 +123425,7 @@ bdj bri bLX bdl -rTY +kSU bNP bmD bNP @@ -121053,7 +123435,7 @@ bmD mYv doP jac -isS +xxa cai bdl bII @@ -121118,16 +123500,16 @@ aag aag abh acx -aeC +pMk ajs aeC -asV +wXh ayn atr aeA aex ciw -asV +wXh aeC ydz ayb @@ -121169,16 +123551,16 @@ agJ sSl kkx vcE -mMu +kpo iMx tGi lJY bXe eyG -mMu +kpo vcE kUV -vcE +xyL rRq uOi aag @@ -121243,7 +123625,7 @@ bkY bdl lOr lOr -bIu +iwI lOr bdl bEt @@ -121320,8 +123702,8 @@ aah aah aah abi -acE -aeA +nGY +gyU ajk aeA asY @@ -121381,8 +123763,8 @@ deg wLu lJY xVS -lJY -uGa +kPH +knL uyC aah aah @@ -121444,7 +123826,7 @@ aYW bzV beB mCo -xfw +iwZ lBF bKA sbM @@ -121459,7 +123841,7 @@ bmD lyk bOR eHa -opj +cmo xAB mCo bJz @@ -121523,8 +123905,8 @@ bdH bdH bdH abi -acT -aeA +dEJ +gyU ajk aeA atp @@ -121584,8 +123966,8 @@ pfH wlF lJY xVS -lJY -mIA +kPH +qGU uyC bdH aaa @@ -121727,16 +124109,16 @@ aaa bdH abh acx -umR +gCB ajs aeC -asV +wXh ayn atr aeA bXz ciw -asV +wXh aeC ajs qon @@ -121778,16 +124160,16 @@ vuv dHe kUV vcE -mMu +kpo iMx bXe lJY mzF eyG -mMu +kpo vcE kUV -pPF +bxA rRq uOi bdH @@ -122139,7 +124521,7 @@ amH aeC aeC aeC -aeC +cVb aeC aeC aeC @@ -122187,7 +124569,7 @@ kKR vcE vcE vcE -vcE +iTd vcE vcE vcE @@ -122271,7 +124653,7 @@ bxg bZr bNQ bNQ -xMt +bNQ bGz hMs cbw @@ -122474,7 +124856,7 @@ bxh bZr krN krN -oLg +krN oqY can buH @@ -122581,9 +124963,9 @@ alG anG apf oIB -oIB -oIB -oIB +jgr +gGp +dMf oIB sFR vuv @@ -122677,7 +125059,7 @@ bxg bZr ibc uly -moU +bNN vbR pky cbv @@ -122988,7 +125370,7 @@ anG apd oIB wqr -hzb +bZw xUV oIB sFR @@ -123188,7 +125570,7 @@ fDG alL alG aYD -wyK +aTS qgK tEB uBM @@ -123394,7 +125776,7 @@ anG mPX oIB wKF -bZw +hzb ltU oIB fbx @@ -123482,7 +125864,7 @@ ycp bdl bdl rtj -fmf +agv bdl bdl bdl @@ -123598,7 +125980,7 @@ iAB oIB phj vEf -pxj +cNK oIB fbx cxo @@ -123799,9 +126181,9 @@ rFY ctC gPF oIB -oIB -oIB -oIB +opI +dha +pxj oIB fbx gHg @@ -124292,7 +126674,7 @@ bNs nwb mrM bdl -uWI +ycH pMJ xnI ayj @@ -125995,7 +128377,7 @@ pVZ xlX psm psm -jFX +rzP psm psm fnZ @@ -126197,9 +128579,9 @@ aag pVZ xlX psm -aCu -aQA -bpf +nQg +szX +xyE psm eKD pBW @@ -126216,11 +128598,11 @@ psm ylJ aDZ apd -alO -alO -alO -alO -alO +wDM +wDM +wDM +wDM +wDM axD amA aBo @@ -126400,9 +128782,9 @@ aag pVZ yeP psm -aDf -aRk -brT +jdQ +bMY +hfy psm eKD nZF @@ -126419,11 +128801,11 @@ ptK alG aYj apd -alO +wDM aOM aoW aty -alO +wDM axE amA aBp @@ -126622,7 +129004,7 @@ gpc aWd aYj apd -alO +wDM uto aoX auU @@ -126825,7 +129207,7 @@ ptK wOh ajP apd -alO +wDM aOQ fxI nLJ @@ -127028,11 +129410,11 @@ eNi alG aDZ apf -alO +wDM aOH aJf aMw -alO +wDM xsl aya atq @@ -127231,11 +129613,11 @@ eNi alG aYj apd -alO -alO -alO -alO -alO +wDM +wDM +wDM +wDM +wDM axI amA amx @@ -128745,7 +131127,7 @@ aQL aQL ksp rou -rou +ksp aQL aLG aZl @@ -129163,13 +131545,13 @@ bHt bJi bKE bKE -bkZ -bpX -bpX -bpX -bpX -bpX -bkZ +oJk +lNR +lNR +lNR +lNR +lNR +oJk bWV jkd bYE @@ -129361,23 +131743,23 @@ hlz hlz rdK rdK -aVl -bHu -aVl -bkZ -bkZ -bkZ -bpY -brw -bqf -buK -bvI -bkZ -bkZ -bkZ -aVl -bZA -aVl +sqg +rPQ +sqg +oJk +oJk +oJk +oRW +mxT +pHc +eVE +jMy +oJk +oJk +oJk +sqg +mgu +sqg haq haq cAH @@ -129564,23 +131946,23 @@ hlz eFH eFH rdK -bEU -bjl -bJj -bkZ -bmM -cEx -bpZ -brx -boH -jnf -hfO -bxo -byz -bkZ -bEV -bCI -ccW +fcS +gdJ +oyR +oJk +nHL +wfx +ijf +osI +qXk +fie +tRs +pqP +fqC +oJk +ppn +nAY +cjt haq pFM hzV @@ -129758,37 +132140,37 @@ wVb wVb wVb wVb -aUx -aVl -aVl -aVl -bxE -aVl +vgw +sqg +sqg +sqg +mpP +sqg rdK iDm rdK -bEU -bjl -bJj -bkZ -bmN -boI -boI -brx -boH -jnf -shb -boI -byA -bkZ -bBc -bCI -ccW +fcS +gdJ +oyR +oJk +uZF +xoj +xoj +osI +qXk +fie +pUj +xoj +sfV +oJk +pkA +nAY +cjt haq vuR haq -aVl -bxE +sqg +mpP aep aep aep @@ -129961,37 +132343,37 @@ aaa aad aag aag -aUx -pXj -btm -aVl -bxF -byJ -aVl +vgw +wct +hqc +sqg +rwB +lKM +sqg vsV rdK -bEU -bjl -ccW -bKO -bvL -bvL -bvL -bPR -bRi -bSk -bvL -bvL -bvL -bKO -bEU -bCI -uVR +fcS +gdJ +cjt +pRZ +ish +ish +ish +kzC +jUl +wud +ish +ish +ish +pRZ +fcS +nAY +jOE haq mHR -aVl -ccx -bBm +sqg +qEL +vmE ggQ afk afk @@ -130093,7 +132475,7 @@ vuv vuv jWh jWh -olk +sWC jWh jWh jWh @@ -130164,37 +132546,37 @@ aaa aad aag aag -aUx -pXj -btm -aVl -bxG -byK -aVl +vgw +wct +hqc +sqg +eKy +wQA +sqg hlz rdK -wun -bht -pfh -pWf -bmP -pop -lJa -bPZ -bRj -bSl -smr -nel -bQu -bRu -bYI -pIf -bJk +uYn +jaM +oXM +kvf +rDy +uVc +bxN +cYN +nhr +vuD +skL +dTr +gfG +mkP +muQ +ojh +nxx haq cAH -aVl -byQ -ccR +sqg +gEC +skC aWZ bLx bMJ @@ -130295,10 +132677,10 @@ vuv nfS emx jWh -qCg -xjw -pfA -xAC +duz +hXG +htG +doU jWh lbB uIv @@ -130367,37 +132749,37 @@ aaa aae aah aah -aUx -uLN -btm -btm -bxH -byL -aVl -bxE -aVl -vWK -bjl -ccW -bKO -bqa -bqa -aaj -bQa -bRk -bSm -bvK -bUI -bqa -bKO -bEU -bCI -ccW -aVl -bxE -aVl -ccy -diF +vgw +utn +hqc +hqc +eqL +vxu +sqg +mpP +sqg +qWQ +gdJ +cjt +pRZ +wuB +wuB +qAs +dIH +nKP +uTV +sHx +vgv +wuB +pRZ +fcS +nAY +cjt +sqg +mpP +sqg +efC +yaF aep aep aep @@ -130498,10 +132880,10 @@ iEs cxo cxo jWh -uUV -rsW -rsW -fnQ +axR +mIP +tcZ +fWi jWh lbB cKL @@ -130570,37 +132952,37 @@ aaa aaa aaa aaa -aUx -btn -btm -btm -bxI -byM -aVl -nmb -aVl -brI -bjl -sPA -bkZ -bmR -boI -bqe -brx -tzz -jnf -ePY -bxr -byD -bkZ -bYK -bCI -oAd -aVl -fLX -aVl -byQ -ccS +vgw +noP +hqc +hqc +xNg +spH +sqg +aFe +sqg +scE +gdJ +acy +oJk +jRc +xoj +eKQ +osI +xrI +fie +fsR +lkV +quS +oJk +bcM +nAY +mFP +sqg +pCq +sqg +gEC +unx ggQ bLy bLy @@ -130701,10 +133083,10 @@ vuv xct cxo jWh -dkS -rsW -naQ -fnQ +vpv +pgw +rmE +fWi jWh xPZ pcv @@ -130773,37 +133155,37 @@ aaa aaa aaa aaa -aUx -sXV -cWt -cWt -pFA -byN -bAf -bBq -bAf -bje -bhw -ccW -bkZ -bkZ -wie -boI -brx -bNZ -jnf -boI -gXq -bkZ -bkZ -hdg -bCJ -bEj -cce -cbH -cce -ccz -ccT +vgw +gOC +nou +nou +dQA +sKM +uuD +eYD +uuD +bSH +gLD +cjt +oJk +oJk +lwp +xoj +osI +rYh +fie +xoj +ehc +oJk +oJk +gNO +vTT +heS +uPP +hlH +uPP +wVA +hJg aWZ bLz bMK @@ -130885,7 +133267,7 @@ ptK dmQ psm psm -eky +lDn arV wZX eky @@ -130899,7 +133281,7 @@ aDQ eky wZX arV -eky +wkA vuv vuv cxo @@ -130980,33 +133362,33 @@ dKL aep aep aep -bkt -btm -fxu -bBp -fxu -bFc -bjl -bjd -gXY -bkZ -xlY -boI -brx -bNZ -jnf -boI -kqc -bkZ -tmA -bfs -bCI -cay -fxu -cbG -fxu -ccA -bZE +ikv +hqc +vZf +ykI +vZf +aEo +gdJ +trh +hgo +oJk +sVT +xoj +osI +rYh +fie +xoj +bmp +oJk +haD +jTB +nAY +iUm +vZf +bYF +vZf +fiQ +pgN aep aep aep @@ -131087,8 +133469,8 @@ hWU dmQ aeq psm -aNe -eky +xrq +vVu arV wZX eky @@ -131102,8 +133484,8 @@ aHe eky wZX arV -eky -aNe +oIt +xrq vuv ahb cxo @@ -131183,33 +133565,33 @@ dKL afk aWo aWZ -byg -byO -aVl -bxE -aVl -bFe -bjl -bjg -ccW -bKO -boI -boI -brx -tzz -jnf -boI -boI -bKO -bEU -bYM -cxe -caz -aVl -bxE -aVl -ccB -ccV +iyF +vrR +sqg +mpP +sqg +dYC +gdJ +elx +cjt +pRZ +xoj +xoj +osI +xrI +fie +xoj +xoj +pRZ +fcS +hMG +qQy +erF +sqg +mpP +sqg +fLu +hEw aWZ bLA afk @@ -131290,8 +133672,8 @@ rwb dmQ jXY psm -atY -aMT +vlk +mKy aMT svl pzJ @@ -131305,8 +133687,8 @@ qDt pzJ sQO aMT -aMT -atY +wNS +vlk vuv woM nqD @@ -131386,33 +133768,33 @@ dKL aVo aWp aWZ -byh -byQ -aVl -hlz -rdK -bFf -aVp -ddj -sfU -fWT -bKT -bKT -ect -lrs -put -bKT -bKT -bWZ -kJC -mbn -mUZ -caA -haq -cAH -aVl -ccC -ccW +qAB +gEC +sqg +rEb +qXR +kkW +iwf +uFg +rEm +rnF +oFm +oFm +fVo +jUF +nxb +oFm +oFm +glH +vXo +gWu +xMl +lft +qXR +rEb +sqg +siN +cjt ggQ afk bML @@ -131494,7 +133876,7 @@ dmQ atD psm psm -aRp +vjd aRp jBX akS @@ -131508,7 +133890,7 @@ aHe tKf jBX aRp -edx +quy vuv vuv myC @@ -131589,33 +133971,33 @@ dKL afk afk ggQ -aAb -byR -aVl -eFH -rdK -bFg -bHv -bjg -bld -bkZ -boN -gUI -brC -bsZ -buQ -mOr -kFq -bkZ -bzP -bjg -gJq -caB -haq -vuR -aVl -ccD -ccX +pYS +ivS +sqg +jqT +qXR +hbs +vZU +elx +jnI +oJk +eIT +dPQ +ams +eni +nri +gMd +toO +oJk +nYn +elx +mDL +fSF +qXR +jqT +sqg +lvh +iks aWZ bLC afk @@ -131792,33 +134174,33 @@ dKL dKL aep aep -byk -byQ -aVl -eFH -rdK -bhB -bhB -uEc -bKU -bhB -gir -bpX -bpX -bpX -bpX -bpX -gir -bhB -bXP -bjn -bhB -bhB -haq -mHR -aVl -ccE -bjd +mkL +gEC +sqg +jqT +qXR +hsy +hsy +baJ +kbw +hsy +ldc +lNR +lNR +lNR +lNR +lNR +ldc +hsy +foC +kph +hsy +hsy +qXR +oGF +sqg +wWl +trh aep aep dKL @@ -131890,8 +134272,8 @@ cuC bNM tgK tfb -skg -eaX +wuT +lMx pVZ pVZ pVZ @@ -131923,8 +134305,8 @@ qMu qMu qMu qMu -euY -vME +jFY +qKY jHL wOK uIv @@ -131992,39 +134374,39 @@ aaa aaa aaa bdH -aUx -bvQ -bwj -byl -bzj -aVl -eFH -eFH -bhB -bfA -bLe -bKV -bhB -fEg -bOl -bOm -bRr -bXt -bUX -szm -bhB -bXQ -bLe -psp -bhB -cAH -vuR -aVl -bzj -cHO -cdr -cer -aUx +vgw +usZ +wpS +fZA +fEe +sqg +jqT +jqT +hsy +shL +uXk +mlF +hsy +hgV +osM +ghX +dTS +okQ +xIO +nxZ +hsy +tos +uXk +tkn +hsy +rEb +jqT +sqg +fEe +nqW +kfI +vFH +vgw aaa aaa aaa @@ -132093,8 +134475,8 @@ cuC riJ kHY uhM -fcP -xJn +kdv +lkm cuC aag aag @@ -132126,8 +134508,8 @@ aag aag aag bYn -tAh -thV +dRs +uAl rDb qjV rID @@ -132195,39 +134577,39 @@ aaa aaa aaa bdH -aUx -aWr -aUx -aUx -aUx -aUx -hlz -hlz -bhB -bHy -bLe -bKV -bMB -bOc -plE -plE -plE -plE -plE -bxs -bMB -bXQ -bLe -bHy -bhB -kpX -lGr -aUx -aUx -aUx -aUx -aWr -aUx +vgw +ckW +vgw +vgw +vgw +vgw +rEb +rEb +hsy +wed +uXk +mlF +jWb +unZ +aPU +aPU +aPU +aPU +aPU +fbu +jWb +tos +uXk +wed +hsy +pJt +hAY +vgw +vgw +vgw +vgw +ckW +vgw aaa aaa aaa @@ -132296,7 +134678,7 @@ cuC cuC umy iKZ -tiw +pnL cuC cuC mNX @@ -132330,7 +134712,7 @@ mNX qOk bYn bYn -tjj +cWE kHS rID bYn @@ -132403,29 +134785,29 @@ aah aag aag aag -wVb -iDm -eFH -bhB -ozi -bJF -bKW -bXR -bUJ -bTi -aut -aut -aut -xjC -fxW -bXl -bzU -bYO -bZD -bhB -vim -woG -vTK +gXZ +gBM +jqT +hsy +npn +bVN +oGJ +xpZ +llK +mVr +mZL +mZL +mZL +gSa +coH +oTO +uqh +iAE +gNG +hsy +nNC +iuA +gXZ aag aag aag @@ -132606,29 +134988,29 @@ bdH aad aag aag -wVb -hlz -hlz -bhB -bJQ -bLe -usw -bMF -blo -ktO -bUW -bMQ -bXr -lfQ -blo -bXm -bXS -bLe -bJR -bhB -cAH -cAH -vTK +gXZ +rEb +rEb +hsy +cGe +uXk +rae +jIV +pzM +mtZ +bqP +fyd +qYo +fQn +pzM +nac +xNf +uXk +fbH +hsy +rEb +rEb +gXZ aag aag ajZ @@ -132809,29 +135191,29 @@ bdH aad aag aag -wVb -eFH -eFH -bhB -bHz -bJI -bKW -bEn -rFu -pQq -bQe -bTl -bSt -buW -bUL -bXn -bzU -bYS -bJR -bhB -cAH -cAH -vTK +gXZ +jqT +jqT +hsy +ebt +nCn +oGJ +uSW +kzO +vaZ +kYL +dLi +sCV +rjO +suY +pdK +uqh +pJr +fbH +hsy +rEb +rEb +gXZ aag aag ajZ @@ -133012,29 +135394,29 @@ bdH aad aag aag -wVb -hlz -eFH -bhB -bhB -hxp -bKV -bLe -laj -xjC -ktO -bPd -lfQ -ddK -qXx -bLe -bXQ -bJR -bhB -bhB -vuR -mHR -vTK +gXZ +rEb +jqT +hsy +hsy +vVX +mlF +uXk +hmw +gSa +mtZ +nbv +fQn +wSV +ulp +uXk +tos +fbH +hsy +hsy +jqT +oGF +gXZ aag aag ajZ @@ -133215,29 +135597,29 @@ bdH aad aag aag -wVb -hlz -hlz -hlz -bhB -bYV -bKV -bhB -bOh -lfQ -ktO -bOk -lfQ -ktO -bnc -bhB -bXU -bYV -bhB -jcK -cAH -cAH -vTK +gXZ +rEb +rEb +rEb +hsy +hwd +mlF +hsy +kag +fQn +mtZ +xxl +fQn +mtZ +dKc +hsy +beL +hwd +hsy +cGI +rEb +rEb +gXZ aag aag ajZ @@ -133323,8 +135705,8 @@ xVk xVk aad jbq -jXW -jcZ +kRg +uRs aDO qqu eky @@ -133332,8 +135714,8 @@ aNl eky dFk aDO -nzI -jXW +nPY +kRg jbq ajZ xVk @@ -133418,29 +135800,29 @@ bdH aad aag aag -wVb -eFH -eFH -eFH -bhB -bJK -bLc -bhB -bUY -lfQ -brJ -plE -buW -ktO -bMW -bhB -bXV -bJK -bhB -rbp -vuR -rbp -vTK +gXZ +jqT +jqT +jqT +hsy +ylh +opH +hsy +kJn +fQn +qoR +aPU +rjO +mtZ +rDB +hsy +iEw +ylh +hsy +xgZ +jqT +xgZ +gXZ aag aag ajZ @@ -133512,7 +135894,7 @@ bdH bdH aad cuC -oIm +mJx rtd odb cuC @@ -133526,8 +135908,8 @@ xVk xVk aad jbq -qtR -avu +hBL +dID eky eky nJu @@ -133535,8 +135917,8 @@ aNl eky eky eky -aMU -qtR +etn +hBL jbq ajZ xVk @@ -133621,29 +136003,29 @@ bdH aad aag aag -wVb -wVb -rVo -hlz -bhB -bJK -bKV -bhB -bXu -boU -rFu -blo -riQ -okz -bMV -bhB -bXQ -bJK -bhB -kpX -emG -vTK -vTK +gXZ +gXZ +nTi +rEb +hsy +ylh +mlF +hsy +nFM +eZp +kzO +pzM +hip +ptZ +urW +hsy +tos +ylh +hsy +pJt +uTa +gXZ +gXZ aag aag ajZ @@ -133715,7 +136097,7 @@ bdH bdH cuC cuC -pLv +dqg rtd fcP cuC @@ -133730,7 +136112,7 @@ xVk eJQ aPw aHe -dnJ +mRQ eky eky eky @@ -133738,7 +136120,7 @@ aNl eky eky eky -hfw +biJ aHe aPw eJQ @@ -133825,27 +136207,27 @@ aad aag aag aag -wVb -qnP -uia -bhB -bhB -blm -bhB -bhB -bOi -xcp -kkO -gzr -kXK -bhB -bhB -bzX -bhB -bhB -ybr -vuR -vTK +gXZ +pJt +hAY +hsy +hsy +suJ +hsy +hsy +gLG +khf +bhI +iIj +hQw +hsy +hsy +wdv +hsy +hsy +fiI +jqT +gXZ aag aag aag @@ -133918,7 +136300,7 @@ aaa aaa uMc iKc -iVY +uiG cMN trB nVX @@ -134028,27 +136410,27 @@ aad aag aag aag -wVb -hlz -moE -bhB -bJM -bLd -fir -jfM -bQi -bMM -bSy -bMM -bSx -hbZ -ebJ -xiC -fYG -bhB -vuR -woG -vTK +gXZ +rEb +pRY +hsy +uiC +sIr +jCn +kkk +kjO +pAm +gzq +pAm +eAI +tdv +rlc +hfb +hUk +hsy +jqT +iuA +gXZ aag aag aag @@ -134231,27 +136613,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -bJN -bLd -bMM -bMM -bMM -bMM -bSy -bMM -bMM -bMM -bMM -bLd -bYU -bhB -jdy -cAH -vTK +gXZ +jqT +jqT +hsy +thc +sIr +pAm +pAm +pAm +pAm +gzq +pAm +pAm +pAm +pAm +sIr +fZl +hsy +nYC +rEb +gXZ aag aag aag @@ -134434,27 +136816,27 @@ aad aag aag aag -wVb -hlz -hlz -bhB -bJP -mzO -bMN -bMN -fcI -bSy -bSy -bSy -dNx -bMN -bMN -tdx -bYW -bhB -vuR -ydx -vTK +gXZ +rEb +rEb +hsy +tIe +uAK +bVv +bVv +xTu +gzq +gzq +gzq +ern +bVv +bVv +nJa +jPd +hsy +jqT +htP +gXZ aag aag aag @@ -134637,27 +137019,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -hrX -fIx -bMM -bMM -hgt -bMM -bMM -bMM -bMM -bMM -bMM -bYU -gNd -bhB -cAH -cAH -vTK +gXZ +jqT +jqT +hsy +dPH +sov +pAm +pAm +nAd +pAm +pAm +pAm +pAm +pAm +pAm +fZl +oex +hsy +rEb +rEb +gXZ aag aag aag @@ -134840,27 +137222,27 @@ aad aag aag aag -wVb -hlz -hlz -bhB -sgM -fIx -bMM -bMM -bhB -kvz -kvz -kvz -bhB -kGX -bMM -bYU -upe -bhB -vuR -vuR -vTK +gXZ +rEb +rEb +hsy +rBv +sov +pAm +pAm +hsy +nDa +nDa +nDa +hsy +gDH +pAm +fZl +snt +hsy +jqT +jqT +gXZ aag aag aag @@ -135043,27 +137425,27 @@ aad aag aag aag -wVb -eFH -eFH -bhB -svd -bLf -dCS -bMM -bhB -bQk -xfi -bSG -bhB -bMM -dCS -tLy -svd -bhB -cAH -cAH -vTK +gXZ +jqT +jqT +hsy +fqW +qYq +mQn +pAm +hsy +kiG +aSk +pUv +hsy +pAm +mQn +wQD +fqW +hsy +rEb +rEb +gXZ aag aag aag @@ -135246,27 +137628,27 @@ aad aag aag aag -wVb -hlz -eFH -bhB -bhB -bhB -bhB -cZJ -bhB -bhB -bhB -bhB -bhB -cZJ -bhB -bhB -bhB -bhB -vuR -vuR -vTK +gXZ +rEb +jqT +hsy +hsy +hsy +hsy +hNP +hsy +hsy +hsy +hsy +hsy +hNP +hsy +hsy +hsy +hsy +jqT +jqT +gXZ aag aag aag @@ -135449,27 +137831,27 @@ aad aag aag aag -wVb -hlz -eFH -fKg -tce -bhB -heg -lfQ -blo -vNF -xuU -vNF -blo -ktO -heg -bhB -osE -gai -cAH -cAH -vTK +gXZ +rEb +jqT +lhW +lAU +hsy +haz +fQn +pzM +qra +tqE +qra +pzM +mtZ +haz +hsy +lAU +qqW +rEb +rEb +gXZ aag aag aag @@ -135557,7 +137939,7 @@ xVk oee aPw aHe -tqB +iTe eky eky atg @@ -135565,7 +137947,7 @@ aBE ouB eky eky -gwu +qPX aHe aPw oee @@ -135652,27 +138034,27 @@ aad aag aag aag -wVb -hlz -hlz -hlz -hlz -bhB -heg -mKX -aut -aut -aut -aut -aut -riA -heg -bhB -pFP -cAH -cAH -cAH -vTK +gXZ +rEb +rEb +rEb +rEb +hsy +haz +pLt +mZL +mZL +mZL +mZL +mZL +lOX +haz +hsy +gfs +rEb +rEb +rEb +gXZ aag aag aag @@ -135759,8 +138141,8 @@ xVk xVk aad jbq -aNe -avu +xrq +dID eky eky esT @@ -135768,8 +138150,8 @@ nYE orH eky eky -aMU -aNe +etn +xrq jbq ajZ xVk @@ -135855,27 +138237,27 @@ aad aag aag aag -wVb -wVb -gcK -jPf -jPf -bhB -dVZ -jyi -bPe -bQm -wlj -bQm -bTp -jyi -cDj -bhB -vuR -vuR -woG -vTK -vTK +gXZ +gXZ +fBd +uTa +uTa +hsy +mkI +aPS +gsM +ukP +eCt +ukP +nop +aPS +ddf +hsy +juF +jqT +iuA +gXZ +gXZ aag aag aag @@ -135962,8 +138344,8 @@ xVk xVk aad jbq -atY -avu +vlk +dID eky eky bAe @@ -135971,8 +138353,8 @@ aBG sGh eky eky -aMU -atY +etn +vlk jbq ajZ xVk @@ -136059,25 +138441,25 @@ aag aag aag aag -wVb -hlz -eFH -uzg -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -bhB -cAH -cAH -cAH -vTK +gXZ +rEb +jqT +fYN +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +hsy +rEb +rEb +rEb +gXZ aag aag aag @@ -136165,8 +138547,8 @@ xVk xVk aad aPw -qpU -aqJ +uYd +xnz dqj eky xaS @@ -136174,8 +138556,8 @@ ejt mPf eky gUV -aqp -qpU +neG +uYd aPw ajZ xVk @@ -136262,25 +138644,25 @@ aag aag aag aag -wVb -hlz -eFH -hlz -eFH -wul -hlz -gnz -eFH -eFH -vuR -hOe -cAH -fXd -vuR -vuR -vuR -cAH -vTK +gXZ +rEb +jqT +rEb +jqT +hWS +rEb +hJN +jqT +jqT +jqT +hJN +rEb +cyy +jqT +jqT +jqT +rEb +gXZ aag aag aag @@ -136465,25 +138847,25 @@ aag aag aag aag -wVb -wVb -rdK -rdK -rdK -rdK -bOn -rdK -rdK -rdK -haq -haq -xnl -haq -haq -haq -haq -vTK -vTK +gFP +gFP +qjZ +qjZ +qjZ +qjZ +dXI +qjZ +qjZ +qjZ +qjZ +qjZ +dXI +qjZ +qjZ +qjZ +qjZ +gFP +gFP aag aag aag @@ -136668,25 +139050,25 @@ aah aah aah aah -wVb -wVb -bdo -bdo -bLg -bMX -bOo -uvG -dSs -bOo -otX -cII -koT -tZF -bUZ -ovn -ovn -vTK -vTK +gFP +gFP +lMb +lMb +fLv +cLq +vON +sgs +ioP +vAI +kXm +eSk +vON +cLq +oLN +lMb +lMb +gFP +gFP aah aah aah @@ -136872,23 +139254,23 @@ aaa aaa aaa aaa -wVb -qsF -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -bjy -aXQ -vTK +gFP +vVI +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +fXZ +gsi +gFP aaa aaa aaa @@ -137075,23 +139457,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -137278,23 +139660,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -137481,23 +139863,23 @@ aaa aaa aaa aaa -wVb -bhD -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -bCR -vTK +gFP +riT +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +vFn +gFP aaa aaa aaa @@ -137684,23 +140066,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -137887,23 +140269,23 @@ aaa aaa aaa aaa -wVb -bdo -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -ovn -vTK +gFP +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gFP aaa aaa aaa @@ -138090,23 +140472,23 @@ aaa aaa aaa aaa -wVb -qsF -bdo -bdo -bdo -bdo -bdo -bdo -bdo -ovn -ovn -ovn -ovn -ovn -ovn -aXQ -vTK +gFP +vVI +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +lMb +gsi +gFP aaa aaa aaa @@ -138293,23 +140675,23 @@ aaa aaa aaa aaa -wVb -bdo -jbB -bdo -bne -bdo -jbB -bdo -bne -ovn -gXv -ovn -grX -ovn -gXv -ovn -vTK +gFP +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +qbD +lMb +wgf +lMb +gFP aaa aaa aaa @@ -138496,23 +140878,23 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -vTK -vTK -vTK -vTK -vTK -vTK -vTK -vTK +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP +gFP aaa aaa aaa @@ -139262,9 +141644,9 @@ lmz lmz lmz daz -rzf -bRo -wyv +ltc +eXk +xns pTt gAe rCi @@ -139465,9 +141847,9 @@ lmz lmz lmz daz -czG -ylg -ylg +tId +wJB +tJN daz daz daz diff --git a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm index eb4f5fdb6025..917759783a2a 100644 --- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm +++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm @@ -166,6 +166,11 @@ }, /turf/open/floor/wood, /area/whiskey_outpost/inside/cic) +"aC" = ( +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/whiskey_outpost/inside/cic) "aE" = ( /obj/structure/bed, /obj/item/bedsheet/hop, @@ -868,6 +873,13 @@ "dl" = ( /turf/closed/wall/r_wall/unmeltable, /area/whiskey_outpost/inside/hospital) +"dp" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "dr" = ( /obj/structure/window/reinforced{ dir = 4; @@ -2021,6 +2033,13 @@ /obj/structure/surface/rack, /turf/open/jungle, /area/whiskey_outpost/outside/lane/two_south) +"hr" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/machinery/disposal/deliveryChute{ + dir = 1 + }, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "hs" = ( /turf/open/gm/coast/beachcorner2/south_west, /area/whiskey_outpost/outside/lane/four_north) @@ -2201,9 +2220,6 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/living) -"hP" = ( -/turf/open/space/basic, -/area/whiskey_outpost/inside/caves) "hQ" = ( /turf/open/floor/prison{ icon_state = "floor_plate" @@ -3058,8 +3074,10 @@ }, /area/whiskey_outpost/inside/supply) "kE" = ( -/obj/structure/surface/rack, -/turf/open/floor/plating/plating_catwalk/prison, +/obj/structure/machinery/computer/cryopod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/whiskey_outpost/inside/supply) "kG" = ( /obj/structure/bed/chair{ @@ -4260,6 +4278,10 @@ /obj/effect/landmark/start/whiskey/pilot, /turf/open/gm/dirt, /area/whiskey_outpost/outside/mortar_pit) +"pg" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "pj" = ( /obj/effect/landmark/start/whiskey/engineer, /turf/open/gm/dirtgrassborder/north, @@ -4415,7 +4437,7 @@ "pO" = ( /obj/structure/bed, /obj/item/bedsheet/orange, -/obj/item/toy/farwadoll{ +/obj/item/toy/plush/farwa{ pixel_x = 5 }, /obj/item/clothing/under/redpyjamas, @@ -5151,7 +5173,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/engineering) "sh" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/wo, +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/wo, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -5223,6 +5245,10 @@ /obj/structure/sign/ROsign, /turf/closed/wall/r_wall, /area/whiskey_outpost) +"sw" = ( +/obj/effect/decal/warning_stripes, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "sx" = ( /obj/structure/machinery/cm_vending/clothing/dress, /turf/open/floor/prison{ @@ -5251,7 +5277,7 @@ }, /area/whiskey_outpost/inside/living) "sJ" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/wo, +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/wo, /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) "sK" = ( @@ -5356,9 +5382,8 @@ /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) "th" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/disposalpipe/junction{ + dir = 8 }, /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) @@ -5729,12 +5754,13 @@ dir = 4; id = "trash" }, -/obj/structure/machinery/recycler{ - recycle_dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/machinery/light/small, +/obj/structure/machinery/recycler/whiskey{ + recycle_dir = 8 + }, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -6274,6 +6300,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/structure/machinery/light/small, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -6337,7 +6364,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/light/small, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -6403,6 +6429,14 @@ "wK" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/whiskey_outpost/outside/lane/two_south) +"wL" = ( +/obj/structure/surface/rack, +/obj/item/device/destTagger, +/obj/item/packageWrap, +/obj/item/packageWrap, +/obj/item/packageWrap, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "wM" = ( /obj/structure/machinery/line_nexter{ dir = 1; @@ -6533,10 +6567,17 @@ }, /area/whiskey_outpost/inside/cic) "xk" = ( -/obj/structure/machinery/light, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/surface/rack, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1; + dir = 1 }, +/obj/item/device/destTagger, +/obj/item/packageWrap, +/obj/item/packageWrap, +/obj/item/packageWrap, +/turf/open/floor/prison, /area/whiskey_outpost/inside/supply) "xl" = ( /obj/item/ammo_casing{ @@ -6788,6 +6829,7 @@ /area/whiskey_outpost/inside/hospital) "yj" = ( /obj/effect/landmark/start/whiskey/cargo, +/obj/structure/disposalpipe/segment, /turf/open/floor/prison{ dir = 8; icon_state = "darkyellowcorners2" @@ -6867,10 +6909,6 @@ dir = 4; health = 80 }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -6926,6 +6964,9 @@ health = 80 }, /obj/item/tool/hand_labeler, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/prison{ dir = 8; icon_state = "darkyellow2" @@ -7860,6 +7901,13 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/bunker/bunker/front) +"Cd" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall/r_wall/unmeltable, +/area/whiskey_outpost/inside/supply) "Ce" = ( /turf/open/gm/grass/grassbeach/west, /area/whiskey_outpost/outside/lane/one_north) @@ -8361,6 +8409,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/bunker) +"DW" = ( +/obj/structure/machinery/door/window/northleft, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/whiskey_outpost/inside/engineering) "DX" = ( /obj/structure/blocker/invisible_wall, /turf/open/gm/river, @@ -8576,6 +8631,10 @@ icon_state = "grass_impenetrable" }, /area/whiskey_outpost/outside/north/northwest) +"EL" = ( +/obj/structure/machinery/cm_vending/gear/synth, +/turf/open/floor/plating/plating_catwalk, +/area/whiskey_outpost/inside/cic) "EN" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor{ @@ -9834,7 +9893,7 @@ /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/bunker/bunker/front) "Kc" = ( -/obj/structure/machinery/cm_vending/sorted/attachments, +/obj/structure/machinery/cm_vending/sorted/attachments/wo, /turf/open/floor/plating, /area/whiskey_outpost/inside/supply) "Kd" = ( @@ -9880,6 +9939,18 @@ /obj/structure/sign/poster, /turf/closed/wall/r_wall, /area/whiskey_outpost/inside/engineering) +"Ks" = ( +/obj/structure/closet/secure_closet/cargotech, +/obj/item/clothing/accessory/storage/webbing, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "darkyellowfull2" + }, +/area/whiskey_outpost/inside/supply) "Kt" = ( /obj/structure/fence, /turf/open/gm/dirt, @@ -10779,6 +10850,20 @@ icon_state = "white" }, /area/whiskey_outpost/inside/hospital/triage) +"OI" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/whiskey_outpost) "OK" = ( /turf/closed/wall/strata_ice/jungle, /area/whiskey_outpost/outside/south/far) @@ -11823,7 +11908,7 @@ }, /area/whiskey_outpost/inside/hospital/triage) "TD" = ( -/obj/item/weapon/claymore/mercsword/machete, +/obj/item/weapon/sword/machete, /turf/open/jungle{ bushes_spawn = 0; icon_state = "grass_impenetrable" @@ -12234,6 +12319,16 @@ icon_state = "blue" }, /area/whiskey_outpost/inside/cic) +"Vr" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/item/device/destTagger, +/obj/item/packageWrap, +/obj/item/packageWrap, +/turf/open/floor/prison, +/area/whiskey_outpost/inside/supply) "Vt" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -12565,6 +12660,10 @@ icon_state = "asteroidwarning" }, /area/whiskey_outpost/outside/north) +"WK" = ( +/obj/structure/machinery/cm_vending/own_points/experimental_tools, +/turf/open/floor/plating/plating_catwalk, +/area/whiskey_outpost/inside/cic) "WL" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, /obj/structure/disposalpipe/segment{ @@ -12805,6 +12904,13 @@ /obj/effect/spawner/random/tool, /turf/open/gm/dirtgrassborder/east, /area/whiskey_outpost/outside/lane/two_south) +"XO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/whiskey_outpost/inside/supply) "XP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19252,9 +19358,9 @@ mT mT mT mT -mT -mT -mT +ak +ak +ak mT mT mT @@ -19455,7 +19561,7 @@ mT mT mT ak -ak +WK ak ak ak @@ -19655,9 +19761,9 @@ mT mT mT mT -mT ak ai +aC qe ih Nr @@ -19857,9 +19963,9 @@ mT mT mT mT -mT ak Vy +aC PB PM Ed @@ -20061,7 +20167,7 @@ ak ak ak ak -ak +EL Mo Gx PM @@ -21086,7 +21192,7 @@ vn tv wl nK -ya +JN ya ya nr @@ -21287,8 +21393,8 @@ nK vv tv wz -nK -JN +DW +ya ya Jd nr @@ -21692,7 +21798,7 @@ vw tv wA nK -ya +JN ya ya nr @@ -22502,7 +22608,7 @@ uB uB yf xg -vC +xg nr fy fy @@ -22669,7 +22775,7 @@ mT mT mT mT -hP +mT mT mT dl @@ -22704,7 +22810,7 @@ kS pK vL yz -nr +vC nr fy fy @@ -23068,12 +23174,12 @@ mT mT mT mT -hP mT mT mT mT -hP +mT +mT mT mT qz @@ -23304,12 +23410,12 @@ cx rm uf wQ -kS -pK -kS -pK +dp +XO +pg +XO yj -yF +Ks nr nr UN @@ -23706,14 +23812,14 @@ oW OX qT lw -rZ -kS -kS -kS +xk kS kS +pK kS -nr +sw +hr +Cd nr mT BT @@ -23908,13 +24014,13 @@ oW OX qT lw -rZ +wL kS kS kS kS Dk -vN +Vr nr mT mT @@ -24713,7 +24819,7 @@ la nn oI rg -oP +OI su Kc sh @@ -24924,7 +25030,7 @@ kS tS tS wQ -wQ +kS nr zg yk @@ -25123,11 +25229,11 @@ VF TP wQ kS -kE -kE -xk +tS +tS +wQ +vN yv -nr Av zG Av @@ -25327,9 +25433,9 @@ kS kS tS tS -wQ +kE +nr nr -lw fj fj fj diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index 43b3d26ec3f9..d085d7a99b0c 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -12,7 +12,7 @@ /turf/open/floor/wood/ship, /area/adminlevel/ert_station) "ad" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -27,7 +27,7 @@ id = "tdome_observer"; name = "\improper Observer Shutters" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -63,7 +63,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -72,7 +72,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -83,7 +83,7 @@ id = "tdome_t2"; name = "\improper Team 2 Shutters" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "test_floor4" }, /area/tdome) @@ -101,7 +101,7 @@ /turf/open/space, /area/space) "aE" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 1; icon_state = "w-y0" }, @@ -683,7 +683,7 @@ /obj/item/device/binoculars{ pixel_y = 4 }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -896,7 +896,7 @@ }, /area/adminlevel/ert_station/shuttle_dispatch) "wj" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 1; icon_state = "w-y2" }, @@ -921,7 +921,7 @@ /area/adminlevel/ert_station) "wv" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1147,7 +1147,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1163,7 +1163,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_20" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1277,13 +1277,13 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station/shuttle_dispatch) "DV" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "tcomms" }, /area/tdome) "Ee" = ( /obj/effect/landmark/thunderdome/one, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1375,7 +1375,7 @@ "Fw" = ( /obj/structure/surface/table/almayer, /obj/item/storage/fancy/cigar, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1639,7 +1639,7 @@ /turf/closed/wall/mineral/gold, /area/adminlevel/ert_station) "Kq" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "redfull" }, /area/tdome/tdome2) @@ -1738,7 +1738,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1871,7 +1871,7 @@ /area/adminlevel/ert_station) "NU" = ( /obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1937,7 +1937,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -1967,13 +1967,13 @@ /area/adminlevel/simulation) "PF" = ( /obj/effect/landmark/thunderdome/two, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, /area/tdome/tdome2) "PJ" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 1; icon_state = "w-y1" }, @@ -2041,7 +2041,7 @@ /area/adminlevel/ert_station) "QL" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "tcomms" }, /area/tdome/tdomeobserve) @@ -2095,7 +2095,7 @@ id = "tdome_t1"; name = "\improper Team 1 Shutters" }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "test_floor4" }, /area/tdome) @@ -2165,7 +2165,7 @@ name = "Observer Shutters"; pixel_y = 9 }, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -2313,7 +2313,7 @@ /area/adminlevel/ert_station) "VD" = ( /obj/structure/machinery/vending/cigarette/free, -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -2483,7 +2483,7 @@ }, /area/adminlevel/ert_station) "YP" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ dir = 5; icon_state = "plating" }, @@ -2498,7 +2498,7 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/ert_station) "Zd" = ( -/turf/open/floor/almayer{ +/turf/open/floor/tdome{ icon_state = "bluefull" }, /area/tdome/tdome1) diff --git a/maps/new_varadero.json b/maps/new_varadero.json index d695652d0ceb..ec90142c2295 100644 --- a/maps/new_varadero.json +++ b/maps/new_varadero.json @@ -11,7 +11,7 @@ "/datum/equipment_preset/survivor/chaplain/nv", "/datum/equipment_preset/survivor/engineer/nv", "/datum/equipment_preset/survivor/trucker/nv", - "/datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv", + "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/nv", "/datum/equipment_preset/survivor/security/nv", "/datum/equipment_preset/survivor/beachbum", "/datum/equipment_preset/survivor/miner", diff --git a/maps/predship/huntership.dmm b/maps/predship/huntership.dmm index f8b3028a68ff..7c5d633286f0 100644 --- a/maps/predship/huntership.dmm +++ b/maps/predship/huntership.dmm @@ -672,7 +672,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/claymore/mercsword/machete/arnold{ +/obj/item/weapon/sword/machete/arnold{ anchored = 1; desc = "Won by an Elder during their youthful hunting days. None are allowed to touch it."; name = "\improper Dutch's Machete" @@ -1271,36 +1271,36 @@ color = "#6b675e"; layer = 2.79 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = 12 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = 8 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = 4 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = -4 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = -12 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25 }, -/obj/item/weapon/claymore/mercsword{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; pixel_x = -8 @@ -1883,24 +1883,24 @@ color = "#6b675e"; layer = 2.79 }, -/obj/item/weapon/claymore{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; name = "duelling claymore" }, -/obj/item/weapon/claymore{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; name = "duelling claymore"; pixel_x = -5 }, -/obj/item/weapon/claymore{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; name = "duelling claymore"; pixel_x = 5 }, -/obj/item/weapon/claymore{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; name = "duelling claymore"; @@ -1955,7 +1955,7 @@ color = "#6b675e" }, /obj/item/storage/large_holster/katana, -/obj/item/weapon/katana, +/obj/item/weapon/sword/katana, /turf/open/floor/corsat{ dir = 1; icon_state = "squareswood" @@ -2246,7 +2246,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/claymore/mercsword/ceremonial, +/obj/item/weapon/sword/ceremonial, /turf/open/floor/corsat{ dir = 1; icon_state = "squareswood" diff --git a/maps/predship/regular.dmm b/maps/predship/regular.dmm index 93392c6b7f5e..895e8ae84c91 100644 --- a/maps/predship/regular.dmm +++ b/maps/predship/regular.dmm @@ -451,7 +451,7 @@ /area/yautja) "bN" = ( /obj/structure/surface/table/reinforced, -/obj/item/weapon/katana, +/obj/item/weapon/sword/katana, /obj/structure/window/reinforced{ dir = 4 }, @@ -1053,12 +1053,12 @@ /area/yautja) "cZ" = ( /obj/structure/surface/table/reinforced, -/obj/item/weapon/claymore/mercsword, -/obj/item/weapon/claymore/mercsword, -/obj/item/weapon/claymore/mercsword, -/obj/item/weapon/claymore/mercsword, -/obj/item/weapon/claymore/mercsword, -/obj/item/weapon/claymore/mercsword, +/obj/item/weapon/sword, +/obj/item/weapon/sword, +/obj/item/weapon/sword, +/obj/item/weapon/sword, +/obj/item/weapon/sword, +/obj/item/weapon/sword, /turf/open/floor/holofloor{ dir = 2; icon_state = "cult" diff --git a/maps/prison_station_fop.json b/maps/prison_station_fop.json index b29f7255c21b..f2c22dbe4bb8 100644 --- a/maps/prison_station_fop.json +++ b/maps/prison_station_fop.json @@ -24,7 +24,10 @@ "survivor_message": "You are a survivor of the attack on Fiorina Orbital Penitentiary. You worked or lived on the prison station, and managed to avoid the alien attacks... until now.", "map_item_type": "/obj/item/map/FOP_map", "announce_text": "An automated distress signal has been received from maximum-security prison \"Fiorina Orbital Penitentiary\". A response team from the ###SHIPNAME### will be dispatched shortly to investigate.", - "environment_traits": { "Lockdown": true }, + "environment_traits": { + "Lockdown": true, + "InSpace": true + }, "traits": [{ "Ground": true }], "nightmare_path": "maps/Nightmare/maps/FOP_v2_Cellblocks/", "xvx_hives": { diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index 7c49edfdd0d2..1e78347c1721 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -18,6 +18,14 @@ /obj/structure/shuttle/part/dropship1/transparent/nose_center, /turf/template_noop, /area/shuttle/drop1/sulaco) +"bc" = ( +/obj/effect/attach_point/electronics/dropship1{ + dir = 1; + attach_id = 5 + }, +/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons, +/turf/template_noop, +/area/shuttle/drop1/sulaco) "be" = ( /obj/structure/shuttle/part/dropship1/transparent/upper_right_wing, /turf/template_noop, @@ -73,6 +81,15 @@ icon_state = "floor8" }, /area/shuttle/drop1/sulaco) +"ed" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "eD" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_right_cap, /turf/template_noop, @@ -159,14 +176,6 @@ icon_state = "76" }, /area/shuttle/drop1/sulaco) -"os" = ( -/obj/effect/attach_point/fuel/dropship1{ - pixel_x = -32 - }, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "33" - }, -/area/shuttle/drop1/sulaco) "oW" = ( /obj/structure/shuttle/part/dropship1/transparent/middle_left_wing, /turf/template_noop, @@ -216,18 +225,18 @@ icon_state = "23" }, /area/shuttle/drop1/sulaco) -"rS" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "rV" = ( /obj/structure/shuttle/part/dropship1/transparent/left_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) +"sm" = ( +/obj/effect/attach_point/fuel/dropship1{ + attach_id = 10 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "28" + }, +/area/shuttle/drop1/sulaco) "sA" = ( /obj/structure/shuttle/part/dropship1/lower_left_wall, /turf/open/space/basic, @@ -247,12 +256,6 @@ /obj/structure/shuttle/part/dropship1/transparent/lower_right_wing, /turf/template_noop, /area/shuttle/drop1/sulaco) -"wr" = ( -/obj/effect/attach_point/crew_weapon/dropship1, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "ws" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -343,20 +346,6 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) -"Da" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship1/transparent/inner_left_weapons, -/turf/template_noop, -/area/shuttle/drop1/sulaco) -"De" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, -/turf/template_noop, -/area/shuttle/drop1/sulaco) "Et" = ( /turf/closed/shuttle/dropship1{ icon_state = "72" @@ -426,6 +415,14 @@ icon_state = "62" }, /area/shuttle/drop1/sulaco) +"Kk" = ( +/obj/effect/attach_point/crew_weapon/dropship1{ + attach_id = 7 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "KC" = ( /obj/structure/machinery/door/airlock/hatch/cockpit, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -452,6 +449,23 @@ icon_state = "64" }, /area/shuttle/drop1/sulaco) +"Nv" = ( +/obj/effect/attach_point/crew_weapon/dropship1{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) +"ND" = ( +/obj/effect/attach_point/fuel/dropship1{ + pixel_x = -32; + attach_id = 11 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "33" + }, +/area/shuttle/drop1/sulaco) "NQ" = ( /obj/structure/shuttle/part/dropship1/transparent/left_inner_bottom_wing, /turf/template_noop, @@ -480,15 +494,6 @@ icon_state = "rasputin5" }, /area/shuttle/drop1/sulaco) -"Pf" = ( -/obj/structure/machinery/door/airlock/dropship_hatch{ - dir = 8; - id = "starboard_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop1/sulaco) "Ph" = ( /turf/closed/shuttle/dropship1{ icon_state = "68" @@ -501,6 +506,14 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) +"PV" = ( +/obj/effect/attach_point/crew_weapon/dropship1{ + attach_id = 9 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "Qh" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "32" @@ -574,12 +587,6 @@ /obj/structure/shuttle/part/dropship1/transparent/outer_left_weapons, /turf/template_noop, /area/shuttle/drop1/sulaco) -"Ua" = ( -/obj/effect/attach_point/fuel/dropship1, -/turf/closed/shuttle/dropship1/transparent{ - icon_state = "28" - }, -/area/shuttle/drop1/sulaco) "UG" = ( /obj/structure/prop/ice_colony/hula_girl{ pixel_x = -10; @@ -627,6 +634,23 @@ icon_state = "rasputin7" }, /area/shuttle/drop1/sulaco) +"XP" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ + id = "port_door"; + dir = 2 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) +"Ye" = ( +/obj/effect/attach_point/electronics/dropship1{ + dir = 1; + attach_id = 6 + }, +/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, +/turf/template_noop, +/area/shuttle/drop1/sulaco) "Za" = ( /turf/closed/shuttle/dropship1{ icon_state = "77" @@ -659,7 +683,7 @@ mb mb FA Oq -Ua +sm iz EN mb @@ -675,8 +699,8 @@ hG Et iI JP -rS -rS +il +XP mW qn sA @@ -693,7 +717,7 @@ NQ mb mb mb -Da +bc oo TK ws @@ -772,11 +796,11 @@ BB OK OU il -wr +Kk il -wr +Nv il -wr +PV il mb mb @@ -831,7 +855,7 @@ Wg mb mb mb -De +Ye oo TK cr @@ -859,8 +883,8 @@ zS iv zV MP -Pf -Pf +il +ed nC nE rl @@ -889,7 +913,7 @@ mb mb eD Gw -os +ND qy Jm mb diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index f1595cd97db9..5a733f6a9e9b 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -36,20 +36,6 @@ /obj/structure/shuttle/part/dropship2/transparent/right_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"do" = ( -/obj/effect/attach_point/crew_weapon/dropship2, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) -"es" = ( -/obj/effect/attach_point/fuel/dropship2{ - pixel_x = -32 - }, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "33" - }, -/area/shuttle/drop2/sulaco) "eu" = ( /turf/closed/shuttle/dropship2{ icon_state = "75" @@ -93,6 +79,14 @@ icon_state = "54" }, /area/shuttle/drop2/sulaco) +"gH" = ( +/obj/effect/attach_point/electronics/dropship2{ + dir = 1; + attach_id = 6 + }, +/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons, +/turf/template_noop, +/area/shuttle/drop2/sulaco) "gP" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 @@ -101,6 +95,14 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) +"hn" = ( +/obj/effect/attach_point/crew_weapon/dropship2{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "it" = ( /obj/structure/bed/chair/vehicle{ dir = 1; @@ -173,6 +175,14 @@ icon_state = "62" }, /area/shuttle/drop2/sulaco) +"mn" = ( +/obj/effect/attach_point/fuel/dropship2{ + attach_id = 10 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "28" + }, +/area/shuttle/drop2/sulaco) "mz" = ( /obj/structure/machinery/camera/autoname/almayer/dropship_two{ dir = 4; @@ -190,6 +200,15 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) +"mA" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + id = "port_door"; + dir = 2 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop2/sulaco) "nq" = ( /obj/effect/attach_point/weapon/dropship2/left_fore, /obj/structure/shuttle/part/dropship2/transparent/outer_left_weapons, @@ -253,10 +272,13 @@ icon_state = "rasputin3" }, /area/shuttle/drop2/sulaco) -"vw" = ( -/obj/effect/attach_point/fuel/dropship2, -/turf/closed/shuttle/dropship2/transparent{ - icon_state = "28" +"vh" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "starboard_door" + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) "wX" = ( @@ -264,13 +286,6 @@ icon_state = "83" }, /area/shuttle/drop2/sulaco) -"xd" = ( -/obj/effect/attach_point/electronics/dropship2{ - dir = 1 - }, -/obj/structure/shuttle/part/dropship2/transparent/inner_right_weapons, -/turf/template_noop, -/area/shuttle/drop2/sulaco) "xe" = ( /turf/closed/shuttle/dropship2{ icon_state = "18" @@ -310,6 +325,14 @@ icon_state = "56" }, /area/shuttle/drop2/sulaco) +"Bg" = ( +/obj/effect/attach_point/crew_weapon/dropship2{ + attach_id = 7 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "Bi" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "97" @@ -349,15 +372,6 @@ /obj/structure/shuttle/part/dropship2/transparent/lower_right_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"En" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - dir = 8; - id = "starboard_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "Eo" = ( /turf/closed/shuttle/dropship2{ icon_state = "47" @@ -463,6 +477,14 @@ /obj/structure/shuttle/part/dropship2/transparent/nose_top_left, /turf/template_noop, /area/shuttle/drop2/sulaco) +"MA" = ( +/obj/effect/attach_point/crew_weapon/dropship2{ + attach_id = 9 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "ME" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "96" @@ -494,6 +516,15 @@ /obj/structure/shuttle/part/dropship2/left_outer_wing_connector, /turf/open/space/basic, /area/shuttle/drop2/sulaco) +"Od" = ( +/obj/effect/attach_point/fuel/dropship2{ + pixel_x = -32; + attach_id = 11 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "33" + }, +/area/shuttle/drop2/sulaco) "Ov" = ( /obj/structure/shuttle/part/dropship2/transparent/right_inner_bottom_wing, /turf/template_noop, @@ -582,14 +613,6 @@ /obj/structure/shuttle/part/dropship2/nose_front_left, /turf/template_noop, /area/shuttle/drop2/sulaco) -"SC" = ( -/obj/structure/machinery/door/airlock/dropship_hatch/two{ - id = "port_door" - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "SO" = ( /turf/closed/shuttle/dropship2{ icon_state = "36" @@ -692,7 +715,7 @@ Rr Rr BG SQ -vw +mn sk Xr Rr @@ -708,8 +731,8 @@ eu OI GE lJ -SC -SC +PJ +mA jc pU nS @@ -805,11 +828,11 @@ Bb Iv rc vd -do +Bg vd -do +hn vd -do +MA PJ Rr Rr @@ -864,7 +887,7 @@ RJ Rr Rr Rr -xd +gH yl SY it @@ -892,8 +915,8 @@ wX fI fx Tp -En -En +PJ +vh gG RG QK @@ -922,7 +945,7 @@ Rr Rr yh UP -es +Od zt Uu Rr diff --git a/maps/shuttles/escape_shuttle_e_cl.dmm b/maps/shuttles/escape_shuttle_e_cl.dmm index df10125c3a3a..490f0abdfa95 100644 --- a/maps/shuttles/escape_shuttle_e_cl.dmm +++ b/maps/shuttles/escape_shuttle_e_cl.dmm @@ -42,7 +42,7 @@ /turf/open/shuttle/escapepod, /area/shuttle/escape_pod) "v" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ pixel_y = 30 }, /turf/open/shuttle/escapepod{ @@ -50,8 +50,9 @@ }, /area/shuttle/escape_pod) "y" = ( -/obj/structure/machinery/door/airlock/evacuation{ - name = "\improper Evacuation Airlock CL-1" +/obj/structure/machinery/door/airlock/evacuation/liaison{ + name = "\improper Evacuation Airlock CL-1"; + id_tag = "cl_evac" }, /turf/open/floor/almayer{ icon_state = "test_floor4" diff --git a/maps/sorokyne_strata.json b/maps/sorokyne_strata.json index 61c3a7fd3f69..5a0f6d67c410 100644 --- a/maps/sorokyne_strata.json +++ b/maps/sorokyne_strata.json @@ -11,6 +11,7 @@ "/datum/equipment_preset/survivor/scientist/soro", "/datum/equipment_preset/survivor/doctor/soro", "/datum/equipment_preset/survivor/engineer/soro", + "/datum/equipment_preset/survivor/corporate/soro", "/datum/equipment_preset/survivor/security/soro", "/datum/equipment_preset/survivor/interstellar_human_rights_observer/soro" ], diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/clf_ert_station.dmm index 9d6ccd92aaa0..7347be914da2 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/clf_ert_station.dmm @@ -1658,7 +1658,7 @@ name = "CLF Outpost"; phone_category = "CLF"; phone_id = "CLF Outpost"; - callable = 0; + do_not_disturb = 2; pixel_y = 10 }, /turf/open/floor/wood, diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/upp_ert_station.dmm index d78a900f2c59..ae2a8ad40c47 100644 --- a/maps/templates/upp_ert_station.dmm +++ b/maps/templates/upp_ert_station.dmm @@ -880,7 +880,7 @@ name = "UPP Station"; phone_category = "UPP"; phone_id = "UPP Station"; - callable = 0 + do_not_disturb = 2 }, /turf/open/floor/strata{ icon_state = "floor2" diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/weyland_ert_station.dmm index 414eee0bcbc7..1937aa6a61a9 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/weyland_ert_station.dmm @@ -2795,7 +2795,7 @@ "Js" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/transmitter/rotary{ - callable = 0; + do_not_disturb = 2; name = "Weyland-Yutani Station CiC"; phone_category = "W-Y"; phone_id = "W-Y Station CiC" @@ -3588,7 +3588,7 @@ "SE" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/transmitter/rotary{ - callable = 0; + do_not_disturb = 2; name = "Weyland-Yutani Station Meeting Room"; phone_category = "W-Y"; phone_id = "W-Y Station Meeting Room" diff --git a/maps/tutorial/tutorial_12x12.dmm b/maps/tutorial/tutorial_12x12.dmm new file mode 100644 index 000000000000..a682957ea702 --- /dev/null +++ b/maps/tutorial/tutorial_12x12.dmm @@ -0,0 +1,180 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(9,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(10,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(11,1,1) = {" +a +z +z +z +z +z +z +z +z +z +z +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_7x7.dmm b/maps/tutorial/tutorial_7x7.dmm new file mode 100644 index 000000000000..4297ef72ab8b --- /dev/null +++ b/maps/tutorial/tutorial_7x7.dmm @@ -0,0 +1,75 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_8x9.dmm b/maps/tutorial/tutorial_8x9.dmm new file mode 100644 index 000000000000..fc0cdd7a3e48 --- /dev/null +++ b/maps/tutorial/tutorial_8x9.dmm @@ -0,0 +1,100 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tutorial/tutorial_8x9_nb.dmm b/maps/tutorial/tutorial_8x9_nb.dmm new file mode 100644 index 000000000000..2e03d5162f65 --- /dev/null +++ b/maps/tutorial/tutorial_8x9_nb.dmm @@ -0,0 +1,100 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/almayer/outer, +/area/misc/tutorial/no_baselight) +"z" = ( +/turf/open/floor/almayer, +/area/misc/tutorial/no_baselight) +"R" = ( +/obj/effect/landmark/tutorial_bottom_left, +/turf/open/floor/almayer, +/area/misc/tutorial/no_baselight) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +z +z +z +z +z +z +R +a +"} +(3,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(4,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(5,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(6,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(7,1,1) = {" +a +z +z +z +z +z +z +z +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/nano/templates/clan_menu.tmpl b/nano/templates/clan_menu.tmpl index 98ac3057a10a..cd987e9079f6 100644 --- a/nano/templates/clan_menu.tmpl +++ b/nano/templates/clan_menu.tmpl @@ -46,7 +46,7 @@ } #clan_list { - border-collapse: collapse; + border-collapse: collapse; width: 100%; } @@ -76,9 +76,6 @@

    {{:data.clan_name}}

    {{:data.clan_description}}
    - {{if data.clan_honor != null}} -

    Honor: {{:data.clan_honor}}

    - {{/if}}
    [tagger_locations[i]][GLOB.tagger_locations[i]]
    {{if data.player_rename_clan}} @@ -111,7 +108,6 @@ - {{if data.player_modify_ranks}} {{/if}} @@ -128,7 +124,6 @@ - {{if data.player_rank_pos > keys.rank_pos}} {{if data.player_modify_ranks}} @@ -142,4 +137,4 @@ {{/if}} {{/props}} -
    Name RankHonor {{:keys.name}} {{:keys.rank}}{{:keys.honor}}
    {{:helper.link('Set Rank', '', { 'clan_target_href' : keys.player_id, 'clan_action': 'modifyrank' })}}
    \ No newline at end of file + diff --git a/nano/templates/dropship_weapons_console.tmpl b/nano/templates/dropship_weapons_console.tmpl deleted file mode 100644 index fabfdee2467b..000000000000 --- a/nano/templates/dropship_weapons_console.tmpl +++ /dev/null @@ -1,245 +0,0 @@ - -{{if data.screen_mode == 0}} -
    -

    Equipment installed:

    -
    - {{for data.equipment_data}} - {{if value.is_interactable}} -
    - {{:helper.link(value.name, null, {'equip_interact' : value.eqp_tag}, null , null)}} -
    - {{else}} -
    - {{:value.name}} -
    - {{/if}} - {{empty}} - No equipment installed. - {{/for}} -
    -
    - {{if data.has_firemission}} -
    -

    Fire Missions:

    -
    - {{for data.firemission_data}} -
    - - {{:value.name}} - - -   - - {{if !value.can_interact}} - - *!SELECT* - - {{/if}} - {{if !value.can_edit}} - - *!EDIT* - - {{/if}} - - {{if value.can_interact}} - - {{if value.selected}} - {{:helper.link("[UNSELECT]", null, {'mission_tag' : value.mission_tag}, null , null)}} - {{else}} - {{:helper.link("[SELECT]", null, {'mission_tag' : value.mission_tag}, null , null)}} - {{/if}} - - {{/if}} - - {{if value.can_edit}} - - {{:helper.link("[EDIT]", null, {'mission_tag_edit' : value.mission_tag}, null , null)}} - - {{/if}} - - - {{:helper.link("[DELETE]", null, {'mission_tag_delete' : value.mission_tag}, null , null)}} - -
    - - {{empty}} - No Fire Missions Detected - {{/for}} -
    - {{:helper.link("Create New Fire Mission", null, {'create_mission' : 1}, null , null)}} -
    - -
    -
    -
    -

    Fire Mission Control:

    - {{if data.can_firemission}} -
    - {{:helper.link("Switch to Fire Mission", null, {'switch_to_firemission' : 1}, null , null)}} -
    -
    - {{else}} -
    - Have to be in Transit, have to select a Fire Mission and Fire Mission has to be without errors. -
    - {{/if}} -
    -
    -

    Fire Mission Simulator:

    - {{if data.shuttle_state != "in_transit"}} -
    - {{:helper.link("Switch To Simulation", null, {'switch_to_simulation' : 1}, null , null)}} -
    -
    - {{else}} -
    - Have to be Stationary, have to select a Fire Mission and Fire Mission has to be without errors. -
    - {{/if}} -
    - {{/if}} -{{else data.screen_mode == 1}} -

    Weapon Selected: {{:data.selected_eqp}}

    - {{if data.selected_eqp_ammo_name}} -
    - Ammo loaded: {{:data.selected_eqp_ammo_name}} -
    -
    - {{if data.selected_eqp_ammo_amt > data.selected_eqp_max_ammo_amt*0.5}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{else data.selected_eqp_ammo_amt > 0}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{else}} - Ammo count: {{:data.selected_eqp_ammo_amt}} / {{:data.selected_eqp_max_ammo_amt}} - {{/if}} -
    - {{else}} -
    - No ammo loaded -
    - {{/if}} - -
    - Available Targets -
    - {{:helper.link('Deselect Weapon', null, {'deselect' : '1'}, null , null)}} -
    -
    - -
    - {{for data.targets_data}} - {{:helper.link(value.target_name, null, {'open_fire' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeftLongText')}} {{:helper.link('View', 'search', {'cas_camera' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeft')}} - {{empty}} - No laser target detected. - {{/for}} -
    - - - -{{else data.screen_mode == 2}} -

    Fire Mission Editing: {{:data.editing_firemission}}

    - {{if data.current_mission_error}} -
    - ERROR DETECTED: {{:data.current_mission_error}} -
    - {{else}} -
    - No errors detected -
    - {{/if}} - -
    - Mission Tile Coverage: {{:data.editing_firemission_length}} -
    - - - - - - - {{for data.firemission_edit_timeslices}} - - {{/for}} - - {{for data.firemission_edit_data :fm_value:fm_id}} - - - - - {{for fm_value.offsets :offset_value:offset_id}} - - {{/for}} - - {{/for}} -
    NameAmmoGimbal - {{:value}} -
    {{:fm_value.name}} - {{if fm_value.ammo==null}} - 0/0 - {{else}} - {{if fm_value.ammo.used > fm_value.ammo.count}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{else fm_value.ammo.used * 2 > fm_value.ammo.count}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{else}} - {{:fm_value.ammo.count?fm_value.ammo.count:0}}/{{:fm_value.ammo.max?fm_value.ammo.max:0}} - {{/if}} - {{/if}} - - {{if(fm_value.gimbal)}} - {{:fm_value.gimbal.min}} to {{:fm_value.gimbal.max}} - {{else}} - Not installed - {{/if}} - - {{:helper.link(offset_value == null ? '-' : offset_value, null, {'fm_weapon_id' : fm_id, 'fm_offset_id' : offset_id, 'fm_offset_previous': offset_value}, null , null)}} -
    - -
    - {{:helper.link("BACK", null, {'leave_firemission_editing' : 1}, null , null)}} -
    - -{{else data.screen_mode == 3 && data.has_firemission}} -

    Fire Mission Selected: {{:data.firemission_name}}

    - -

    - Fire Mission Status: {{:data.firemission_message}} -

    - -
    -

    Fire Mission Options:

    - - - - - - - - - - - - - -
    Target:{{:data.firemission_selected_laser}}
    Direction:{{:helper.link(data.firemission_direction, null, {'change_direction' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step < 2) ? null : 'disabled' , null)}}
    Offset:{{:helper.link(data.firemission_offset, null, {'change_offset' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step < 2) ? null : 'disabled' , null)}}
    -
    - -
    -

    Fire Mission Actions:

    -
    - {{:helper.link('BACK', null, {'leave_firemission_execution' : '1'}, null , 'fixedLeft')}} - {{:helper.link('Activate Camera', null, {'firemission_camera' : 1}, (data.shuttle_state == "in_transit" && data.firemission_selected_laser) ? null : 'disabled' , 'fixedLeft')}} - {{:helper.link('Execute Fire Mission', null, {'execute_firemission' : 1}, (data.shuttle_state == "in_transit" && data.firemission_step == 0) ? null : 'disabled' , "linkDanger fixedLeftWide")}} -
    -
    -
    -
    Available Targets:
    -
    - {{for data.targets_data}} - {{:helper.link(value.target_name, null, {'select_laser_firemission' : value.target_tag}, (data.shuttle_state == "in_transit") ? null : 'disabled' , 'fixedLeftLongText')}} - {{empty}} - No CAS signal detected. - {{/for}} -
    - -{{/if}} diff --git a/sound/effects/creak1.ogg b/sound/effects/creak1.ogg new file mode 100644 index 000000000000..0cad4802ffa9 Binary files /dev/null and b/sound/effects/creak1.ogg differ diff --git a/sound/effects/creak2.ogg b/sound/effects/creak2.ogg new file mode 100644 index 000000000000..707bf39e338e Binary files /dev/null and b/sound/effects/creak2.ogg differ diff --git a/sound/effects/creak3.ogg b/sound/effects/creak3.ogg new file mode 100644 index 000000000000..88ff37a339ed Binary files /dev/null and b/sound/effects/creak3.ogg differ diff --git a/sound/effects/Heart Beat Short.ogg b/sound/effects/heart_beat_short.ogg similarity index 100% rename from sound/effects/Heart Beat Short.ogg rename to sound/effects/heart_beat_short.ogg diff --git a/sound/items/whistle.ogg b/sound/items/whistle.ogg index 8e276d522669..3223f52cae36 100644 Binary files a/sound/items/whistle.ogg and b/sound/items/whistle.ogg differ diff --git a/sound/piano/A#1.ogg b/sound/piano/A#1.ogg deleted file mode 100644 index ae41c0a189b1..000000000000 Binary files a/sound/piano/A#1.ogg and /dev/null differ diff --git a/sound/piano/A#2.ogg b/sound/piano/A#2.ogg deleted file mode 100644 index c35ce012b3ee..000000000000 Binary files a/sound/piano/A#2.ogg and /dev/null differ diff --git a/sound/piano/A#3.ogg b/sound/piano/A#3.ogg deleted file mode 100644 index 9ea8795bcf31..000000000000 Binary files a/sound/piano/A#3.ogg and /dev/null differ diff --git a/sound/piano/A#4.ogg b/sound/piano/A#4.ogg deleted file mode 100644 index aeb41ce1a722..000000000000 Binary files a/sound/piano/A#4.ogg and /dev/null differ diff --git a/sound/piano/A#5.ogg b/sound/piano/A#5.ogg deleted file mode 100644 index eca721384308..000000000000 Binary files a/sound/piano/A#5.ogg and /dev/null differ diff --git a/sound/piano/A#6.ogg b/sound/piano/A#6.ogg deleted file mode 100644 index 0ae9e89b0c28..000000000000 Binary files a/sound/piano/A#6.ogg and /dev/null differ diff --git a/sound/piano/A#7.ogg b/sound/piano/A#7.ogg deleted file mode 100644 index e1b469da8164..000000000000 Binary files a/sound/piano/A#7.ogg and /dev/null differ diff --git a/sound/piano/A#8.ogg b/sound/piano/A#8.ogg deleted file mode 100644 index 83bd263e9804..000000000000 Binary files a/sound/piano/A#8.ogg and /dev/null differ diff --git a/sound/piano/Ab1.ogg b/sound/piano/Ab1.ogg deleted file mode 100644 index 1f67015756c2..000000000000 Binary files a/sound/piano/Ab1.ogg and /dev/null differ diff --git a/sound/piano/Ab2.ogg b/sound/piano/Ab2.ogg deleted file mode 100644 index 985bfd608212..000000000000 Binary files a/sound/piano/Ab2.ogg and /dev/null differ diff --git a/sound/piano/Ab3.ogg b/sound/piano/Ab3.ogg deleted file mode 100644 index 5dbcb2d7c634..000000000000 Binary files a/sound/piano/Ab3.ogg and /dev/null differ diff --git a/sound/piano/Ab4.ogg b/sound/piano/Ab4.ogg deleted file mode 100644 index 01add48a44ad..000000000000 Binary files a/sound/piano/Ab4.ogg and /dev/null differ diff --git a/sound/piano/Ab5.ogg b/sound/piano/Ab5.ogg deleted file mode 100644 index 6fbe70844dc3..000000000000 Binary files a/sound/piano/Ab5.ogg and /dev/null differ diff --git a/sound/piano/Ab6.ogg b/sound/piano/Ab6.ogg deleted file mode 100644 index 82b5a84e6824..000000000000 Binary files a/sound/piano/Ab6.ogg and /dev/null differ diff --git a/sound/piano/Ab7.ogg b/sound/piano/Ab7.ogg deleted file mode 100644 index 391b1c1185af..000000000000 Binary files a/sound/piano/Ab7.ogg and /dev/null differ diff --git a/sound/piano/Ab8.ogg b/sound/piano/Ab8.ogg deleted file mode 100644 index aa83b7aaab90..000000000000 Binary files a/sound/piano/Ab8.ogg and /dev/null differ diff --git a/sound/piano/An1.ogg b/sound/piano/An1.ogg deleted file mode 100644 index 4a87d59adac5..000000000000 Binary files a/sound/piano/An1.ogg and /dev/null differ diff --git a/sound/piano/An2.ogg b/sound/piano/An2.ogg deleted file mode 100644 index f5327d0d7cf1..000000000000 Binary files a/sound/piano/An2.ogg and /dev/null differ diff --git a/sound/piano/An3.ogg b/sound/piano/An3.ogg deleted file mode 100644 index 7c3e8a031e80..000000000000 Binary files a/sound/piano/An3.ogg and /dev/null differ diff --git a/sound/piano/An4.ogg b/sound/piano/An4.ogg deleted file mode 100644 index 2ba84a58a6e3..000000000000 Binary files a/sound/piano/An4.ogg and /dev/null differ diff --git a/sound/piano/An5.ogg b/sound/piano/An5.ogg deleted file mode 100644 index 5e04fc8c7fbc..000000000000 Binary files a/sound/piano/An5.ogg and /dev/null differ diff --git a/sound/piano/An6.ogg b/sound/piano/An6.ogg deleted file mode 100644 index 48b639d77f2d..000000000000 Binary files a/sound/piano/An6.ogg and /dev/null differ diff --git a/sound/piano/An7.ogg b/sound/piano/An7.ogg deleted file mode 100644 index 5d93800f28a6..000000000000 Binary files a/sound/piano/An7.ogg and /dev/null differ diff --git a/sound/piano/An8.ogg b/sound/piano/An8.ogg deleted file mode 100644 index e01acd4e7e13..000000000000 Binary files a/sound/piano/An8.ogg and /dev/null differ diff --git a/sound/piano/B#1.ogg b/sound/piano/B#1.ogg deleted file mode 100644 index bcdd2bfd4a1c..000000000000 Binary files a/sound/piano/B#1.ogg and /dev/null differ diff --git a/sound/piano/B#2.ogg b/sound/piano/B#2.ogg deleted file mode 100644 index 0effb061b460..000000000000 Binary files a/sound/piano/B#2.ogg and /dev/null differ diff --git a/sound/piano/B#3.ogg b/sound/piano/B#3.ogg deleted file mode 100644 index 64f390516fc3..000000000000 Binary files a/sound/piano/B#3.ogg and /dev/null differ diff --git a/sound/piano/B#4.ogg b/sound/piano/B#4.ogg deleted file mode 100644 index a423bbb83d21..000000000000 Binary files a/sound/piano/B#4.ogg and /dev/null differ diff --git a/sound/piano/B#5.ogg b/sound/piano/B#5.ogg deleted file mode 100644 index 9a63a927fd08..000000000000 Binary files a/sound/piano/B#5.ogg and /dev/null differ diff --git a/sound/piano/B#6.ogg b/sound/piano/B#6.ogg deleted file mode 100644 index be35faabf563..000000000000 Binary files a/sound/piano/B#6.ogg and /dev/null differ diff --git a/sound/piano/B#7.ogg b/sound/piano/B#7.ogg deleted file mode 100644 index cbb2ad3bc152..000000000000 Binary files a/sound/piano/B#7.ogg and /dev/null differ diff --git a/sound/piano/B#8.ogg b/sound/piano/B#8.ogg deleted file mode 100644 index 5297b755a356..000000000000 Binary files a/sound/piano/B#8.ogg and /dev/null differ diff --git a/sound/piano/Bb1.ogg b/sound/piano/Bb1.ogg deleted file mode 100644 index 617f36454115..000000000000 Binary files a/sound/piano/Bb1.ogg and /dev/null differ diff --git a/sound/piano/Bb2.ogg b/sound/piano/Bb2.ogg deleted file mode 100644 index eb4215daa4c1..000000000000 Binary files a/sound/piano/Bb2.ogg and /dev/null differ diff --git a/sound/piano/Bb3.ogg b/sound/piano/Bb3.ogg deleted file mode 100644 index 35f7eb53d47c..000000000000 Binary files a/sound/piano/Bb3.ogg and /dev/null differ diff --git a/sound/piano/Bb4.ogg b/sound/piano/Bb4.ogg deleted file mode 100644 index 1eef7b921392..000000000000 Binary files a/sound/piano/Bb4.ogg and /dev/null differ diff --git a/sound/piano/Bb5.ogg b/sound/piano/Bb5.ogg deleted file mode 100644 index 118867fd1468..000000000000 Binary files a/sound/piano/Bb5.ogg and /dev/null differ diff --git a/sound/piano/Bb6.ogg b/sound/piano/Bb6.ogg deleted file mode 100644 index 700b2c5abd7f..000000000000 Binary files a/sound/piano/Bb6.ogg and /dev/null differ diff --git a/sound/piano/Bb7.ogg b/sound/piano/Bb7.ogg deleted file mode 100644 index c50955bf01c3..000000000000 Binary files a/sound/piano/Bb7.ogg and /dev/null differ diff --git a/sound/piano/Bb8.ogg b/sound/piano/Bb8.ogg deleted file mode 100644 index b076c4b4e2be..000000000000 Binary files a/sound/piano/Bb8.ogg and /dev/null differ diff --git a/sound/piano/Bn1.ogg b/sound/piano/Bn1.ogg deleted file mode 100644 index 256534881c18..000000000000 Binary files a/sound/piano/Bn1.ogg and /dev/null differ diff --git a/sound/piano/Bn2.ogg b/sound/piano/Bn2.ogg deleted file mode 100644 index 8ed87aa49e77..000000000000 Binary files a/sound/piano/Bn2.ogg and /dev/null differ diff --git a/sound/piano/Bn3.ogg b/sound/piano/Bn3.ogg deleted file mode 100644 index 19788aad716c..000000000000 Binary files a/sound/piano/Bn3.ogg and /dev/null differ diff --git a/sound/piano/Bn4.ogg b/sound/piano/Bn4.ogg deleted file mode 100644 index 773f5b3bd3bf..000000000000 Binary files a/sound/piano/Bn4.ogg and /dev/null differ diff --git a/sound/piano/Bn5.ogg b/sound/piano/Bn5.ogg deleted file mode 100644 index 3297fab1d597..000000000000 Binary files a/sound/piano/Bn5.ogg and /dev/null differ diff --git a/sound/piano/Bn6.ogg b/sound/piano/Bn6.ogg deleted file mode 100644 index 35a39b20f66a..000000000000 Binary files a/sound/piano/Bn6.ogg and /dev/null differ diff --git a/sound/piano/Bn7.ogg b/sound/piano/Bn7.ogg deleted file mode 100644 index e7a8ba403430..000000000000 Binary files a/sound/piano/Bn7.ogg and /dev/null differ diff --git a/sound/piano/Bn8.ogg b/sound/piano/Bn8.ogg deleted file mode 100644 index 2c821e818539..000000000000 Binary files a/sound/piano/Bn8.ogg and /dev/null differ diff --git a/sound/piano/C#1.ogg b/sound/piano/C#1.ogg deleted file mode 100644 index be3d7e3e3081..000000000000 Binary files a/sound/piano/C#1.ogg and /dev/null differ diff --git a/sound/piano/C#2.ogg b/sound/piano/C#2.ogg deleted file mode 100644 index cefe3a745dc0..000000000000 Binary files a/sound/piano/C#2.ogg and /dev/null differ diff --git a/sound/piano/C#3.ogg b/sound/piano/C#3.ogg deleted file mode 100644 index dc3d0878475f..000000000000 Binary files a/sound/piano/C#3.ogg and /dev/null differ diff --git a/sound/piano/C#4.ogg b/sound/piano/C#4.ogg deleted file mode 100644 index c31a44bdf6dd..000000000000 Binary files a/sound/piano/C#4.ogg and /dev/null differ diff --git a/sound/piano/C#5.ogg b/sound/piano/C#5.ogg deleted file mode 100644 index c5d10d13764d..000000000000 Binary files a/sound/piano/C#5.ogg and /dev/null differ diff --git a/sound/piano/C#6.ogg b/sound/piano/C#6.ogg deleted file mode 100644 index a084a04de146..000000000000 Binary files a/sound/piano/C#6.ogg and /dev/null differ diff --git a/sound/piano/C#7.ogg b/sound/piano/C#7.ogg deleted file mode 100644 index 6da255f5aea0..000000000000 Binary files a/sound/piano/C#7.ogg and /dev/null differ diff --git a/sound/piano/C#8.ogg b/sound/piano/C#8.ogg deleted file mode 100644 index b4d4cbe41579..000000000000 Binary files a/sound/piano/C#8.ogg and /dev/null differ diff --git a/sound/piano/Cb2.ogg b/sound/piano/Cb2.ogg deleted file mode 100644 index cefff94c1465..000000000000 Binary files a/sound/piano/Cb2.ogg and /dev/null differ diff --git a/sound/piano/Cb3.ogg b/sound/piano/Cb3.ogg deleted file mode 100644 index 0425228ee726..000000000000 Binary files a/sound/piano/Cb3.ogg and /dev/null differ diff --git a/sound/piano/Cb4.ogg b/sound/piano/Cb4.ogg deleted file mode 100644 index e9c8ad22e94b..000000000000 Binary files a/sound/piano/Cb4.ogg and /dev/null differ diff --git a/sound/piano/Cb5.ogg b/sound/piano/Cb5.ogg deleted file mode 100644 index 611c8ef9e42e..000000000000 Binary files a/sound/piano/Cb5.ogg and /dev/null differ diff --git a/sound/piano/Cb6.ogg b/sound/piano/Cb6.ogg deleted file mode 100644 index 3fe79c61ef92..000000000000 Binary files a/sound/piano/Cb6.ogg and /dev/null differ diff --git a/sound/piano/Cb7.ogg b/sound/piano/Cb7.ogg deleted file mode 100644 index ff6a3fb00726..000000000000 Binary files a/sound/piano/Cb7.ogg and /dev/null differ diff --git a/sound/piano/Cb8.ogg b/sound/piano/Cb8.ogg deleted file mode 100644 index 8ff3d57fe907..000000000000 Binary files a/sound/piano/Cb8.ogg and /dev/null differ diff --git a/sound/piano/Cb9.ogg b/sound/piano/Cb9.ogg deleted file mode 100644 index fa2a3de7a777..000000000000 Binary files a/sound/piano/Cb9.ogg and /dev/null differ diff --git a/sound/piano/Cn1.ogg b/sound/piano/Cn1.ogg deleted file mode 100644 index 86fba1381012..000000000000 Binary files a/sound/piano/Cn1.ogg and /dev/null differ diff --git a/sound/piano/Cn2.ogg b/sound/piano/Cn2.ogg deleted file mode 100644 index e069259e8507..000000000000 Binary files a/sound/piano/Cn2.ogg and /dev/null differ diff --git a/sound/piano/Cn3.ogg b/sound/piano/Cn3.ogg deleted file mode 100644 index 01f5bcde7c5d..000000000000 Binary files a/sound/piano/Cn3.ogg and /dev/null differ diff --git a/sound/piano/Cn4.ogg b/sound/piano/Cn4.ogg deleted file mode 100644 index 2545ccb996b9..000000000000 Binary files a/sound/piano/Cn4.ogg and /dev/null differ diff --git a/sound/piano/Cn5.ogg b/sound/piano/Cn5.ogg deleted file mode 100644 index 601fd5340b37..000000000000 Binary files a/sound/piano/Cn5.ogg and /dev/null differ diff --git a/sound/piano/Cn6.ogg b/sound/piano/Cn6.ogg deleted file mode 100644 index f89c2c78f3af..000000000000 Binary files a/sound/piano/Cn6.ogg and /dev/null differ diff --git a/sound/piano/Cn7.ogg b/sound/piano/Cn7.ogg deleted file mode 100644 index 09723616a74c..000000000000 Binary files a/sound/piano/Cn7.ogg and /dev/null differ diff --git a/sound/piano/Cn8.ogg b/sound/piano/Cn8.ogg deleted file mode 100644 index 4c7e2b44c6fc..000000000000 Binary files a/sound/piano/Cn8.ogg and /dev/null differ diff --git a/sound/piano/Cn9.ogg b/sound/piano/Cn9.ogg deleted file mode 100644 index 2b6812d62b24..000000000000 Binary files a/sound/piano/Cn9.ogg and /dev/null differ diff --git a/sound/piano/D#1.ogg b/sound/piano/D#1.ogg deleted file mode 100644 index d772320b150d..000000000000 Binary files a/sound/piano/D#1.ogg and /dev/null differ diff --git a/sound/piano/D#2.ogg b/sound/piano/D#2.ogg deleted file mode 100644 index ae9d529e907c..000000000000 Binary files a/sound/piano/D#2.ogg and /dev/null differ diff --git a/sound/piano/D#3.ogg b/sound/piano/D#3.ogg deleted file mode 100644 index 63fc4fdd5953..000000000000 Binary files a/sound/piano/D#3.ogg and /dev/null differ diff --git a/sound/piano/D#4.ogg b/sound/piano/D#4.ogg deleted file mode 100644 index 39cf1adbca97..000000000000 Binary files a/sound/piano/D#4.ogg and /dev/null differ diff --git a/sound/piano/D#5.ogg b/sound/piano/D#5.ogg deleted file mode 100644 index 071a57544aee..000000000000 Binary files a/sound/piano/D#5.ogg and /dev/null differ diff --git a/sound/piano/D#6.ogg b/sound/piano/D#6.ogg deleted file mode 100644 index 7ee1bd4bfa07..000000000000 Binary files a/sound/piano/D#6.ogg and /dev/null differ diff --git a/sound/piano/D#7.ogg b/sound/piano/D#7.ogg deleted file mode 100644 index 19f72532dde6..000000000000 Binary files a/sound/piano/D#7.ogg and /dev/null differ diff --git a/sound/piano/D#8.ogg b/sound/piano/D#8.ogg deleted file mode 100644 index ee87d875bd40..000000000000 Binary files a/sound/piano/D#8.ogg and /dev/null differ diff --git a/sound/piano/Db1.ogg b/sound/piano/Db1.ogg deleted file mode 100644 index 9166b7335552..000000000000 Binary files a/sound/piano/Db1.ogg and /dev/null differ diff --git a/sound/piano/Db2.ogg b/sound/piano/Db2.ogg deleted file mode 100644 index 623acd0ec54f..000000000000 Binary files a/sound/piano/Db2.ogg and /dev/null differ diff --git a/sound/piano/Db3.ogg b/sound/piano/Db3.ogg deleted file mode 100644 index 5c8943b4da9f..000000000000 Binary files a/sound/piano/Db3.ogg and /dev/null differ diff --git a/sound/piano/Db4.ogg b/sound/piano/Db4.ogg deleted file mode 100644 index 2deb5b8d9173..000000000000 Binary files a/sound/piano/Db4.ogg and /dev/null differ diff --git a/sound/piano/Db5.ogg b/sound/piano/Db5.ogg deleted file mode 100644 index 9c77ee37a7d8..000000000000 Binary files a/sound/piano/Db5.ogg and /dev/null differ diff --git a/sound/piano/Db6.ogg b/sound/piano/Db6.ogg deleted file mode 100644 index 49e1e04dff84..000000000000 Binary files a/sound/piano/Db6.ogg and /dev/null differ diff --git a/sound/piano/Db7.ogg b/sound/piano/Db7.ogg deleted file mode 100644 index b53fd2f27e03..000000000000 Binary files a/sound/piano/Db7.ogg and /dev/null differ diff --git a/sound/piano/Db8.ogg b/sound/piano/Db8.ogg deleted file mode 100644 index af6cfdffad62..000000000000 Binary files a/sound/piano/Db8.ogg and /dev/null differ diff --git a/sound/piano/Dn1.ogg b/sound/piano/Dn1.ogg deleted file mode 100644 index c6dd20cb65b4..000000000000 Binary files a/sound/piano/Dn1.ogg and /dev/null differ diff --git a/sound/piano/Dn2.ogg b/sound/piano/Dn2.ogg deleted file mode 100644 index 0783087dc658..000000000000 Binary files a/sound/piano/Dn2.ogg and /dev/null differ diff --git a/sound/piano/Dn3.ogg b/sound/piano/Dn3.ogg deleted file mode 100644 index bf7bd97ad137..000000000000 Binary files a/sound/piano/Dn3.ogg and /dev/null differ diff --git a/sound/piano/Dn4.ogg b/sound/piano/Dn4.ogg deleted file mode 100644 index e35a6af447e8..000000000000 Binary files a/sound/piano/Dn4.ogg and /dev/null differ diff --git a/sound/piano/Dn5.ogg b/sound/piano/Dn5.ogg deleted file mode 100644 index 7e355266c0f5..000000000000 Binary files a/sound/piano/Dn5.ogg and /dev/null differ diff --git a/sound/piano/Dn6.ogg b/sound/piano/Dn6.ogg deleted file mode 100644 index 5da94c15adf2..000000000000 Binary files a/sound/piano/Dn6.ogg and /dev/null differ diff --git a/sound/piano/Dn7.ogg b/sound/piano/Dn7.ogg deleted file mode 100644 index ac43398ece62..000000000000 Binary files a/sound/piano/Dn7.ogg and /dev/null differ diff --git a/sound/piano/Dn8.ogg b/sound/piano/Dn8.ogg deleted file mode 100644 index 534e51e72013..000000000000 Binary files a/sound/piano/Dn8.ogg and /dev/null differ diff --git a/sound/piano/E#1.ogg b/sound/piano/E#1.ogg deleted file mode 100644 index 46fd3d50c91b..000000000000 Binary files a/sound/piano/E#1.ogg and /dev/null differ diff --git a/sound/piano/E#2.ogg b/sound/piano/E#2.ogg deleted file mode 100644 index eece0448208d..000000000000 Binary files a/sound/piano/E#2.ogg and /dev/null differ diff --git a/sound/piano/E#3.ogg b/sound/piano/E#3.ogg deleted file mode 100644 index d5acee8dfa7f..000000000000 Binary files a/sound/piano/E#3.ogg and /dev/null differ diff --git a/sound/piano/E#4.ogg b/sound/piano/E#4.ogg deleted file mode 100644 index 3e75fccc91b9..000000000000 Binary files a/sound/piano/E#4.ogg and /dev/null differ diff --git a/sound/piano/E#5.ogg b/sound/piano/E#5.ogg deleted file mode 100644 index cc91527d0ea0..000000000000 Binary files a/sound/piano/E#5.ogg and /dev/null differ diff --git a/sound/piano/E#6.ogg b/sound/piano/E#6.ogg deleted file mode 100644 index 476edd68e22a..000000000000 Binary files a/sound/piano/E#6.ogg and /dev/null differ diff --git a/sound/piano/E#7.ogg b/sound/piano/E#7.ogg deleted file mode 100644 index 7c77c6971ee2..000000000000 Binary files a/sound/piano/E#7.ogg and /dev/null differ diff --git a/sound/piano/E#8.ogg b/sound/piano/E#8.ogg deleted file mode 100644 index 61a55478dc95..000000000000 Binary files a/sound/piano/E#8.ogg and /dev/null differ diff --git a/sound/piano/Eb1.ogg b/sound/piano/Eb1.ogg deleted file mode 100644 index 745c448a4f1f..000000000000 Binary files a/sound/piano/Eb1.ogg and /dev/null differ diff --git a/sound/piano/Eb2.ogg b/sound/piano/Eb2.ogg deleted file mode 100644 index 85fc213e8214..000000000000 Binary files a/sound/piano/Eb2.ogg and /dev/null differ diff --git a/sound/piano/Eb3.ogg b/sound/piano/Eb3.ogg deleted file mode 100644 index 66c673310bb6..000000000000 Binary files a/sound/piano/Eb3.ogg and /dev/null differ diff --git a/sound/piano/Eb4.ogg b/sound/piano/Eb4.ogg deleted file mode 100644 index bff7248310b8..000000000000 Binary files a/sound/piano/Eb4.ogg and /dev/null differ diff --git a/sound/piano/Eb5.ogg b/sound/piano/Eb5.ogg deleted file mode 100644 index 8ecb263ee720..000000000000 Binary files a/sound/piano/Eb5.ogg and /dev/null differ diff --git a/sound/piano/Eb6.ogg b/sound/piano/Eb6.ogg deleted file mode 100644 index 29e62c7a16d8..000000000000 Binary files a/sound/piano/Eb6.ogg and /dev/null differ diff --git a/sound/piano/Eb7.ogg b/sound/piano/Eb7.ogg deleted file mode 100644 index 95e70c0b8cba..000000000000 Binary files a/sound/piano/Eb7.ogg and /dev/null differ diff --git a/sound/piano/Eb8.ogg b/sound/piano/Eb8.ogg deleted file mode 100644 index e421154b62e3..000000000000 Binary files a/sound/piano/Eb8.ogg and /dev/null differ diff --git a/sound/piano/En1.ogg b/sound/piano/En1.ogg deleted file mode 100644 index 32819af46ba5..000000000000 Binary files a/sound/piano/En1.ogg and /dev/null differ diff --git a/sound/piano/En2.ogg b/sound/piano/En2.ogg deleted file mode 100644 index f1931e091425..000000000000 Binary files a/sound/piano/En2.ogg and /dev/null differ diff --git a/sound/piano/En3.ogg b/sound/piano/En3.ogg deleted file mode 100644 index fd9d54a6d03f..000000000000 Binary files a/sound/piano/En3.ogg and /dev/null differ diff --git a/sound/piano/En4.ogg b/sound/piano/En4.ogg deleted file mode 100644 index 41dcf10ff57e..000000000000 Binary files a/sound/piano/En4.ogg and /dev/null differ diff --git a/sound/piano/En5.ogg b/sound/piano/En5.ogg deleted file mode 100644 index 571bb0768e56..000000000000 Binary files a/sound/piano/En5.ogg and /dev/null differ diff --git a/sound/piano/En6.ogg b/sound/piano/En6.ogg deleted file mode 100644 index 7dbf990b1864..000000000000 Binary files a/sound/piano/En6.ogg and /dev/null differ diff --git a/sound/piano/En7.ogg b/sound/piano/En7.ogg deleted file mode 100644 index 0793106be1f4..000000000000 Binary files a/sound/piano/En7.ogg and /dev/null differ diff --git a/sound/piano/En8.ogg b/sound/piano/En8.ogg deleted file mode 100644 index 2989d16d1ded..000000000000 Binary files a/sound/piano/En8.ogg and /dev/null differ diff --git a/sound/piano/F#1.ogg b/sound/piano/F#1.ogg deleted file mode 100644 index f646e20a3385..000000000000 Binary files a/sound/piano/F#1.ogg and /dev/null differ diff --git a/sound/piano/F#2.ogg b/sound/piano/F#2.ogg deleted file mode 100644 index 140c0ab01750..000000000000 Binary files a/sound/piano/F#2.ogg and /dev/null differ diff --git a/sound/piano/F#3.ogg b/sound/piano/F#3.ogg deleted file mode 100644 index 03f74deae5e7..000000000000 Binary files a/sound/piano/F#3.ogg and /dev/null differ diff --git a/sound/piano/F#4.ogg b/sound/piano/F#4.ogg deleted file mode 100644 index 8b6be4a8e83e..000000000000 Binary files a/sound/piano/F#4.ogg and /dev/null differ diff --git a/sound/piano/F#5.ogg b/sound/piano/F#5.ogg deleted file mode 100644 index 2ada429e53c6..000000000000 Binary files a/sound/piano/F#5.ogg and /dev/null differ diff --git a/sound/piano/F#6.ogg b/sound/piano/F#6.ogg deleted file mode 100644 index a3c41995a142..000000000000 Binary files a/sound/piano/F#6.ogg and /dev/null differ diff --git a/sound/piano/F#7.ogg b/sound/piano/F#7.ogg deleted file mode 100644 index 8c87e9c8b7bd..000000000000 Binary files a/sound/piano/F#7.ogg and /dev/null differ diff --git a/sound/piano/F#8.ogg b/sound/piano/F#8.ogg deleted file mode 100644 index 7a20d3cd3d4a..000000000000 Binary files a/sound/piano/F#8.ogg and /dev/null differ diff --git a/sound/piano/Fb1.ogg b/sound/piano/Fb1.ogg deleted file mode 100644 index ba3f5bde8ca0..000000000000 Binary files a/sound/piano/Fb1.ogg and /dev/null differ diff --git a/sound/piano/Fb2.ogg b/sound/piano/Fb2.ogg deleted file mode 100644 index d601261c9218..000000000000 Binary files a/sound/piano/Fb2.ogg and /dev/null differ diff --git a/sound/piano/Fb3.ogg b/sound/piano/Fb3.ogg deleted file mode 100644 index 0c67f09c6e71..000000000000 Binary files a/sound/piano/Fb3.ogg and /dev/null differ diff --git a/sound/piano/Fb4.ogg b/sound/piano/Fb4.ogg deleted file mode 100644 index 6b23e1dca8bc..000000000000 Binary files a/sound/piano/Fb4.ogg and /dev/null differ diff --git a/sound/piano/Fb5.ogg b/sound/piano/Fb5.ogg deleted file mode 100644 index 992fbef3c832..000000000000 Binary files a/sound/piano/Fb5.ogg and /dev/null differ diff --git a/sound/piano/Fb6.ogg b/sound/piano/Fb6.ogg deleted file mode 100644 index 622859f44d54..000000000000 Binary files a/sound/piano/Fb6.ogg and /dev/null differ diff --git a/sound/piano/Fb7.ogg b/sound/piano/Fb7.ogg deleted file mode 100644 index bb44482880ca..000000000000 Binary files a/sound/piano/Fb7.ogg and /dev/null differ diff --git a/sound/piano/Fb8.ogg b/sound/piano/Fb8.ogg deleted file mode 100644 index 940c92efafa5..000000000000 Binary files a/sound/piano/Fb8.ogg and /dev/null differ diff --git a/sound/piano/Fn1.ogg b/sound/piano/Fn1.ogg deleted file mode 100644 index 52a717014860..000000000000 Binary files a/sound/piano/Fn1.ogg and /dev/null differ diff --git a/sound/piano/Fn2.ogg b/sound/piano/Fn2.ogg deleted file mode 100644 index 28770a787229..000000000000 Binary files a/sound/piano/Fn2.ogg and /dev/null differ diff --git a/sound/piano/Fn3.ogg b/sound/piano/Fn3.ogg deleted file mode 100644 index 5db839ab9cbb..000000000000 Binary files a/sound/piano/Fn3.ogg and /dev/null differ diff --git a/sound/piano/Fn4.ogg b/sound/piano/Fn4.ogg deleted file mode 100644 index 5a4437102ae4..000000000000 Binary files a/sound/piano/Fn4.ogg and /dev/null differ diff --git a/sound/piano/Fn5.ogg b/sound/piano/Fn5.ogg deleted file mode 100644 index fb748454480c..000000000000 Binary files a/sound/piano/Fn5.ogg and /dev/null differ diff --git a/sound/piano/Fn6.ogg b/sound/piano/Fn6.ogg deleted file mode 100644 index 3e23b71b1ef5..000000000000 Binary files a/sound/piano/Fn6.ogg and /dev/null differ diff --git a/sound/piano/Fn7.ogg b/sound/piano/Fn7.ogg deleted file mode 100644 index d897ab7c3c8f..000000000000 Binary files a/sound/piano/Fn7.ogg and /dev/null differ diff --git a/sound/piano/Fn8.ogg b/sound/piano/Fn8.ogg deleted file mode 100644 index 3ebf0e9bbc49..000000000000 Binary files a/sound/piano/Fn8.ogg and /dev/null differ diff --git a/sound/piano/G#1.ogg b/sound/piano/G#1.ogg deleted file mode 100644 index 4b559e5583ac..000000000000 Binary files a/sound/piano/G#1.ogg and /dev/null differ diff --git a/sound/piano/G#2.ogg b/sound/piano/G#2.ogg deleted file mode 100644 index d70745db3e76..000000000000 Binary files a/sound/piano/G#2.ogg and /dev/null differ diff --git a/sound/piano/G#3.ogg b/sound/piano/G#3.ogg deleted file mode 100644 index cb69b23a17af..000000000000 Binary files a/sound/piano/G#3.ogg and /dev/null differ diff --git a/sound/piano/G#4.ogg b/sound/piano/G#4.ogg deleted file mode 100644 index fc0965821fc5..000000000000 Binary files a/sound/piano/G#4.ogg and /dev/null differ diff --git a/sound/piano/G#5.ogg b/sound/piano/G#5.ogg deleted file mode 100644 index 845c02160cc9..000000000000 Binary files a/sound/piano/G#5.ogg and /dev/null differ diff --git a/sound/piano/G#6.ogg b/sound/piano/G#6.ogg deleted file mode 100644 index 934f281311c1..000000000000 Binary files a/sound/piano/G#6.ogg and /dev/null differ diff --git a/sound/piano/G#7.ogg b/sound/piano/G#7.ogg deleted file mode 100644 index 0366b7a74b33..000000000000 Binary files a/sound/piano/G#7.ogg and /dev/null differ diff --git a/sound/piano/G#8.ogg b/sound/piano/G#8.ogg deleted file mode 100644 index 5c7f1b3fa57c..000000000000 Binary files a/sound/piano/G#8.ogg and /dev/null differ diff --git a/sound/piano/Gb1.ogg b/sound/piano/Gb1.ogg deleted file mode 100644 index 229e2e5d477e..000000000000 Binary files a/sound/piano/Gb1.ogg and /dev/null differ diff --git a/sound/piano/Gb2.ogg b/sound/piano/Gb2.ogg deleted file mode 100644 index c22963c95b67..000000000000 Binary files a/sound/piano/Gb2.ogg and /dev/null differ diff --git a/sound/piano/Gb3.ogg b/sound/piano/Gb3.ogg deleted file mode 100644 index de273ab8d200..000000000000 Binary files a/sound/piano/Gb3.ogg and /dev/null differ diff --git a/sound/piano/Gb4.ogg b/sound/piano/Gb4.ogg deleted file mode 100644 index 383d7a9212bf..000000000000 Binary files a/sound/piano/Gb4.ogg and /dev/null differ diff --git a/sound/piano/Gb5.ogg b/sound/piano/Gb5.ogg deleted file mode 100644 index e84ca674898a..000000000000 Binary files a/sound/piano/Gb5.ogg and /dev/null differ diff --git a/sound/piano/Gb6.ogg b/sound/piano/Gb6.ogg deleted file mode 100644 index d6171c668f75..000000000000 Binary files a/sound/piano/Gb6.ogg and /dev/null differ diff --git a/sound/piano/Gb7.ogg b/sound/piano/Gb7.ogg deleted file mode 100644 index c47bff993c11..000000000000 Binary files a/sound/piano/Gb7.ogg and /dev/null differ diff --git a/sound/piano/Gb8.ogg b/sound/piano/Gb8.ogg deleted file mode 100644 index bdd5e3396642..000000000000 Binary files a/sound/piano/Gb8.ogg and /dev/null differ diff --git a/sound/piano/Gn1.ogg b/sound/piano/Gn1.ogg deleted file mode 100644 index b78d3f44faa5..000000000000 Binary files a/sound/piano/Gn1.ogg and /dev/null differ diff --git a/sound/piano/Gn2.ogg b/sound/piano/Gn2.ogg deleted file mode 100644 index 4cc8e85d33fd..000000000000 Binary files a/sound/piano/Gn2.ogg and /dev/null differ diff --git a/sound/piano/Gn3.ogg b/sound/piano/Gn3.ogg deleted file mode 100644 index 65a0a83b7e9c..000000000000 Binary files a/sound/piano/Gn3.ogg and /dev/null differ diff --git a/sound/piano/Gn4.ogg b/sound/piano/Gn4.ogg deleted file mode 100644 index ac88f21a5168..000000000000 Binary files a/sound/piano/Gn4.ogg and /dev/null differ diff --git a/sound/piano/Gn5.ogg b/sound/piano/Gn5.ogg deleted file mode 100644 index a2cd6b032cf9..000000000000 Binary files a/sound/piano/Gn5.ogg and /dev/null differ diff --git a/sound/piano/Gn6.ogg b/sound/piano/Gn6.ogg deleted file mode 100644 index 6e22bdeae80c..000000000000 Binary files a/sound/piano/Gn6.ogg and /dev/null differ diff --git a/sound/piano/Gn7.ogg b/sound/piano/Gn7.ogg deleted file mode 100644 index 3c2af2907da7..000000000000 Binary files a/sound/piano/Gn7.ogg and /dev/null differ diff --git a/sound/piano/Gn8.ogg b/sound/piano/Gn8.ogg deleted file mode 100644 index f27b35f10abd..000000000000 Binary files a/sound/piano/Gn8.ogg and /dev/null differ diff --git a/sound/vehicles/Dropships/single_alarm_brr_dropship_1.ogg b/sound/vehicles/Dropships/single_alarm_brr_dropship_1.ogg new file mode 100644 index 000000000000..9fe0b4c11da1 Binary files /dev/null and b/sound/vehicles/Dropships/single_alarm_brr_dropship_1.ogg differ diff --git a/sound/violin/A#1.mid b/sound/violin/A#1.mid deleted file mode 100644 index 693b73f5420f..000000000000 Binary files a/sound/violin/A#1.mid and /dev/null differ diff --git a/sound/violin/A#2.mid b/sound/violin/A#2.mid deleted file mode 100644 index 40da5f3da152..000000000000 Binary files a/sound/violin/A#2.mid and /dev/null differ diff --git a/sound/violin/A#3.mid b/sound/violin/A#3.mid deleted file mode 100644 index 5bab6ccd6362..000000000000 Binary files a/sound/violin/A#3.mid and /dev/null differ diff --git a/sound/violin/A#4.mid b/sound/violin/A#4.mid deleted file mode 100644 index dce830448ef8..000000000000 Binary files a/sound/violin/A#4.mid and /dev/null differ diff --git a/sound/violin/A#5.mid b/sound/violin/A#5.mid deleted file mode 100644 index fda796e27b90..000000000000 Binary files a/sound/violin/A#5.mid and /dev/null differ diff --git a/sound/violin/A#6.mid b/sound/violin/A#6.mid deleted file mode 100644 index 9e5da684f43c..000000000000 Binary files a/sound/violin/A#6.mid and /dev/null differ diff --git a/sound/violin/A#7.mid b/sound/violin/A#7.mid deleted file mode 100644 index 215c56cbe7ee..000000000000 Binary files a/sound/violin/A#7.mid and /dev/null differ diff --git a/sound/violin/A#8.mid b/sound/violin/A#8.mid deleted file mode 100644 index 4b55c34691f7..000000000000 Binary files a/sound/violin/A#8.mid and /dev/null differ diff --git a/sound/violin/Ab1.mid b/sound/violin/Ab1.mid deleted file mode 100644 index b8253364b4e8..000000000000 Binary files a/sound/violin/Ab1.mid and /dev/null differ diff --git a/sound/violin/Ab2.mid b/sound/violin/Ab2.mid deleted file mode 100644 index 4cd7f9b55a7c..000000000000 Binary files a/sound/violin/Ab2.mid and /dev/null differ diff --git a/sound/violin/Ab3.mid b/sound/violin/Ab3.mid deleted file mode 100644 index e827cfc635ee..000000000000 Binary files a/sound/violin/Ab3.mid and /dev/null differ diff --git a/sound/violin/Ab4.mid b/sound/violin/Ab4.mid deleted file mode 100644 index 57e1f76c9761..000000000000 Binary files a/sound/violin/Ab4.mid and /dev/null differ diff --git a/sound/violin/Ab5.mid b/sound/violin/Ab5.mid deleted file mode 100644 index 59e95a6d9974..000000000000 Binary files a/sound/violin/Ab5.mid and /dev/null differ diff --git a/sound/violin/Ab6.mid b/sound/violin/Ab6.mid deleted file mode 100644 index 9bd3436287b9..000000000000 Binary files a/sound/violin/Ab6.mid and /dev/null differ diff --git a/sound/violin/Ab7.mid b/sound/violin/Ab7.mid deleted file mode 100644 index 3c90af807e27..000000000000 Binary files a/sound/violin/Ab7.mid and /dev/null differ diff --git a/sound/violin/Ab8.mid b/sound/violin/Ab8.mid deleted file mode 100644 index 873d771f2aea..000000000000 Binary files a/sound/violin/Ab8.mid and /dev/null differ diff --git a/sound/violin/An1.mid b/sound/violin/An1.mid deleted file mode 100644 index d7f8a001d93f..000000000000 Binary files a/sound/violin/An1.mid and /dev/null differ diff --git a/sound/violin/An2.mid b/sound/violin/An2.mid deleted file mode 100644 index 2f01800a0754..000000000000 Binary files a/sound/violin/An2.mid and /dev/null differ diff --git a/sound/violin/An3.mid b/sound/violin/An3.mid deleted file mode 100644 index c8ed3cdfa6cb..000000000000 Binary files a/sound/violin/An3.mid and /dev/null differ diff --git a/sound/violin/An4.mid b/sound/violin/An4.mid deleted file mode 100644 index e7984ca7e62b..000000000000 Binary files a/sound/violin/An4.mid and /dev/null differ diff --git a/sound/violin/An5.mid b/sound/violin/An5.mid deleted file mode 100644 index e1fd228f7a9e..000000000000 Binary files a/sound/violin/An5.mid and /dev/null differ diff --git a/sound/violin/An6.mid b/sound/violin/An6.mid deleted file mode 100644 index 1c8df6c98e5c..000000000000 Binary files a/sound/violin/An6.mid and /dev/null differ diff --git a/sound/violin/An7.mid b/sound/violin/An7.mid deleted file mode 100644 index 2784428daf9e..000000000000 Binary files a/sound/violin/An7.mid and /dev/null differ diff --git a/sound/violin/An8.mid b/sound/violin/An8.mid deleted file mode 100644 index 2db2ab70a7d9..000000000000 Binary files a/sound/violin/An8.mid and /dev/null differ diff --git a/sound/violin/B#1.mid b/sound/violin/B#1.mid deleted file mode 100644 index d83b176edd8b..000000000000 Binary files a/sound/violin/B#1.mid and /dev/null differ diff --git a/sound/violin/B#2.mid b/sound/violin/B#2.mid deleted file mode 100644 index cddff75625f0..000000000000 Binary files a/sound/violin/B#2.mid and /dev/null differ diff --git a/sound/violin/B#3.mid b/sound/violin/B#3.mid deleted file mode 100644 index 8bd7ec2fa9d6..000000000000 Binary files a/sound/violin/B#3.mid and /dev/null differ diff --git a/sound/violin/B#4.mid b/sound/violin/B#4.mid deleted file mode 100644 index 4c7ab84b57be..000000000000 Binary files a/sound/violin/B#4.mid and /dev/null differ diff --git a/sound/violin/B#5.mid b/sound/violin/B#5.mid deleted file mode 100644 index d7f990b2d6c3..000000000000 Binary files a/sound/violin/B#5.mid and /dev/null differ diff --git a/sound/violin/B#6.mid b/sound/violin/B#6.mid deleted file mode 100644 index e124ccb8e2b0..000000000000 Binary files a/sound/violin/B#6.mid and /dev/null differ diff --git a/sound/violin/B#7.mid b/sound/violin/B#7.mid deleted file mode 100644 index 231c9e428db5..000000000000 Binary files a/sound/violin/B#7.mid and /dev/null differ diff --git a/sound/violin/B#8.mid b/sound/violin/B#8.mid deleted file mode 100644 index 981943c08f0c..000000000000 Binary files a/sound/violin/B#8.mid and /dev/null differ diff --git a/sound/violin/Bb1.mid b/sound/violin/Bb1.mid deleted file mode 100644 index 693b73f5420f..000000000000 Binary files a/sound/violin/Bb1.mid and /dev/null differ diff --git a/sound/violin/Bb2.mid b/sound/violin/Bb2.mid deleted file mode 100644 index 40da5f3da152..000000000000 Binary files a/sound/violin/Bb2.mid and /dev/null differ diff --git a/sound/violin/Bb3.mid b/sound/violin/Bb3.mid deleted file mode 100644 index 5bab6ccd6362..000000000000 Binary files a/sound/violin/Bb3.mid and /dev/null differ diff --git a/sound/violin/Bb4.mid b/sound/violin/Bb4.mid deleted file mode 100644 index dce830448ef8..000000000000 Binary files a/sound/violin/Bb4.mid and /dev/null differ diff --git a/sound/violin/Bb5.mid b/sound/violin/Bb5.mid deleted file mode 100644 index fda796e27b90..000000000000 Binary files a/sound/violin/Bb5.mid and /dev/null differ diff --git a/sound/violin/Bb6.mid b/sound/violin/Bb6.mid deleted file mode 100644 index 9e5da684f43c..000000000000 Binary files a/sound/violin/Bb6.mid and /dev/null differ diff --git a/sound/violin/Bb7.mid b/sound/violin/Bb7.mid deleted file mode 100644 index 215c56cbe7ee..000000000000 Binary files a/sound/violin/Bb7.mid and /dev/null differ diff --git a/sound/violin/Bb8.mid b/sound/violin/Bb8.mid deleted file mode 100644 index 4b55c34691f7..000000000000 Binary files a/sound/violin/Bb8.mid and /dev/null differ diff --git a/sound/violin/Bn1.mid b/sound/violin/Bn1.mid deleted file mode 100644 index 27968b5f9e7d..000000000000 Binary files a/sound/violin/Bn1.mid and /dev/null differ diff --git a/sound/violin/Bn2.mid b/sound/violin/Bn2.mid deleted file mode 100644 index 54c9b99d03fe..000000000000 Binary files a/sound/violin/Bn2.mid and /dev/null differ diff --git a/sound/violin/Bn3.mid b/sound/violin/Bn3.mid deleted file mode 100644 index f73476fb7bb1..000000000000 Binary files a/sound/violin/Bn3.mid and /dev/null differ diff --git a/sound/violin/Bn4.mid b/sound/violin/Bn4.mid deleted file mode 100644 index 2aa30708a6cb..000000000000 Binary files a/sound/violin/Bn4.mid and /dev/null differ diff --git a/sound/violin/Bn5.mid b/sound/violin/Bn5.mid deleted file mode 100644 index 0ebe636b7145..000000000000 Binary files a/sound/violin/Bn5.mid and /dev/null differ diff --git a/sound/violin/Bn6.mid b/sound/violin/Bn6.mid deleted file mode 100644 index 3b8e1c217f7b..000000000000 Binary files a/sound/violin/Bn6.mid and /dev/null differ diff --git a/sound/violin/Bn7.mid b/sound/violin/Bn7.mid deleted file mode 100644 index afcb1982a13f..000000000000 Binary files a/sound/violin/Bn7.mid and /dev/null differ diff --git a/sound/violin/Bn8.mid b/sound/violin/Bn8.mid deleted file mode 100644 index 3afd469256c1..000000000000 Binary files a/sound/violin/Bn8.mid and /dev/null differ diff --git a/sound/violin/C#1.mid b/sound/violin/C#1.mid deleted file mode 100644 index 88dba851452e..000000000000 Binary files a/sound/violin/C#1.mid and /dev/null differ diff --git a/sound/violin/C#2.mid b/sound/violin/C#2.mid deleted file mode 100644 index b510926b45fa..000000000000 Binary files a/sound/violin/C#2.mid and /dev/null differ diff --git a/sound/violin/C#3.mid b/sound/violin/C#3.mid deleted file mode 100644 index 9954bbe478a2..000000000000 Binary files a/sound/violin/C#3.mid and /dev/null differ diff --git a/sound/violin/C#4.mid b/sound/violin/C#4.mid deleted file mode 100644 index 2c5ff74db0aa..000000000000 Binary files a/sound/violin/C#4.mid and /dev/null differ diff --git a/sound/violin/C#5.mid b/sound/violin/C#5.mid deleted file mode 100644 index e5850a3fd041..000000000000 Binary files a/sound/violin/C#5.mid and /dev/null differ diff --git a/sound/violin/C#6.mid b/sound/violin/C#6.mid deleted file mode 100644 index 217c0ad014c5..000000000000 Binary files a/sound/violin/C#6.mid and /dev/null differ diff --git a/sound/violin/C#7.mid b/sound/violin/C#7.mid deleted file mode 100644 index ec32bdbf9040..000000000000 Binary files a/sound/violin/C#7.mid and /dev/null differ diff --git a/sound/violin/C#8.mid b/sound/violin/C#8.mid deleted file mode 100644 index 555bce3db0d8..000000000000 Binary files a/sound/violin/C#8.mid and /dev/null differ diff --git a/sound/violin/Cb1.mid b/sound/violin/Cb1.mid deleted file mode 100644 index a00f09dfb088..000000000000 Binary files a/sound/violin/Cb1.mid and /dev/null differ diff --git a/sound/violin/Cb2.mid b/sound/violin/Cb2.mid deleted file mode 100644 index 4085711bf127..000000000000 Binary files a/sound/violin/Cb2.mid and /dev/null differ diff --git a/sound/violin/Cb3.mid b/sound/violin/Cb3.mid deleted file mode 100644 index f647983ef05c..000000000000 Binary files a/sound/violin/Cb3.mid and /dev/null differ diff --git a/sound/violin/Cb4.mid b/sound/violin/Cb4.mid deleted file mode 100644 index 24f22f09eecc..000000000000 Binary files a/sound/violin/Cb4.mid and /dev/null differ diff --git a/sound/violin/Cb5.mid b/sound/violin/Cb5.mid deleted file mode 100644 index 057e97c5e0d0..000000000000 Binary files a/sound/violin/Cb5.mid and /dev/null differ diff --git a/sound/violin/Cb6.mid b/sound/violin/Cb6.mid deleted file mode 100644 index 887e65fc13d0..000000000000 Binary files a/sound/violin/Cb6.mid and /dev/null differ diff --git a/sound/violin/Cb7.mid b/sound/violin/Cb7.mid deleted file mode 100644 index 99668bc192c2..000000000000 Binary files a/sound/violin/Cb7.mid and /dev/null differ diff --git a/sound/violin/Cb8.mid b/sound/violin/Cb8.mid deleted file mode 100644 index 53ea61d1b250..000000000000 Binary files a/sound/violin/Cb8.mid and /dev/null differ diff --git a/sound/violin/Cb9.mid b/sound/violin/Cb9.mid deleted file mode 100644 index 1e8c3afadf13..000000000000 Binary files a/sound/violin/Cb9.mid and /dev/null differ diff --git a/sound/violin/Cn1.mid b/sound/violin/Cn1.mid deleted file mode 100644 index 857120f31f4e..000000000000 Binary files a/sound/violin/Cn1.mid and /dev/null differ diff --git a/sound/violin/Cn2.mid b/sound/violin/Cn2.mid deleted file mode 100644 index 3ccd6670e873..000000000000 Binary files a/sound/violin/Cn2.mid and /dev/null differ diff --git a/sound/violin/Cn3.mid b/sound/violin/Cn3.mid deleted file mode 100644 index 1851e4f8d27d..000000000000 Binary files a/sound/violin/Cn3.mid and /dev/null differ diff --git a/sound/violin/Cn4.mid b/sound/violin/Cn4.mid deleted file mode 100644 index 65e8b0efe4e5..000000000000 Binary files a/sound/violin/Cn4.mid and /dev/null differ diff --git a/sound/violin/Cn5.mid b/sound/violin/Cn5.mid deleted file mode 100644 index 544f921e43b9..000000000000 Binary files a/sound/violin/Cn5.mid and /dev/null differ diff --git a/sound/violin/Cn6.mid b/sound/violin/Cn6.mid deleted file mode 100644 index 7c78dab2f076..000000000000 Binary files a/sound/violin/Cn6.mid and /dev/null differ diff --git a/sound/violin/Cn7.mid b/sound/violin/Cn7.mid deleted file mode 100644 index 3abe4cde0863..000000000000 Binary files a/sound/violin/Cn7.mid and /dev/null differ diff --git a/sound/violin/Cn8.mid b/sound/violin/Cn8.mid deleted file mode 100644 index 06f14081b3b9..000000000000 Binary files a/sound/violin/Cn8.mid and /dev/null differ diff --git a/sound/violin/Cn9.mid b/sound/violin/Cn9.mid deleted file mode 100644 index 62f4eef045a8..000000000000 Binary files a/sound/violin/Cn9.mid and /dev/null differ diff --git a/sound/violin/D#1.mid b/sound/violin/D#1.mid deleted file mode 100644 index 829e6fcf185a..000000000000 Binary files a/sound/violin/D#1.mid and /dev/null differ diff --git a/sound/violin/D#2.mid b/sound/violin/D#2.mid deleted file mode 100644 index 66029b340cc9..000000000000 Binary files a/sound/violin/D#2.mid and /dev/null differ diff --git a/sound/violin/D#3.mid b/sound/violin/D#3.mid deleted file mode 100644 index c982375941e6..000000000000 Binary files a/sound/violin/D#3.mid and /dev/null differ diff --git a/sound/violin/D#4.mid b/sound/violin/D#4.mid deleted file mode 100644 index 016ed4f1edf9..000000000000 Binary files a/sound/violin/D#4.mid and /dev/null differ diff --git a/sound/violin/D#5.mid b/sound/violin/D#5.mid deleted file mode 100644 index ddb511795df2..000000000000 Binary files a/sound/violin/D#5.mid and /dev/null differ diff --git a/sound/violin/D#6.mid b/sound/violin/D#6.mid deleted file mode 100644 index b7242b9ab994..000000000000 Binary files a/sound/violin/D#6.mid and /dev/null differ diff --git a/sound/violin/D#7.mid b/sound/violin/D#7.mid deleted file mode 100644 index 773538340a56..000000000000 Binary files a/sound/violin/D#7.mid and /dev/null differ diff --git a/sound/violin/D#8.mid b/sound/violin/D#8.mid deleted file mode 100644 index 4ad074e173b7..000000000000 Binary files a/sound/violin/D#8.mid and /dev/null differ diff --git a/sound/violin/Db1.mid b/sound/violin/Db1.mid deleted file mode 100644 index 88dba851452e..000000000000 Binary files a/sound/violin/Db1.mid and /dev/null differ diff --git a/sound/violin/Db2.mid b/sound/violin/Db2.mid deleted file mode 100644 index b510926b45fa..000000000000 Binary files a/sound/violin/Db2.mid and /dev/null differ diff --git a/sound/violin/Db3.mid b/sound/violin/Db3.mid deleted file mode 100644 index 9954bbe478a2..000000000000 Binary files a/sound/violin/Db3.mid and /dev/null differ diff --git a/sound/violin/Db4.mid b/sound/violin/Db4.mid deleted file mode 100644 index 2c5ff74db0aa..000000000000 Binary files a/sound/violin/Db4.mid and /dev/null differ diff --git a/sound/violin/Db5.mid b/sound/violin/Db5.mid deleted file mode 100644 index e5850a3fd041..000000000000 Binary files a/sound/violin/Db5.mid and /dev/null differ diff --git a/sound/violin/Db6.mid b/sound/violin/Db6.mid deleted file mode 100644 index 217c0ad014c5..000000000000 Binary files a/sound/violin/Db6.mid and /dev/null differ diff --git a/sound/violin/Db7.mid b/sound/violin/Db7.mid deleted file mode 100644 index ec32bdbf9040..000000000000 Binary files a/sound/violin/Db7.mid and /dev/null differ diff --git a/sound/violin/Db8.mid b/sound/violin/Db8.mid deleted file mode 100644 index 555bce3db0d8..000000000000 Binary files a/sound/violin/Db8.mid and /dev/null differ diff --git a/sound/violin/Dn1.mid b/sound/violin/Dn1.mid deleted file mode 100644 index 92e4e0d95816..000000000000 Binary files a/sound/violin/Dn1.mid and /dev/null differ diff --git a/sound/violin/Dn2.mid b/sound/violin/Dn2.mid deleted file mode 100644 index 34eb9d1db1ba..000000000000 Binary files a/sound/violin/Dn2.mid and /dev/null differ diff --git a/sound/violin/Dn3.mid b/sound/violin/Dn3.mid deleted file mode 100644 index fbd56085aafa..000000000000 Binary files a/sound/violin/Dn3.mid and /dev/null differ diff --git a/sound/violin/Dn4.mid b/sound/violin/Dn4.mid deleted file mode 100644 index e13c74482921..000000000000 Binary files a/sound/violin/Dn4.mid and /dev/null differ diff --git a/sound/violin/Dn5.mid b/sound/violin/Dn5.mid deleted file mode 100644 index 8fd41e5c6fe0..000000000000 Binary files a/sound/violin/Dn5.mid and /dev/null differ diff --git a/sound/violin/Dn6.mid b/sound/violin/Dn6.mid deleted file mode 100644 index d47329e8f9ed..000000000000 Binary files a/sound/violin/Dn6.mid and /dev/null differ diff --git a/sound/violin/Dn7.mid b/sound/violin/Dn7.mid deleted file mode 100644 index b24966038762..000000000000 Binary files a/sound/violin/Dn7.mid and /dev/null differ diff --git a/sound/violin/Dn8.mid b/sound/violin/Dn8.mid deleted file mode 100644 index 56667a1a86d0..000000000000 Binary files a/sound/violin/Dn8.mid and /dev/null differ diff --git a/sound/violin/E#1.mid b/sound/violin/E#1.mid deleted file mode 100644 index 3f130ee126c1..000000000000 Binary files a/sound/violin/E#1.mid and /dev/null differ diff --git a/sound/violin/E#2.mid b/sound/violin/E#2.mid deleted file mode 100644 index f67c2d0a2673..000000000000 Binary files a/sound/violin/E#2.mid and /dev/null differ diff --git a/sound/violin/E#3.mid b/sound/violin/E#3.mid deleted file mode 100644 index bb393382d6c8..000000000000 Binary files a/sound/violin/E#3.mid and /dev/null differ diff --git a/sound/violin/E#4.mid b/sound/violin/E#4.mid deleted file mode 100644 index a96520c595d3..000000000000 Binary files a/sound/violin/E#4.mid and /dev/null differ diff --git a/sound/violin/E#5.mid b/sound/violin/E#5.mid deleted file mode 100644 index d1378af1972d..000000000000 Binary files a/sound/violin/E#5.mid and /dev/null differ diff --git a/sound/violin/E#6.mid b/sound/violin/E#6.mid deleted file mode 100644 index 7abe40bd8242..000000000000 Binary files a/sound/violin/E#6.mid and /dev/null differ diff --git a/sound/violin/E#7.mid b/sound/violin/E#7.mid deleted file mode 100644 index df278c20d6b6..000000000000 Binary files a/sound/violin/E#7.mid and /dev/null differ diff --git a/sound/violin/E#8.mid b/sound/violin/E#8.mid deleted file mode 100644 index 35254cd5b25b..000000000000 Binary files a/sound/violin/E#8.mid and /dev/null differ diff --git a/sound/violin/Eb1.mid b/sound/violin/Eb1.mid deleted file mode 100644 index 829e6fcf185a..000000000000 Binary files a/sound/violin/Eb1.mid and /dev/null differ diff --git a/sound/violin/Eb2.mid b/sound/violin/Eb2.mid deleted file mode 100644 index 66029b340cc9..000000000000 Binary files a/sound/violin/Eb2.mid and /dev/null differ diff --git a/sound/violin/Eb3.mid b/sound/violin/Eb3.mid deleted file mode 100644 index c982375941e6..000000000000 Binary files a/sound/violin/Eb3.mid and /dev/null differ diff --git a/sound/violin/Eb4.mid b/sound/violin/Eb4.mid deleted file mode 100644 index 016ed4f1edf9..000000000000 Binary files a/sound/violin/Eb4.mid and /dev/null differ diff --git a/sound/violin/Eb5.mid b/sound/violin/Eb5.mid deleted file mode 100644 index ddb511795df2..000000000000 Binary files a/sound/violin/Eb5.mid and /dev/null differ diff --git a/sound/violin/Eb6.mid b/sound/violin/Eb6.mid deleted file mode 100644 index b7242b9ab994..000000000000 Binary files a/sound/violin/Eb6.mid and /dev/null differ diff --git a/sound/violin/Eb7.mid b/sound/violin/Eb7.mid deleted file mode 100644 index 773538340a56..000000000000 Binary files a/sound/violin/Eb7.mid and /dev/null differ diff --git a/sound/violin/Eb8.mid b/sound/violin/Eb8.mid deleted file mode 100644 index 4ad074e173b7..000000000000 Binary files a/sound/violin/Eb8.mid and /dev/null differ diff --git a/sound/violin/En1.mid b/sound/violin/En1.mid deleted file mode 100644 index 79ab68df9df7..000000000000 Binary files a/sound/violin/En1.mid and /dev/null differ diff --git a/sound/violin/En2.mid b/sound/violin/En2.mid deleted file mode 100644 index cd61c8d0de5b..000000000000 Binary files a/sound/violin/En2.mid and /dev/null differ diff --git a/sound/violin/En3.mid b/sound/violin/En3.mid deleted file mode 100644 index da5b703d545b..000000000000 Binary files a/sound/violin/En3.mid and /dev/null differ diff --git a/sound/violin/En4.mid b/sound/violin/En4.mid deleted file mode 100644 index f7d3af024ff2..000000000000 Binary files a/sound/violin/En4.mid and /dev/null differ diff --git a/sound/violin/En5.mid b/sound/violin/En5.mid deleted file mode 100644 index d3d353943f9d..000000000000 Binary files a/sound/violin/En5.mid and /dev/null differ diff --git a/sound/violin/En6.mid b/sound/violin/En6.mid deleted file mode 100644 index 73eb5b0697db..000000000000 Binary files a/sound/violin/En6.mid and /dev/null differ diff --git a/sound/violin/En7.mid b/sound/violin/En7.mid deleted file mode 100644 index 79a9462c844e..000000000000 Binary files a/sound/violin/En7.mid and /dev/null differ diff --git a/sound/violin/En8.mid b/sound/violin/En8.mid deleted file mode 100644 index 88947fc7318e..000000000000 Binary files a/sound/violin/En8.mid and /dev/null differ diff --git a/sound/violin/F#1.mid b/sound/violin/F#1.mid deleted file mode 100644 index d18668e89112..000000000000 Binary files a/sound/violin/F#1.mid and /dev/null differ diff --git a/sound/violin/F#2.mid b/sound/violin/F#2.mid deleted file mode 100644 index 302f0c6fdc15..000000000000 Binary files a/sound/violin/F#2.mid and /dev/null differ diff --git a/sound/violin/F#3.mid b/sound/violin/F#3.mid deleted file mode 100644 index 1f592fc90399..000000000000 Binary files a/sound/violin/F#3.mid and /dev/null differ diff --git a/sound/violin/F#4.mid b/sound/violin/F#4.mid deleted file mode 100644 index 45854126f988..000000000000 Binary files a/sound/violin/F#4.mid and /dev/null differ diff --git a/sound/violin/F#5.mid b/sound/violin/F#5.mid deleted file mode 100644 index fb1e1da339a9..000000000000 Binary files a/sound/violin/F#5.mid and /dev/null differ diff --git a/sound/violin/F#6.mid b/sound/violin/F#6.mid deleted file mode 100644 index bfa896bb7844..000000000000 Binary files a/sound/violin/F#6.mid and /dev/null differ diff --git a/sound/violin/F#7.mid b/sound/violin/F#7.mid deleted file mode 100644 index a27763c1d47d..000000000000 Binary files a/sound/violin/F#7.mid and /dev/null differ diff --git a/sound/violin/F#8.mid b/sound/violin/F#8.mid deleted file mode 100644 index aaab80a72762..000000000000 Binary files a/sound/violin/F#8.mid and /dev/null differ diff --git a/sound/violin/Fb1.mid b/sound/violin/Fb1.mid deleted file mode 100644 index c89b3f36b439..000000000000 Binary files a/sound/violin/Fb1.mid and /dev/null differ diff --git a/sound/violin/Fb2.mid b/sound/violin/Fb2.mid deleted file mode 100644 index 3db6af1aa459..000000000000 Binary files a/sound/violin/Fb2.mid and /dev/null differ diff --git a/sound/violin/Fb3.mid b/sound/violin/Fb3.mid deleted file mode 100644 index 5f601f3ac424..000000000000 Binary files a/sound/violin/Fb3.mid and /dev/null differ diff --git a/sound/violin/Fb4.mid b/sound/violin/Fb4.mid deleted file mode 100644 index f1abc8109d1e..000000000000 Binary files a/sound/violin/Fb4.mid and /dev/null differ diff --git a/sound/violin/Fb5.mid b/sound/violin/Fb5.mid deleted file mode 100644 index 2ec1b2e51283..000000000000 Binary files a/sound/violin/Fb5.mid and /dev/null differ diff --git a/sound/violin/Fb6.mid b/sound/violin/Fb6.mid deleted file mode 100644 index b8bdf7fee071..000000000000 Binary files a/sound/violin/Fb6.mid and /dev/null differ diff --git a/sound/violin/Fb7.mid b/sound/violin/Fb7.mid deleted file mode 100644 index 51f5f1bcdb48..000000000000 Binary files a/sound/violin/Fb7.mid and /dev/null differ diff --git a/sound/violin/Fb8.mid b/sound/violin/Fb8.mid deleted file mode 100644 index 47928f38475c..000000000000 Binary files a/sound/violin/Fb8.mid and /dev/null differ diff --git a/sound/violin/Fn1.mid b/sound/violin/Fn1.mid deleted file mode 100644 index abe0d4e4051b..000000000000 Binary files a/sound/violin/Fn1.mid and /dev/null differ diff --git a/sound/violin/Fn2.mid b/sound/violin/Fn2.mid deleted file mode 100644 index d245bef3b54c..000000000000 Binary files a/sound/violin/Fn2.mid and /dev/null differ diff --git a/sound/violin/Fn3.mid b/sound/violin/Fn3.mid deleted file mode 100644 index e532e30dac9c..000000000000 Binary files a/sound/violin/Fn3.mid and /dev/null differ diff --git a/sound/violin/Fn4.mid b/sound/violin/Fn4.mid deleted file mode 100644 index 47219c72fa2e..000000000000 Binary files a/sound/violin/Fn4.mid and /dev/null differ diff --git a/sound/violin/Fn5.mid b/sound/violin/Fn5.mid deleted file mode 100644 index 630d16371d9e..000000000000 Binary files a/sound/violin/Fn5.mid and /dev/null differ diff --git a/sound/violin/Fn6.mid b/sound/violin/Fn6.mid deleted file mode 100644 index 08cbc981bdb6..000000000000 Binary files a/sound/violin/Fn6.mid and /dev/null differ diff --git a/sound/violin/Fn7.mid b/sound/violin/Fn7.mid deleted file mode 100644 index 6c28c7d272e2..000000000000 Binary files a/sound/violin/Fn7.mid and /dev/null differ diff --git a/sound/violin/Fn8.mid b/sound/violin/Fn8.mid deleted file mode 100644 index 2d73762f269a..000000000000 Binary files a/sound/violin/Fn8.mid and /dev/null differ diff --git a/sound/violin/G#1.mid b/sound/violin/G#1.mid deleted file mode 100644 index b1b38856858c..000000000000 Binary files a/sound/violin/G#1.mid and /dev/null differ diff --git a/sound/violin/G#2.mid b/sound/violin/G#2.mid deleted file mode 100644 index e827cfc635ee..000000000000 Binary files a/sound/violin/G#2.mid and /dev/null differ diff --git a/sound/violin/G#3.mid b/sound/violin/G#3.mid deleted file mode 100644 index 57e1f76c9761..000000000000 Binary files a/sound/violin/G#3.mid and /dev/null differ diff --git a/sound/violin/G#4.mid b/sound/violin/G#4.mid deleted file mode 100644 index 59e95a6d9974..000000000000 Binary files a/sound/violin/G#4.mid and /dev/null differ diff --git a/sound/violin/G#5.mid b/sound/violin/G#5.mid deleted file mode 100644 index 9bd3436287b9..000000000000 Binary files a/sound/violin/G#5.mid and /dev/null differ diff --git a/sound/violin/G#6.mid b/sound/violin/G#6.mid deleted file mode 100644 index 3c90af807e27..000000000000 Binary files a/sound/violin/G#6.mid and /dev/null differ diff --git a/sound/violin/G#7.mid b/sound/violin/G#7.mid deleted file mode 100644 index b51afd323c64..000000000000 Binary files a/sound/violin/G#7.mid and /dev/null differ diff --git a/sound/violin/G#8.mid b/sound/violin/G#8.mid deleted file mode 100644 index d3f5c898d47d..000000000000 Binary files a/sound/violin/G#8.mid and /dev/null differ diff --git a/sound/violin/Gb1.mid b/sound/violin/Gb1.mid deleted file mode 100644 index d18668e89112..000000000000 Binary files a/sound/violin/Gb1.mid and /dev/null differ diff --git a/sound/violin/Gb2.mid b/sound/violin/Gb2.mid deleted file mode 100644 index 302f0c6fdc15..000000000000 Binary files a/sound/violin/Gb2.mid and /dev/null differ diff --git a/sound/violin/Gb3.mid b/sound/violin/Gb3.mid deleted file mode 100644 index 1f592fc90399..000000000000 Binary files a/sound/violin/Gb3.mid and /dev/null differ diff --git a/sound/violin/Gb4.mid b/sound/violin/Gb4.mid deleted file mode 100644 index 45854126f988..000000000000 Binary files a/sound/violin/Gb4.mid and /dev/null differ diff --git a/sound/violin/Gb5.mid b/sound/violin/Gb5.mid deleted file mode 100644 index fb1e1da339a9..000000000000 Binary files a/sound/violin/Gb5.mid and /dev/null differ diff --git a/sound/violin/Gb6.mid b/sound/violin/Gb6.mid deleted file mode 100644 index bfa896bb7844..000000000000 Binary files a/sound/violin/Gb6.mid and /dev/null differ diff --git a/sound/violin/Gb7.mid b/sound/violin/Gb7.mid deleted file mode 100644 index a27763c1d47d..000000000000 Binary files a/sound/violin/Gb7.mid and /dev/null differ diff --git a/sound/violin/Gb8.mid b/sound/violin/Gb8.mid deleted file mode 100644 index aaab80a72762..000000000000 Binary files a/sound/violin/Gb8.mid and /dev/null differ diff --git a/sound/violin/Gn1.mid b/sound/violin/Gn1.mid deleted file mode 100644 index 1df52ab07606..000000000000 Binary files a/sound/violin/Gn1.mid and /dev/null differ diff --git a/sound/violin/Gn2.mid b/sound/violin/Gn2.mid deleted file mode 100644 index 6e0ca3831272..000000000000 Binary files a/sound/violin/Gn2.mid and /dev/null differ diff --git a/sound/violin/Gn3.mid b/sound/violin/Gn3.mid deleted file mode 100644 index bb3e6dedcbf9..000000000000 Binary files a/sound/violin/Gn3.mid and /dev/null differ diff --git a/sound/violin/Gn4.mid b/sound/violin/Gn4.mid deleted file mode 100644 index 0c46432afee5..000000000000 Binary files a/sound/violin/Gn4.mid and /dev/null differ diff --git a/sound/violin/Gn5.mid b/sound/violin/Gn5.mid deleted file mode 100644 index f39dcf5e2b9f..000000000000 Binary files a/sound/violin/Gn5.mid and /dev/null differ diff --git a/sound/violin/Gn6.mid b/sound/violin/Gn6.mid deleted file mode 100644 index 0efa2259ca17..000000000000 Binary files a/sound/violin/Gn6.mid and /dev/null differ diff --git a/sound/violin/Gn7.mid b/sound/violin/Gn7.mid deleted file mode 100644 index 22fd1b6bcb00..000000000000 Binary files a/sound/violin/Gn7.mid and /dev/null differ diff --git a/sound/violin/Gn8.mid b/sound/violin/Gn8.mid deleted file mode 100644 index 16b7171d627c..000000000000 Binary files a/sound/violin/Gn8.mid and /dev/null differ diff --git a/sound/voice/human_male_scream_6.ogg b/sound/voice/human_male_scream_6.ogg new file mode 100644 index 000000000000..0005a26bf7ac Binary files /dev/null and b/sound/voice/human_male_scream_6.ogg differ diff --git a/sound/weapons/gun_xm88_directhit_high.ogg b/sound/weapons/gun_xm88_directhit_high.ogg new file mode 100644 index 000000000000..6db42f73cf0e Binary files /dev/null and b/sound/weapons/gun_xm88_directhit_high.ogg differ diff --git a/sound/weapons/gun_xm88_directhit_low.ogg b/sound/weapons/gun_xm88_directhit_low.ogg new file mode 100644 index 000000000000..c516f4fc2650 Binary files /dev/null and b/sound/weapons/gun_xm88_directhit_low.ogg differ diff --git a/sound/weapons/gun_xm88_directhit_medium.ogg b/sound/weapons/gun_xm88_directhit_medium.ogg new file mode 100644 index 000000000000..106fd23cb981 Binary files /dev/null and b/sound/weapons/gun_xm88_directhit_medium.ogg differ diff --git a/strings/marinetips.txt b/strings/marinetips.txt index cf808884f1e5..416c9ef0a4dd 100644 --- a/strings/marinetips.txt +++ b/strings/marinetips.txt @@ -53,35 +53,51 @@ A misloaded OB can deviate severely from the intended target area - ensure you l The XO and CO are trained in Power Loader use and engineering, and can load the OB. You can change what your SL tracker beacon is tracking by right clicking on your headset and clicking "Switch Tracker Target". Boilers emit light - not every glow from around the corner is friendly! +The amount of items in Requisitions and Squad Preparations depend on how many players readied up at the start of the round. You can carry a variety of items inside your helmet - from gauze and cigarettes to flares and screwdrivers. CIC staff can track every USCM-aligned person via the suit sensors console and overwatch console - useful for finding escaped prisoners or dead marines. When the M7 RPG is fired, it creates a substantial shockwave behind it that can stun and harm marines standing too close. Watch your backblast! Remember that you need to put a defibrillator's paddles away in order to store it. -W-Y PMCs do not have marine IFF. Don't fire Smartguns through them! -To talk on multiple radio channels at once, put a COMMA [,] before your message and add up to four prefixes. E.g, ,abcd talks on all squad channels at once. +W-Y PMCs do not have marine IFF. Don't fire Smartguns at them! +To talk on multiple radio channels at once, put a COMMA [,] before your message and add up to four prefixes. E.g, ,abcd talks on the main four squad channels at once. Put .w or :w before your message to whisper. Another way to whisper is to use the verb "whisper" in the IC tab or command bar. For Vehicle Crewmen : it is often safer to repair the parts of your APC or tank inside the vehicle than outside it. It is almost always faster to do surgery manually than in the autodoc. To check your skills, go to the IC tab and click "view skills". +Minirockets pack the most punch per cost as far as CAS weaponry is concerned. The U7 underbarrel shotgun can instantly break down both resin doors and mechanical airlocks, and it's not bad at breaking walls down either. You can find breaching charges in Requisitions or the Squad Engineer vendor. They function like C4, but can be deployed and explode much quicker, and release powerful shrapnel on the opposite side. They require minor engineering knowledge, which can be obtained from pamphlets. Armor piercing ammunition does less damage to unarmored targets. +Requisitions may not grant you service if you are a 'pajamarine' : a marine in cryosleep attire. Be sure to dress up! You can insert empty pill bottles into ChemMasters before creating pills to have them automatically inserted. Nurses can practice a full range of surgeries on Professor DUMMY. Ask the gods to give you one if you see (or are) a nurse practicing. Drinks from the hot drinks machine warm you up. Be careful! Barricades block grenades, and indeed all thrown items, from the front if they're barbed up. +CAS Fire Missions doubles the accuracy of fired weapons, which can be substantial. Painkillers do not stack. Only the strongest has any effect. +Don't underestimate the mortar: with ammo and proper communication it can hit surprisingly hard. +You can shoot through tents, but they won't protect you much in return. +Reqs doesn't have an infinite budget. +Good Reqs can land supplies anywhere outside - given coords - and sometimes in a minimal amount of time. +A ‘point blank’ or ‘PB’ is a type of attack with a firearm where you click directly on a mob next to you. These attacks are not effected by accuracy allowing you to quickly fire with weapons like a shotgun to great effect. Intel Officers can be put in a squad by going to CIC and requesting it. Any marine can perform CPR. On dead marines, this will increase the time they have until they become unrevivable. If you've been pounced on and your squad is unloading into the target, you can hit the 'rest' button to stay down so you don't get filled with lead after getting up. You can check the landing zone as a marine in the status panel. +The Colonial Marshals may come to crack down on too heavy of a Black Market usage. Functioning night vision goggles can be recharged with batteries. Broken night vision goggles can be repaired by an Engineer with a screwdriver. Not the loadout ones though, those cannot be fixed. You can put a pistol belt on your suit slot. (Just grab a rifle instead.) Alt-clicking the Squad Leader tracker lets you track your fireteam leader instead. Armor has a randomized reduction in effectiveness, and does not protect the digits. Take the wiki damage values as a best-case scenario. You can click on your Security Access Tuner (multitool) in your hand to locate the area's APC if there is one. +Need help learning the game and these tips aren't enough? Use MentorHelp or try to get ahold of your ship's Senior Enlisted Advisor. Clicking on your sprite with help intent will let you check your body, seeing where your fractures and other wounds are. Armor has insulative properties - taking it off will help you cool off and take less damage faster if you've been set on fire. Both foldable cades & plasteel cades if loosened and folded down can be transported in crates! In this way, you can use the crate as a portable breach-repair kit, or dragged (or carried via Power Loader) to an unsecure area for quick defensive set up. The fuel tank pouch doesn't just carry fuel for an incinerator- they can also carry full-size extinguishers. Toolbelts & tool pouches also may hold miniature extinguishers. The M2C heavy machine gunner belt rig can also carry C4, breaching charges, and most tools. +You can always multitask as Medic, such as by using pills or healing kits at the same time as defibrillator. +The nuclear ordnance requires BOTH communication towers to be actively held to decrypt the nuclear codes. +ARES will periodically report the amount of available tech points on Command Channel. +The quick wield keys generally prioritize wieldable gear going from left to right on your inventory bar. +Orbital Bombardment warheads respect roofing and hive core protection. They won't hit inside of protected areas. diff --git a/strings/memetips.txt b/strings/memetips.txt index e05ac2f66bdb..abfe0872180c 100644 --- a/strings/memetips.txt +++ b/strings/memetips.txt @@ -12,17 +12,39 @@ Contrary to popular belief, turning off IFF as a Smartgunner does not actually i When playing as a Xenomorph, remember to aim for the groin to inflict additional psychological damage to marines. Never tell an officer that you're smarter than them - especially if it's true. There is no USS Sulaco. -There is no such thing as an Intel Officer. +There is no such thing as a Radio-Telephone Operator. There is no such thing as a techweb. +There is no such thing as a tip. +There is no such thing as a Fatty. +Dropship update is dropping tomorrow. +Don't forget your ceramic plates. Echo Squad does not exist. +Reqs should always spend all its resources on the Black Market. Foxtrot Squad DEFINITELY does not exist. +Intel Squad is a unicorn. Spec rolls are not actually random. +Watch out for Queen's charge ability. Never, ever attempt to correct a Provost about anything. If you die, make sure to ahelp so staff can restart the round! +You can obtain spec tokens by climbing outside the map and into space. There is no alcohol on Whiskey Outpost, other than in the Ground Commander's locker. Hitting enemies with weapons damages them. +Don't swap East and West. AGAIN. +Don't swap Minus and Positive coordinates... AGAIN. +OB'ing the FOB is always an option. +OB'ing the FOB is the best way to get some recognition from the aCO. +The sky erupts into flames right above you! This tip is a lie. +Stay hydrated. +Have a good day. +There is no tip. +These tips suck. Please write more. +This tip is not ready, please wait until next round. +Someone stole this tip, ask staff for a new one. If it's stupid but it works, it isn't stupid. If it's stupid but it works, it's still stupid and you got lucky. Corroders aren't real. They can't hurt you. ARES is not sentient. It has no feelings and its only thoughts are pre-programmed subroutines. +Remember that as Yautja HPCs are your primary weapons. +You can always bully staff into giving you more awesome tips. +Embrace the suck. diff --git a/strings/metatips.txt b/strings/metatips.txt index f694da02b5bf..a28c90239593 100644 --- a/strings/metatips.txt +++ b/strings/metatips.txt @@ -1,13 +1,22 @@ Remember hotkeys and macros can be customized to your liking. Hotkeys can be accessed in your preferences, and macros can be edited in the Byond macro editor, available in the top left drop down menu (click the Byond logo in the corner of the game window). -If you're unsure about a gameplay mechanic, use the 'mentorhelp' verb in the Admin tab to ask veteran players on the subject. +If you're unsure about a gameplay mechanic, use the 'mentorhelp' verb in the Admin tab to ask veteran players on the subject. It is also available from the pause menu, pressing ESCAPE. Try not to get too mad about dying. We’re all here to have fun. +You can get information on current TestMerges by pressing 'Show Server Revision' in 'OOC' tab. After dying, ask yourself what you did wrong and make a mental note to not make the same mistake again. Communication, be it from a marine to a marine, a drone to the queen, or command to everyone, is vital and information on flanks can change how the entire round plays out. As an alien or marine, be careful of the flank, regardless of if the push is going well or stalling out. Half of getting good is knowing to be aggressive. The other half is knowing when not to be aggressive. Alt-click a storage item to draw the last item in it (last non-weapon if it's a weapon belt). Middle-click a storage item to immediately open it, and middle-click structures to attempt to vault them. Use "North, South, West, East" when referring to locations in-game rather than "up, down, left, right". +As a mentor, you can become the imaginary friend of a new player to teach them! You shouldn't ignore what your allies are up to. Sometimes they can be organizing a flank in hivemind/radio, sometimes they can be walking up behind you with a slug-loaded shotgun. Either way, it pays to be alert to what they're doing, as much to as what the enemies are. The Wiki (https://cm-ss13.com/wiki) is a very useful repository of information about the game, such as weapons, equipment, xenomorph castes and their strains. It may not be fully up to date much of the time, but the basics are usually accurate. As an observer, you may see how much remaining hijack time is left in the status panel. -Embrace the suck. +You can always AdminHelp with the F1 key to question a member of staff regarding rules or game bugs. +As ghost you are given extra tools for spectating the round: you can jump and follow specific players, get notifications about CAS and OB strikes, can see all health bars, and such. +You can press ESC key to bring up the game pause menu. It allows you change settings, AdminHelp and MentorHelp, and even access the Web Maps of game by clicking at top right. +Dead? You can take that moment to 'Edit Characters' from Preferences or Escape menus, to flesh out your characters or change your settings. +Control of intelligence is important: be it for retrieving it as marine, or denying it as Xeno. +If the lobby music is too loud or bothering you, you can disable it in Preferences tab at top right. +Maps can and will be unpredictably modified by the Nightmare system - stay frosty while roaming around! +You can go to GitHub to view code of the game and propose modifications of your own. diff --git a/strings/xenotips.txt b/strings/xenotips.txt index 2ca2964ae2d5..8674146de655 100644 --- a/strings/xenotips.txt +++ b/strings/xenotips.txt @@ -32,5 +32,7 @@ You can join the hive as a living Facehugger by clicking on the hive's Eggmorphe Playable Facehuggers can leap onto targets with a one-second windup, but this will only infect them if they are adjacent to it. Otherwise, it will simply knock them down for a small duration. As a Facehugger, you cannot talk in hivemind, but you can still open Hive Status and overwatch your sisters. This can be useful if you're locating other Facehuggers, flanker castes, or trying to learn from experienced Facehugger players. Shift-clicking the Queen indicator will tell you what area you are in, on the map. +As a Ravager your abilities become greatly enhanced when you empower with three or more people around you. Resisting on a water tile will immediately put out fires. Make sure you're alone though - It's usually better to let a friendly Xenomorph pat you out than it is to expose yourself to open water. You can filter out the Xenomorphs displayed in hive status by health, allowing you to look only for wounded sisters. +Each xeno has their own ‘tackle counter’ on a marine. The range to successfully tackle can be anywhere from two to six tackles based on caste. If a marine gets stunned or knocked over by other means it will reset everyone's tackle counters and they may get up! diff --git a/tgui/packages/tgui-panel/chat/constants.js b/tgui/packages/tgui-panel/chat/constants.js index ac9346d8d5f0..020e8513dc2c 100644 --- a/tgui/packages/tgui-panel/chat/constants.js +++ b/tgui/packages/tgui-panel/chat/constants.js @@ -24,6 +24,7 @@ export const MESSAGE_TYPE_INTERNAL = 'internal'; export const MESSAGE_TYPE_SYSTEM = 'system'; export const MESSAGE_TYPE_LOCALCHAT = 'localchat'; export const MESSAGE_TYPE_RADIO = 'radio'; +export const MESSAGE_TYPE_HIVEMIND = 'hivemind'; export const MESSAGE_TYPE_INFO = 'info'; export const MESSAGE_TYPE_WARNING = 'warning'; export const MESSAGE_TYPE_HELPFUL = 'helpful'; @@ -62,7 +63,13 @@ export const MESSAGE_TYPES = [ type: MESSAGE_TYPE_RADIO, name: 'Radio', description: 'All departments of radio messages', - selector: '.radio, .xeno, .xenoqueen, .xenoleader, .alert, .newscaster', + selector: '.radio, .alert, .newscaster', + }, + { + type: MESSAGE_TYPE_HIVEMIND, + name: 'Hivemind', + description: 'Xenomorph hivemind messages', + selector: '.xeno, .xenoqueen, .xenoleader', }, { type: MESSAGE_TYPE_INFO, diff --git a/tgui/packages/tgui-panel/chat/renderer.js b/tgui/packages/tgui-panel/chat/renderer.js index f7ce9277cf68..fe175ee6d94e 100644 --- a/tgui/packages/tgui-panel/chat/renderer.js +++ b/tgui/packages/tgui-panel/chat/renderer.js @@ -193,6 +193,7 @@ class ChatRenderer { const matchWord = setting.matchWord; const matchCase = setting.matchCase; const allowedRegex = /^[a-z0-9_\-$/^[\s\]\\]+$/gi; + const regexEscapeCharacters = /[!#$%^&*)(+=.<>{}[\]:;'"|~`_\-\\/]/g; const lines = String(text) .split(',') .map((str) => str.trim()) @@ -228,19 +229,27 @@ class ChatRenderer { if (!highlightWords) { highlightWords = []; } + // We're not going to let regex characters fuck up our RegEx operation. + line = line.replace(regexEscapeCharacters, '\\$&'); + highlightWords.push(line); } } - const regexStr = regexExpressions.join('|'); - const flags = 'g' + (matchCase ? '' : 'i'); - // setting regex overrides matchword - if (regexStr) { - highlightRegex = new RegExp('(' + regexStr + ')', flags); - } else { - const pattern = `${matchWord ? '\\b' : ''}(${lines.join('|')})${ - matchWord ? '\\b' : '' - }`; - highlightRegex = new RegExp(pattern, flags); + // We wrap this in a try-catch to ensure that broken regex doesn't break + // the entire chat. + try { + // setting regex overrides matchword + if (regexStr) { + highlightRegex = new RegExp('(' + regexStr + ')', flags); + } else { + const pattern = `${matchWord ? '\\b' : ''}(${highlightWords.join( + '|' + )})${matchWord ? '\\b' : ''}`; + highlightRegex = new RegExp(pattern, flags); + } + } catch { + // We just reset it if it's invalid. + highlightRegex = null; } // Lazy init if (!this.highlightParsers) { diff --git a/tgui/packages/tgui-panel/settings/reducer.js b/tgui/packages/tgui-panel/settings/reducer.js index 42d799fd6597..0c93a5b94d4e 100644 --- a/tgui/packages/tgui-panel/settings/reducer.js +++ b/tgui/packages/tgui-panel/settings/reducer.js @@ -16,7 +16,7 @@ const initialState = { fontFamily: FONTS[0], lineHeight: 1.2, theme: 'light', - adminMusicVolume: 0.5, + adminMusicVolume: 0.2, // Keep these two state vars for compatibility with other servers highlightText: '', highlightColor: '#ffdd44', diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index 835a94341708..9e6d604bdf82 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -434,9 +434,9 @@ em { font-weight: bold; } -.minorannounce { +.bigannounce { font-weight: bold; - font-size: 185%; + font-size: 115%; } .greenannounce { @@ -956,10 +956,6 @@ em { color: #844300; } -.sentryradio { - color: #844300; -} - .medradio { color: #008160; } @@ -1105,7 +1101,7 @@ em { .xenoboldnotice { color: #51a16c; - font-style: italic; + font-weight: bold; } .xenowarning { diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index 8501d0b9526c..78613d37ae51 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -470,9 +470,9 @@ h2.alert { font-weight: bold; } -.minorannounce { +.bigannounce { font-weight: bold; - font-size: 185%; + font-size: 115%; } .greenannounce { @@ -1133,7 +1133,7 @@ h2.alert { .xenoboldnotice { color: #2a623d; - font-style: italic; + font-weight: bold; } .xenowarning { diff --git a/tgui/packages/tgui/components/Blink.js b/tgui/packages/tgui/components/Blink.jsx similarity index 100% rename from tgui/packages/tgui/components/Blink.js rename to tgui/packages/tgui/components/Blink.jsx diff --git a/tgui/packages/tgui/components/BlockQuote.js b/tgui/packages/tgui/components/BlockQuote.jsx similarity index 100% rename from tgui/packages/tgui/components/BlockQuote.js rename to tgui/packages/tgui/components/BlockQuote.jsx diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.jsx similarity index 100% rename from tgui/packages/tgui/components/Button.js rename to tgui/packages/tgui/components/Button.jsx diff --git a/tgui/packages/tgui/components/ByondUi.js b/tgui/packages/tgui/components/ByondUi.jsx similarity index 100% rename from tgui/packages/tgui/components/ByondUi.js rename to tgui/packages/tgui/components/ByondUi.jsx diff --git a/tgui/packages/tgui/components/Chart.js b/tgui/packages/tgui/components/Chart.jsx similarity index 100% rename from tgui/packages/tgui/components/Chart.js rename to tgui/packages/tgui/components/Chart.jsx diff --git a/tgui/packages/tgui/components/Collapsible.js b/tgui/packages/tgui/components/Collapsible.jsx similarity index 100% rename from tgui/packages/tgui/components/Collapsible.js rename to tgui/packages/tgui/components/Collapsible.jsx diff --git a/tgui/packages/tgui/components/ColorBox.js b/tgui/packages/tgui/components/ColorBox.jsx similarity index 100% rename from tgui/packages/tgui/components/ColorBox.js rename to tgui/packages/tgui/components/ColorBox.jsx diff --git a/tgui/packages/tgui/components/Dimmer.js b/tgui/packages/tgui/components/Dimmer.jsx similarity index 100% rename from tgui/packages/tgui/components/Dimmer.js rename to tgui/packages/tgui/components/Dimmer.jsx diff --git a/tgui/packages/tgui/components/Divider.js b/tgui/packages/tgui/components/Divider.jsx similarity index 100% rename from tgui/packages/tgui/components/Divider.js rename to tgui/packages/tgui/components/Divider.jsx diff --git a/tgui/packages/tgui/components/DraggableControl.js b/tgui/packages/tgui/components/DraggableControl.jsx similarity index 100% rename from tgui/packages/tgui/components/DraggableControl.js rename to tgui/packages/tgui/components/DraggableControl.jsx diff --git a/tgui/packages/tgui/components/Dropdown.js b/tgui/packages/tgui/components/Dropdown.jsx similarity index 100% rename from tgui/packages/tgui/components/Dropdown.js rename to tgui/packages/tgui/components/Dropdown.jsx diff --git a/tgui/packages/tgui/components/Grid.js b/tgui/packages/tgui/components/Grid.jsx similarity index 100% rename from tgui/packages/tgui/components/Grid.js rename to tgui/packages/tgui/components/Grid.jsx diff --git a/tgui/packages/tgui/components/Icon.js b/tgui/packages/tgui/components/Icon.jsx similarity index 100% rename from tgui/packages/tgui/components/Icon.js rename to tgui/packages/tgui/components/Icon.jsx diff --git a/tgui/packages/tgui/components/InfinitePlane.js b/tgui/packages/tgui/components/InfinitePlane.jsx similarity index 100% rename from tgui/packages/tgui/components/InfinitePlane.js rename to tgui/packages/tgui/components/InfinitePlane.jsx diff --git a/tgui/packages/tgui/components/Input.js b/tgui/packages/tgui/components/Input.jsx similarity index 100% rename from tgui/packages/tgui/components/Input.js rename to tgui/packages/tgui/components/Input.jsx diff --git a/tgui/packages/tgui/components/Knob.js b/tgui/packages/tgui/components/Knob.jsx similarity index 100% rename from tgui/packages/tgui/components/Knob.js rename to tgui/packages/tgui/components/Knob.jsx diff --git a/tgui/packages/tgui/components/LabeledControls.js b/tgui/packages/tgui/components/LabeledControls.jsx similarity index 100% rename from tgui/packages/tgui/components/LabeledControls.js rename to tgui/packages/tgui/components/LabeledControls.jsx diff --git a/tgui/packages/tgui/components/Modal.js b/tgui/packages/tgui/components/Modal.jsx similarity index 100% rename from tgui/packages/tgui/components/Modal.js rename to tgui/packages/tgui/components/Modal.jsx diff --git a/tgui/packages/tgui/components/NoticeBox.js b/tgui/packages/tgui/components/NoticeBox.jsx similarity index 100% rename from tgui/packages/tgui/components/NoticeBox.js rename to tgui/packages/tgui/components/NoticeBox.jsx diff --git a/tgui/packages/tgui/components/NumberInput.js b/tgui/packages/tgui/components/NumberInput.jsx similarity index 100% rename from tgui/packages/tgui/components/NumberInput.js rename to tgui/packages/tgui/components/NumberInput.jsx diff --git a/tgui/packages/tgui/components/ProgressBar.js b/tgui/packages/tgui/components/ProgressBar.jsx similarity index 100% rename from tgui/packages/tgui/components/ProgressBar.js rename to tgui/packages/tgui/components/ProgressBar.jsx diff --git a/tgui/packages/tgui/components/RestrictedInput.js b/tgui/packages/tgui/components/RestrictedInput.jsx similarity index 100% rename from tgui/packages/tgui/components/RestrictedInput.js rename to tgui/packages/tgui/components/RestrictedInput.jsx diff --git a/tgui/packages/tgui/components/RoundGauge.js b/tgui/packages/tgui/components/RoundGauge.jsx similarity index 100% rename from tgui/packages/tgui/components/RoundGauge.js rename to tgui/packages/tgui/components/RoundGauge.jsx diff --git a/tgui/packages/tgui/components/Slider.js b/tgui/packages/tgui/components/Slider.jsx similarity index 100% rename from tgui/packages/tgui/components/Slider.js rename to tgui/packages/tgui/components/Slider.jsx diff --git a/tgui/packages/tgui/components/Table.js b/tgui/packages/tgui/components/Table.jsx similarity index 100% rename from tgui/packages/tgui/components/Table.js rename to tgui/packages/tgui/components/Table.jsx diff --git a/tgui/packages/tgui/components/Tabs.js b/tgui/packages/tgui/components/Tabs.jsx similarity index 100% rename from tgui/packages/tgui/components/Tabs.js rename to tgui/packages/tgui/components/Tabs.jsx diff --git a/tgui/packages/tgui/components/TextArea.js b/tgui/packages/tgui/components/TextArea.jsx similarity index 100% rename from tgui/packages/tgui/components/TextArea.js rename to tgui/packages/tgui/components/TextArea.jsx diff --git a/tgui/packages/tgui/components/TimeDisplay.js b/tgui/packages/tgui/components/TimeDisplay.jsx similarity index 100% rename from tgui/packages/tgui/components/TimeDisplay.js rename to tgui/packages/tgui/components/TimeDisplay.jsx diff --git a/tgui/packages/tgui/components/index.js b/tgui/packages/tgui/components/index.jsx similarity index 100% rename from tgui/packages/tgui/components/index.js rename to tgui/packages/tgui/components/index.jsx diff --git a/tgui/packages/tgui/constants.js b/tgui/packages/tgui/constants.js index 3d7530e7ead8..0ec51380a322 100644 --- a/tgui/packages/tgui/constants.js +++ b/tgui/packages/tgui/constants.js @@ -80,153 +80,233 @@ export const CSS_COLORS = [ export const RADIO_CHANNELS = [ { name: 'Yautja', - freq: 1214, + freq: 1205, color: '#1ecc43', }, { - name: 'PMC', - freq: 1235, + name: "Dutch's Dozen", + freq: 1210, color: '#1ecc43', }, + { + name: 'VAI', + freq: 1215, + color: '#e3580e', + }, + { + name: 'CMB', + freq: 1220, + color: '#1b748c', + }, { name: 'WY', - freq: 1236, - color: '#1ecc43', + freq: 1231, + color: '#fe9b24', }, { - name: "Dutch's Dozen", - freq: 1340, - color: '#1ecc43', + name: 'PMC CMD', + freq: 1232, + color: '#4dc5ce', }, { - name: 'VAI', - freq: 1218, - color: '#1ecc43', + name: 'PMC', + freq: 1233, + color: '#4dc5ce', }, { - name: 'ERT', - freq: 1342, - color: '#1ecc43', + name: 'PMC ENG', + freq: 1234, + color: '#4dc5ce', + }, + { + name: 'PMC MED', + freq: 1235, + color: '#4dc5ce', + }, + { + name: 'PMC CCT', + freq: 1236, + color: '#4dc5ce', + }, + { + name: 'Deathsquad', + freq: 1239, + color: '#fe9b24', }, { name: 'UPP', - freq: 1338, - color: '#1ecc43', + freq: 1251, + color: '#8f4a4b', + }, + { + name: 'UPP CMD', + freq: 1252, + color: '#8f4a4b', + }, + { + name: 'UPP ENG', + freq: 1253, + color: '#8f4a4b', + }, + { + name: 'UPP MED', + freq: 1254, + color: '#8f4a4b', + }, + { + name: 'UPP CCT', + freq: 1255, + color: '#8f4a4b', + }, + { + name: 'UPP KDO', + freq: 1259, + color: '#8f4a4b', }, { name: 'CLF', - freq: 1339, - color: '#1ecc43', + freq: 1271, + color: '#8e83ca', }, { - name: 'Deathsquad', - freq: 1344, + name: 'CLF CMD', + freq: 1272, + color: '#8e83ca', + }, + { + name: 'CLF ENG', + freq: 1273, + color: '#8e83ca', + }, + { + name: 'CLF MED', + freq: 1274, + color: '#8e83ca', + }, + { + name: 'CLF CCT', + freq: 1275, + color: '#8e83ca', + }, + { + name: 'LSTN BUG A', + freq: 1290, + color: '#d65d95', + }, + { + name: 'LSTN BUG B', + freq: 1291, + color: '#d65d95', + }, + { + name: 'Common', + freq: 1461, color: '#1ecc43', }, { - name: 'ARES', - freq: 1447, + name: 'Colony', + freq: 1469, color: '#1ecc43', }, { name: 'High Command', - freq: 1240, - color: '#1ecc43', + freq: 1471, + color: '#318779', }, { - name: 'CCT', - freq: 1350, - color: '#1ecc43', + name: 'SOF', + freq: 1472, + color: '#318779', + }, + { + name: 'Provost', + freq: 1473, + color: '#9b0612', + }, + { + name: 'Sentry', + freq: 1480, + color: '#844300', }, { name: 'Command', - freq: 1353, - color: '#1ecc43', + freq: 1481, + color: '#779cc2', }, { name: 'Medsci', - freq: 1355, - color: '#1ecc43', + freq: 1482, + color: '#008160', }, { name: 'Engineering', - freq: 1357, - color: '#1ecc43', + freq: 1483, + color: '#a66300', }, { name: 'MP', - freq: 1359, - color: '#1ecc43', + freq: 1484, + color: '#a52929', }, { name: 'Req', - freq: 1354, - color: '#1ecc43', + freq: 1485, + color: '#ba8e41', }, { name: 'JTAC', - freq: 1358, - color: '#1ecc43', + freq: 1486, + color: '#ad3b98', }, { name: 'Intel', - freq: 1356, - color: '#1ecc43', + freq: 1487, + color: '#027d02', }, { name: 'Alamo', - freq: 1441, + freq: 1488, color: '#1ecc43', }, { name: 'Normandy', - freq: 1443, + freq: 1489, color: '#1ecc43', }, { name: 'Alpha', - freq: 1449, - color: '#1ecc43', + freq: 1491, + color: '#db2626', }, { name: 'Bravo', - freq: 1451, - color: '#1ecc43', - }, - { - name: 'Common', - freq: 1461, - color: '#1ecc43', + freq: 1492, + color: '#c68610', }, { - name: 'Colony', - freq: 1469, - color: '#1ecc43', - }, - { - name: 'MARSOC', - freq: 1241, - color: '#1ecc43', + name: 'Charlie', + freq: 1493, + color: '#aa55aa', }, { - name: 'Reserves', - freq: 1457, - color: '#1ecc43', + name: 'Delta', + freq: 1494, + color: '#007fcf', }, { name: 'Echo', - freq: 1456, - color: '#1ecc43', + freq: 1495, + color: '#3eb489', }, { - name: 'Delta', - freq: 1455, - color: '#1ecc43', + name: 'Reserves', + freq: 1496, + color: '#ad6d48', }, { - name: 'Charlie', - freq: 1453, - color: '#1ecc43', + name: 'ARES', + freq: 1500, + color: '#ff00ff', }, ]; diff --git a/tgui/packages/tgui/debug/KitchenSink.js b/tgui/packages/tgui/debug/KitchenSink.jsx similarity index 95% rename from tgui/packages/tgui/debug/KitchenSink.js rename to tgui/packages/tgui/debug/KitchenSink.jsx index 246b4f50b478..e25751722c52 100644 --- a/tgui/packages/tgui/debug/KitchenSink.js +++ b/tgui/packages/tgui/debug/KitchenSink.jsx @@ -8,7 +8,7 @@ import { useLocalState } from '../backend'; import { Flex, Section, Tabs } from '../components'; import { Pane, Window } from '../layouts'; -const r = require.context('../stories', false, /\.stories\.js$/); +const r = require.context('../stories', false, /\.stories\.jsx$/); /** * @returns {{ diff --git a/tgui/packages/tgui/interfaces/AcidVest.js b/tgui/packages/tgui/interfaces/AcidVest.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/AcidVest.js rename to tgui/packages/tgui/interfaces/AcidVest.jsx diff --git a/tgui/packages/tgui/interfaces/AlmayerControl.js b/tgui/packages/tgui/interfaces/AlmayerControl.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/AlmayerControl.js rename to tgui/packages/tgui/interfaces/AlmayerControl.jsx diff --git a/tgui/packages/tgui/interfaces/AltitudeControlConsole.js b/tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/AltitudeControlConsole.js rename to tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx diff --git a/tgui/packages/tgui/interfaces/AntiAirConsole.js b/tgui/packages/tgui/interfaces/AntiAirConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/AntiAirConsole.js rename to tgui/packages/tgui/interfaces/AntiAirConsole.jsx diff --git a/tgui/packages/tgui/interfaces/Apc.js b/tgui/packages/tgui/interfaces/Apc.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Apc.js rename to tgui/packages/tgui/interfaces/Apc.jsx diff --git a/tgui/packages/tgui/interfaces/AresInterface.js b/tgui/packages/tgui/interfaces/AresInterface.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/AresInterface.js rename to tgui/packages/tgui/interfaces/AresInterface.jsx diff --git a/tgui/packages/tgui/interfaces/Autodispenser.js b/tgui/packages/tgui/interfaces/Autodispenser.jsx similarity index 99% rename from tgui/packages/tgui/interfaces/Autodispenser.js rename to tgui/packages/tgui/interfaces/Autodispenser.jsx index 0c8ce91512e5..5d029b72b894 100644 --- a/tgui/packages/tgui/interfaces/Autodispenser.js +++ b/tgui/packages/tgui/interfaces/Autodispenser.jsx @@ -11,7 +11,6 @@ export const Autodispenser = (_props, context) => { multiplier, cycle_limit, automode, - linked_storage, networked_storage, smartlink, outputmode, diff --git a/tgui/packages/tgui/interfaces/Autolathe.js b/tgui/packages/tgui/interfaces/Autolathe.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Autolathe.js rename to tgui/packages/tgui/interfaces/Autolathe.jsx diff --git a/tgui/packages/tgui/interfaces/Binoculars.js b/tgui/packages/tgui/interfaces/Binoculars.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Binoculars.js rename to tgui/packages/tgui/interfaces/Binoculars.jsx diff --git a/tgui/packages/tgui/interfaces/BioSyntheticPrinter.js b/tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/BioSyntheticPrinter.js rename to tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx diff --git a/tgui/packages/tgui/interfaces/BotanyEditor.js b/tgui/packages/tgui/interfaces/BotanyEditor.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/BotanyEditor.js rename to tgui/packages/tgui/interfaces/BotanyEditor.jsx diff --git a/tgui/packages/tgui/interfaces/BotanyExtractor.js b/tgui/packages/tgui/interfaces/BotanyExtractor.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/BotanyExtractor.js rename to tgui/packages/tgui/interfaces/BotanyExtractor.jsx diff --git a/tgui/packages/tgui/interfaces/BrigCell.js b/tgui/packages/tgui/interfaces/BrigCell.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/BrigCell.js rename to tgui/packages/tgui/interfaces/BrigCell.jsx diff --git a/tgui/packages/tgui/interfaces/CameraConsole.js b/tgui/packages/tgui/interfaces/CameraConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/CameraConsole.js rename to tgui/packages/tgui/interfaces/CameraConsole.jsx diff --git a/tgui/packages/tgui/interfaces/CanvasLayer.jsx b/tgui/packages/tgui/interfaces/CanvasLayer.jsx new file mode 100644 index 000000000000..e647ae765b1c --- /dev/null +++ b/tgui/packages/tgui/interfaces/CanvasLayer.jsx @@ -0,0 +1,311 @@ +import { Box, Icon, Tooltip } from '../components'; +import { Component, createRef } from 'inferno'; + +// this file should probably not be in interfaces, should move it later. +export class CanvasLayer extends Component { + constructor(props) { + super(props); + this.canvasRef = createRef(); + + // color selection + // using this.state prevents unpredictable behavior + this.state = { + selection: this.props.selection, + mapLoad: true, + }; + + // needs to be of type png of jpg + this.img = null; + this.imageSrc = this.props.imageSrc; + + // stores the stacked lines + this.lineStack = []; + + // stores the individual line drawn + this.currentLine = []; + + this.ctx = null; + this.isPainting = false; + this.lastX = null; + this.lastY = null; + + this.complexity = 0; + } + + componentDidMount() { + this.ctx = this.canvasRef.current.getContext('2d'); + this.ctx.lineWidth = 4; + this.ctx.lineCap = 'round'; + + this.img = new Image(); + + this.img.src = this.imageSrc; + + this.img.onload = () => { + this.setState({ mapLoad: true }); + }; + + this.img.onerror = () => { + this.setState({ mapLoad: false }); + }; + + this.drawCanvas(); + } + + handleMouseDown = (e) => { + this.isPainting = true; + + const rect = this.canvasRef.current.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + this.ctx.beginPath(); + this.ctx.moveTo(this.lastX, this.lastY); + this.lastX = x; + this.lastY = y; + }; + + handleMouseMove = (e) => { + if (!this.isPainting || !this.state.selection) { + return; + } + if (e.buttons === 0) { + // We probably dragged off the window - lets not get stuck drawing + this.handleMouseUp(e); + return; + } + + this.ctx.strokeStyle = this.state.selection; + + const rect = this.canvasRef.current.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + if (this.lastX !== null && this.lastY !== null) { + // this controls how often we make new strokes + if (Math.abs(this.lastX - x) + Math.abs(this.lastY - y) < 20) { + return; + } + + this.ctx.moveTo(this.lastX, this.lastY); + this.ctx.lineTo(x, y); + this.ctx.stroke(); + this.currentLine.push([ + this.lastX, + this.lastY, + x, + y, + this.ctx.strokeStyle, + ]); + } + + this.lastX = x; + this.lastY = y; + }; + + handleMouseUp = (e) => { + if ( + this.isPainting && + this.state.selection && + this.lastX !== null && + this.lastY !== null + ) { + const rect = this.canvasRef.current.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + this.ctx.moveTo(this.lastX, this.lastY); + this.ctx.lineTo(x, y); + this.ctx.stroke(); + this.currentLine.push([ + this.lastX, + this.lastY, + x, + y, + this.ctx.strokeStyle, + ]); + } + + this.isPainting = false; + this.lastX = null; + this.lastY = null; + + if (this.currentLine.length === 0) { + return; + } + + this.lineStack.push([...this.currentLine]); + this.currentLine = []; + this.complexity = this.getComplexity(); + this.props.onDraw(); + }; + + handleSelectionChange = () => { + const { selection } = this.props; + + if (selection === 'clear') { + this.ctx.clearRect( + 0, + 0, + this.canvasRef.current.width, + this.canvasRef.current.height + ); + this.ctx.drawImage( + this.img, + 0, + 0, + this.canvasRef.current.width, + this.canvasRef.current.height + ); + + this.lineStack = []; + this.complexity = 0; + return; + } + + if (selection === 'undo') { + if (this.lineStack.length === 0) { + return; + } + + const line = this.lineStack.pop(); + if (line.length === 0) { + return; + } + + const prevColor = line[0][4]; + + this.ctx.clearRect( + 0, + 0, + this.canvasRef.current.width, + this.canvasRef.current.height + ); + this.ctx.drawImage( + this.img, + 0, + 0, + this.canvasRef.current.width, + this.canvasRef.current.height + ); + this.ctx.globalCompositeOperation = 'source-over'; + + this.lineStack.forEach((currentLine) => { + currentLine.forEach(([lastX, lastY, x, y, colorSelection]) => { + this.ctx.strokeStyle = colorSelection; + this.ctx.beginPath(); + this.ctx.moveTo(lastX, lastY); + this.ctx.lineTo(x, y); + this.ctx.stroke(); + }); + }); + + this.complexity = this.getComplexity(); + this.setState({ selection: prevColor }); + this.props.onUndo(prevColor); + return; + } + + if (selection === 'export') { + const svgData = this.convertToSVG(); + this.props.onImageExport(svgData); + return; + } + + this.setState({ selection: selection }); + }; + + componentDidUpdate(prevProps) { + if (prevProps.actionQueueChange !== this.props.actionQueueChange) { + this.handleSelectionChange(); + } + } + + drawCanvas() { + this.img.onload = () => { + // this onload may or may not be causing problems. + this.ctx.drawImage( + this.img, + 0, + 0, + this.canvasRef.current?.width, + this.canvasRef.current?.height + ); + }; + } + + convertToSVG() { + const lines = this.lineStack.flat(); + const combinedArray = lines.flatMap( + ([lastX, lastY, x, y, colorSelection]) => [ + lastX, + lastY, + x, + y, + colorSelection, + ] + ); + return combinedArray; + } + + getComplexity() { + let count = 0; + this.lineStack.forEach((item) => { + count += item.length; + }); + return count; + } + + displayCanvas() { + return ( +
    + {this.complexity > 500 && ( + + + + )} + this.handleMouseDown(e)} + onMouseUp={(e) => this.handleMouseUp(e)} + onMouseMove={(e) => this.handleMouseMove(e)} + /> +
    + ); + } + + displayLoading() { + return ( +
    + +

    + Please wait a few minutes before attempting to access the canvas. +

    +
    +
    + ); + } + + render() { + if (this.state.mapLoad) { + return this.displayCanvas(); + } else { + // edge case where a new user joins and tries to draw on the canvas before they cached the png + return this.displayLoading(); + } + } +} diff --git a/tgui/packages/tgui/interfaces/CardMod.js b/tgui/packages/tgui/interfaces/CardMod.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/CardMod.js rename to tgui/packages/tgui/interfaces/CardMod.jsx diff --git a/tgui/packages/tgui/interfaces/CasSim.js b/tgui/packages/tgui/interfaces/CasSim.js deleted file mode 100644 index 2346435e336a..000000000000 --- a/tgui/packages/tgui/interfaces/CasSim.js +++ /dev/null @@ -1,109 +0,0 @@ -import { useBackend } from '../backend'; -import { Button, Section, ProgressBar, NoticeBox, Box, Stack } from '../components'; -import { Window } from '../layouts'; - -export const CasSim = (_props, context) => { - const { act, data } = useBackend(context); - - const timeLeft = data.nextdetonationtime - data.worldtime; - const timeLeftPct = timeLeft / data.detonation_cooldown; - - const canDetonate = timeLeft < 0 && data.configuration && data.looking; - - return ( - - -
    - {(!!data.configuration && ( - - Configuration : Executing {data.configuration}! - - )) || ( - - No firemission configuration loaded! - - )} - - Target dummy type : {data.dummy_mode} - - {timeLeft > 0 && ( - - - {Math.ceil(timeLeft / 10)} seconds until the console's - processors finish cooling! - - - )} -
    -
    - - - {(!data.looking && ( -
    -
    -
    - ); -}; diff --git a/tgui/packages/tgui/interfaces/CasSim.tsx b/tgui/packages/tgui/interfaces/CasSim.tsx new file mode 100644 index 000000000000..cac23cde1833 --- /dev/null +++ b/tgui/packages/tgui/interfaces/CasSim.tsx @@ -0,0 +1,116 @@ +import { useBackend, useLocalState } from '../backend'; +import { Box, Button, Section, ProgressBar, NoticeBox, Stack } from '../components'; + +interface CasSimData { + configuration: any; + dummy_mode: string; + worldtime: number; + nextdetonationtime: number; + detonation_cooldown: number; +} + +export const CasSim = (_props, context) => { + const { act, data } = useBackend(context); + const [simulationView, setSimulationView] = useLocalState( + context, + 'simulation_view', + false + ); + + const timeLeft = data.nextdetonationtime - data.worldtime; + const timeLeftPct = timeLeft / data.detonation_cooldown; + + const canDetonate = timeLeft < 0 && data.configuration && simulationView; + + return ( + +
    + {(!!data.configuration && ( + + Configuration : Executing {data.configuration}! + + )) || ( + No firemission configuration loaded! + )} + Target dummy type : {data.dummy_mode} + {timeLeft > 0 && ( + + + {Math.ceil(timeLeft / 10)} seconds until the console's + processors finish cooling! + + + )} +
    +
    + + + {(!simulationView && ( +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Centrifuge.js b/tgui/packages/tgui/interfaces/Centrifuge.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Centrifuge.js rename to tgui/packages/tgui/interfaces/Centrifuge.jsx diff --git a/tgui/packages/tgui/interfaces/Changelog.js b/tgui/packages/tgui/interfaces/Changelog.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Changelog.js rename to tgui/packages/tgui/interfaces/Changelog.jsx diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/ChemDispenser.js rename to tgui/packages/tgui/interfaces/ChemDispenser.jsx diff --git a/tgui/packages/tgui/interfaces/ChooseFruit.js b/tgui/packages/tgui/interfaces/ChooseFruit.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/ChooseFruit.js rename to tgui/packages/tgui/interfaces/ChooseFruit.jsx diff --git a/tgui/packages/tgui/interfaces/ChooseResin.js b/tgui/packages/tgui/interfaces/ChooseResin.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/ChooseResin.js rename to tgui/packages/tgui/interfaces/ChooseResin.jsx diff --git a/tgui/packages/tgui/interfaces/CommandTablet.js b/tgui/packages/tgui/interfaces/CommandTablet.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/CommandTablet.js rename to tgui/packages/tgui/interfaces/CommandTablet.jsx diff --git a/tgui/packages/tgui/interfaces/CrewConsole.js b/tgui/packages/tgui/interfaces/CrewConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/CrewConsole.js rename to tgui/packages/tgui/interfaces/CrewConsole.jsx diff --git a/tgui/packages/tgui/interfaces/CrtPanel.tsx b/tgui/packages/tgui/interfaces/CrtPanel.tsx new file mode 100644 index 000000000000..5745bd29c5a9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/CrtPanel.tsx @@ -0,0 +1,20 @@ +import { classes } from 'common/react'; +import { Box } from '../components'; +import { BoxProps } from '../components/Box'; +interface CrtPanelProps extends BoxProps { + color: 'green' | 'yellow' | 'blue'; +} +export const CrtPanel = (props: CrtPanelProps) => { + return ( +
    + + {props.children} + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Cryo.js b/tgui/packages/tgui/interfaces/Cryo.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Cryo.js rename to tgui/packages/tgui/interfaces/Cryo.jsx diff --git a/tgui/packages/tgui/interfaces/DemoSim.js b/tgui/packages/tgui/interfaces/DemoSim.tsx similarity index 80% rename from tgui/packages/tgui/interfaces/DemoSim.js rename to tgui/packages/tgui/interfaces/DemoSim.tsx index 2c8b7fc25fb3..87dfa81236be 100644 --- a/tgui/packages/tgui/interfaces/DemoSim.js +++ b/tgui/packages/tgui/interfaces/DemoSim.tsx @@ -1,14 +1,27 @@ -import { useBackend } from '../backend'; +import { useBackend, useLocalState } from '../backend'; import { Button, Section, ProgressBar, NoticeBox, Box, Stack } from '../components'; import { Window } from '../layouts'; +interface DemoSimData { + configuration: any; + dummy_mode: string; + worldtime: number; + nextdetonationtime: number; + detonation_cooldown: number; +} + export const DemoSim = (_props, context) => { - const { act, data } = useBackend(context); + const { act, data } = useBackend(context); + const [simulationView, setSimulationView] = useLocalState( + context, + 'simulation_view', + false + ); const timeLeft = data.nextdetonationtime - data.worldtime; const timeLeftPct = timeLeft / data.detonation_cooldown; - const canDetonate = timeLeft < 0 && data.configuration && data.looking; + const canDetonate = timeLeft < 0 && data.configuration && simulationView; return ( @@ -45,14 +58,17 @@ export const DemoSim = (_props, context) => {
    - {(!data.looking && ( + {(!simulationView && ( - )} - {data.has_flyby_skill === 1 && data.flight_configuration === 'ferry' && ( - - )} - {data.has_flyby_skill === 1 && data.shuttle_mode === 'called' && ( - - )} - {data.has_flyby_skill === 1 && data.shuttle_mode === 'idle' && ( - - )} - - } - /> - ); -}; - export const TouchdownCooldown = (_, context) => { const { data } = useBackend(context); return ( @@ -312,19 +281,59 @@ const AutopilotConfig = (props, context) => { ); }; +const StopLaunchAnnouncementAlarm = (_, context) => { + const { act } = useBackend(context); + return ( + + ); +}; + +const PlayLaunchAnnouncementAlarm = (_, context) => { + const { act } = useBackend(context); + return ( + + ); +}; + +const LaunchAnnouncementAlarm = (_, context) => { + const { data, act } = useBackend(context); + const [siteselection, setSiteSelection] = useSharedState( + context, + 'target_site', + undefined + ); + return ( +
    + ) : ( + + ) + } + /> + ); +}; + const RenderScreen = (props, context) => { const { data } = useBackend(context); return ( <> {data.can_set_automated === 1 && } - {data.can_fly_by === 1 && - (data.shuttle_mode === 'idle' || data.shuttle_mode === 'called') && ( - - )} - {data.shuttle_mode === 'idle' && - data.flight_configuration !== 'flyby' && ( - - )} + {data.shuttle_mode === 'idle' && } {data.shuttle_mode === 'igniting' && } {data.shuttle_mode === 'pre-arrival' && } {data.shuttle_mode === 'recharging' && } @@ -335,6 +344,7 @@ const RenderScreen = (props, context) => { )} {data.door_status.length > 0 && } + {} ); }; diff --git a/tgui/packages/tgui/interfaces/DropshipWeaponsConsole.tsx b/tgui/packages/tgui/interfaces/DropshipWeaponsConsole.tsx new file mode 100644 index 000000000000..629191b3ba70 --- /dev/null +++ b/tgui/packages/tgui/interfaces/DropshipWeaponsConsole.tsx @@ -0,0 +1,366 @@ +import { useBackend } from '../backend'; +import { Window } from '../layouts'; +import { Box, Divider, Flex, Stack } from '../components'; +import { CasSim } from './CasSim'; +import { MfdPanel, MfdProps } from './MfdPanels/MultifunctionDisplay'; +import { CameraMfdPanel } from './MfdPanels/CameraPanel'; +import { EquipmentMfdPanel } from './MfdPanels/EquipmentPanel'; +import { MapMfdPanel } from './MfdPanels/MapPanel'; +import { WeaponMfdPanel } from './MfdPanels/WeaponPanel'; +import { SupportMfdPanel } from './MfdPanels/SupportPanel'; +import { FiremissionMfdPanel } from './MfdPanels/FiremissionPanel'; +import { TargetAquisitionMfdPanel } from './MfdPanels/TargetAquisition'; +import { mfdState } from './MfdPanels/stateManagers'; +import { Dpad } from './common/Dpad'; + +export interface DropshipProps { + equipment_data: Array; + medevac_targets: Array; + fulton_targets: Array; + selected_eqp: number; + tactical_map_ref?: string; + camera_map_ref?: string; + camera_target_id?: string; + targets_data: Array; +} + +type MedevacTargets = { + area: string; + occupant: string; + ref: string; + triage_card?: string; + damage?: { + hp: number; + brute: number; + oxy: number; + tox: number; + fire: number; + undefib: number; + }; +}; + +type LazeTarget = { + target_name: string; + target_tag: number; +}; + +export type DropshipEquipment = { + name: string; + shorthand: string; + eqp_tag: number; + is_missile: 0 | 1; + is_weapon: 0 | 1; + is_interactable: 0 | 1; + mount_point: number; + ammo_name: string; + ammo?: number; + burst?: number; + max_ammo?: number; + firemission_delay?: number; + data?: any; +}; + +const xOffset = 40; +const yOffset = 0; +const xLookup = (index: number) => [0, 40, 80, 120][index] + xOffset; +const yLookup = (index: number) => [150, 20, 20, 150][index] + yOffset; +const OutlineColor = '#00e94e'; +const OutlineWidth = '2'; + +const DrawShipOutline = () => { + const drawLine = (pos0, pos1) => ( + + ); + return ( + <> + {drawLine(0, 1)} + {drawLine(1, 2)} + {drawLine(2, 3)} + + ); +}; + +const DrawWeapon = (props: { weapon: DropshipEquipment }, context) => { + const { data, act } = useBackend(context); + const position = props.weapon.mount_point; + const index = position - 1; + const x = xLookup(index); + const y = yLookup(index); + return ( + <> + + act('select_equipment', { 'equipment_id': props.weapon.eqp_tag }) + } + /> + + {props.weapon.shorthand} + + + ); +}; + +const WeaponStatsPanel = (props: { + slot: number; + weapon?: DropshipEquipment; +}) => { + if (props.weapon === undefined) { + return ; + } + return ( + + {props.weapon.name ?? 'Empty'} + {props.weapon.is_missile === 0 && props.weapon.ammo !== null && ( + + Ammo: {props.weapon?.ammo ?? 'Empty'} /{' '} + {props.weapon.max_ammo ?? 'Empty'} + + )} + {props.weapon?.is_missile === 1 && ( + + Loaded:
    + {props.weapon.ammo_name} +
    + )} + {props.weapon?.ammo === null && Empty} +
    + ); +}; + +const EmptyWeaponStatsPanel = (props: { slot: number }) => { + return ( + + Bay {props.slot} is empty + + ); +}; + +const DropshipWeaponsPanel = (props: { + equipment: Array; +}) => { + const weapons = props.equipment.filter((x) => x.is_weapon === 1); + const support = props.equipment.filter((x) => x.is_weapon === 0); + return ( + + + + + + x.mount_point === 2)} + /> + + + + + + x.mount_point === 1)} + /> + + + + + + + + + {weapons.map((x) => ( + + ))} + + + + + {support.map((x) => ( + {x.name} + ))} + + + + + + + + x.mount_point === 3)} + /> + + + + + + x.mount_point === 4)} + /> + + + + + + ); +}; + +const LcdPanel = (props, context) => { + const { data } = useBackend(context); + return ( + + + + ); +}; + +const FiremissionSimulationPanel = (props, context) => { + return ( + + + + ); +}; + +const FiremissionsSimMfdPanel = (props: MfdProps, context) => { + const { setPanelState } = mfdState(context, props.panelStateId); + return ( + setPanelState(''), + }, + ]}> + + + ); +}; + +const WeaponsMfdPanel = (props, context) => { + return ( + + + + ); +}; + +const BaseMfdPanel = (props: MfdProps, context) => { + const { setPanelState } = mfdState(context, props.panelStateId); + + return ( + setPanelState('equipment') }, + { + children: 'F-MISS', + onClick: () => setPanelState('firemission'), + }, + {}, + { + children: 'TARGETS', + onClick: () => setPanelState('target-aquisition'), + }, + ]} + bottomButtons={[ + {}, + { children: 'MAPS', onClick: () => setPanelState('map') }, + { children: 'CAMS', onClick: () => setPanelState('camera') }, + ]}> + +
    +

    U.S.C.M.

    +

    Dropship Weapons Control System

    +

    UA Northbridge

    +

    V 0.1

    +
    +
    +
    + ); +}; + +const PrimaryPanel = (props: MfdProps, context) => { + const { panelState } = mfdState(context, props.panelStateId); + switch (panelState) { + case 'camera': + return ; + case 'equipment': + return ; + case 'map': + return ; + case 'weapons': + return ; + case 'firemission': + return ; + case 'firemission-sim': + return ; + case 'target-aquisition': + return ; + case 'weapon': + return ; + case 'support': + return ; + default: + return ; + } +}; + +export const DropshipWeaponsConsole = () => { + return ( + + + + + + + + + + + + + + + + Offset +
    + Calibration +
    + +
    +
    + + + + +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/EscapePodConsole.tsx b/tgui/packages/tgui/interfaces/EscapePodConsole.tsx index b4bc410a433d..8153008adbee 100644 --- a/tgui/packages/tgui/interfaces/EscapePodConsole.tsx +++ b/tgui/packages/tgui/interfaces/EscapePodConsole.tsx @@ -7,6 +7,7 @@ interface EscapePodProps { door_lock: 0 | 1; door_state: 0 | 1; can_delay: 0 | 1; + launch_without_evac: number; } export const EscapePodConsole = (_props, context) => { @@ -21,6 +22,9 @@ export const EscapePodConsole = (_props, context) => { case 4: statusMessage = 'NO EVACUATION'; buttonColor = 'neutral'; + if (data.launch_without_evac) { + operable = 1; + } break; case 5: statusMessage = 'SYSTEMS DOWN'; diff --git a/tgui/packages/tgui/interfaces/FaxMachine.js b/tgui/packages/tgui/interfaces/FaxMachine.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/FaxMachine.js rename to tgui/packages/tgui/interfaces/FaxMachine.jsx diff --git a/tgui/packages/tgui/interfaces/Filteriffic.js b/tgui/packages/tgui/interfaces/Filteriffic.jsx similarity index 99% rename from tgui/packages/tgui/interfaces/Filteriffic.js rename to tgui/packages/tgui/interfaces/Filteriffic.jsx index a967efafca98..8bda997dff1b 100644 --- a/tgui/packages/tgui/interfaces/Filteriffic.js +++ b/tgui/packages/tgui/interfaces/Filteriffic.jsx @@ -1,6 +1,6 @@ import { map } from 'common/collections'; import { toFixed } from 'common/math'; -import { numberOfDecimalDigits } from '../../common/math'; +import { numberOfDecimalDigits } from 'common/math'; import { useBackend, useLocalState } from '../backend'; import { Box, Button, Collapsible, ColorBox, Dropdown, Input, LabeledList, NoticeBox, NumberInput, Section } from '../components'; import { Window } from '../layouts'; diff --git a/tgui/packages/tgui/interfaces/FiltrationControl.js b/tgui/packages/tgui/interfaces/FiltrationControl.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/FiltrationControl.js rename to tgui/packages/tgui/interfaces/FiltrationControl.jsx diff --git a/tgui/packages/tgui/interfaces/HealthScan.js b/tgui/packages/tgui/interfaces/HealthScan.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/HealthScan.js rename to tgui/packages/tgui/interfaces/HealthScan.jsx diff --git a/tgui/packages/tgui/interfaces/HiveFaction.js b/tgui/packages/tgui/interfaces/HiveFaction.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/HiveFaction.js rename to tgui/packages/tgui/interfaces/HiveFaction.jsx diff --git a/tgui/packages/tgui/interfaces/HiveLeaders.js b/tgui/packages/tgui/interfaces/HiveLeaders.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/HiveLeaders.js rename to tgui/packages/tgui/interfaces/HiveLeaders.jsx diff --git a/tgui/packages/tgui/interfaces/HiveStatus.js b/tgui/packages/tgui/interfaces/HiveStatus.jsx similarity index 96% rename from tgui/packages/tgui/interfaces/HiveStatus.js rename to tgui/packages/tgui/interfaces/HiveStatus.jsx index c621430a9f7c..caecf087579f 100644 --- a/tgui/packages/tgui/interfaces/HiveStatus.js +++ b/tgui/packages/tgui/interfaces/HiveStatus.jsx @@ -113,14 +113,21 @@ const GeneralInformation = (props, context) => { total_xenos, burrowed_larva, evilution_level, + pylon_status, } = data; return ( - -

    The Queen is in:

    -

    {queen_location}

    -
    + {queen_location === null ? ( + +

    The Hive has no Queen!

    +
    + ) : ( + +

    The Queen is in:

    +

    {queen_location}

    +
    + )} {!!hive_location && (

    The Hive location is:

    @@ -136,6 +143,11 @@ const GeneralInformation = (props, context) => { Evilution: {evilution_level} + {pylon_status && ( + + {pylon_status} + + )}
    ); }; diff --git a/tgui/packages/tgui/interfaces/KeyBinds.js b/tgui/packages/tgui/interfaces/KeyBinds.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/KeyBinds.js rename to tgui/packages/tgui/interfaces/KeyBinds.jsx diff --git a/tgui/packages/tgui/interfaces/KillPanel.js b/tgui/packages/tgui/interfaces/KillPanel.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/KillPanel.js rename to tgui/packages/tgui/interfaces/KillPanel.jsx diff --git a/tgui/packages/tgui/interfaces/LanguageMenu.js b/tgui/packages/tgui/interfaces/LanguageMenu.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/LanguageMenu.js rename to tgui/packages/tgui/interfaces/LanguageMenu.jsx diff --git a/tgui/packages/tgui/interfaces/ListInput.js b/tgui/packages/tgui/interfaces/ListInput.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/ListInput.js rename to tgui/packages/tgui/interfaces/ListInput.jsx diff --git a/tgui/packages/tgui/interfaces/MedalsPanel.js b/tgui/packages/tgui/interfaces/MedalsPanel.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/MedalsPanel.js rename to tgui/packages/tgui/interfaces/MedalsPanel.jsx diff --git a/tgui/packages/tgui/interfaces/MedalsViewer.tsx b/tgui/packages/tgui/interfaces/MedalsViewer.tsx new file mode 100644 index 000000000000..591a0b4b233f --- /dev/null +++ b/tgui/packages/tgui/interfaces/MedalsViewer.tsx @@ -0,0 +1,61 @@ +import { BooleanLike, classes } from 'common/react'; +import { useBackend } from '../backend'; +import { Section } from '../components'; +import { Window } from '../layouts'; + +interface MedalProps { + medals: Medal[]; +} + +interface Medal { + round_id: string; + medal_type?: string; + medal_icon?: string; + xeno_medal?: BooleanLike; + recipient_name?: string; + recipient_role?: string; + giver_name?: string; + citation?: string; +} + +export const MedalsViewer = (props, context) => { + const { data, act } = useBackend(context); + const { medals } = data; + + return ( + + + {medals.map((medal) => { + const medalType = medal.medal_type + ? medal.medal_type + : 'Unknown Medal'; + const sectionTitle = `Round ${medal.round_id} - ${medalType}`; + const sectionType = medal.xeno_medal ? 'xeno-medal' : 'human-medal'; + return ( +
    + Issued to{' '} + + {medal.recipient_name}{' '} + {!medal.xeno_medal && `(${medal.recipient_role})`} + {' '} + by {medal.giver_name} for:
    + {!medal.xeno_medal && ( + + )} + {medal.citation} +
    + ); + })} +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/CameraPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/CameraPanel.tsx new file mode 100644 index 000000000000..f3a1197e9802 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/CameraPanel.tsx @@ -0,0 +1,37 @@ +import { MfdProps, MfdPanel } from './MultifunctionDisplay'; +import { ByondUi } from '../../components'; +import { useBackend } from '../../backend'; +import { Box } from '../../components'; +import { mfdState } from './stateManagers'; +import { CameraProps } from './types'; + +export const CameraMfdPanel = (props: MfdProps, context) => { + const { act } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + return ( + act('nvg-enable') }, + { children: 'nvgoff', onClick: () => act('nvg-disable') }, + ]} + bottomButtons={[{ children: 'EXIT', onClick: () => setPanelState('') }]}> + + + ); +}; + +const CameraPanel = (_, context) => { + const { data } = useBackend(context); + return ( + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/EquipmentPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/EquipmentPanel.tsx new file mode 100644 index 000000000000..05a500563b52 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/EquipmentPanel.tsx @@ -0,0 +1,350 @@ +import { useBackend } from '../../backend'; +import { Box } from '../../components'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; +import { MfdProps, MfdPanel } from './MultifunctionDisplay'; +import { mfdState, useEquipmentState, useWeaponState } from './stateManagers'; +import { EquipmentContext } from './types'; + +const equipment_xs = [140, 160, 320, 340, 180, 300, 240, 240, 240, 140, 340]; +const equipment_ys = [120, 100, 100, 120, 100, 100, 260, 300, 340, 320, 320]; + +const DrawWeapon = (props: { x: number; y: number }, context) => { + return ( + + ); +}; + +const DrawEquipmentBox = (props: { x: number; y: number }, context) => { + return ( + + ); +}; + +const equipment_text_xs = [ + 100, 120, 360, 380, 180, 320, 250, 250, 250, 100, 400, +]; +const equipment_text_ys = [120, 60, 60, 120, 20, 20, 240, 280, 320, 320, 320]; + +const DrawWeaponText = (props: { + x: number; + y: number; + desc: string; + sub_desc?: string; +}) => { + return ( + + {props.desc.split(' ').map((x) => ( + + {x} + + ))} + + {props.sub_desc && ( + + {props.sub_desc} + + )} + + ); +}; + +const DrawWeaponEquipment = (props: DropshipEquipment) => { + return ( + <> + + + + ); +}; + +const DrawMiscEquipment = (props: DropshipEquipment, context) => { + return ( + <> + + + + ); +}; + +const DrawEquipment = (props, context) => { + const { data } = useBackend(context); + return ( + <> + {data.equipment_data.map((x) => { + if (x.is_weapon) { + return ; + } + return ; + })} + + ); +}; + +const DrawDropshipOutline = () => { + return ( + <> + {/* cockpit */} + + + {/* left body */} + + + {/* left weapon */} + + {/* left engine */} + + + {/* left tail */} + + + {/* right body */} + + {/* right weapon */} + + + {/* right engine */} + + + {/* right tail */} + + + ); +}; +const DrawAirlocks = () => { + return ( + <> + {/* cockpit door */} + + {/* left airlock */} + + {/* right airlock */} + + {/* rear ramp */} + + + ); +}; + +const EquipmentPanel = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +}; + +const ShipOutline = () => { + return ; +}; + +export const EquipmentMfdPanel = (props: MfdProps, context) => { + const { data } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + + const { setWeaponState } = useWeaponState(context, props.panelStateId); + + const { setEquipmentState } = useEquipmentState(context, props.panelStateId); + + const weap1 = data.equipment_data.find((x) => x.mount_point === 1); + const weap2 = data.equipment_data.find((x) => x.mount_point === 2); + const weap3 = data.equipment_data.find((x) => x.mount_point === 3); + const weap4 = data.equipment_data.find((x) => x.mount_point === 4); + const support1 = data.equipment_data.find((x) => x.mount_point === 7); + const support2 = data.equipment_data.find((x) => x.mount_point === 8); + const support3 = data.equipment_data.find((x) => x.mount_point === 9); + + const elec1 = data.equipment_data.find((x) => x.mount_point === 5); + const elec2 = data.equipment_data.find((x) => x.mount_point === 6); + + const generateWeaponButton = (equip: DropshipEquipment) => { + return { + children: equip.shorthand, + onClick: () => { + setWeaponState(equip.mount_point); + setPanelState('weapon'); + }, + }; + }; + + const generateEquipmentButton = (equip: DropshipEquipment) => { + return { + children: equip.shorthand, + onClick: () => { + setEquipmentState(equip.mount_point); + setPanelState('support'); + }, + }; + }; + + const generateButton = (equip: DropshipEquipment) => { + return equip.is_weapon + ? generateWeaponButton(equip) + : generateEquipmentButton(equip); + }; + + return ( + setPanelState('firemission'), + }, + {}, + {}, + ]} + leftButtons={[ + weap2 ? generateButton(weap2) : {}, + weap1 ? generateButton(weap1) : {}, + support1 ? generateButton(support1) : {}, + support2 ? generateButton(support2) : {}, + support3 ? generateButton(support3) : {}, + ]} + rightButtons={[ + weap3 ? generateButton(weap3) : {}, + weap4 ? generateButton(weap4) : {}, + elec1 ? generateButton(elec1) : {}, + elec2 ? generateButton(elec2) : {}, + {}, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx new file mode 100644 index 000000000000..fd71dab8f045 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/FiremissionPanel.tsx @@ -0,0 +1,580 @@ +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { Box, Button, Divider, Icon, Input, Stack } from '../../components'; +import { useBackend, useLocalState } from '../../backend'; +import { CasFiremission, FiremissionContext } from './types'; +import { range } from 'common/collections'; +import { DropshipEquipment, DropshipProps } from '../DropshipWeaponsConsole'; +import { fmEditState, fmState, fmWeaponEditState, mfdState } from './stateManagers'; + +const sortWeapons = (a: DropshipEquipment, b: DropshipEquipment) => { + return (a?.mount_point ?? 0) < (b?.mount_point ?? 0) ? -1 : 1; +}; + +const CreateFiremissionPanel = (props, context) => { + const { act } = useBackend(context); + const [fmName, setFmName] = useLocalState(context, 'fmname', ''); + return ( + + +

    Create Fire Mission

    +
    + + Firemission Name{' '} + setFmName(value)} + onEnter={() => { + if (fmName === '') { + return; + } + act('firemission-create', { + firemission_name: fmName, + firemission_length: 12, + }); + setFmName(''); + }} + /> + +
    + ); +}; + +const FiremissionList = (props, context) => { + const { data } = useBackend(context); + return ( + + +

    Existing Fire Missions

    +
    + + {data.firemission_data.map((x, i) => ( + + FM {i + 1}. {x.name} + + ))} + +
    + ); +}; + +const FiremissionMfdHomePage = (props: MfdProps, context) => { + const { setSelectedFm } = fmState(context, props.panelStateId); + const [fmName, setFmName] = useLocalState(context, 'fmname', ''); + const { data, act } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + + const firemission_mapper = (x: number) => { + const firemission = + data.firemission_data.length > x ? data.firemission_data[x] : undefined; + return { + children: firemission ? ( +
    + FM {x + 1}
    {firemission?.name} +
    + ) : undefined, + onClick: () => setSelectedFm(firemission?.name), + }; + }; + + const [fmOffset, setFmOffset] = useLocalState( + context, + `${props.panelStateId}_fm_select_offset`, + 0 + ); + + const left_firemissions = range(fmOffset, fmOffset + 5).map( + firemission_mapper + ); + const right_firemissions = range(fmOffset + 5, fmOffset + 10).map( + firemission_mapper + ); + + return ( + { + act('firemission-create', { + firemission_name: fmName, + firemission_length: 12, + }); + setFmName(''); + }, + } + : {}, + { + children: , + onClick: () => { + if (fmOffset >= 1) { + setFmOffset(fmOffset - 1); + } + }, + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + {}, + {}, + {}, + { + children: , + onClick: () => { + if (fmOffset + 8 < data.firemission_data.length) { + setFmOffset(fmOffset + 1); + } + }, + }, + ]}> + + + + + + + + + + + + + + + + + + ); +}; + +interface GimbalInfo { + min: number; + max: number; + values: string[]; +} + +const ViewFiremissionMfdPanel = ( + props: MfdProps & { firemission: CasFiremission }, + context +) => { + const { data, act } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + const { setSelectedFm } = fmState(context, props.panelStateId); + const { editFm, setEditFm } = fmEditState(context, props.panelStateId); + const { editFmWeapon, setEditFmWeapon } = fmWeaponEditState( + context, + props.panelStateId + ); + + const rightButtons = [ + editFmWeapon === undefined + ? {} + : { children: 'BACK', onClick: () => setEditFmWeapon(undefined) }, + ...data.equipment_data + .filter((x) => x.is_weapon === 1) + .sort((a, b) => (a.mount_point < b.mount_point ? -1 : 1)) + .map((x) => { + return { + children: `${x.shorthand} ${x.mount_point}`, + onClick: () => setEditFmWeapon(x.mount_point), + }; + }), + ]; + + const firemission = props.firemission; + return ( + { + act('firemission-delete', { + firemission_name: firemission.mission_tag, + }); + setSelectedFm(undefined); + }, + }, + { children: 'F-MISS', onClick: () => setSelectedFm(undefined) }, + editFm + ? { children: 'VIEW', onClick: () => setEditFm(false) } + : { children: 'EDIT', onClick: () => setEditFm(true) }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]} + rightButtons={editFm === true ? rightButtons : []}> + + + + + + + + +

    Firemission:

    +
    + +

    {firemission.name}

    +
    +
    +
    + + + +
    +
    + +
    +
    +
    + ); +}; + +const FiremissionView = (props: MfdProps & { fm: CasFiremission }, context) => { + const { data } = useBackend(context); + + const { editFm } = fmEditState(context, props.panelStateId); + + const { editFmWeapon } = fmWeaponEditState(context, props.panelStateId); + + const weaponData = props.fm.records + .map((x) => data.equipment_data.find((y) => y.mount_point === x.weapon)) + .filter((x) => x !== undefined) + .sort(sortWeapons) as Array; + + const selectedWeapon = weaponData.find((x) => x.mount_point === editFmWeapon); + const displayDetail = editFm; + return ( + + + + Weapon + Ammunition + {!displayDetail && ( + <> + Consumption + + + )} + {displayDetail && ( + <> + Gimbals + Fire Delay + Offset + + )} + + + + + {range(1, 13).map((x) => ( + + {x} + + ))} + + + + + + + {!editFm && + weaponData.map((x) => ( + + + + ))} + {editFm && selectedWeapon === undefined && ( + Select weapon on right panel + )} + {editFm && selectedWeapon && ( + + + + )} + + ); +}; + +const gimbals: GimbalInfo[] = [ + { min: -1, max: -1, values: [] }, + { min: -6, max: 0, values: ['-6', '-5', '-4', '-3', '-2', '-1', '0', '-'] }, + { min: -6, max: 0, values: ['-6', '-5', '-4', '-3', '-2', '-1', '0', '-'] }, + { min: 0, max: 6, values: ['-', '0', '1', '2', '3', '4', '5', '6'] }, + { min: 0, max: 6, values: ['-', '0', '1', '2', '3', '4', '5', '6'] }, +]; + +const OffsetOverview = ( + props: MfdProps & { fm: CasFiremission; equipment: DropshipEquipment } +) => { + const weaponFm = props.fm.records.find( + (x) => x.weapon === props.equipment.mount_point + ); + if (weaponFm === undefined) { + return <>error; + } + const ammoConsumption = weaponFm.offsets + .map((x) => (x !== '-' ? props.equipment.burst ?? 0 : 0)) + .reduce((accumulator, currentValue) => accumulator + currentValue, 0); + return ( + <> + + {props.equipment.shorthand} {props.equipment.mount_point} + + + {props.equipment.ammo} / {props.equipment.max_ammo} + + + {ammoConsumption} + + + ); +}; + +const OffsetDetailed = ( + props: MfdProps & { + fm: CasFiremission; + equipment: DropshipEquipment; + } +) => { + const availableGimbals = gimbals[props.equipment.mount_point]; + const weaponFm = props.fm.records.find( + (x) => x.weapon === props.equipment.mount_point + ); + if (weaponFm === undefined) { + return <>error; + } + const ammoConsumption = weaponFm.offsets + .map((x) => (x === '-' ? props.equipment.burst : 0)) + .reduce( + (accumulator, currentValue) => (accumulator ?? 0) + (currentValue ?? 0), + 0 + ); + return ( + <> + + {props.equipment.shorthand} {props.equipment.mount_point} + + + {props.equipment.ammo} / {props.equipment.max_ammo} using{' '} + {ammoConsumption} per run. + + + {availableGimbals.min} to {availableGimbals.max} + + + {(props.equipment.firemission_delay ?? 0) - 1} + + + ); +}; + +const FMOffsetError = ( + props: MfdProps & { + fm: CasFiremission; + equipment: DropshipEquipment; + displayDetail?: boolean; + } +) => { + return ( + + {props.displayDetail ? ( + + ) : ( + + )} + + + + Unable to set firemission offsets. +
    + Offsets depend on ammunition. +
    + Load ammunition to adjust. +
    +
    + ); +}; + +const FMOffsetStack = ( + props: MfdProps & { + fm: CasFiremission; + equipment: DropshipEquipment; + displayDetail?: boolean; + }, + context +) => { + const { fm } = props; + const { act } = useBackend(context); + const offsets = props.fm.records.find( + (x) => x.weapon === props.equipment.mount_point + )?.offsets; + + const { editFm } = fmEditState(context, props.panelStateId); + const availableGimbals = gimbals[props.equipment.mount_point]; + + const firemissionOffsets = props.equipment.firemission_delay ?? 0; + + if (firemissionOffsets === 0) { + return ; + } + + const availableMap = range(0, 13).map((_) => true); + offsets?.forEach((x, index) => { + if (x === undefined || x === '-') { + return; + } + // if offset is 0 then not allowed on strike. + if (firemissionOffsets === 0) { + range(0, availableMap.length - 1).forEach( + (value) => (availableMap[value] = false) + ); + return; + } + const indexMin = Math.max(index - firemissionOffsets + 1, 0); + const indexMax = Math.max( + Math.min(index + firemissionOffsets, availableMap.length - 1), + indexMin + ); + range(indexMin, indexMax).forEach((value) => (availableMap[value] = false)); + }); + + return ( + + {props.displayDetail ? ( + + ) : ( + + )} + + + {editFm && + availableGimbals.values.map((x) => ( + + {x === '-' ? 'UNSET' : x} + + ))} + + + + + + {editFm === false && + offsets && + offsets.map((x, i) => ( + + {x} + + ))} + + {editFm === true && + offsets && + offsets.map((x, i) => { + if (availableMap[i] === false && x === '-') { + return ( + + WEAPON BUSY + + ); + } + if (props.equipment.firemission_delay === 0) { + return ( + + + Ammo unusable for firemissions + + + ); + } + return ( + + + {availableGimbals.values.map((y) => { + const is_selected = x.toString() === y; + return ( + + + + ); + })} + + + ); + })} + + ); +}; + +export const FiremissionMfdPanel = (props: MfdProps, context) => { + const { data, act } = useBackend(context); + const { selectedFm } = fmState(context, props.panelStateId); + const firemission = data.firemission_data.find((x) => x.name === selectedFm); + if (firemission === undefined) { + return ; + } + return ( + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/FultonPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/FultonPanel.tsx new file mode 100644 index 000000000000..05d33e51a8d1 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/FultonPanel.tsx @@ -0,0 +1,161 @@ +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { Box, Stack } from '../../components'; +import { useBackend, useLocalState } from '../../backend'; +import { mfdState, useEquipmentState } from './stateManagers'; +import { range } from 'common/collections'; +import { Icon } from '../../components'; +import { FultonProps } from './types'; + +export const FultonMfdPanel = (props: MfdProps, context) => { + const { data, act } = useBackend(context); + const [fulltonOffset, setFultonOffset] = useLocalState( + context, + `${props.panelStateId}_fultonoffset`, + 0 + ); + const { setPanelState } = mfdState(context, props.panelStateId); + const { equipmentState } = useEquipmentState(context, props.panelStateId); + + const fultons = [...data.fulton_targets]; + const regex = /(\d+)/; + + const result = data.equipment_data.find( + (x) => x.mount_point === equipmentState + ); + + const fulton_mapper = (x: number) => { + const target = fultons.length > x ? fultons[x] : undefined; + return { + children: target ? (regex.exec(target) ?? [target])[0] : undefined, + onClick: () => + act('fulton-target', { + equipment_id: result?.mount_point, + ref: target, + }), + }; + }; + + const left_targets = range(fulltonOffset, fulltonOffset + 5).map( + fulton_mapper + ); + + const right_targets = range(fulltonOffset + 5, fulltonOffset + 8).map( + fulton_mapper + ); + + const all_targets = range(fulltonOffset, fulltonOffset + 8) + .map((x) => fultons[x]) + .filter((x) => x !== undefined); + + return ( + , + onClick: () => { + if (fulltonOffset >= 1) { + setFultonOffset(fulltonOffset - 1); + } + }, + }, + ...right_targets, + { + children: , + onClick: () => { + if (fulltonOffset + 8 < data.fulton_targets.length) { + setFultonOffset(fulltonOffset + 1); + } + }, + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + + + + + {all_targets.length > 0 && ( + + )} + {all_targets.length > 1 && ( + + )} + {all_targets.length > 2 && ( + + )} + {all_targets.length > 3 && ( + + )} + {all_targets.length > 4 && ( + + )} + + + + + +

    Active Fultons

    +
    + {all_targets.map((x) => ( + +

    {x}

    +
    + ))} +
    +
    + + + {all_targets.length > 5 && ( + + )} + {all_targets.length > 6 && ( + + )} + {all_targets.length > 7 && ( + + )} + + +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/MGPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/MGPanel.tsx new file mode 100644 index 000000000000..dc6df25e17c1 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/MGPanel.tsx @@ -0,0 +1,69 @@ +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { Box, Stack } from '../../components'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; +import { useBackend } from '../../backend'; +import { mfdState, useEquipmentState } from './stateManagers'; +import { EquipmentContext, MGSpec } from './types'; + +const MgPanel = (props: DropshipEquipment) => { + const mgData = props.data as MGSpec; + return ( + + + + + + + +

    {props.name}

    +
    + +

    + Health: {mgData.health} / {mgData.health_max} +

    +
    + +

    + Ammo {mgData.rounds} / {mgData.max_rounds} +

    +
    + +

    {mgData.deployed === 1 ? 'DEPLOYED' : 'UNDEPLOYED'}

    +
    +
    +
    + + + +
    + ); +}; + +export const MgMfdPanel = (props: MfdProps, context) => { + const { act, data } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + const { equipmentState } = useEquipmentState(context, props.panelStateId); + const mg = data.equipment_data.find((x) => x.mount_point === equipmentState); + return ( + setPanelState('equipment') }, + ]} + leftButtons={[ + { + children: 'DEPLOY', + onClick: () => + act('deploy-equipment', { equipment_id: mg?.mount_point }), + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + {mg && } + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/MapPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/MapPanel.tsx new file mode 100644 index 000000000000..83ecaac24a5c --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/MapPanel.tsx @@ -0,0 +1,37 @@ +import { useBackend } from '../../backend'; +import { Box } from '../../components'; +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { ByondUi } from '../../components'; +import { MapProps } from './types'; +import { mfdState } from './stateManagers'; + +export const MapMfdPanel = (props: MfdProps, context) => { + const { setPanelState } = mfdState(context, props.panelStateId); + return ( + setPanelState(''), + }, + ]}> + + + ); +}; + +const MapPanel = (_, context) => { + const { data } = useBackend(context); + return ( + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/MedevacPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/MedevacPanel.tsx new file mode 100644 index 000000000000..634b4ef2a52e --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/MedevacPanel.tsx @@ -0,0 +1,208 @@ +import { MfdProps, MfdPanel } from './MultifunctionDisplay'; +import { Box, Divider, Flex, Stack } from '../../components'; +import { useBackend, useLocalState } from '../../backend'; +import { range } from 'common/collections'; +import { Icon } from '../../components'; +import { mfdState, useEquipmentState } from './stateManagers'; +import { MedevacContext, MedevacTargets } from './types'; + +const MedevacOccupant = (props: { data: MedevacTargets }) => ( + + + + + {props.data.occupant ?? 'Empty'} + {props.data.area ?? 'Unknown'} + + + + + + HP +
    + {props.data.damage?.hp} +
    + + Brute +
    + {props.data.damage?.brute} +
    + + Fire +
    + {props.data.damage?.fire} +
    + + Tox +
    + {props.data.damage?.tox} +
    + + Oxy +
    {props.data.damage?.oxy} +
    +
    +
    +
    +
    +); + +export const MedevacMfdPanel = (props: MfdProps, context) => { + const [medevacOffset, setMedevacOffset] = useLocalState( + context, + `${props.panelStateId}_medevacoffset`, + 0 + ); + const { setPanelState } = mfdState(context, props.panelStateId); + const { equipmentState } = useEquipmentState(context, props.panelStateId); + + const { data, act } = useBackend(context); + + const result = data.equipment_data.find( + (x) => x.mount_point === equipmentState + ); + const medevacs = data.medevac_targets === null ? [] : data.medevac_targets; + const medevac_mapper = (x: number) => { + const target = medevacs.length > x ? medevacs[x] : undefined; + return { + children: target ? target.occupant?.split(' ')[0] ?? 'Empty' : undefined, + onClick: () => + act('medevac-target', { + equipment_id: result?.mount_point, + ref: target?.ref, + }), + }; + }; + + const left_targets = range(medevacOffset, medevacOffset + 5).map( + medevac_mapper + ); + + const right_targets = range(medevacOffset + 5, medevacOffset + 8).map( + medevac_mapper + ); + + const all_targets = range(medevacOffset, medevacOffset + 8) + .map((x) => data.medevac_targets[x]) + .filter((x) => x !== undefined); + return ( + , + onClick: () => { + if (medevacOffset >= 1) { + setMedevacOffset(medevacOffset - 1); + } + }, + }, + ...right_targets, + { + children: , + onClick: () => { + if (medevacOffset + 8 < data.medevac_targets.length) { + setMedevacOffset(medevacOffset + 1); + } + }, + }, + ]} + topButtons={[ + { + children: 'EQUIP', + onClick: () => setPanelState('equipment'), + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + + + + + {all_targets.length > 0 && ( + + )} + {all_targets.length > 1 && ( + + )} + {all_targets.length > 2 && ( + + )} + {all_targets.length > 3 && ( + + )} + {all_targets.length > 4 && ( + + )} + + + + + +

    Medevac Requests

    +
    + {all_targets.map((x) => ( + <> + + + + + + ))} +
    +
    + + + {all_targets.length > 5 && ( + + )} + {all_targets.length > 6 && ( + + )} + {all_targets.length > 7 && ( + + )} + + +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/MultifunctionDisplay.tsx b/tgui/packages/tgui/interfaces/MfdPanels/MultifunctionDisplay.tsx new file mode 100644 index 000000000000..9df7eaffcde4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/MultifunctionDisplay.tsx @@ -0,0 +1,152 @@ +import { useBackend } from '../../backend'; +import { Button, Flex } from '../../components'; +import { CrtPanel } from '../CrtPanel'; +import { Table, TableCell, TableRow } from '../../components/Table'; +import { InfernoNode } from 'inferno'; +import { ButtonProps } from './types'; +import { classes } from 'common/react'; + +export interface MfdProps { + panelStateId: string; + topButtons?: Array; + leftButtons?: Array; + rightButtons?: Array; + bottomButtons?: Array; + children?: InfernoNode; +} + +export const MfdButton = (props: ButtonProps, context) => { + const { act } = useBackend(context); + return ( + + ); +}; + +export const EmptyMfdButton = () => { + return ; +}; + +export const HorizontalPanel = ( + props: { buttons: Array }, + context +) => { + return ( + + {props.buttons.map((x, i) => ( + + {x ? : } + + ))} + + ); +}; + +export const VerticalPanel = ( + props: { buttons?: Array }, + context +) => { + return ( + + {props.buttons?.map((x, i) => ( + + {x ? : } + + ))} + + ); +}; + +const HexScrew = () => { + return ( + + + + + ); +}; + +export const MfdPanel = (props: MfdProps) => { + const topProps = props.topButtons ?? []; + const botProps = props.bottomButtons ?? []; + const leftProps = props.leftButtons ?? []; + const rightProps = props.rightButtons ?? []; + + const topButtons = Array.from({ length: 5 }).map((_, i) => topProps[i] ?? {}); + const bottomButtons = Array.from({ length: 5 }).map( + (_, i) => botProps[i] ?? {} + ); + const leftButtons = Array.from({ length: 5 }).map( + (_, i) => leftProps[i] ?? {} + ); + const rightButtons = Array.from({ length: 5 }).map( + (_, i) => rightProps[i] ?? {} + ); + return ( + + + + + + + + + + + + + + + + + + + {props.children} + + + + + + + + + + + + + + + + + +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/SentryPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/SentryPanel.tsx new file mode 100644 index 000000000000..d8ea220ec986 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/SentryPanel.tsx @@ -0,0 +1,89 @@ +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { Box, Stack } from '../../components'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; +import { useBackend } from '../../backend'; +import { mfdState, useEquipmentState } from './stateManagers'; +import { EquipmentContext, SentrySpec } from './types'; + +const SentryPanel = (props: DropshipEquipment, context) => { + const sentryData = props.data as SentrySpec; + return ( + + + + + + + +

    {props.name}

    +
    + +

    + Health: {sentryData.health} / {sentryData.health_max} +

    +
    + +

    + Ammo {sentryData.rounds} / {sentryData.max_rounds} +

    +
    + +

    {sentryData.deployed === 1 ? 'DEPLOYED' : 'UNDEPLOYED'}

    +
    + +

    + {sentryData.engaged === 1 + ? 'ENGAGED' + : sentryData.deployed === 1 + ? 'STANDBY' + : 'OFFLINE'} +

    +
    +
    +
    + + + +
    + ); +}; + +export const SentryMfdPanel = (props: MfdProps, context) => { + const { act, data } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + const { equipmentState } = useEquipmentState(context, props.panelStateId); + const sentry = data.equipment_data.find( + (x) => x.mount_point === equipmentState + ); + const deployLabel = + (sentry?.data?.deployed ?? 0) === 1 ? 'RETRACT' : 'DEPLOY'; + return ( + setPanelState('equipment') }, + ]} + leftButtons={[ + { + children: deployLabel, + onClick: () => + act('deploy-equipment', { equipment_id: sentry?.mount_point }), + }, + { + children: 'CAMERA', + onClick: () => + act('set-camera-sentry', { equipment_id: sentry?.mount_point }), + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + + {sentry && } + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/SpotlightPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/SpotlightPanel.tsx new file mode 100644 index 000000000000..ce241420497e --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/SpotlightPanel.tsx @@ -0,0 +1,60 @@ +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { Box, Stack } from '../../components'; +import { useBackend } from '../../backend'; +import { mfdState, useEquipmentState } from './stateManagers'; +import { EquipmentContext, SpotlightSpec } from './types'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; + +const SpotPanel = (props: DropshipEquipment) => { + const spotData = props.data as SpotlightSpec; + return ( + + + + + + + +

    {props.name}

    +
    +
    +
    + + + +
    + ); +}; + +export const SpotlightMfdPanel = (props: MfdProps, context) => { + const { act, data } = useBackend(context); + const { setPanelState } = mfdState(context, props.panelStateId); + const { equipmentState } = useEquipmentState(context, props.panelStateId); + const spotlight = data.equipment_data.find( + (x) => x.mount_point === equipmentState + ); + return ( + setPanelState('equipment') }, + ]} + leftButtons={[ + { + children: 'DEPLOY', + onClick: () => + act('deploy-equipment', { equipment_id: spotlight?.mount_point }), + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + ]}> + + {spotlight && } + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/SupportPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/SupportPanel.tsx new file mode 100644 index 000000000000..1eca123173b0 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/SupportPanel.tsx @@ -0,0 +1,62 @@ +import { useBackend } from '../../backend'; +import { MfdPanel, MfdProps } from './MultifunctionDisplay'; +import { MedevacMfdPanel } from './MedevacPanel'; +import { FultonMfdPanel } from './FultonPanel'; +import { Box, Stack } from '../../components'; +import { SentryMfdPanel } from './SentryPanel'; +import { MgMfdPanel } from './MGPanel'; +import { SpotlightMfdPanel } from './SpotlightPanel'; +import { EquipmentContext } from './types'; +import { mfdState, useEquipmentState } from './stateManagers'; + +export const SupportMfdPanel = (props: MfdProps, context) => { + const { equipmentState } = useEquipmentState(context, props.panelStateId); + + const { setPanelState } = mfdState(context, props.panelStateId); + + const { data } = useBackend(context); + const result = data.equipment_data.find( + (x) => x.mount_point === equipmentState + ); + if (result?.shorthand === 'Medevac') { + return ; + } + if (result?.shorthand === 'Fulton') { + return ; + } + if (result?.shorthand === 'Sentry') { + return ; + } + if (result?.shorthand === 'MG') { + return ; + } + if (result?.shorthand === 'Spotlight') { + return ; + } + return ( + setPanelState(''), + }, + ]}> + + + +

    Component {result?.shorthand} not found

    +
    + +

    Is this authorised equipment?

    +
    + +

    + Contact your local WY representative for further upgrade options +

    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/TargetAquisition.tsx b/tgui/packages/tgui/interfaces/MfdPanels/TargetAquisition.tsx new file mode 100644 index 000000000000..49f22db18104 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/TargetAquisition.tsx @@ -0,0 +1,519 @@ +import { range } from 'common/collections'; +import { useBackend, useLocalState, useSharedState } from '../../backend'; +import { Box, Icon, Stack } from '../../components'; +import { MfdProps, MfdPanel } from './MultifunctionDisplay'; +import { mfdState, useFiremissionXOffsetValue, useFiremissionYOffsetValue, useLazeTarget } from './stateManagers'; +import { CasFiremission, EquipmentContext, FiremissionContext, TargetContext } from './types'; + +const directionLookup = new Map(); +directionLookup['SOUTH'] = 2; +directionLookup['NORTH'] = 1; +directionLookup['WEST'] = 8; +directionLookup['EAST'] = 4; + +const useStrikeMode = (context) => { + const [data, set] = useSharedState( + context, + 'strike-mode', + undefined + ); + return { + strikeMode: data, + setStrikeMode: set, + }; +}; + +const useStrikeDirection = (context) => { + const [data, set] = useSharedState( + context, + 'strike-direction', + undefined + ); + return { + strikeDirection: data, + setStrikeDirection: set, + }; +}; + +const useWeaponSelectedState = (context) => { + const [data, set] = useSharedState( + context, + 'target-weapon-select', + undefined + ); + return { + weaponSelected: data, + setWeaponSelected: set, + }; +}; + +const useTargetFiremissionSelect = (context) => { + const [data, set] = useSharedState( + context, + 'target-firemission-select', + undefined + ); + return { + firemissionSelected: data, + setFiremissionSelected: set, + }; +}; + +const useTargetOffset = (context, panelId: string) => { + const [data, set] = useLocalState(context, `${panelId}_targetOffset`, 0); + return { + targetOffset: data, + setTargetOffset: set, + }; +}; + +const useTargetSubmenu = (context, panelId: string) => { + const [data, set] = useSharedState( + context, + `${panelId}_target_left`, + undefined + ); + return { + leftButtonMode: data, + setLeftButtonMode: set, + }; +}; + +const TargetLines = (props: { panelId: string }, context) => { + const { data } = useBackend< + EquipmentContext & FiremissionContext & TargetContext + >(context); + const { targetOffset } = useTargetOffset(context, props.panelId); + return ( + <> + {data.targets_data.length > targetOffset && ( + + )} + {data.targets_data.length > targetOffset + 1 && ( + + )} + {data.targets_data.length > targetOffset + 2 && ( + + )} + + {data.targets_data.length > targetOffset + 3 && ( + + )} + {data.targets_data.length > targetOffset + 4 && ( + + )} + + ); +}; + +const leftButtonGenerator = (context, panelId: string) => { + const { data } = useBackend< + EquipmentContext & FiremissionContext & TargetContext + >(context); + const { leftButtonMode, setLeftButtonMode } = useTargetSubmenu( + context, + panelId + ); + const { strikeMode, setStrikeMode } = useStrikeMode(context); + const { setStrikeDirection } = useStrikeDirection(context); + const { firemissionSelected, setFiremissionSelected } = + useTargetFiremissionSelect(context); + const { weaponSelected, setWeaponSelected } = useWeaponSelectedState(context); + const weapons = data.equipment_data.filter((x) => x.is_weapon); + if (leftButtonMode === undefined) { + return [ + { + children: 'STRIKE', + onClick: () => setLeftButtonMode('STRIKE'), + }, + { + children: 'VECTOR', + onClick: () => setLeftButtonMode('VECTOR'), + }, + ]; + } + if (leftButtonMode === 'STRIKE') { + if (strikeMode === 'weapon' && weaponSelected === undefined) { + return weapons.map((x) => { + return { + children: x.shorthand, + onClick: () => { + setWeaponSelected(x.mount_point); + setLeftButtonMode(undefined); + }, + }; + }); + } + if (strikeMode === 'firemission' && firemissionSelected === undefined) { + return data.firemission_data.map((x) => { + return { + children: x.name, + onClick: () => { + setFiremissionSelected(x); + setLeftButtonMode(undefined); + }, + }; + }); + } + return [ + { children: 'CANCEL', onClick: () => setLeftButtonMode(undefined) }, + { + children: 'WEAPON', + onClick: () => { + setWeaponSelected(undefined); + setStrikeMode('weapon'); + }, + }, + { + children: 'F-MISS', + onClick: () => { + setFiremissionSelected(undefined); + setStrikeMode('firemission'); + }, + }, + ]; + } + if (leftButtonMode === 'VECTOR') { + return [ + { children: 'CANCEL', onClick: () => setLeftButtonMode(undefined) }, + { + children: 'SOUTH', + onClick: () => { + setStrikeDirection('SOUTH'); + setLeftButtonMode(undefined); + }, + }, + { + children: 'NORTH', + onClick: () => { + setStrikeDirection('NORTH'); + setLeftButtonMode(undefined); + }, + }, + { + children: 'EAST', + onClick: () => { + setStrikeDirection('EAST'); + setLeftButtonMode(undefined); + }, + }, + { + children: 'WEST', + onClick: () => { + setStrikeDirection('WEST'); + setLeftButtonMode(undefined); + }, + }, + ]; + } + + return []; +}; + +const lazeMapper = (context, offset) => { + const { act, data } = useBackend(context); + const { setSelectedTarget } = useLazeTarget(context); + + const { fmXOffsetValue } = useFiremissionXOffsetValue(context); + const { fmYOffsetValue } = useFiremissionYOffsetValue(context); + + const target = + data.targets_data.length > offset ? data.targets_data[offset] : undefined; + const isDebug = target?.target_name.includes('debug'); + + const buttomLabel = () => { + if (isDebug) { + return 'd-' + target?.target_name.split(' ')[3]; + } + const label = target?.target_name.split(' ')[0] ?? ''; + const squad = label[0] ?? undefined; + const number = label.split('-')[1] ?? undefined; + return squad !== undefined && number !== undefined + ? `${squad}-${number}` + : target?.target_name; + }; + + return { + children: buttomLabel(), + onClick: target + ? () => { + setSelectedTarget(target.target_tag); + act('firemission-dual-offset-camera', { + 'target_id': target.target_tag, + 'x_offset_value': fmXOffsetValue, + 'y_offset_value': fmYOffsetValue, + }); + } + : () => { + act('set-camera', { 'equipment_id': null }); + setSelectedTarget(undefined); + }, + }; +}; + +export const TargetAquisitionMfdPanel = (props: MfdProps, context) => { + const { panelStateId } = props; + + const { act, data } = useBackend< + EquipmentContext & FiremissionContext & TargetContext + >(context); + + const { setPanelState } = mfdState(context, panelStateId); + const { selectedTarget, setSelectedTarget } = useLazeTarget(context); + const { strikeMode } = useStrikeMode(context); + const { strikeDirection } = useStrikeDirection(context); + const { weaponSelected } = useWeaponSelectedState(context); + const { firemissionSelected } = useTargetFiremissionSelect(context); + const { targetOffset, setTargetOffset } = useTargetOffset( + context, + panelStateId + ); + + const { fmXOffsetValue } = useFiremissionXOffsetValue(context); + const { fmYOffsetValue } = useFiremissionYOffsetValue(context); + + const lazes = range(0, 5).map((x) => + x > data.targets_data.length ? undefined : data.targets_data[x] + ); + + const strikeConfigLabel = + strikeMode === 'weapon' + ? data.equipment_data.find((x) => x.mount_point === weaponSelected)?.name + : firemissionSelected !== undefined + ? data.firemission_data.find( + (x) => x.mission_tag === firemissionSelected.mission_tag + )?.name + : 'NONE'; + + const lazeIndex = lazes.findIndex((x) => x?.target_tag === selectedTarget); + const strikeReady = strikeMode !== undefined && lazeIndex !== -1; + + const targets = range(targetOffset, targetOffset + 5).map((x) => + lazeMapper(context, x) + ); + + const getLastName = () => { + const target = data.targets_data[data.targets_data.length - 1] ?? undefined; + const isDebug = target?.target_name.includes('debug'); + if (isDebug) { + return 'debug ' + target.target_name.split(' ')[3]; + } + const label = target?.target_name.split(' ')[0] ?? ''; + const squad = label[0] ?? undefined; + const number = label.split('-')[1] ?? undefined; + + return squad !== undefined && number !== undefined + ? `${squad}-${number}` + : target?.target_name; + }; + + if ( + selectedTarget && + data.targets_data.find((x) => `${x.target_tag}` === `${selectedTarget}`) === + undefined + ) { + setSelectedTarget(undefined); + } + + return ( + { + if (strikeMode === undefined) { + return; + } + if (strikeMode === 'firemission') { + act('firemission-execute', { + tag: firemissionSelected?.mission_tag, + direction: strikeDirection + ? directionLookup[strikeDirection] + : 1, + target_id: selectedTarget, + offset_x_value: fmXOffsetValue, + offset_y_value: fmYOffsetValue, + }); + } + if (strikeMode === 'weapon') { + act('fire-weapon', { eqp_tag: weaponSelected }); + } + }, + }, + {}, + {}, + {}, + { + children: targetOffset > 0 ? : undefined, + onClick: () => { + if (targetOffset > 0) { + setTargetOffset(targetOffset - 1); + } + }, + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + {}, + {}, + {}, + { + children: + targetOffset < lazes.length ? ( + + ) : undefined, + onClick: () => { + if (targetOffset < lazes.length) { + setTargetOffset(targetOffset + 1); + } + }, + }, + ]} + leftButtons={leftButtonGenerator(context, panelStateId)} + rightButtons={targets}> + + + + + + + + + + + + + + + + + + + + +

    Target Aquisition

    +
    + +

    Strike mode: {strikeMode?.toUpperCase() ?? 'NONE'}

    +
    + +

    Strike configuration {strikeConfigLabel}

    +
    + +

    + Target selected:{' '} + {lazes.find((x) => x?.target_tag === selectedTarget) + ?.target_name ?? 'NONE'} +

    +
    + +

    Attack Vector {strikeDirection ?? 'NONE'}

    +
    + +

    + Offset {fmXOffsetValue},{fmYOffsetValue} +

    +
    + +

    + Guidance computer {strikeReady ? 'READY' : 'INCOMPLETE'} +

    +
    +
    +
    + + + + + {data.targets_data.length === 0 && ( + + + NO TARGETS + + + )} + {data.targets_data.length > 0 && ( + + + SELECT + + + TARGETS + + + {Math.min(5, data.targets_data.length)} of{' '} + {data.targets_data.length} + + {data.targets_data.length > 0 && ( + <> + + LATEST + + + {getLastName()} + + + )} + + )} + + + + +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/WeaponPanel.tsx b/tgui/packages/tgui/interfaces/MfdPanels/WeaponPanel.tsx new file mode 100644 index 000000000000..090001aa3ac9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/WeaponPanel.tsx @@ -0,0 +1,179 @@ +import { range } from 'common/collections'; +import { useBackend } from '../../backend'; +import { Box, Stack } from '../../components'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; +import { MfdProps, MfdPanel } from './MultifunctionDisplay'; +import { mfdState, useWeaponState } from './stateManagers'; +import { LazeTarget } from './types'; + +const EmptyWeaponPanel = (props, context) => { + return
    Nothing Listed
    ; +}; +interface EquipmentContext { + equipment_data: Array; + targets_data: Array; +} + +const getLazeButtonProps = (context) => { + const { act, data } = useBackend(context); + const lazes = range(0, 5).map((x) => + x > data.targets_data.length ? undefined : data.targets_data[x] + ); + const get_laze = (index: number) => { + const laze = lazes.find((_, i) => i === index); + if (laze === undefined) { + return { + children: '', + onClick: () => act('set-camera', { equipment_id: null }), + }; + } + return { + children: laze?.target_name.split(' ')[0] ?? 'NONE', + onClick: laze + ? () => act('set-camera', { 'equipment_id': laze.target_tag }) + : undefined, + }; + }; + return [get_laze(0), get_laze(1), get_laze(2), get_laze(3), get_laze(4)]; +}; + +const WeaponPanel = (props: { equipment: DropshipEquipment }, context) => { + return ( + + + + + ACTIONS + + {false && ( + + )} + {false && ( + + )} + {false && ( + + )} + + {false && ( + + )} + {false && ( + + )} + + + + + + +

    {props.equipment.name}

    +
    + +

    {props.equipment.ammo_name}

    +
    + +

    + Ammo {props.equipment.ammo} / {props.equipment.max_ammo} +

    +
    +
    +
    +
    + + + + + SELECT + + + TARGETS + + + + + + + + + + +
    + ); +}; + +export const WeaponMfdPanel = (props: MfdProps, context) => { + const { setPanelState } = mfdState(context, props.panelStateId); + const { weaponState } = useWeaponState(context, props.panelStateId); + const { data, act } = useBackend(context); + const weap = data.equipment_data.find((x) => x.mount_point === weaponState); + + return ( + act('fire-weapon', { eqp_tag: weap?.eqp_tag }), + }, + ]} + bottomButtons={[ + { + children: 'EXIT', + onClick: () => setPanelState(''), + }, + {}, + ]} + topButtons={[ + { + children: 'EQUIP', + onClick: () => setPanelState('equipment'), + }, + ]} + rightButtons={getLazeButtonProps(context)}> + + {weap ? : } + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/stateManagers.ts b/tgui/packages/tgui/interfaces/MfdPanels/stateManagers.ts new file mode 100644 index 000000000000..e639938eabf8 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/stateManagers.ts @@ -0,0 +1,109 @@ +import { useLocalState, useSharedState } from '../../backend'; + +export const useEquipmentState = (context, panelId: string) => { + const [data, set] = useSharedState( + context, + `${panelId}_equipmentstate`, + undefined + ); + return { + equipmentState: data, + setEquipmentState: set, + }; +}; + +export const fmState = (context, panelId: string) => { + const [data, set] = useLocalState( + context, + `${panelId}_selected_fm`, + undefined + ); + return { + selectedFm: data, + setSelectedFm: set, + }; +}; + +export const fmEditState = (context, panelId: string) => { + const [data, set] = useLocalState( + context, + `${panelId}_edit_fm`, + false + ); + return { + editFm: data, + setEditFm: set, + }; +}; + +export const fmWeaponEditState = (context, panelId: string) => { + const [data, set] = useLocalState( + context, + `${panelId}_edit_fm_weapon`, + undefined + ); + return { + editFmWeapon: data, + setEditFmWeapon: set, + }; +}; + +export const mfdState = (context, panelId: string) => { + const [data, set] = useSharedState( + context, + `${panelId}_panelstate`, + '' + ); + return { + panelState: data, + setPanelState: set, + }; +}; + +export const useWeaponState = (context, panelId: string) => { + const [data, set] = useSharedState( + context, + `${panelId}_weaponstate`, + undefined + ); + return { + weaponState: data, + setWeaponState: set, + }; +}; + +export const useFiremissionXOffsetValue = (context) => { + const [data, set] = useSharedState( + context, + 'firemission-x-offset-value', + 0 + ); + return { + fmXOffsetValue: data, + setFmXOffsetValue: set, + }; +}; + +export const useFiremissionYOffsetValue = (context) => { + const [data, set] = useSharedState( + context, + 'firemission-y-offset-value', + 0 + ); + return { + fmYOffsetValue: data, + setFmYOffsetValue: set, + }; +}; + +export const useLazeTarget = (context) => { + const [data, set] = useSharedState( + context, + 'laze-target', + undefined + ); + return { + selectedTarget: data, + setSelectedTarget: set, + }; +}; diff --git a/tgui/packages/tgui/interfaces/MfdPanels/types.ts b/tgui/packages/tgui/interfaces/MfdPanels/types.ts new file mode 100644 index 000000000000..78e7c3314b30 --- /dev/null +++ b/tgui/packages/tgui/interfaces/MfdPanels/types.ts @@ -0,0 +1,112 @@ +import { InfernoNode } from 'inferno'; +import { DropshipEquipment } from '../DropshipWeaponsConsole'; + +export interface ButtonProps { + children?: InfernoNode; + onClick?: () => void; +} + +export type LazeTarget = { + target_name: string; + target_tag: number; +}; + +export type TargetContext = { + targets_data: Array; +}; + +export type FultonProps = { + fulton_targets: Array; + equipment_data: Array; +}; + +export type MedevacTargets = { + area: string; + occupant: string; + ref: string; + triage_card?: string; + damage?: { + hp: number; + brute: number; + oxy: number; + tox: number; + fire: number; + undefib: number; + }; +}; + +export type CameraProps = { + camera_map_ref?: string; +}; + +export type EquipmentContext = { + equipment_data: Array; +}; + +export type MedevacContext = { + medevac_targets: Array; + equipment_data: Array; +}; + +export type FiremissionContext = { + firemission_data: Array; +}; + +export type SentrySpec = { + rounds?: number; + max_rounds?: number; + name: string; + area: string; + active: 0 | 1; + index: number; + engaged?: number; + nickname: string; + health: number; + health_max: number; + kills: number; + iff_status: string[]; + camera_available: number; + deployed: number; +}; + +export type SpotlightSpec = { + name: string; +}; + +export type MGSpec = { + name: string; + health: number; + health_max: number; + rounds: number; + max_rounds: number; + deployed: 0 | 1; +}; + +export type CasFiremissionStage = { + weapon: number; + offsets: Array; +}; + +export type CasFiremission = { + name: string; + mission_length: number; + records: Array; + mission_tag: number; +}; + +export type MapProps = { + tactical_map_ref: string; +}; + +export const dirMap = (dir) => { + switch (dir) { + case 'NORTH': + return 1; + case 'SOUTH': + return 2; + case 'EAST': + return 4; + case 'WEST': + return 8; + } +}; diff --git a/tgui/packages/tgui/interfaces/Microwave.tsx b/tgui/packages/tgui/interfaces/Microwave.tsx new file mode 100644 index 000000000000..da16a9f44b49 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Microwave.tsx @@ -0,0 +1,86 @@ +import { useBackend } from '../backend'; +import { Button, NoticeBox, Section, Flex, Box } from '../components'; +import { BooleanLike } from 'common/react'; +import { Window } from '../layouts'; + +type Ingredient = { + name: string; + count: number; + measure: string; +}; + +type BackendContext = { + operating: BooleanLike; + broken: BooleanLike; + dirty: BooleanLike; + ingredients: Ingredient[]; +}; + +export const Microwave = (props, context) => { + const { data, act } = useBackend(context); + const { operating, broken, dirty, ingredients } = data; + + return ( + + +
    + + + + + }> + {!!operating && ( + + Cooking... + + )} + + {!!broken && ( + + Appliance broken. Please contact your local technician. + + )} + + {!!dirty && ( + + This microwave is too dirty. Cleaning required. + + )} + + {!ingredients.length && None} + + + {ingredients.map((ingredient) => { + return ( + + {ingredient.name}: {ingredient.count}{' '} + {ingredient.measure} + + ); + })} + +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/Mortar.js b/tgui/packages/tgui/interfaces/Mortar.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Mortar.js rename to tgui/packages/tgui/interfaces/Mortar.jsx diff --git a/tgui/packages/tgui/interfaces/NavigationShuttle.tsx b/tgui/packages/tgui/interfaces/NavigationShuttle.tsx index 19ff7a0c7149..d262fa81dc3c 100644 --- a/tgui/packages/tgui/interfaces/NavigationShuttle.tsx +++ b/tgui/packages/tgui/interfaces/NavigationShuttle.tsx @@ -41,7 +41,7 @@ export const CancelLaunchButton = (_, context) => { export const LaunchButton = (_, context) => { const { act } = useBackend(context); - const [siteselection] = useSharedState( + const [siteselection, setSiteSelection] = useSharedState( context, 'target_site', undefined @@ -50,7 +50,10 @@ export const LaunchButton = (_, context) => { ); @@ -156,9 +159,15 @@ export const LaunchCountdown = (_, context) => { }; export const InFlightCountdown = (_, context) => { - const { data } = useBackend(context); + const { data, act } = useBackend(context); return ( -
    +
    act('cancel-flyby')}>Cancel + ) + }>
    diff --git a/tgui/packages/tgui/interfaces/NuclearBomb.js b/tgui/packages/tgui/interfaces/NuclearBomb.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/NuclearBomb.js rename to tgui/packages/tgui/interfaces/NuclearBomb.jsx diff --git a/tgui/packages/tgui/interfaces/Orbit/helpers.ts b/tgui/packages/tgui/interfaces/Orbit/helpers.ts index a43aaf1ff0b0..9facaf339b29 100644 --- a/tgui/packages/tgui/interfaces/Orbit/helpers.ts +++ b/tgui/packages/tgui/interfaces/Orbit/helpers.ts @@ -31,7 +31,9 @@ export const getDisplayName = (full_name: string, nickname?: string) => { }; /** Returns the display color for certain health percentages */ -export const getHealthColor = (health: number) => { +export const getHealthColor = (health?: number) => { + if (!health) return 'bad'; + switch (true) { case health > HEALTH.Good: return 'good'; diff --git a/tgui/packages/tgui/interfaces/Orbit/index.tsx b/tgui/packages/tgui/interfaces/Orbit/index.tsx index e9e345995271..899947e1bec9 100644 --- a/tgui/packages/tgui/interfaces/Orbit/index.tsx +++ b/tgui/packages/tgui/interfaces/Orbit/index.tsx @@ -118,6 +118,15 @@ const ObservableContent = (props, context) => { survivors = [], xenos = [], ert_members = [], + upp = [], + clf = [], + wy = [], + twe = [], + freelancer = [], + mercenary = [], + contractor = [], + dutch = [], + marshal = [], synthetics = [], predators = [], animals = [], @@ -145,6 +154,43 @@ const ObservableContent = (props, context) => { section={synthetics} title="Synthetics" /> + + + + + + + + + @@ -215,6 +261,8 @@ const ObservableItem = ( const [autoObserve] = useLocalState(context, 'autoObserve', false); + const displayHealth = typeof health === 'number'; + return (
    ); diff --git a/tgui/packages/tgui/interfaces/PlayerPanel.js b/tgui/packages/tgui/interfaces/PlayerPanel.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/PlayerPanel.js rename to tgui/packages/tgui/interfaces/PlayerPanel.jsx diff --git a/tgui/packages/tgui/interfaces/PodLauncher.js b/tgui/packages/tgui/interfaces/PodLauncher.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/PodLauncher.js rename to tgui/packages/tgui/interfaces/PodLauncher.jsx diff --git a/tgui/packages/tgui/interfaces/Proximity.js b/tgui/packages/tgui/interfaces/Proximity.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Proximity.js rename to tgui/packages/tgui/interfaces/Proximity.jsx diff --git a/tgui/packages/tgui/interfaces/Radar.tsx b/tgui/packages/tgui/interfaces/Radar.tsx index 1664082fb1b8..277d23f12d1b 100644 --- a/tgui/packages/tgui/interfaces/Radar.tsx +++ b/tgui/packages/tgui/interfaces/Radar.tsx @@ -29,7 +29,7 @@ type Target = { export const Radar = (props, context) => { return ( - + @@ -40,7 +40,7 @@ export const Radar = (props, context) => { export const RadarContent = (props, context) => { return ( - + { - - {compound.type.document.split(' ')[2]} - + {compound.type.document.split(' ')[0] === 'Simulation' ? ( + + {compound.type.document.split(' ')[3]} + + ) : ( + + {compound.type.document.split(' ')[2]} + + )} diff --git a/tgui/packages/tgui/interfaces/STUI.js b/tgui/packages/tgui/interfaces/STUI.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/STUI.js rename to tgui/packages/tgui/interfaces/STUI.jsx diff --git a/tgui/packages/tgui/interfaces/SelfDestructConsole.js b/tgui/packages/tgui/interfaces/SelfDestructConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/SelfDestructConsole.js rename to tgui/packages/tgui/interfaces/SelfDestructConsole.jsx diff --git a/tgui/packages/tgui/interfaces/Sentencing.js b/tgui/packages/tgui/interfaces/Sentencing.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Sentencing.js rename to tgui/packages/tgui/interfaces/Sentencing.jsx diff --git a/tgui/packages/tgui/interfaces/Signaller.js b/tgui/packages/tgui/interfaces/Signaller.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Signaller.js rename to tgui/packages/tgui/interfaces/Signaller.jsx diff --git a/tgui/packages/tgui/interfaces/SkillsMenu.js b/tgui/packages/tgui/interfaces/SkillsMenu.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/SkillsMenu.js rename to tgui/packages/tgui/interfaces/SkillsMenu.jsx diff --git a/tgui/packages/tgui/interfaces/Sleeper.js b/tgui/packages/tgui/interfaces/Sleeper.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Sleeper.js rename to tgui/packages/tgui/interfaces/Sleeper.jsx diff --git a/tgui/packages/tgui/interfaces/Smes.js b/tgui/packages/tgui/interfaces/Smes.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Smes.js rename to tgui/packages/tgui/interfaces/Smes.jsx diff --git a/tgui/packages/tgui/interfaces/SquadInfo.tsx b/tgui/packages/tgui/interfaces/SquadInfo.tsx index 7adb47af9730..f574818b1e7d 100644 --- a/tgui/packages/tgui/interfaces/SquadInfo.tsx +++ b/tgui/packages/tgui/interfaces/SquadInfo.tsx @@ -135,7 +135,7 @@ const FireTeam = (props: { ft: string }, context) => { fireteam?.tl?.name === 'Not assigned' || fireteam?.tl?.name === 'Unassigned' || fireteam?.tl?.name === undefined); - const rankList = ['Mar', 'ass', 'Med', 'Eng', 'SG', 'Spc', 'RTO', 'SL']; + const rankList = ['Mar', 'ass', 'Med', 'Eng', 'SG', 'Spc', 'TL', 'SL']; const rankSort = (a: SquadMarineEntry, b: SquadMarineEntry) => { if (a.rank === 'Mar' && b.rank === 'Mar') { return a.paygrade === 'PFC' ? -1 : 1; @@ -283,7 +283,7 @@ const SquadObjectives = (props, context) => { }; export const SquadInfo = (_, context) => { - const { config, data } = useBackend(context); + const { data } = useBackend(context); const fireteams = ['FT1', 'FT2', 'FT3', 'Unassigned']; return ( diff --git a/tgui/packages/tgui/interfaces/SquadMod.js b/tgui/packages/tgui/interfaces/SquadMod.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/SquadMod.js rename to tgui/packages/tgui/interfaces/SquadMod.jsx diff --git a/tgui/packages/tgui/interfaces/StatbrowserOptions.js b/tgui/packages/tgui/interfaces/StatbrowserOptions.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/StatbrowserOptions.js rename to tgui/packages/tgui/interfaces/StatbrowserOptions.jsx diff --git a/tgui/packages/tgui/interfaces/StationAlertConsole.js b/tgui/packages/tgui/interfaces/StationAlertConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/StationAlertConsole.js rename to tgui/packages/tgui/interfaces/StationAlertConsole.jsx diff --git a/tgui/packages/tgui/interfaces/SupplyDropConsole.js b/tgui/packages/tgui/interfaces/SupplyDropConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/SupplyDropConsole.js rename to tgui/packages/tgui/interfaces/SupplyDropConsole.jsx diff --git a/tgui/packages/tgui/interfaces/TacmapAdminPanel.jsx b/tgui/packages/tgui/interfaces/TacmapAdminPanel.jsx new file mode 100644 index 000000000000..a5d00c688a2f --- /dev/null +++ b/tgui/packages/tgui/interfaces/TacmapAdminPanel.jsx @@ -0,0 +1,164 @@ +import { useBackend, useLocalState } from '../backend'; +import { Tabs, Section, Button, Stack, Flex } from '../components'; +import { DrawnMap } from './DrawnMap'; +import { Window } from '../layouts'; + +const PAGES = [ + { + title: 'USCM', + component: () => FactionPage, + color: 'blue', + icon: 'medal', + }, + { + title: 'Hive', + component: () => FactionPage, + color: 'purple', + icon: 'star', + }, +]; + +export const TacmapAdminPanel = (props, context) => { + const { data } = useBackend(context); + const { + uscm_map, + xeno_map, + uscm_svg, + xeno_svg, + uscm_ckeys, + xeno_ckeys, + uscm_names, + xeno_names, + uscm_times, + xeno_times, + uscm_selection, + xeno_selection, + map_fallback, + last_update_time, + } = data; + + const [pageIndex, setPageIndex] = useLocalState(context, 'pageIndex', 0); + + const PageComponent = PAGES[pageIndex].component(); + + return ( + + + + + + {PAGES.map((page, i) => { + if (page.canAccess && !page.canAccess(data)) { + return; + } + + return ( + setPageIndex(i)}> + {page.title} + + ); + })} + + + + + + +
    + +
    +
    +
    +
    +
    + ); +}; + +const FactionPage = (props, context) => { + const { act } = useBackend(context); + const { svg, ckeys, names, times, selected_map, is_uscm } = props; + + return ( +
    + act('recache', { + uscm: is_uscm, + }) + } + /> + }> + {Object(ckeys).map((ckey, ckey_index) => ( + + + + act('change_selection', { + uscm: is_uscm, + index: ckey_index, + }) + } + /> + + + {names[ckey_index]} ({ckey}) - {times[ckey_index]} + + + + act('delete', { + uscm: is_uscm, + index: ckey_index, + }) + } + /> + + + ))} +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/TacticalMap.tsx b/tgui/packages/tgui/interfaces/TacticalMap.tsx index 01ba483acf27..34f214b1d1d3 100644 --- a/tgui/packages/tgui/interfaces/TacticalMap.tsx +++ b/tgui/packages/tgui/interfaces/TacticalMap.tsx @@ -1,24 +1,330 @@ -import { useBackend } from '../backend'; -import { ByondUi } from '../components'; +import { useBackend, useLocalState } from '../backend'; +import { Button, Dropdown, Section, Stack, ProgressBar, Box, Tabs } from '../components'; import { Window } from '../layouts'; +import { CanvasLayer } from './CanvasLayer'; +import { DrawnMap } from './DrawnMap'; +import { ByondUi } from '../components'; interface TacMapProps { + toolbarColorSelection: string; + toolbarUpdatedSelection: string; + updatedCanvas: boolean; + themeId: number; + svgData: any; + canViewTacmap: number; + canDraw: number; + isXeno: boolean; + canViewCanvas: number; + newCanvasFlatImage: string; + oldCanvasFlatImage: string; + actionQueueChange: number; + exportedColor: string; + mapFallback: string; mapRef: string; + currentMenu: string; + lastUpdateTime: any; + canvasCooldownDuration: any; + canvasCooldown: any; + exportedTacMapImage: any; + tacmapReady: number; } +const PAGES = [ + { + title: 'Live Tacmap', + canOpen: (data) => { + return 1; + }, + component: () => ViewMapPanel, + icon: 'map', + canAccess: (data) => { + return data.canViewTacmap; + }, + }, + { + title: 'Map View', + canOpen: (data) => { + return 1; + }, + component: () => OldMapPanel, + icon: 'eye', + canAccess: (data) => { + return data.canViewCanvas; + }, + }, + { + title: 'Canvas', + canOpen: (data) => { + return data.tacmapReady; + }, + component: () => DrawMapPanel, + icon: 'paintbrush', + canAccess: (data) => { + return data.canDraw; + }, + }, +]; + +const colorOptions = [ + 'black', + 'red', + 'orange', + 'blue', + 'purple', + 'green', + 'brown', +]; + +const colors: Record = { + 'black': '#000000', + 'red': '#fc0000', + 'orange': '#f59a07', + 'blue': '#0561f5', + 'purple': '#c002fa', + 'green': '#02c245', + 'brown': '#5c351e', +}; + export const TacticalMap = (props, context) => { const { data, act } = useBackend(context); + const [pageIndex, setPageIndex] = useLocalState( + context, + 'pageIndex', + data.canViewTacmap ? 0 : 1 + ); + const PageComponent = PAGES[pageIndex].component(); + + const handleTacmapOnClick = (i, pageTitle) => { + setPageIndex(i); + act('menuSelect', { + selection: pageTitle, + }); + }; + return ( - + - +
    + + + + {PAGES.map((page, i) => { + if (page.canAccess(data) === 0) { + return; + } + return ( + handleTacmapOnClick(i, page.title)}> + {page.canOpen(data) === 0 ? 'loading' : page.title} + + ); + })} + + + +
    +
    ); }; + +const ViewMapPanel = (props, context) => { + const { data } = useBackend(context); + + // byond ui can't resist trying to render + if (data.canViewTacmap === 0 || data.mapRef === null) { + return ; + } + + return ( +
    + +
    + ); +}; + +const OldMapPanel = (props, context) => { + const { data } = useBackend(context); + return ( +
    + {data.canViewCanvas ? ( + + ) : ( + +

    Unauthorized.

    +
    + )} +
    + ); +}; + +const DrawMapPanel = (props, context) => { + const { data, act } = useBackend(context); + + const timeLeftPct = data.canvasCooldown / data.canvasCooldownDuration; + const canUpdate = data.canvasCooldown <= 0 && !data.updatedCanvas; + + const handleTacMapExport = (image: any) => { + data.exportedTacMapImage = image; + }; + + const handleColorSelection = (dataSelection) => { + if (colors[dataSelection] !== null && colors[dataSelection] !== undefined) { + return colors[dataSelection]; + } else { + return dataSelection; + } + }; + const findColorValue = (oldValue: string) => { + return (Object.keys(colors) as Array).find( + (key) => colors[key] === (oldValue as string) + ); + }; + + return ( + <> +
    + + + {(!data.updatedCanvas && ( +
    +
    + + act('selectColor', { color: findColorValue(value) }) + } + onDraw={() => act('onDraw')} + /> +
    + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Tank.js b/tgui/packages/tgui/interfaces/Tank.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Tank.js rename to tgui/packages/tgui/interfaces/Tank.jsx diff --git a/tgui/packages/tgui/interfaces/TechControl.js b/tgui/packages/tgui/interfaces/TechControl.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/TechControl.js rename to tgui/packages/tgui/interfaces/TechControl.jsx diff --git a/tgui/packages/tgui/interfaces/TechMemories.js b/tgui/packages/tgui/interfaces/TechMemories.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/TechMemories.js rename to tgui/packages/tgui/interfaces/TechMemories.jsx diff --git a/tgui/packages/tgui/interfaces/TechNode.js b/tgui/packages/tgui/interfaces/TechNode.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/TechNode.js rename to tgui/packages/tgui/interfaces/TechNode.jsx diff --git a/tgui/packages/tgui/interfaces/TeleporterConsole.js b/tgui/packages/tgui/interfaces/TeleporterConsole.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/TeleporterConsole.js rename to tgui/packages/tgui/interfaces/TeleporterConsole.jsx diff --git a/tgui/packages/tgui/interfaces/Timer.js b/tgui/packages/tgui/interfaces/Timer.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Timer.js rename to tgui/packages/tgui/interfaces/Timer.jsx diff --git a/tgui/packages/tgui/interfaces/TutorialMenu.tsx b/tgui/packages/tgui/interfaces/TutorialMenu.tsx new file mode 100644 index 000000000000..ee22f1a02996 --- /dev/null +++ b/tgui/packages/tgui/interfaces/TutorialMenu.tsx @@ -0,0 +1,149 @@ +import { classes } from 'common/react'; +import { useBackend, useLocalState } from '../backend'; +import { Section, Stack, Box, Divider, Button, Tabs } from '../components'; +import { Window } from '../layouts'; + +type Tutorial = { + name: string; + path: string; + id: string; + description: string; + image: string; +}; + +type TutorialCategory = { + tutorials: Tutorial[]; + name: string; +}; + +type BackendContext = { + tutorial_categories: TutorialCategory[]; + completed_tutorials: string[]; +}; + +export const TutorialMenu = (props, context) => { + const { data, act } = useBackend(context); + const { tutorial_categories, completed_tutorials } = data; + const [chosenTutorial, setTutorial] = useLocalState( + context, + 'tutorial', + null + ); + const [categoryIndex, setCategoryIndex] = useLocalState( + context, + 'category_index', + 'Space Station 13' + ); + return ( + + + + + + + {tutorial_categories.map((item, key) => ( + { + setCategoryIndex(item.name); + }}> + {item.name} + + ))} + + + + + +
    + {tutorial_categories.map( + (tutorial_category) => + tutorial_category.name === categoryIndex && + tutorial_category.tutorials.map((tutorial) => ( +
    + +
    + )) + )} +
    +
    + + +
    + {chosenTutorial !== null ? ( + + +
    + + + +
    +
    + {chosenTutorial.description} + {completed_tutorials.indexOf(chosenTutorial.id) === -1 ? ( +
    + ) : ( + + Tutorial has been completed. + + )} + +
    +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/VehicleStatus.js b/tgui/packages/tgui/interfaces/VehicleStatus.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/VehicleStatus.js rename to tgui/packages/tgui/interfaces/VehicleStatus.jsx diff --git a/tgui/packages/tgui/interfaces/VoteMenu.js b/tgui/packages/tgui/interfaces/VoteMenu.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/VoteMenu.js rename to tgui/packages/tgui/interfaces/VoteMenu.jsx diff --git a/tgui/packages/tgui/interfaces/VoxPanel.js b/tgui/packages/tgui/interfaces/VoxPanel.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/VoxPanel.js rename to tgui/packages/tgui/interfaces/VoxPanel.jsx diff --git a/tgui/packages/tgui/interfaces/WeaponStats.js b/tgui/packages/tgui/interfaces/WeaponStats.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/WeaponStats.js rename to tgui/packages/tgui/interfaces/WeaponStats.jsx diff --git a/tgui/packages/tgui/interfaces/Wires.js b/tgui/packages/tgui/interfaces/Wires.jsx similarity index 100% rename from tgui/packages/tgui/interfaces/Wires.js rename to tgui/packages/tgui/interfaces/Wires.jsx diff --git a/tgui/packages/tgui/interfaces/WorkingJoe.js b/tgui/packages/tgui/interfaces/WorkingJoe.jsx similarity index 96% rename from tgui/packages/tgui/interfaces/WorkingJoe.js rename to tgui/packages/tgui/interfaces/WorkingJoe.jsx index 6881d731db1b..6e6372326d9a 100644 --- a/tgui/packages/tgui/interfaces/WorkingJoe.js +++ b/tgui/packages/tgui/interfaces/WorkingJoe.jsx @@ -870,24 +870,20 @@ const AccessTickets = (props, context) => { can_claim = 'No'; } let can_update = 'Yes'; - if (ticket.assignee !== logged_in) { - can_update = 'No'; - } else if (ticket.lock_status === 'CLOSED') { + if (ticket.lock_status === 'CLOSED') { can_update = 'No'; } let view_status = 'Ticket is pending assignment.'; let view_icon = 'circle-question'; - let update_tooltip = 'Update Access'; - if (ticket.status === 'assigned') { - view_status = 'Ticket is assigned.'; - view_icon = 'circle-plus'; - update_tooltip = 'Grant Access'; - } else if (ticket.status === 'rejected') { + let update_tooltip = 'Grant Access'; + if (ticket.status === 'rejected') { view_status = 'Ticket has been rejected.'; view_icon = 'circle-xmark'; + update_tooltip = 'Ticket rejected. No further changes possible.'; } else if (ticket.status === 'cancelled') { view_status = 'Ticket was cancelled by reporter.'; view_icon = 'circle-stop'; + update_tooltip = 'Ticket cancelled. No further changes possible.'; } else if (ticket.status === 'granted') { view_status = 'Access ticket has been granted.'; view_icon = 'circle-check'; @@ -902,19 +898,19 @@ const AccessTickets = (props, context) => { update_tooltip = 'Access self-returned. No further changes possible.'; } + let can_reject = 'Yes'; + if (can_update === 'No') { + can_reject = 'No'; + } + if (ticket.status !== 'pending') { + can_reject = 'No'; + } return ( - {!!ticket.priority_status && ( - - {ticket.id} - - )} - {!ticket.priority_status && ( - - {ticket.id} - - )} + + {ticket.id} + {ticket.time} @@ -929,18 +925,20 @@ const AccessTickets = (props, context) => {